From 69212d89483e15b69c7d5b72c112bcb718bb8b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Ro=C5=9Bciszewski?= Date: Fri, 30 Aug 2019 16:57:08 +0200 Subject: [PATCH] add missing webapp files for r0.3 --- tensorhive/app/web/dev/package-lock.json | 2604 ++++++++--------- .../app.8a447daadd3b3ec522d2fb47fad1673a.css | 9 + .../static/favicon/android-icon-144x144.png | Bin 0 -> 11146 bytes .../static/favicon/android-icon-192x192.png | Bin 0 -> 14783 bytes .../static/favicon/android-icon-36x36.png | Bin 0 -> 2004 bytes .../static/favicon/android-icon-48x48.png | Bin 0 -> 2655 bytes .../static/favicon/android-icon-72x72.png | Bin 0 -> 4323 bytes .../static/favicon/android-icon-96x96.png | Bin 0 -> 6429 bytes .../static/favicon/apple-icon-114x114.png | Bin 0 -> 8144 bytes .../static/favicon/apple-icon-120x120.png | Bin 0 -> 8593 bytes .../static/favicon/apple-icon-144x144.png | Bin 0 -> 11146 bytes .../static/favicon/apple-icon-152x152.png | Bin 0 -> 12000 bytes .../static/favicon/apple-icon-180x180.png | Bin 0 -> 15233 bytes .../dist/static/favicon/apple-icon-57x57.png | Bin 0 -> 3254 bytes .../dist/static/favicon/apple-icon-60x60.png | Bin 0 -> 3435 bytes .../dist/static/favicon/apple-icon-72x72.png | Bin 0 -> 4323 bytes .../dist/static/favicon/apple-icon-76x76.png | Bin 0 -> 4674 bytes .../static/favicon/apple-icon-precomposed.png | Bin 0 -> 15357 bytes .../web/dist/static/favicon/apple-icon.png | Bin 0 -> 15357 bytes .../web/dist/static/favicon/browserconfig.xml | 2 + .../web/dist/static/favicon/favicon-16x16.png | Bin 0 -> 1304 bytes .../web/dist/static/favicon/favicon-32x32.png | Bin 0 -> 1751 bytes .../web/dist/static/favicon/favicon-96x96.png | Bin 0 -> 6429 bytes .../app/web/dist/static/favicon/favicon.ico | Bin 0 -> 1150 bytes .../app/web/dist/static/favicon/manifest.json | 41 + .../dist/static/favicon/ms-icon-144x144.png | Bin 0 -> 11146 bytes .../dist/static/favicon/ms-icon-150x150.png | Bin 0 -> 11736 bytes .../dist/static/favicon/ms-icon-310x310.png | Bin 0 -> 33865 bytes .../web/dist/static/favicon/ms-icon-70x70.png | Bin 0 -> 4173 bytes .../static/js/app.607bb86363643317145e.js | 7 + .../static/js/app.607bb86363643317145e.js.map | 1 + .../js/manifest.2ae2e69a05c33dfc65f8.js.map | 1 + .../static/js/vendor.b294b2a46f10a4cef3a7.js | 1414 +++++++++ .../js/vendor.b294b2a46f10a4cef3a7.js.map | 1 + 34 files changed, 2724 insertions(+), 1356 deletions(-) create mode 100644 tensorhive/app/web/dist/static/css/app.8a447daadd3b3ec522d2fb47fad1673a.css create mode 100644 tensorhive/app/web/dist/static/favicon/android-icon-144x144.png create mode 100644 tensorhive/app/web/dist/static/favicon/android-icon-192x192.png create mode 100644 tensorhive/app/web/dist/static/favicon/android-icon-36x36.png create mode 100644 tensorhive/app/web/dist/static/favicon/android-icon-48x48.png create mode 100644 tensorhive/app/web/dist/static/favicon/android-icon-72x72.png create mode 100644 tensorhive/app/web/dist/static/favicon/android-icon-96x96.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-114x114.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-120x120.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-144x144.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-152x152.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-180x180.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-57x57.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-60x60.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-72x72.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-76x76.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon-precomposed.png create mode 100644 tensorhive/app/web/dist/static/favicon/apple-icon.png create mode 100644 tensorhive/app/web/dist/static/favicon/browserconfig.xml create mode 100644 tensorhive/app/web/dist/static/favicon/favicon-16x16.png create mode 100644 tensorhive/app/web/dist/static/favicon/favicon-32x32.png create mode 100644 tensorhive/app/web/dist/static/favicon/favicon-96x96.png create mode 100644 tensorhive/app/web/dist/static/favicon/favicon.ico create mode 100644 tensorhive/app/web/dist/static/favicon/manifest.json create mode 100644 tensorhive/app/web/dist/static/favicon/ms-icon-144x144.png create mode 100644 tensorhive/app/web/dist/static/favicon/ms-icon-150x150.png create mode 100644 tensorhive/app/web/dist/static/favicon/ms-icon-310x310.png create mode 100644 tensorhive/app/web/dist/static/favicon/ms-icon-70x70.png create mode 100644 tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js create mode 100644 tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js.map create mode 100644 tensorhive/app/web/dist/static/js/manifest.2ae2e69a05c33dfc65f8.js.map create mode 100644 tensorhive/app/web/dist/static/js/vendor.b294b2a46f10a4cef3a7.js create mode 100644 tensorhive/app/web/dist/static/js/vendor.b294b2a46f10a4cef3a7.js.map diff --git a/tensorhive/app/web/dev/package-lock.json b/tensorhive/app/web/dev/package-lock.json index 3ee9cd33..12e9f552 100644 --- a/tensorhive/app/web/dev/package-lock.json +++ b/tensorhive/app/web/dev/package-lock.json @@ -573,11 +573,6 @@ } } }, - "arr-flatten": { - "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", @@ -608,7 +603,8 @@ "dev": true }, "array-union": { - "version": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { @@ -738,11 +734,6 @@ } } }, - "async-each": { - "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha512-STDwmg+1mv249vNFx+s+sF4HrdLxlF5Z6L4npilrkgchWPEuW4X13gKzSJq51qJy9InOgwmPepgfMb9/Qu0fSg==", - "dev": true - }, "async-foreach": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", @@ -1988,34 +1979,23 @@ "dev": true }, "body-parser": { - "version": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", - "integrity": "sha512-YQyoqQG3sO8iCmf8+hyVpgHHOv0/hCEFiS4zTGUwTA1HjAFX66wRcNQrVCeJq9pgESMRvUAOvSil5MJlmccuKQ==", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "dev": true, "requires": { - "bytes": "3.0.0", + "bytes": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "content-type": "1.0.4", "debug": "2.6.9", "depd": "1.1.2", - "http-errors": "1.6.3", + "http-errors": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "qs": "6.5.2", "raw-body": "2.3.3", "type-is": "1.6.16" }, "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -2025,30 +2005,6 @@ "ms": "2.0.0" } }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "1.1.2", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "setprototypeof": "1.1.0", - "statuses": "1.5.0" - } - }, "iconv-lite": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", @@ -2057,76 +2013,6 @@ "requires": { "safer-buffer": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", - "dev": true, - "requires": { - "mime-db": "1.38.0" - } - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true - }, - "raw-body": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", - "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", - "dev": true, - "requires": { - "bytes": "3.0.0", - "http-errors": "1.6.3", - "iconv-lite": "0.4.23", - "unpipe": "1.0.0" - } - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "type-is": { - "version": "1.6.16", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz", - "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "2.1.22" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true } } }, @@ -2159,8 +2045,10 @@ "dev": true }, "brace-expansion": { - "version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "1.0.0", "concat-map": "0.0.1" @@ -3317,17 +3205,6 @@ "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "strip-ansi": "3.0.1", "wrap-ansi": "2.1.0" - }, - "dependencies": { - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "strip-ansi": "3.0.1" - } - } } }, "clone": { @@ -3386,8 +3263,7 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "collection-visit": { "version": "1.0.0", @@ -3499,9 +3375,9 @@ } }, "combined-stream": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz", - "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "1.0.0" @@ -3568,6 +3444,13 @@ "requires": { "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + }, + "dependencies": { + "negotiator": { + "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha512-qTxkr1RoLw5Pz+1+PTJ/66hWuyi2LEOeOuIDJDlx6JF8x75bmD5C7qXTg2UlX5W9rLfkqKP+r8q6Vy6NWdWrbw==", + "dev": true + } } }, "debug": { @@ -3587,26 +3470,21 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { - "version": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "1.1.1", - "inherits": "2.0.3", + "inherits": "2.0.4", "readable-stream": "2.3.6", "typedarray": "0.0.6" }, "dependencies": { "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "readable-stream": { @@ -3616,28 +3494,28 @@ "dev": true, "requires": { "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "2.0.3", + "inherits": "2.0.4", "isarray": "1.0.0", "process-nextick-args": "2.0.0", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "safe-buffer": "5.1.2", "string_decoder": "1.1.1", "util-deprecate": "1.0.2" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "safe-buffer": "5.1.2" } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true } } }, @@ -3747,8 +3625,9 @@ } }, "cookie": { - "version": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, "cookie-signature": { @@ -4554,11 +4433,20 @@ "dev": true }, "debug": { - "version": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "decamelize": { @@ -4635,6 +4523,26 @@ "p-finally": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "strip-eof": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + }, + "dependencies": { + "npm-run-path": { + "version": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "p-finally": { + "version": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true + }, + "strip-eof": { + "version": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true + } } }, "get-stream": { @@ -4654,6 +4562,24 @@ "requires": { "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + }, + "dependencies": { + "end-of-stream": { + "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + } + }, + "once": { + "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + } } } } @@ -4673,7 +4599,15 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-data-descriptor": { @@ -4682,7 +4616,15 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-descriptor": { @@ -4694,6 +4636,13 @@ "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + }, + "dependencies": { + "kind-of": { + "version": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } } } @@ -4734,14 +4683,6 @@ "p-map": "1.2.0", "pify": "3.0.0", "rimraf": "2.6.3" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } } }, "delayed-stream": { @@ -5115,14 +5056,6 @@ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true }, - "end-of-stream": { - "version": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", - "dev": true, - "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - } - }, "engine.io": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", @@ -5316,13 +5249,6 @@ "prr": "1.0.1" } }, - "error-ex": { - "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "0.2.1" - } - }, "error-stack-parser": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.2.tgz", @@ -5900,6 +5826,13 @@ "requires": { "esutils": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "isarray": "1.0.0" + }, + "dependencies": { + "esutils": { + "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha512-UUPPULqkyAV+M3Shodis7l8D+IyX6V8SbaBnTb449jf3fMTd8+UOZI1Q70NbZVOQkcR91yYgdHsJiMMMVmYshg==", + "dev": true + } } }, "find-up": { @@ -5933,20 +5866,46 @@ "parse-json": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "pify": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "strip-bom": "3.0.0" + } + }, + "normalize-package-data": { + "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.7.1", + "is-builtin-module": "1.0.0", + "semver": "5.6.0", + "validate-npm-package-license": "3.0.4" }, "dependencies": { - "parse-json": { - "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "builtin-modules": "1.1.1" + } + } + } + }, + "parse-json": { + "version": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "requires": { + "error-ex": "1.3.2" + }, + "dependencies": { + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" } - }, - "pify": { - "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true } } }, @@ -5973,6 +5932,11 @@ } } }, + "pify": { + "version": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", @@ -5982,19 +5946,6 @@ "load-json-file": "2.0.0", "normalize-package-data": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "path-type": "2.0.0" - }, - "dependencies": { - "normalize-package-data": { - "version": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, - "requires": { - "hosted-git-info": "2.7.1", - "is-builtin-module": "1.0.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" - } - } } }, "read-pkg-up": { @@ -6140,11 +6091,6 @@ "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, - "esutils": { - "version": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha512-UUPPULqkyAV+M3Shodis7l8D+IyX6V8SbaBnTb449jf3fMTd8+UOZI1Q70NbZVOQkcR91yYgdHsJiMMMVmYshg==", - "dev": true - }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -6322,12 +6268,12 @@ "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "1.3.7", "array-flatten": "1.1.1", - "body-parser": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "body-parser": "1.18.3", "content-disposition": "0.5.2", "content-type": "1.0.4", - "cookie": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "1.1.2", @@ -6350,18 +6296,18 @@ "setprototypeof": "1.1.0", "statuses": "1.4.0", "type-is": "1.6.16", - "utils-merge": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "utils-merge": "1.0.1", "vary": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" }, "dependencies": { "accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + "mime-types": "2.1.24", + "negotiator": "0.6.2" } }, "debug": { @@ -6385,7 +6331,22 @@ "on-finished": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "parseurl": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "statuses": "1.4.0", - "unpipe": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "unpipe": "1.0.0" + } + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" } }, "path-to-regexp": { @@ -6403,7 +6364,8 @@ } }, "extend": { - "version": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, @@ -6453,7 +6415,7 @@ "integrity": "sha512-NWFb/0zxv3qh7f6hEy+F+Y+jPAqt1bfT52GR8Vi7sEFg2fBZlG/aM6ZrSGPUscP0I4JRhtgVG6I17HOuD7GESw==", "dev": true, "requires": { - "concat-stream": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "concat-stream": "1.6.2", "debug": "2.6.9", "mkdirp": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "yauzl": "2.4.1" @@ -6515,11 +6477,6 @@ "pend": "1.2.0" } }, - "fecha": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", - "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==" - }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -6818,11 +6775,12 @@ } }, "follow-redirects": { - "version": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", - "integrity": "sha512-t2JCjbzxQpWvbhts3l6SH1DKzSrx8a+SsaVf4h6bG4kOXUuPYS/kg2Lr4gQSb7eemaHqJkOThF1BGyjlUkO1GQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.8.1.tgz", + "integrity": "sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==", "dev": true, "requires": { - "debug": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz" + "debug": "3.2.6" } }, "for-in": { @@ -6858,17 +6816,23 @@ "dev": true, "requires": { "asynckit": "0.4.0", - "combined-stream": "1.0.7", - "mime-types": "2.1.22" + "combined-stream": "1.0.8", + "mime-types": "2.1.24" }, "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, "requires": { - "mime-db": "1.38.0" + "mime-db": "1.40.0" } } } @@ -7087,7 +7051,8 @@ } }, "fs.realpath": { - "version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { @@ -7840,26 +7805,48 @@ "version": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "requires": { - "fs.realpath": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "inflight": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "inherits": "2.0.3", + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.4", "minimatch": "3.0.4", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "once": "1.4.0", + "path-is-absolute": "1.0.1" }, "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "brace-expansion": "1.1.11" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" } } }, @@ -7894,7 +7881,7 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "array-union": "1.0.2", "glob": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "object-assign": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "pify": "2.3.0", @@ -8125,11 +8112,6 @@ "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", "dev": true }, - "has-flag": { - "version": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -8171,7 +8153,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -8182,7 +8172,15 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -8315,7 +8313,7 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "inherits": "2.0.4", "obuf": "1.1.2", "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "wbuf": "1.7.3" @@ -8467,9 +8465,17 @@ "dev": true, "requires": { "depd": "1.1.2", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": "1.5.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, "http-parser-js": { @@ -8484,8 +8490,16 @@ "dev": true, "requires": { "eventemitter3": "3.1.0", - "follow-redirects": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.6.1.tgz", - "requires-port": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + "follow-redirects": "1.8.1", + "requires-port": "1.0.0" + }, + "dependencies": { + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + } } }, "http-proxy-agent": { @@ -8546,18 +8560,24 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "arr-flatten": "1.1.0", "array-unique": "0.3.2", "extend-shallow": "2.0.1", "fill-range": "4.0.0", "isobject": "3.0.1", - "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "repeat-element": "1.1.3", "snapdragon": "0.8.2", "snapdragon-node": "2.1.1", "split-string": "3.1.0", "to-regex": "3.0.2" }, "dependencies": { + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", @@ -8591,7 +8611,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -8611,7 +8639,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -8664,6 +8700,12 @@ } } }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -8874,7 +8916,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -8894,7 +8944,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9107,7 +9165,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9127,7 +9193,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9291,7 +9365,15 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-data-descriptor": { @@ -9300,7 +9382,15 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-descriptor": { @@ -9311,7 +9401,15 @@ "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-extglob": { @@ -9344,7 +9442,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9362,7 +9468,7 @@ "extend-shallow": "3.0.2", "extglob": "2.0.4", "fragment-cache": "0.2.1", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "kind-of": "6.0.2", "nanomatch": "1.2.13", "object.pick": "1.3.0", "regex-not": "1.0.2", @@ -9414,7 +9520,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9434,7 +9548,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9448,6 +9570,12 @@ "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" } }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -9460,7 +9588,7 @@ "extend-shallow": "3.0.2", "fragment-cache": "0.2.1", "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "kind-of": "6.0.2", "object.pick": "1.3.0", "regex-not": "1.0.2", "snapdragon": "0.8.2", @@ -9813,16 +9941,28 @@ "dev": true }, "inflight": { - "version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "once": "1.4.0", "wrappy": "1.0.2" + }, + "dependencies": { + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } + } } }, "inherits": { - "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "inject-loader": { @@ -9925,8 +10065,7 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ip": { "version": "1.0.1", @@ -9967,7 +10106,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -9977,28 +10124,6 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, - "is-binary-path": { - "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", - "dev": true, - "requires": { - "binary-extensions": "1.13.0" - } - }, - "is-buffer": { - "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "1.1.1" - } - }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", @@ -10014,7 +10139,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -10141,7 +10274,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz" + "path-is-inside": "1.0.2" } }, "is-plain-obj": { @@ -10952,11 +11085,6 @@ "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, - "kind-of": { - "version": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", @@ -10994,7 +11122,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, "requires": { "invert-kv": "1.0.0" } @@ -11027,6 +11154,15 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + }, + "dependencies": { + "error-ex": { + "version": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "0.2.1" + } + } } }, "pify": { @@ -11135,23 +11271,6 @@ "json5": "1.0.1" } }, - "locate-path": { - "version": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "lodash": { "version": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", @@ -11593,32 +11712,6 @@ } } }, - "memory-fs": { - "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", - "dev": true, - "requires": { - "errno": "0.1.7", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" - }, - "dependencies": { - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "dev": true, - "requires": { - "prr": "1.0.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - } - } - }, "meow": { "version": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==", @@ -11649,57 +11742,11 @@ "pinkie-promise": "2.0.1" } }, - "graceful-fs": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==" - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "4.1.15", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "2.7.1", - "resolve": "1.10.0", - "semver": "5.6.0", - "validate-npm-package-license": "3.0.4" - } - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - } - }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -11708,21 +11755,6 @@ "pinkie-promise": "2.0.1" } }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "4.1.15", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", @@ -11731,16 +11763,6 @@ "pinkie": "2.0.4" } }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.5.0", - "path-type": "1.1.0" - } - }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", @@ -11749,22 +11771,6 @@ "find-up": "1.1.2", "read-pkg": "1.1.0" } - }, - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "requires": { - "path-parse": "1.0.6" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "0.2.1" - } } } }, @@ -11856,11 +11862,6 @@ } } }, - "mimic-fn": { - "version": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, "minimalistic-assert": { "version": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", @@ -11877,7 +11878,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -12438,7 +12439,7 @@ "extend-shallow": "3.0.2", "fragment-cache": "0.2.1", "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "kind-of": "6.0.2", "object.pick": "1.3.0", "regex-not": "1.0.2", "snapdragon": "0.8.2", @@ -12483,7 +12484,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" } }, "is-data-descriptor": { @@ -12492,7 +12493,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" } }, "is-descriptor": { @@ -12503,7 +12504,7 @@ "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" } }, "is-extendable": { @@ -12514,6 +12515,12 @@ "requires": { "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -12524,8 +12531,9 @@ "dev": true }, "negotiator": { - "version": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha512-qTxkr1RoLw5Pz+1+PTJ/66hWuyi2LEOeOuIDJDlx6JF8x75bmD5C7qXTg2UlX5W9rLfkqKP+r8q6Vy6NWdWrbw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "neo-async": { @@ -13181,15 +13189,6 @@ "has-ansi": "2.0.0", "strip-ansi": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "supports-color": "2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "requires": { - "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - } - } } }, "combined-stream": { @@ -13424,6 +13423,13 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "strip-ansi": { + "version": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "requires": { + "ansi-regex": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -13477,7 +13483,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, "requires": { "hosted-git-info": "2.7.1", "resolve": "1.10.0", @@ -13489,7 +13494,6 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, "requires": { "path-parse": "1.0.6" } @@ -13539,14 +13543,6 @@ } } }, - "npm-run-path": { - "version": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "requires": { - "path-key": "2.0.1" - } - }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", @@ -13576,8 +13572,7 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", @@ -13621,7 +13616,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -13703,13 +13706,6 @@ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true }, - "once": { - "version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1.0.2" - } - }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", @@ -13840,21 +13836,6 @@ "integrity": "sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==", "requires": { "lcid": "1.0.0" - }, - "dependencies": { - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "1.0.0" - } - } } }, "os-tmpdir": { @@ -13876,11 +13857,6 @@ "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", "dev": true }, - "p-finally": { - "version": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true - }, "p-is-promise": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.0.0.tgz", @@ -14170,12 +14146,9 @@ "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, - "path-is-absolute": { - "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, "path-is-inside": { - "version": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, @@ -14321,17 +14294,6 @@ "dev": true, "requires": { "find-up": "2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz" - } - } } }, "pluralize": { @@ -16695,9 +16657,9 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { - "version": "1.1.31", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", + "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==", "dev": true }, "public-encrypt": { @@ -16813,8 +16775,9 @@ } }, "querystring": { - "version": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { @@ -17042,7 +17005,7 @@ "dev": true, "requires": { "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "inherits": "2.0.4", "isarray": "1.0.0", "process-nextick-args": "2.0.0", "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", @@ -17061,444 +17024,130 @@ } } }, - "readdirp": { - "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", - "micromatch": "3.1.10", - "readable-stream": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz" + "resolve": "1.10.0" }, "dependencies": { - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "resolve": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", + "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", "dev": true, "requires": { - "arr-flatten": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - } - } + "path-parse": "1.0.6" } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "ms": "2.0.0" + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - } - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - } - } - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "to-regex-range": "2.1.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - } - } - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "1.10.0" - }, - "dependencies": { - "resolve": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz", - "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==", - "dev": true, - "requires": { - "path-parse": "1.0.6" - } - } - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" - } - }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", - "dev": true, - "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", - "dev": true, - "requires": { - "balanced-match": "0.4.2" - }, - "dependencies": { - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", - "dev": true - } - } - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" - } - }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", - "dev": true, - "requires": { - "is-equal-shallow": "0.1.3" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" } } } @@ -17549,11 +17198,6 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, - "remove-trailing-separator": { - "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true - }, "renderkid": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", @@ -17567,11 +17211,6 @@ "utila": "0.4.0" } }, - "repeat-element": { - "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, "repeat-string": { "version": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", @@ -17594,8 +17233,8 @@ "aws-sign2": "0.7.0", "aws4": "1.8.0", "caseless": "0.12.0", - "combined-stream": "1.0.7", - "extend": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "combined-stream": "1.0.8", + "extend": "3.0.2", "forever-agent": "0.6.1", "form-data": "2.3.3", "har-validator": "5.1.3", @@ -17603,24 +17242,36 @@ "is-typedarray": "1.0.0", "isstream": "0.1.2", "json-stringify-safe": "5.0.1", - "mime-types": "2.1.22", + "mime-types": "2.1.24", "oauth-sign": "0.9.0", "performance-now": "2.1.0", "qs": "6.5.2", - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "safe-buffer": "5.2.0", "tough-cookie": "2.4.3", "tunnel-agent": "0.6.0", "uuid": "3.3.2" }, "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, "mime-types": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz", - "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "dev": true, "requires": { - "mime-db": "1.38.0" + "mime-db": "1.40.0" } + }, + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true } } }, @@ -18085,7 +17736,15 @@ "dev": true, "requires": { "mime-types": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", - "negotiator": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz" + "negotiator": "0.6.1" + }, + "dependencies": { + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + } } }, "debug": { @@ -18411,7 +18070,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -18589,7 +18256,7 @@ "debug": "3.2.6", "eventsource": "1.0.7", "faye-websocket": "0.11.1", - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "inherits": "2.0.4", "json3": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", "url-parse": "1.4.4" }, @@ -18809,9 +18476,19 @@ "integrity": "sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==", "dev": true, "requires": { - "inherits": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "inherits": "2.0.4", "string_decoder": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "util-deprecate": "1.0.2" + }, + "dependencies": { + "string_decoder": { + "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + } + } } } } @@ -19137,11 +18814,6 @@ "strip-ansi": "3.0.1" }, "dependencies": { - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", @@ -19149,22 +18821,9 @@ "requires": { "number-is-nan": "1.0.1" } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" } } }, - "string_decoder": { - "version": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - } - }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -19181,11 +18840,6 @@ "is-utf8": "0.2.1" } }, - "strip-eof": { - "version": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true - }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", @@ -19584,7 +19238,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -19627,7 +19289,15 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-data-descriptor": { @@ -19636,7 +19306,15 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-descriptor": { @@ -19647,7 +19325,15 @@ "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-extendable": { @@ -19687,6 +19373,13 @@ "dev": true, "requires": { "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + }, + "dependencies": { + "is-buffer": { + "version": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -19703,7 +19396,7 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "1.1.31", + "psl": "1.3.0", "punycode": "1.4.1" }, "dependencies": { @@ -19752,7 +19445,15 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "safe-buffer": "5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", + "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", + "dev": true + } } }, "tweetnacl": { @@ -19941,8 +19642,9 @@ } }, "unpipe": { - "version": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unset-value": { @@ -20017,7 +19719,7 @@ "dev": true, "requires": { "punycode": "1.3.2", - "querystring": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz" + "querystring": "0.2.0" }, "dependencies": { "punycode": { @@ -20102,8 +19804,9 @@ "dev": true }, "utils-merge": { - "version": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { @@ -21747,6 +21450,13 @@ "dev": true, "requires": { "remove-trailing-separator": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" + }, + "dependencies": { + "remove-trailing-separator": { + "version": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + } } } } @@ -21781,6 +21491,11 @@ "to-regex": "3.0.2" }, "dependencies": { + "arr-flatten": { + "version": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -21823,7 +21538,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -21843,7 +21566,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -21901,6 +21632,11 @@ } } }, + "repeat-element": { + "version": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -21917,91 +21653,6 @@ "use": "3.1.1" } }, - "snapdragon-node": { - "version": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "1.0.0", - "isobject": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "snapdragon-util": "3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "1.0.2" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "6.0.2" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" - } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } - } - }, - "split-string": { - "version": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - } - } - } - }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", @@ -22106,6 +21757,41 @@ "path-is-absolute": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "readdirp": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "upath": "1.1.1" + }, + "dependencies": { + "async-each": { + "version": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha512-STDwmg+1mv249vNFx+s+sF4HrdLxlF5Z6L4npilrkgchWPEuW4X13gKzSJq51qJy9InOgwmPepgfMb9/Qu0fSg==", + "dev": true + }, + "inherits": { + "version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "is-binary-path": { + "version": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "1.13.0" + } + }, + "path-is-absolute": { + "version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "readdirp": { + "version": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "micromatch": "3.1.10", + "readable-stream": "2.3.6" + } + } } }, "cliui": { @@ -22224,6 +21910,15 @@ "xregexp": "4.0.0" } }, + "define-property": { + "version": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "1.0.2", + "isobject": "3.0.1" + } + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -22233,10 +21928,33 @@ "cross-spawn": "6.0.5", "get-stream": "4.1.0", "is-stream": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "npm-run-path": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "p-finally": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", "signal-exit": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "strip-eof": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz" + "strip-eof": "1.0.0" + }, + "dependencies": { + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + } } }, "expand-brackets": { @@ -22296,7 +22014,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -22316,7 +22042,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -22335,12 +22069,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "posix-character-classes": { - "version": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true }, "regex-not": { @@ -22470,6 +22199,26 @@ } } }, + "extend-shallow": { + "version": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" + } + } + } + }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -22537,7 +22286,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -22557,7 +22314,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -22702,15 +22467,6 @@ "requires": { "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" } - }, - "to-regex-range": { - "version": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", - "dev": true, - "requires": { - "is-number": "3.0.0", - "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - } } } }, @@ -22723,6 +22479,14 @@ "locate-path": "3.0.0" } }, + "fragment-cache": { + "version": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "0.2.2" + } + }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -22750,11 +22514,6 @@ "requires": { "is-extglob": "2.1.1" } - }, - "path-dirname": { - "version": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", - "dev": true } } }, @@ -22776,7 +22535,15 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-data-descriptor": { @@ -22785,7 +22552,15 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-descriptor": { @@ -22796,7 +22571,15 @@ "requires": { "is-accessor-descriptor": "1.0.0", "is-data-descriptor": "1.0.0", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz" + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } } }, "is-extglob": { @@ -22835,7 +22618,15 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" + "is-buffer": "1.1.6" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + } } } } @@ -22856,228 +22647,53 @@ "dev": true, "requires": { "p-locate": "3.0.0", - "path-exists": "3.0.0" - } - }, - "mem": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", - "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", - "dev": true, - "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "p-is-promise": "2.0.0" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "extglob": "2.0.4", - "fragment-cache": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "nanomatch": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "object.pick": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "regex-not": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "snapdragon": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "to-regex": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" - } - }, - "extend-shallow": { - "version": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" - } - }, - "fragment-cache": { - "version": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", - "dev": true, - "requires": { - "map-cache": "0.2.2" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "3.2.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - } - } - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" - } - }, - "nanomatch": { - "version": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "fragment-cache": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "kind-of": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "object.pick": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "regex-not": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "snapdragon": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "to-regex": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - } - }, - "object.pick": { - "version": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", - "dev": true, - "requires": { - "isobject": "3.0.1" - } - }, - "regex-not": { - "version": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "safe-regex": "1.1.0" - } - }, - "snapdragon": { - "version": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "0.1.6" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "0.1.1" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "to-regex": { - "version": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "regex-not": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "safe-regex": "1.1.0" - } + "path-exists": "3.0.0" + } + }, + "mem": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.1.0.tgz", + "integrity": "sha512-I5u6Q1x7wxO0kdOpYBB28xueHADYps5uty/zg936CiG8NTe5sJL8EjrCuLneuDW3PlMdZBGDIn8BirEVdovZvg==", + "dev": true, + "requires": { + "map-age-cleaner": "0.1.3", + "mimic-fn": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "p-is-promise": "2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.2", + "define-property": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "extglob": "2.0.4", + "fragment-cache": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "kind-of": "6.0.2", + "nanomatch": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "object.pick": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "regex-not": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "snapdragon": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "to-regex": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -23087,12 +22703,46 @@ "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true }, + "nanomatch": { + "version": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "fragment-cache": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "is-windows": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "kind-of": "6.0.2", + "object.pick": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "regex-not": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "snapdragon": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "to-regex": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, + "object.pick": { + "version": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, "os-locale": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", @@ -23128,20 +22778,82 @@ "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, + "path-dirname": { + "version": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, + "posix-character-classes": { + "version": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", - "once": "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "end-of-stream": "1.4.1", + "once": "1.4.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "inherits": "2.0.4", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + } + } + }, + "regex-not": { + "version": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "safe-regex": "1.1.0" } }, "schema-utils": { @@ -23155,12 +22867,148 @@ "ajv-keywords": "3.4.0" } }, + "snapdragon": { + "version": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.2", + "use": "3.1.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "0.1.6" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "1.0.2" + } + } + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, + "split-string": { + "version": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" + } + }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", @@ -23182,6 +23030,15 @@ } } }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + } + }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -23189,6 +23046,33 @@ "dev": true, "requires": { "has-flag": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + }, + "dependencies": { + "has-flag": { + "version": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + } + } + }, + "to-regex": { + "version": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "extend-shallow": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "regex-not": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "safe-regex": "1.1.0" + } + }, + "to-regex-range": { + "version": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "repeat-string": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" } }, "webpack-dev-middleware": { @@ -23201,6 +23085,17 @@ "mime": "2.4.0", "range-parser": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "webpack-log": "2.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "requires": { + "errno": "0.1.7", + "readable-stream": "2.3.6" + } + } } }, "which-module": { @@ -23387,7 +23282,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "1.0.2", "strip-ansi": "3.0.1" @@ -23397,7 +23291,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -23406,7 +23299,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", diff --git a/tensorhive/app/web/dist/static/css/app.8a447daadd3b3ec522d2fb47fad1673a.css b/tensorhive/app/web/dist/static/css/app.8a447daadd3b3ec522d2fb47fad1673a.css new file mode 100644 index 00000000..484fb184 --- /dev/null +++ b/tensorhive/app/web/dist/static/css/app.8a447daadd3b3ec522d2fb47fad1673a.css @@ -0,0 +1,9 @@ +.version_info{margin-right:10px;margin-top:10px;font-size:20px;color:#fff}.user_chip,.version_info{position:absolute!important;right:0}.user_chip{margin-top:50px}.content-wrapper{min-height:100vh}.wrapper.fixed_layout .main-header{position:fixed;width:100%;z-index:-1}.wrapper.fixed_layout .content-wrapper{padding-top:50px}.wrapper.fixed_layout .main-sidebar{position:fixed;height:100vh}.user-panel .image img{border-radius:50%}#searchForm{padding-left:0;padding-right:0}#searchContainer{height:100%;padding-bottom:0}#search{width:80%;float:right}#search-btn{width:20%}.fa{font-size:18px}.sidebar-menu>li>a{padding:12px 15px}.sidebar-menu li.active>a>.fa-angle-left,.sidebar-menu li.active>a>.pull-right-container>.fa-angle-left{animation-name:rotate;animation-duration:.2s;animation-fill-mode:forwards}.treeview-title{z-index:1}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(-90deg)}}#login[data-v-78d7a2a0]{padding:10em}.input-group[data-v-78d7a2a0]{padding-bottom:2em;height:4em;width:100%}.input-group span.input-group-addon[data-v-78d7a2a0]{width:2em;height:4em}@media (max-width:1241px){.input-group input[data-v-78d7a2a0]{height:4em}}@media (min-width:1242px){form[data-v-78d7a2a0]{padding-left:20em;padding-right:20em}.input-group input[data-v-78d7a2a0]{height:6em}}.input-group-addon i[data-v-78d7a2a0]{height:15px;width:15px}#notFound{padding:10em;color:#fff}/*! + * FullCalendar v3.9.0 + * Docs & License: https://fullcalendar.io/ + * (c) 2018 Adam Shaw + */.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc button{box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;font-size:1em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-default{background-color:#f5f5f5;background-image:linear-gradient(180deg,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px hsla(0,0%,100%,.75);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;box-shadow:none}.fc-button-group{display:inline-block}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{cursor:pointer}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc-bg{bottom:0}.fc-bg table{height:100%}.fc table{width:100%;box-sizing:border-box;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}a[data-goto]{cursor:pointer}a[data-goto]:hover{text-decoration:underline}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc .fc-row .fc-content-skeleton table,.fc .fc-row .fc-content-skeleton td,.fc .fc-row .fc-helper-skeleton td{background:none;border-color:transparent}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{-webkit-overflow-scrolling:touch}.fc-scroller>.fc-day-grid,.fc-scroller>.fc-time-grid{position:relative;width:100%}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad}.fc-event,.fc-event-dot{background-color:#3a87ad}.fc-event,.fc-event:hover{color:#fff;text-decoration:none}.fc-event.fc-draggable,.fc-event[href]{cursor:pointer}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:4;display:none}.fc-event.fc-allow-mouse-resize .fc-resizer,.fc-event.fc-selected .fc-resizer{display:block}.fc-event.fc-selected .fc-resizer:before{content:"";position:absolute;z-index:9999;top:50%;left:50%;width:40px;height:40px;margin-left:-20px;margin-top:-20px}.fc-event.fc-selected{z-index:9999!important;box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event.fc-selected.fc-dragging{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-h-event.fc-selected:before{content:"";position:absolute;z-index:3;top:-10px;bottom:-10px;left:0;right:0}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-ltr .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-end-resizer{cursor:w-resize;left:-1px}.fc-ltr .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-start-resizer{cursor:e-resize;right:-1px}.fc-h-event.fc-allow-mouse-resize .fc-resizer{width:7px;top:-1px;bottom:-1px}.fc-h-event.fc-selected .fc-resizer{border-radius:4px;border-width:1px;width:6px;height:6px;border-style:solid;border-color:inherit;background:#fff;top:50%;margin-top:-4px}.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,.fc-rtl .fc-h-event.fc-selected .fc-end-resizer{margin-left:-4px}.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,.fc-rtl .fc-h-event.fc-selected .fc-start-resizer{margin-right:-4px}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}tr:first-child>td>.fc-day-grid-event{margin-top:2px}.fc-day-grid-event.fc-selected:after{content:"";position:absolute;z-index:1;top:-1px;right:-1px;bottom:-1px;left:-1px;background:#000;opacity:.25}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer{margin-left:-2px}.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer{margin-right:-2px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-now-indicator{position:absolute;border:0 solid red}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fc-unthemed .fc-content,.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-list-view,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-list-heading td,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666}.fc-unthemed td.fc-today{background:#fcf8e3}.fc-unthemed .fc-disabled-day{background:#d7d7d7;opacity:.3}.fc-icon{display:inline-block;height:1em;line-height:1em;font-size:1em;text-align:center;overflow:hidden;font-family:Courier New,Courier,monospace;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.fc-icon:after{position:relative}.fc-icon-left-single-arrow:after{content:"\2039";font-weight:700;font-size:200%;top:-7%}.fc-icon-right-single-arrow:after{content:"\203A";font-weight:700;font-size:200%;top:-7%}.fc-icon-left-double-arrow:after{content:"\AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\D7";font-size:200%;top:6%}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-popover .fc-header .fc-close{font-size:.9em;margin-top:2px}.fc-unthemed .fc-list-item:hover td{background-color:#f5f5f5}.ui-widget .fc-disabled-day{background-image:none}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.ui-widget .fc-event{color:#fff;text-decoration:none;font-weight:400}.ui-widget td.fc-axis{font-weight:400}.fc-time-grid .fc-slats .ui-widget-content{background:none}.fc.fc-bootstrap3 a{text-decoration:none}.fc.fc-bootstrap3 a[data-goto]:hover{text-decoration:underline}.fc-bootstrap3 hr.fc-divider{border-color:inherit}.fc-bootstrap3 .fc-today.alert{border-radius:0}.fc-bootstrap3 .fc-popover .panel-body{padding:0}.fc-bootstrap3 .fc-time-grid .fc-slats table{background:none}.fc.fc-bootstrap4 a{text-decoration:none}.fc.fc-bootstrap4 a[data-goto]:hover{text-decoration:underline}.fc-bootstrap4 hr.fc-divider{border-color:inherit}.fc-bootstrap4 .fc-today.alert{border-radius:0}.fc-bootstrap4 a.fc-event:not([href]):not([tabindex]){color:#fff}.fc-bootstrap4 .fc-popover.card{position:absolute}.fc-bootstrap4 .fc-popover .card-body{padding:0}.fc-bootstrap4 .fc-time-grid .fc-slats table{background:none}.fc-toolbar{text-align:center}.fc-toolbar.fc-header-toolbar{margin-bottom:1em}.fc-toolbar.fc-footer-toolbar{margin-top:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc-toolbar .fc-center{display:inline-block}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-day-top.fc-other-month{opacity:.3}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:2px}.fc-basic-view th.fc-day-number,.fc-basic-view th.fc-week-number{padding:0 2px}.fc-ltr .fc-basic-view .fc-day-top .fc-day-number{float:right}.fc-rtl .fc-basic-view .fc-day-top .fc-day-number{float:left}.fc-ltr .fc-basic-view .fc-day-top .fc-week-number{float:left;border-radius:0 0 3px 0}.fc-rtl .fc-basic-view .fc-day-top .fc-week-number{float:right;border-radius:0 0 0 3px}.fc-basic-view .fc-day-top .fc-week-number{min-width:1.5em;text-align:center;background-color:#f2f2f2;color:gray}.fc-basic-view td.fc-week-number{text-align:center}.fc-basic-view td.fc-week-number>*{display:inline-block;min-width:1.25em}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-content-col{position:relative}.fc-time-grid .fc-content-skeleton{position:absolute;z-index:3;top:0;left:0;right:0}.fc-time-grid .fc-business-container{position:relative;z-index:1}.fc-time-grid .fc-bgevent-container{position:relative;z-index:2}.fc-time-grid .fc-highlight-container{z-index:3}.fc-time-grid .fc-event-container{position:relative;z-index:4}.fc-time-grid .fc-now-indicator-line{z-index:5}.fc-time-grid .fc-helper-container{position:relative;z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-highlight-container{position:relative}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event{overflow:hidden}.fc-time-grid-event.fc-selected{overflow:visible}.fc-time-grid-event.fc-selected .fc-bg{display:none}.fc-time-grid-event .fc-content{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\A0-\A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after{content:"="}.fc-time-grid-event.fc-selected .fc-resizer{border-radius:5px;border-width:1px;width:8px;height:8px;border-style:solid;border-color:inherit;background:#fff;left:50%;margin-left:-5px;bottom:-5px}.fc-time-grid .fc-now-indicator-line{border-top-width:1px;left:0;right:0}.fc-time-grid .fc-now-indicator-arrow{margin-top:-5px}.fc-ltr .fc-time-grid .fc-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-rtl .fc-time-grid .fc-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}.fc-event-dot{display:inline-block;width:10px;height:10px;border-radius:5px}.fc-rtl .fc-list-view{direction:rtl}.fc-list-view{border-width:1px;border-style:solid}.fc .fc-list-table{table-layout:auto}.fc-list-table td{border-width:1px 0 0;padding:8px 14px}.fc-list-table tr:first-child td{border-top-width:0}.fc-list-heading{border-bottom-width:1px}.fc-list-heading td{font-weight:700}.fc-ltr .fc-list-heading-main{float:left}.fc-ltr .fc-list-heading-alt,.fc-rtl .fc-list-heading-main{float:right}.fc-rtl .fc-list-heading-alt{float:left}.fc-list-item.fc-has-url{cursor:pointer}.fc-list-item-marker,.fc-list-item-time{white-space:nowrap;width:1px}.fc-ltr .fc-list-item-marker{padding-right:0}.fc-rtl .fc-list-item-marker{padding-left:0}.fc-list-item-title a{text-decoration:none;color:inherit}.fc-list-item-title a[href]:hover{text-decoration:underline}.fc-list-empty-wrap2{position:absolute;top:0;left:0;right:0;bottom:0}.fc-list-empty-wrap1{width:100%;height:100%;display:table}.fc-list-empty{display:table-cell;vertical-align:middle;text-align:center}.fc-unthemed .fc-list-empty{background-color:#eee}.fc-event{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center}.float-right-button{float:right}.container{overflow:hidden}.container[data-v-3b70e2bc]{width:100%;max-width:100%;margin-left:0;white-space:nowrap;display:inline-block;position:relative}.range-select-container[data-v-3b70e2bc]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.date-input[data-v-3b70e2bc],.range-input[data-v-3b70e2bc]{max-width:150px}.selected[data-v-3b70e2bc]{background-color:#42b983}.small-button[data-v-3b70e2bc]{height:25px!important;width:25px!important}.left-table[data-v-3b70e2bc]{min-width:205px;overflow-x:scroll;display:inline-block}.right-table[data-v-3b70e2bc]{width:calc(100% - 205px);overflow-x:scroll;display:inline-block}.first-column[data-v-3b70e2bc]{min-width:200px;white-space:nowrap}.hours[data-v-3b70e2bc]{min-width:40px}.reserved[data-v-3b70e2bc]{background:#c64141}.userReservation[data-v-3b70e2bc]{background:#41c641}table[data-v-3b70e2bc]{border:0 solid #ddd;border-radius:3px;border-collapse:collapse;border-spacing:0}th[data-v-3b70e2bc]{background:#fafafa;min-width:960px}td[data-v-3b70e2bc],th[data-v-3b70e2bc]{border:1px solid #ddd;height:40px;max-height:40px;text-align:center;display:table-cell}td[data-v-3b70e2bc]{background:transparent;min-width:20px}.watch_table{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.watch_box{height:40vh;width:25vw;min-width:300px;margin-left:3vh}.select_line{display:-ms-flexbox;display:flex;-ms-flex-pack:left;justify-content:left;position:-webkit-sticky;position:sticky}.select_space{width:5%}.select_item{width:30%;position:-webkit-sticky;position:sticky}.chart_box,.table_box{width:100%;height:34vh;position:relative}.table_box{overflow-y:scroll}.parameter-name-input{max-width:150px}.task-command{background-color:#f8f9fa;border:1px solid #eaecf0}.space{width:5px}.task-select{max-width:100px}.parameter-name-input[data-v-1853547a]{max-width:150px}.space[data-v-b07ebe7c]{width:5px}.task-preview[data-v-b07ebe7c]{background-color:#f8f9fa;border:1px solid #eaecf0;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}.task-input[data-v-b07ebe7c],.task-select[data-v-b07ebe7c]{max-width:200px}.remove-button{max-width:25px;max-height:25px;min-width:25px;min-height:25px;margin-left:-25px}.task-input{max-width:200px}.host-input[data-v-23f3faef]{min-width:10vw!important;max-width:10vw!important}.command-input[data-v-23f3faef]{min-width:65vw!important;max-width:65vw!important}.log_box[data-v-4d909ec3]{resize:both;background-color:#f8f9fa;border:1px solid #eaecf0}.input-group[data-v-3f0582b0]{padding-bottom:2em;height:4em;width:100%}.input-group span.input-group-addon[data-v-3f0582b0]{width:2em;height:4em}@media (max-width:1241px){.input-group input[data-v-3f0582b0]{height:4em}}@media (min-width:1242px){form[data-v-3f0582b0]{padding-left:20em;padding-right:20em}.input-group input[data-v-3f0582b0]{height:6em}}.input-group-addon i[data-v-3f0582b0]{height:15px;width:15px}/*! +* Vuetify v1.5.5 +* Forged by John Leider +* Released under the MIT License. +*/@keyframes shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.black{background-color:#000!important;border-color:#000!important}.black--text{color:#000!important;caret-color:#000!important}.white{background-color:#fff!important;border-color:#fff!important}.white--text{color:#fff!important;caret-color:#fff!important}.transparent{background-color:transparent!important;border-color:transparent!important}.transparent--text{color:transparent!important;caret-color:transparent!important}.red{background-color:#f44336!important;border-color:#f44336!important}.red--text{color:#f44336!important;caret-color:#f44336!important}.red.lighten-5{background-color:#ffebee!important;border-color:#ffebee!important}.red--text.text--lighten-5{color:#ffebee!important;caret-color:#ffebee!important}.red.lighten-4{background-color:#ffcdd2!important;border-color:#ffcdd2!important}.red--text.text--lighten-4{color:#ffcdd2!important;caret-color:#ffcdd2!important}.red.lighten-3{background-color:#ef9a9a!important;border-color:#ef9a9a!important}.red--text.text--lighten-3{color:#ef9a9a!important;caret-color:#ef9a9a!important}.red.lighten-2{background-color:#e57373!important;border-color:#e57373!important}.red--text.text--lighten-2{color:#e57373!important;caret-color:#e57373!important}.red.lighten-1{background-color:#ef5350!important;border-color:#ef5350!important}.red--text.text--lighten-1{color:#ef5350!important;caret-color:#ef5350!important}.red.darken-1{background-color:#e53935!important;border-color:#e53935!important}.red--text.text--darken-1{color:#e53935!important;caret-color:#e53935!important}.red.darken-2{background-color:#d32f2f!important;border-color:#d32f2f!important}.red--text.text--darken-2{color:#d32f2f!important;caret-color:#d32f2f!important}.red.darken-3{background-color:#c62828!important;border-color:#c62828!important}.red--text.text--darken-3{color:#c62828!important;caret-color:#c62828!important}.red.darken-4{background-color:#b71c1c!important;border-color:#b71c1c!important}.red--text.text--darken-4{color:#b71c1c!important;caret-color:#b71c1c!important}.red.accent-1{background-color:#ff8a80!important;border-color:#ff8a80!important}.red--text.text--accent-1{color:#ff8a80!important;caret-color:#ff8a80!important}.red.accent-2{background-color:#ff5252!important;border-color:#ff5252!important}.red--text.text--accent-2{color:#ff5252!important;caret-color:#ff5252!important}.red.accent-3{background-color:#ff1744!important;border-color:#ff1744!important}.red--text.text--accent-3{color:#ff1744!important;caret-color:#ff1744!important}.red.accent-4{background-color:#d50000!important;border-color:#d50000!important}.red--text.text--accent-4{color:#d50000!important;caret-color:#d50000!important}.pink{background-color:#e91e63!important;border-color:#e91e63!important}.pink--text{color:#e91e63!important;caret-color:#e91e63!important}.pink.lighten-5{background-color:#fce4ec!important;border-color:#fce4ec!important}.pink--text.text--lighten-5{color:#fce4ec!important;caret-color:#fce4ec!important}.pink.lighten-4{background-color:#f8bbd0!important;border-color:#f8bbd0!important}.pink--text.text--lighten-4{color:#f8bbd0!important;caret-color:#f8bbd0!important}.pink.lighten-3{background-color:#f48fb1!important;border-color:#f48fb1!important}.pink--text.text--lighten-3{color:#f48fb1!important;caret-color:#f48fb1!important}.pink.lighten-2{background-color:#f06292!important;border-color:#f06292!important}.pink--text.text--lighten-2{color:#f06292!important;caret-color:#f06292!important}.pink.lighten-1{background-color:#ec407a!important;border-color:#ec407a!important}.pink--text.text--lighten-1{color:#ec407a!important;caret-color:#ec407a!important}.pink.darken-1{background-color:#d81b60!important;border-color:#d81b60!important}.pink--text.text--darken-1{color:#d81b60!important;caret-color:#d81b60!important}.pink.darken-2{background-color:#c2185b!important;border-color:#c2185b!important}.pink--text.text--darken-2{color:#c2185b!important;caret-color:#c2185b!important}.pink.darken-3{background-color:#ad1457!important;border-color:#ad1457!important}.pink--text.text--darken-3{color:#ad1457!important;caret-color:#ad1457!important}.pink.darken-4{background-color:#880e4f!important;border-color:#880e4f!important}.pink--text.text--darken-4{color:#880e4f!important;caret-color:#880e4f!important}.pink.accent-1{background-color:#ff80ab!important;border-color:#ff80ab!important}.pink--text.text--accent-1{color:#ff80ab!important;caret-color:#ff80ab!important}.pink.accent-2{background-color:#ff4081!important;border-color:#ff4081!important}.pink--text.text--accent-2{color:#ff4081!important;caret-color:#ff4081!important}.pink.accent-3{background-color:#f50057!important;border-color:#f50057!important}.pink--text.text--accent-3{color:#f50057!important;caret-color:#f50057!important}.pink.accent-4{background-color:#c51162!important;border-color:#c51162!important}.pink--text.text--accent-4{color:#c51162!important;caret-color:#c51162!important}.purple{background-color:#9c27b0!important;border-color:#9c27b0!important}.purple--text{color:#9c27b0!important;caret-color:#9c27b0!important}.purple.lighten-5{background-color:#f3e5f5!important;border-color:#f3e5f5!important}.purple--text.text--lighten-5{color:#f3e5f5!important;caret-color:#f3e5f5!important}.purple.lighten-4{background-color:#e1bee7!important;border-color:#e1bee7!important}.purple--text.text--lighten-4{color:#e1bee7!important;caret-color:#e1bee7!important}.purple.lighten-3{background-color:#ce93d8!important;border-color:#ce93d8!important}.purple--text.text--lighten-3{color:#ce93d8!important;caret-color:#ce93d8!important}.purple.lighten-2{background-color:#ba68c8!important;border-color:#ba68c8!important}.purple--text.text--lighten-2{color:#ba68c8!important;caret-color:#ba68c8!important}.purple.lighten-1{background-color:#ab47bc!important;border-color:#ab47bc!important}.purple--text.text--lighten-1{color:#ab47bc!important;caret-color:#ab47bc!important}.purple.darken-1{background-color:#8e24aa!important;border-color:#8e24aa!important}.purple--text.text--darken-1{color:#8e24aa!important;caret-color:#8e24aa!important}.purple.darken-2{background-color:#7b1fa2!important;border-color:#7b1fa2!important}.purple--text.text--darken-2{color:#7b1fa2!important;caret-color:#7b1fa2!important}.purple.darken-3{background-color:#6a1b9a!important;border-color:#6a1b9a!important}.purple--text.text--darken-3{color:#6a1b9a!important;caret-color:#6a1b9a!important}.purple.darken-4{background-color:#4a148c!important;border-color:#4a148c!important}.purple--text.text--darken-4{color:#4a148c!important;caret-color:#4a148c!important}.purple.accent-1{background-color:#ea80fc!important;border-color:#ea80fc!important}.purple--text.text--accent-1{color:#ea80fc!important;caret-color:#ea80fc!important}.purple.accent-2{background-color:#e040fb!important;border-color:#e040fb!important}.purple--text.text--accent-2{color:#e040fb!important;caret-color:#e040fb!important}.purple.accent-3{background-color:#d500f9!important;border-color:#d500f9!important}.purple--text.text--accent-3{color:#d500f9!important;caret-color:#d500f9!important}.purple.accent-4{background-color:#a0f!important;border-color:#a0f!important}.purple--text.text--accent-4{color:#a0f!important;caret-color:#a0f!important}.deep-purple{background-color:#673ab7!important;border-color:#673ab7!important}.deep-purple--text{color:#673ab7!important;caret-color:#673ab7!important}.deep-purple.lighten-5{background-color:#ede7f6!important;border-color:#ede7f6!important}.deep-purple--text.text--lighten-5{color:#ede7f6!important;caret-color:#ede7f6!important}.deep-purple.lighten-4{background-color:#d1c4e9!important;border-color:#d1c4e9!important}.deep-purple--text.text--lighten-4{color:#d1c4e9!important;caret-color:#d1c4e9!important}.deep-purple.lighten-3{background-color:#b39ddb!important;border-color:#b39ddb!important}.deep-purple--text.text--lighten-3{color:#b39ddb!important;caret-color:#b39ddb!important}.deep-purple.lighten-2{background-color:#9575cd!important;border-color:#9575cd!important}.deep-purple--text.text--lighten-2{color:#9575cd!important;caret-color:#9575cd!important}.deep-purple.lighten-1{background-color:#7e57c2!important;border-color:#7e57c2!important}.deep-purple--text.text--lighten-1{color:#7e57c2!important;caret-color:#7e57c2!important}.deep-purple.darken-1{background-color:#5e35b1!important;border-color:#5e35b1!important}.deep-purple--text.text--darken-1{color:#5e35b1!important;caret-color:#5e35b1!important}.deep-purple.darken-2{background-color:#512da8!important;border-color:#512da8!important}.deep-purple--text.text--darken-2{color:#512da8!important;caret-color:#512da8!important}.deep-purple.darken-3{background-color:#4527a0!important;border-color:#4527a0!important}.deep-purple--text.text--darken-3{color:#4527a0!important;caret-color:#4527a0!important}.deep-purple.darken-4{background-color:#311b92!important;border-color:#311b92!important}.deep-purple--text.text--darken-4{color:#311b92!important;caret-color:#311b92!important}.deep-purple.accent-1{background-color:#b388ff!important;border-color:#b388ff!important}.deep-purple--text.text--accent-1{color:#b388ff!important;caret-color:#b388ff!important}.deep-purple.accent-2{background-color:#7c4dff!important;border-color:#7c4dff!important}.deep-purple--text.text--accent-2{color:#7c4dff!important;caret-color:#7c4dff!important}.deep-purple.accent-3{background-color:#651fff!important;border-color:#651fff!important}.deep-purple--text.text--accent-3{color:#651fff!important;caret-color:#651fff!important}.deep-purple.accent-4{background-color:#6200ea!important;border-color:#6200ea!important}.deep-purple--text.text--accent-4{color:#6200ea!important;caret-color:#6200ea!important}.indigo{background-color:#3f51b5!important;border-color:#3f51b5!important}.indigo--text{color:#3f51b5!important;caret-color:#3f51b5!important}.indigo.lighten-5{background-color:#e8eaf6!important;border-color:#e8eaf6!important}.indigo--text.text--lighten-5{color:#e8eaf6!important;caret-color:#e8eaf6!important}.indigo.lighten-4{background-color:#c5cae9!important;border-color:#c5cae9!important}.indigo--text.text--lighten-4{color:#c5cae9!important;caret-color:#c5cae9!important}.indigo.lighten-3{background-color:#9fa8da!important;border-color:#9fa8da!important}.indigo--text.text--lighten-3{color:#9fa8da!important;caret-color:#9fa8da!important}.indigo.lighten-2{background-color:#7986cb!important;border-color:#7986cb!important}.indigo--text.text--lighten-2{color:#7986cb!important;caret-color:#7986cb!important}.indigo.lighten-1{background-color:#5c6bc0!important;border-color:#5c6bc0!important}.indigo--text.text--lighten-1{color:#5c6bc0!important;caret-color:#5c6bc0!important}.indigo.darken-1{background-color:#3949ab!important;border-color:#3949ab!important}.indigo--text.text--darken-1{color:#3949ab!important;caret-color:#3949ab!important}.indigo.darken-2{background-color:#303f9f!important;border-color:#303f9f!important}.indigo--text.text--darken-2{color:#303f9f!important;caret-color:#303f9f!important}.indigo.darken-3{background-color:#283593!important;border-color:#283593!important}.indigo--text.text--darken-3{color:#283593!important;caret-color:#283593!important}.indigo.darken-4{background-color:#1a237e!important;border-color:#1a237e!important}.indigo--text.text--darken-4{color:#1a237e!important;caret-color:#1a237e!important}.indigo.accent-1{background-color:#8c9eff!important;border-color:#8c9eff!important}.indigo--text.text--accent-1{color:#8c9eff!important;caret-color:#8c9eff!important}.indigo.accent-2{background-color:#536dfe!important;border-color:#536dfe!important}.indigo--text.text--accent-2{color:#536dfe!important;caret-color:#536dfe!important}.indigo.accent-3{background-color:#3d5afe!important;border-color:#3d5afe!important}.indigo--text.text--accent-3{color:#3d5afe!important;caret-color:#3d5afe!important}.indigo.accent-4{background-color:#304ffe!important;border-color:#304ffe!important}.indigo--text.text--accent-4{color:#304ffe!important;caret-color:#304ffe!important}.blue{background-color:#2196f3!important;border-color:#2196f3!important}.blue--text{color:#2196f3!important;caret-color:#2196f3!important}.blue.lighten-5{background-color:#e3f2fd!important;border-color:#e3f2fd!important}.blue--text.text--lighten-5{color:#e3f2fd!important;caret-color:#e3f2fd!important}.blue.lighten-4{background-color:#bbdefb!important;border-color:#bbdefb!important}.blue--text.text--lighten-4{color:#bbdefb!important;caret-color:#bbdefb!important}.blue.lighten-3{background-color:#90caf9!important;border-color:#90caf9!important}.blue--text.text--lighten-3{color:#90caf9!important;caret-color:#90caf9!important}.blue.lighten-2{background-color:#64b5f6!important;border-color:#64b5f6!important}.blue--text.text--lighten-2{color:#64b5f6!important;caret-color:#64b5f6!important}.blue.lighten-1{background-color:#42a5f5!important;border-color:#42a5f5!important}.blue--text.text--lighten-1{color:#42a5f5!important;caret-color:#42a5f5!important}.blue.darken-1{background-color:#1e88e5!important;border-color:#1e88e5!important}.blue--text.text--darken-1{color:#1e88e5!important;caret-color:#1e88e5!important}.blue.darken-2{background-color:#1976d2!important;border-color:#1976d2!important}.blue--text.text--darken-2{color:#1976d2!important;caret-color:#1976d2!important}.blue.darken-3{background-color:#1565c0!important;border-color:#1565c0!important}.blue--text.text--darken-3{color:#1565c0!important;caret-color:#1565c0!important}.blue.darken-4{background-color:#0d47a1!important;border-color:#0d47a1!important}.blue--text.text--darken-4{color:#0d47a1!important;caret-color:#0d47a1!important}.blue.accent-1{background-color:#82b1ff!important;border-color:#82b1ff!important}.blue--text.text--accent-1{color:#82b1ff!important;caret-color:#82b1ff!important}.blue.accent-2{background-color:#448aff!important;border-color:#448aff!important}.blue--text.text--accent-2{color:#448aff!important;caret-color:#448aff!important}.blue.accent-3{background-color:#2979ff!important;border-color:#2979ff!important}.blue--text.text--accent-3{color:#2979ff!important;caret-color:#2979ff!important}.blue.accent-4{background-color:#2962ff!important;border-color:#2962ff!important}.blue--text.text--accent-4{color:#2962ff!important;caret-color:#2962ff!important}.light-blue{background-color:#03a9f4!important;border-color:#03a9f4!important}.light-blue--text{color:#03a9f4!important;caret-color:#03a9f4!important}.light-blue.lighten-5{background-color:#e1f5fe!important;border-color:#e1f5fe!important}.light-blue--text.text--lighten-5{color:#e1f5fe!important;caret-color:#e1f5fe!important}.light-blue.lighten-4{background-color:#b3e5fc!important;border-color:#b3e5fc!important}.light-blue--text.text--lighten-4{color:#b3e5fc!important;caret-color:#b3e5fc!important}.light-blue.lighten-3{background-color:#81d4fa!important;border-color:#81d4fa!important}.light-blue--text.text--lighten-3{color:#81d4fa!important;caret-color:#81d4fa!important}.light-blue.lighten-2{background-color:#4fc3f7!important;border-color:#4fc3f7!important}.light-blue--text.text--lighten-2{color:#4fc3f7!important;caret-color:#4fc3f7!important}.light-blue.lighten-1{background-color:#29b6f6!important;border-color:#29b6f6!important}.light-blue--text.text--lighten-1{color:#29b6f6!important;caret-color:#29b6f6!important}.light-blue.darken-1{background-color:#039be5!important;border-color:#039be5!important}.light-blue--text.text--darken-1{color:#039be5!important;caret-color:#039be5!important}.light-blue.darken-2{background-color:#0288d1!important;border-color:#0288d1!important}.light-blue--text.text--darken-2{color:#0288d1!important;caret-color:#0288d1!important}.light-blue.darken-3{background-color:#0277bd!important;border-color:#0277bd!important}.light-blue--text.text--darken-3{color:#0277bd!important;caret-color:#0277bd!important}.light-blue.darken-4{background-color:#01579b!important;border-color:#01579b!important}.light-blue--text.text--darken-4{color:#01579b!important;caret-color:#01579b!important}.light-blue.accent-1{background-color:#80d8ff!important;border-color:#80d8ff!important}.light-blue--text.text--accent-1{color:#80d8ff!important;caret-color:#80d8ff!important}.light-blue.accent-2{background-color:#40c4ff!important;border-color:#40c4ff!important}.light-blue--text.text--accent-2{color:#40c4ff!important;caret-color:#40c4ff!important}.light-blue.accent-3{background-color:#00b0ff!important;border-color:#00b0ff!important}.light-blue--text.text--accent-3{color:#00b0ff!important;caret-color:#00b0ff!important}.light-blue.accent-4{background-color:#0091ea!important;border-color:#0091ea!important}.light-blue--text.text--accent-4{color:#0091ea!important;caret-color:#0091ea!important}.cyan{background-color:#00bcd4!important;border-color:#00bcd4!important}.cyan--text{color:#00bcd4!important;caret-color:#00bcd4!important}.cyan.lighten-5{background-color:#e0f7fa!important;border-color:#e0f7fa!important}.cyan--text.text--lighten-5{color:#e0f7fa!important;caret-color:#e0f7fa!important}.cyan.lighten-4{background-color:#b2ebf2!important;border-color:#b2ebf2!important}.cyan--text.text--lighten-4{color:#b2ebf2!important;caret-color:#b2ebf2!important}.cyan.lighten-3{background-color:#80deea!important;border-color:#80deea!important}.cyan--text.text--lighten-3{color:#80deea!important;caret-color:#80deea!important}.cyan.lighten-2{background-color:#4dd0e1!important;border-color:#4dd0e1!important}.cyan--text.text--lighten-2{color:#4dd0e1!important;caret-color:#4dd0e1!important}.cyan.lighten-1{background-color:#26c6da!important;border-color:#26c6da!important}.cyan--text.text--lighten-1{color:#26c6da!important;caret-color:#26c6da!important}.cyan.darken-1{background-color:#00acc1!important;border-color:#00acc1!important}.cyan--text.text--darken-1{color:#00acc1!important;caret-color:#00acc1!important}.cyan.darken-2{background-color:#0097a7!important;border-color:#0097a7!important}.cyan--text.text--darken-2{color:#0097a7!important;caret-color:#0097a7!important}.cyan.darken-3{background-color:#00838f!important;border-color:#00838f!important}.cyan--text.text--darken-3{color:#00838f!important;caret-color:#00838f!important}.cyan.darken-4{background-color:#006064!important;border-color:#006064!important}.cyan--text.text--darken-4{color:#006064!important;caret-color:#006064!important}.cyan.accent-1{background-color:#84ffff!important;border-color:#84ffff!important}.cyan--text.text--accent-1{color:#84ffff!important;caret-color:#84ffff!important}.cyan.accent-2{background-color:#18ffff!important;border-color:#18ffff!important}.cyan--text.text--accent-2{color:#18ffff!important;caret-color:#18ffff!important}.cyan.accent-3{background-color:#00e5ff!important;border-color:#00e5ff!important}.cyan--text.text--accent-3{color:#00e5ff!important;caret-color:#00e5ff!important}.cyan.accent-4{background-color:#00b8d4!important;border-color:#00b8d4!important}.cyan--text.text--accent-4{color:#00b8d4!important;caret-color:#00b8d4!important}.teal{background-color:#009688!important;border-color:#009688!important}.teal--text{color:#009688!important;caret-color:#009688!important}.teal.lighten-5{background-color:#e0f2f1!important;border-color:#e0f2f1!important}.teal--text.text--lighten-5{color:#e0f2f1!important;caret-color:#e0f2f1!important}.teal.lighten-4{background-color:#b2dfdb!important;border-color:#b2dfdb!important}.teal--text.text--lighten-4{color:#b2dfdb!important;caret-color:#b2dfdb!important}.teal.lighten-3{background-color:#80cbc4!important;border-color:#80cbc4!important}.teal--text.text--lighten-3{color:#80cbc4!important;caret-color:#80cbc4!important}.teal.lighten-2{background-color:#4db6ac!important;border-color:#4db6ac!important}.teal--text.text--lighten-2{color:#4db6ac!important;caret-color:#4db6ac!important}.teal.lighten-1{background-color:#26a69a!important;border-color:#26a69a!important}.teal--text.text--lighten-1{color:#26a69a!important;caret-color:#26a69a!important}.teal.darken-1{background-color:#00897b!important;border-color:#00897b!important}.teal--text.text--darken-1{color:#00897b!important;caret-color:#00897b!important}.teal.darken-2{background-color:#00796b!important;border-color:#00796b!important}.teal--text.text--darken-2{color:#00796b!important;caret-color:#00796b!important}.teal.darken-3{background-color:#00695c!important;border-color:#00695c!important}.teal--text.text--darken-3{color:#00695c!important;caret-color:#00695c!important}.teal.darken-4{background-color:#004d40!important;border-color:#004d40!important}.teal--text.text--darken-4{color:#004d40!important;caret-color:#004d40!important}.teal.accent-1{background-color:#a7ffeb!important;border-color:#a7ffeb!important}.teal--text.text--accent-1{color:#a7ffeb!important;caret-color:#a7ffeb!important}.teal.accent-2{background-color:#64ffda!important;border-color:#64ffda!important}.teal--text.text--accent-2{color:#64ffda!important;caret-color:#64ffda!important}.teal.accent-3{background-color:#1de9b6!important;border-color:#1de9b6!important}.teal--text.text--accent-3{color:#1de9b6!important;caret-color:#1de9b6!important}.teal.accent-4{background-color:#00bfa5!important;border-color:#00bfa5!important}.teal--text.text--accent-4{color:#00bfa5!important;caret-color:#00bfa5!important}.green{background-color:#4caf50!important;border-color:#4caf50!important}.green--text{color:#4caf50!important;caret-color:#4caf50!important}.green.lighten-5{background-color:#e8f5e9!important;border-color:#e8f5e9!important}.green--text.text--lighten-5{color:#e8f5e9!important;caret-color:#e8f5e9!important}.green.lighten-4{background-color:#c8e6c9!important;border-color:#c8e6c9!important}.green--text.text--lighten-4{color:#c8e6c9!important;caret-color:#c8e6c9!important}.green.lighten-3{background-color:#a5d6a7!important;border-color:#a5d6a7!important}.green--text.text--lighten-3{color:#a5d6a7!important;caret-color:#a5d6a7!important}.green.lighten-2{background-color:#81c784!important;border-color:#81c784!important}.green--text.text--lighten-2{color:#81c784!important;caret-color:#81c784!important}.green.lighten-1{background-color:#66bb6a!important;border-color:#66bb6a!important}.green--text.text--lighten-1{color:#66bb6a!important;caret-color:#66bb6a!important}.green.darken-1{background-color:#43a047!important;border-color:#43a047!important}.green--text.text--darken-1{color:#43a047!important;caret-color:#43a047!important}.green.darken-2{background-color:#388e3c!important;border-color:#388e3c!important}.green--text.text--darken-2{color:#388e3c!important;caret-color:#388e3c!important}.green.darken-3{background-color:#2e7d32!important;border-color:#2e7d32!important}.green--text.text--darken-3{color:#2e7d32!important;caret-color:#2e7d32!important}.green.darken-4{background-color:#1b5e20!important;border-color:#1b5e20!important}.green--text.text--darken-4{color:#1b5e20!important;caret-color:#1b5e20!important}.green.accent-1{background-color:#b9f6ca!important;border-color:#b9f6ca!important}.green--text.text--accent-1{color:#b9f6ca!important;caret-color:#b9f6ca!important}.green.accent-2{background-color:#69f0ae!important;border-color:#69f0ae!important}.green--text.text--accent-2{color:#69f0ae!important;caret-color:#69f0ae!important}.green.accent-3{background-color:#00e676!important;border-color:#00e676!important}.green--text.text--accent-3{color:#00e676!important;caret-color:#00e676!important}.green.accent-4{background-color:#00c853!important;border-color:#00c853!important}.green--text.text--accent-4{color:#00c853!important;caret-color:#00c853!important}.light-green{background-color:#8bc34a!important;border-color:#8bc34a!important}.light-green--text{color:#8bc34a!important;caret-color:#8bc34a!important}.light-green.lighten-5{background-color:#f1f8e9!important;border-color:#f1f8e9!important}.light-green--text.text--lighten-5{color:#f1f8e9!important;caret-color:#f1f8e9!important}.light-green.lighten-4{background-color:#dcedc8!important;border-color:#dcedc8!important}.light-green--text.text--lighten-4{color:#dcedc8!important;caret-color:#dcedc8!important}.light-green.lighten-3{background-color:#c5e1a5!important;border-color:#c5e1a5!important}.light-green--text.text--lighten-3{color:#c5e1a5!important;caret-color:#c5e1a5!important}.light-green.lighten-2{background-color:#aed581!important;border-color:#aed581!important}.light-green--text.text--lighten-2{color:#aed581!important;caret-color:#aed581!important}.light-green.lighten-1{background-color:#9ccc65!important;border-color:#9ccc65!important}.light-green--text.text--lighten-1{color:#9ccc65!important;caret-color:#9ccc65!important}.light-green.darken-1{background-color:#7cb342!important;border-color:#7cb342!important}.light-green--text.text--darken-1{color:#7cb342!important;caret-color:#7cb342!important}.light-green.darken-2{background-color:#689f38!important;border-color:#689f38!important}.light-green--text.text--darken-2{color:#689f38!important;caret-color:#689f38!important}.light-green.darken-3{background-color:#558b2f!important;border-color:#558b2f!important}.light-green--text.text--darken-3{color:#558b2f!important;caret-color:#558b2f!important}.light-green.darken-4{background-color:#33691e!important;border-color:#33691e!important}.light-green--text.text--darken-4{color:#33691e!important;caret-color:#33691e!important}.light-green.accent-1{background-color:#ccff90!important;border-color:#ccff90!important}.light-green--text.text--accent-1{color:#ccff90!important;caret-color:#ccff90!important}.light-green.accent-2{background-color:#b2ff59!important;border-color:#b2ff59!important}.light-green--text.text--accent-2{color:#b2ff59!important;caret-color:#b2ff59!important}.light-green.accent-3{background-color:#76ff03!important;border-color:#76ff03!important}.light-green--text.text--accent-3{color:#76ff03!important;caret-color:#76ff03!important}.light-green.accent-4{background-color:#64dd17!important;border-color:#64dd17!important}.light-green--text.text--accent-4{color:#64dd17!important;caret-color:#64dd17!important}.lime{background-color:#cddc39!important;border-color:#cddc39!important}.lime--text{color:#cddc39!important;caret-color:#cddc39!important}.lime.lighten-5{background-color:#f9fbe7!important;border-color:#f9fbe7!important}.lime--text.text--lighten-5{color:#f9fbe7!important;caret-color:#f9fbe7!important}.lime.lighten-4{background-color:#f0f4c3!important;border-color:#f0f4c3!important}.lime--text.text--lighten-4{color:#f0f4c3!important;caret-color:#f0f4c3!important}.lime.lighten-3{background-color:#e6ee9c!important;border-color:#e6ee9c!important}.lime--text.text--lighten-3{color:#e6ee9c!important;caret-color:#e6ee9c!important}.lime.lighten-2{background-color:#dce775!important;border-color:#dce775!important}.lime--text.text--lighten-2{color:#dce775!important;caret-color:#dce775!important}.lime.lighten-1{background-color:#d4e157!important;border-color:#d4e157!important}.lime--text.text--lighten-1{color:#d4e157!important;caret-color:#d4e157!important}.lime.darken-1{background-color:#c0ca33!important;border-color:#c0ca33!important}.lime--text.text--darken-1{color:#c0ca33!important;caret-color:#c0ca33!important}.lime.darken-2{background-color:#afb42b!important;border-color:#afb42b!important}.lime--text.text--darken-2{color:#afb42b!important;caret-color:#afb42b!important}.lime.darken-3{background-color:#9e9d24!important;border-color:#9e9d24!important}.lime--text.text--darken-3{color:#9e9d24!important;caret-color:#9e9d24!important}.lime.darken-4{background-color:#827717!important;border-color:#827717!important}.lime--text.text--darken-4{color:#827717!important;caret-color:#827717!important}.lime.accent-1{background-color:#f4ff81!important;border-color:#f4ff81!important}.lime--text.text--accent-1{color:#f4ff81!important;caret-color:#f4ff81!important}.lime.accent-2{background-color:#eeff41!important;border-color:#eeff41!important}.lime--text.text--accent-2{color:#eeff41!important;caret-color:#eeff41!important}.lime.accent-3{background-color:#c6ff00!important;border-color:#c6ff00!important}.lime--text.text--accent-3{color:#c6ff00!important;caret-color:#c6ff00!important}.lime.accent-4{background-color:#aeea00!important;border-color:#aeea00!important}.lime--text.text--accent-4{color:#aeea00!important;caret-color:#aeea00!important}.yellow{background-color:#ffeb3b!important;border-color:#ffeb3b!important}.yellow--text{color:#ffeb3b!important;caret-color:#ffeb3b!important}.yellow.lighten-5{background-color:#fffde7!important;border-color:#fffde7!important}.yellow--text.text--lighten-5{color:#fffde7!important;caret-color:#fffde7!important}.yellow.lighten-4{background-color:#fff9c4!important;border-color:#fff9c4!important}.yellow--text.text--lighten-4{color:#fff9c4!important;caret-color:#fff9c4!important}.yellow.lighten-3{background-color:#fff59d!important;border-color:#fff59d!important}.yellow--text.text--lighten-3{color:#fff59d!important;caret-color:#fff59d!important}.yellow.lighten-2{background-color:#fff176!important;border-color:#fff176!important}.yellow--text.text--lighten-2{color:#fff176!important;caret-color:#fff176!important}.yellow.lighten-1{background-color:#ffee58!important;border-color:#ffee58!important}.yellow--text.text--lighten-1{color:#ffee58!important;caret-color:#ffee58!important}.yellow.darken-1{background-color:#fdd835!important;border-color:#fdd835!important}.yellow--text.text--darken-1{color:#fdd835!important;caret-color:#fdd835!important}.yellow.darken-2{background-color:#fbc02d!important;border-color:#fbc02d!important}.yellow--text.text--darken-2{color:#fbc02d!important;caret-color:#fbc02d!important}.yellow.darken-3{background-color:#f9a825!important;border-color:#f9a825!important}.yellow--text.text--darken-3{color:#f9a825!important;caret-color:#f9a825!important}.yellow.darken-4{background-color:#f57f17!important;border-color:#f57f17!important}.yellow--text.text--darken-4{color:#f57f17!important;caret-color:#f57f17!important}.yellow.accent-1{background-color:#ffff8d!important;border-color:#ffff8d!important}.yellow--text.text--accent-1{color:#ffff8d!important;caret-color:#ffff8d!important}.yellow.accent-2{background-color:#ff0!important;border-color:#ff0!important}.yellow--text.text--accent-2{color:#ff0!important;caret-color:#ff0!important}.yellow.accent-3{background-color:#ffea00!important;border-color:#ffea00!important}.yellow--text.text--accent-3{color:#ffea00!important;caret-color:#ffea00!important}.yellow.accent-4{background-color:#ffd600!important;border-color:#ffd600!important}.yellow--text.text--accent-4{color:#ffd600!important;caret-color:#ffd600!important}.amber{background-color:#ffc107!important;border-color:#ffc107!important}.amber--text{color:#ffc107!important;caret-color:#ffc107!important}.amber.lighten-5{background-color:#fff8e1!important;border-color:#fff8e1!important}.amber--text.text--lighten-5{color:#fff8e1!important;caret-color:#fff8e1!important}.amber.lighten-4{background-color:#ffecb3!important;border-color:#ffecb3!important}.amber--text.text--lighten-4{color:#ffecb3!important;caret-color:#ffecb3!important}.amber.lighten-3{background-color:#ffe082!important;border-color:#ffe082!important}.amber--text.text--lighten-3{color:#ffe082!important;caret-color:#ffe082!important}.amber.lighten-2{background-color:#ffd54f!important;border-color:#ffd54f!important}.amber--text.text--lighten-2{color:#ffd54f!important;caret-color:#ffd54f!important}.amber.lighten-1{background-color:#ffca28!important;border-color:#ffca28!important}.amber--text.text--lighten-1{color:#ffca28!important;caret-color:#ffca28!important}.amber.darken-1{background-color:#ffb300!important;border-color:#ffb300!important}.amber--text.text--darken-1{color:#ffb300!important;caret-color:#ffb300!important}.amber.darken-2{background-color:#ffa000!important;border-color:#ffa000!important}.amber--text.text--darken-2{color:#ffa000!important;caret-color:#ffa000!important}.amber.darken-3{background-color:#ff8f00!important;border-color:#ff8f00!important}.amber--text.text--darken-3{color:#ff8f00!important;caret-color:#ff8f00!important}.amber.darken-4{background-color:#ff6f00!important;border-color:#ff6f00!important}.amber--text.text--darken-4{color:#ff6f00!important;caret-color:#ff6f00!important}.amber.accent-1{background-color:#ffe57f!important;border-color:#ffe57f!important}.amber--text.text--accent-1{color:#ffe57f!important;caret-color:#ffe57f!important}.amber.accent-2{background-color:#ffd740!important;border-color:#ffd740!important}.amber--text.text--accent-2{color:#ffd740!important;caret-color:#ffd740!important}.amber.accent-3{background-color:#ffc400!important;border-color:#ffc400!important}.amber--text.text--accent-3{color:#ffc400!important;caret-color:#ffc400!important}.amber.accent-4{background-color:#ffab00!important;border-color:#ffab00!important}.amber--text.text--accent-4{color:#ffab00!important;caret-color:#ffab00!important}.orange{background-color:#ff9800!important;border-color:#ff9800!important}.orange--text{color:#ff9800!important;caret-color:#ff9800!important}.orange.lighten-5{background-color:#fff3e0!important;border-color:#fff3e0!important}.orange--text.text--lighten-5{color:#fff3e0!important;caret-color:#fff3e0!important}.orange.lighten-4{background-color:#ffe0b2!important;border-color:#ffe0b2!important}.orange--text.text--lighten-4{color:#ffe0b2!important;caret-color:#ffe0b2!important}.orange.lighten-3{background-color:#ffcc80!important;border-color:#ffcc80!important}.orange--text.text--lighten-3{color:#ffcc80!important;caret-color:#ffcc80!important}.orange.lighten-2{background-color:#ffb74d!important;border-color:#ffb74d!important}.orange--text.text--lighten-2{color:#ffb74d!important;caret-color:#ffb74d!important}.orange.lighten-1{background-color:#ffa726!important;border-color:#ffa726!important}.orange--text.text--lighten-1{color:#ffa726!important;caret-color:#ffa726!important}.orange.darken-1{background-color:#fb8c00!important;border-color:#fb8c00!important}.orange--text.text--darken-1{color:#fb8c00!important;caret-color:#fb8c00!important}.orange.darken-2{background-color:#f57c00!important;border-color:#f57c00!important}.orange--text.text--darken-2{color:#f57c00!important;caret-color:#f57c00!important}.orange.darken-3{background-color:#ef6c00!important;border-color:#ef6c00!important}.orange--text.text--darken-3{color:#ef6c00!important;caret-color:#ef6c00!important}.orange.darken-4{background-color:#e65100!important;border-color:#e65100!important}.orange--text.text--darken-4{color:#e65100!important;caret-color:#e65100!important}.orange.accent-1{background-color:#ffd180!important;border-color:#ffd180!important}.orange--text.text--accent-1{color:#ffd180!important;caret-color:#ffd180!important}.orange.accent-2{background-color:#ffab40!important;border-color:#ffab40!important}.orange--text.text--accent-2{color:#ffab40!important;caret-color:#ffab40!important}.orange.accent-3{background-color:#ff9100!important;border-color:#ff9100!important}.orange--text.text--accent-3{color:#ff9100!important;caret-color:#ff9100!important}.orange.accent-4{background-color:#ff6d00!important;border-color:#ff6d00!important}.orange--text.text--accent-4{color:#ff6d00!important;caret-color:#ff6d00!important}.deep-orange{background-color:#ff5722!important;border-color:#ff5722!important}.deep-orange--text{color:#ff5722!important;caret-color:#ff5722!important}.deep-orange.lighten-5{background-color:#fbe9e7!important;border-color:#fbe9e7!important}.deep-orange--text.text--lighten-5{color:#fbe9e7!important;caret-color:#fbe9e7!important}.deep-orange.lighten-4{background-color:#ffccbc!important;border-color:#ffccbc!important}.deep-orange--text.text--lighten-4{color:#ffccbc!important;caret-color:#ffccbc!important}.deep-orange.lighten-3{background-color:#ffab91!important;border-color:#ffab91!important}.deep-orange--text.text--lighten-3{color:#ffab91!important;caret-color:#ffab91!important}.deep-orange.lighten-2{background-color:#ff8a65!important;border-color:#ff8a65!important}.deep-orange--text.text--lighten-2{color:#ff8a65!important;caret-color:#ff8a65!important}.deep-orange.lighten-1{background-color:#ff7043!important;border-color:#ff7043!important}.deep-orange--text.text--lighten-1{color:#ff7043!important;caret-color:#ff7043!important}.deep-orange.darken-1{background-color:#f4511e!important;border-color:#f4511e!important}.deep-orange--text.text--darken-1{color:#f4511e!important;caret-color:#f4511e!important}.deep-orange.darken-2{background-color:#e64a19!important;border-color:#e64a19!important}.deep-orange--text.text--darken-2{color:#e64a19!important;caret-color:#e64a19!important}.deep-orange.darken-3{background-color:#d84315!important;border-color:#d84315!important}.deep-orange--text.text--darken-3{color:#d84315!important;caret-color:#d84315!important}.deep-orange.darken-4{background-color:#bf360c!important;border-color:#bf360c!important}.deep-orange--text.text--darken-4{color:#bf360c!important;caret-color:#bf360c!important}.deep-orange.accent-1{background-color:#ff9e80!important;border-color:#ff9e80!important}.deep-orange--text.text--accent-1{color:#ff9e80!important;caret-color:#ff9e80!important}.deep-orange.accent-2{background-color:#ff6e40!important;border-color:#ff6e40!important}.deep-orange--text.text--accent-2{color:#ff6e40!important;caret-color:#ff6e40!important}.deep-orange.accent-3{background-color:#ff3d00!important;border-color:#ff3d00!important}.deep-orange--text.text--accent-3{color:#ff3d00!important;caret-color:#ff3d00!important}.deep-orange.accent-4{background-color:#dd2c00!important;border-color:#dd2c00!important}.deep-orange--text.text--accent-4{color:#dd2c00!important;caret-color:#dd2c00!important}.brown{background-color:#795548!important;border-color:#795548!important}.brown--text{color:#795548!important;caret-color:#795548!important}.brown.lighten-5{background-color:#efebe9!important;border-color:#efebe9!important}.brown--text.text--lighten-5{color:#efebe9!important;caret-color:#efebe9!important}.brown.lighten-4{background-color:#d7ccc8!important;border-color:#d7ccc8!important}.brown--text.text--lighten-4{color:#d7ccc8!important;caret-color:#d7ccc8!important}.brown.lighten-3{background-color:#bcaaa4!important;border-color:#bcaaa4!important}.brown--text.text--lighten-3{color:#bcaaa4!important;caret-color:#bcaaa4!important}.brown.lighten-2{background-color:#a1887f!important;border-color:#a1887f!important}.brown--text.text--lighten-2{color:#a1887f!important;caret-color:#a1887f!important}.brown.lighten-1{background-color:#8d6e63!important;border-color:#8d6e63!important}.brown--text.text--lighten-1{color:#8d6e63!important;caret-color:#8d6e63!important}.brown.darken-1{background-color:#6d4c41!important;border-color:#6d4c41!important}.brown--text.text--darken-1{color:#6d4c41!important;caret-color:#6d4c41!important}.brown.darken-2{background-color:#5d4037!important;border-color:#5d4037!important}.brown--text.text--darken-2{color:#5d4037!important;caret-color:#5d4037!important}.brown.darken-3{background-color:#4e342e!important;border-color:#4e342e!important}.brown--text.text--darken-3{color:#4e342e!important;caret-color:#4e342e!important}.brown.darken-4{background-color:#3e2723!important;border-color:#3e2723!important}.brown--text.text--darken-4{color:#3e2723!important;caret-color:#3e2723!important}.blue-grey{background-color:#607d8b!important;border-color:#607d8b!important}.blue-grey--text{color:#607d8b!important;caret-color:#607d8b!important}.blue-grey.lighten-5{background-color:#eceff1!important;border-color:#eceff1!important}.blue-grey--text.text--lighten-5{color:#eceff1!important;caret-color:#eceff1!important}.blue-grey.lighten-4{background-color:#cfd8dc!important;border-color:#cfd8dc!important}.blue-grey--text.text--lighten-4{color:#cfd8dc!important;caret-color:#cfd8dc!important}.blue-grey.lighten-3{background-color:#b0bec5!important;border-color:#b0bec5!important}.blue-grey--text.text--lighten-3{color:#b0bec5!important;caret-color:#b0bec5!important}.blue-grey.lighten-2{background-color:#90a4ae!important;border-color:#90a4ae!important}.blue-grey--text.text--lighten-2{color:#90a4ae!important;caret-color:#90a4ae!important}.blue-grey.lighten-1{background-color:#78909c!important;border-color:#78909c!important}.blue-grey--text.text--lighten-1{color:#78909c!important;caret-color:#78909c!important}.blue-grey.darken-1{background-color:#546e7a!important;border-color:#546e7a!important}.blue-grey--text.text--darken-1{color:#546e7a!important;caret-color:#546e7a!important}.blue-grey.darken-2{background-color:#455a64!important;border-color:#455a64!important}.blue-grey--text.text--darken-2{color:#455a64!important;caret-color:#455a64!important}.blue-grey.darken-3{background-color:#37474f!important;border-color:#37474f!important}.blue-grey--text.text--darken-3{color:#37474f!important;caret-color:#37474f!important}.blue-grey.darken-4{background-color:#263238!important;border-color:#263238!important}.blue-grey--text.text--darken-4{color:#263238!important;caret-color:#263238!important}.grey{background-color:#9e9e9e!important;border-color:#9e9e9e!important}.grey--text{color:#9e9e9e!important;caret-color:#9e9e9e!important}.grey.lighten-5{background-color:#fafafa!important;border-color:#fafafa!important}.grey--text.text--lighten-5{color:#fafafa!important;caret-color:#fafafa!important}.grey.lighten-4{background-color:#f5f5f5!important;border-color:#f5f5f5!important}.grey--text.text--lighten-4{color:#f5f5f5!important;caret-color:#f5f5f5!important}.grey.lighten-3{background-color:#eee!important;border-color:#eee!important}.grey--text.text--lighten-3{color:#eee!important;caret-color:#eee!important}.grey.lighten-2{background-color:#e0e0e0!important;border-color:#e0e0e0!important}.grey--text.text--lighten-2{color:#e0e0e0!important;caret-color:#e0e0e0!important}.grey.lighten-1{background-color:#bdbdbd!important;border-color:#bdbdbd!important}.grey--text.text--lighten-1{color:#bdbdbd!important;caret-color:#bdbdbd!important}.grey.darken-1{background-color:#757575!important;border-color:#757575!important}.grey--text.text--darken-1{color:#757575!important;caret-color:#757575!important}.grey.darken-2{background-color:#616161!important;border-color:#616161!important}.grey--text.text--darken-2{color:#616161!important;caret-color:#616161!important}.grey.darken-3{background-color:#424242!important;border-color:#424242!important}.grey--text.text--darken-3{color:#424242!important;caret-color:#424242!important}.grey.darken-4{background-color:#212121!important;border-color:#212121!important}.grey--text.text--darken-4{color:#212121!important;caret-color:#212121!important}.shades.black{background-color:#000!important;border-color:#000!important}.shades--text.text--black{color:#000!important;caret-color:#000!important}.shades.white{background-color:#fff!important;border-color:#fff!important}.shades--text.text--white{color:#fff!important;caret-color:#fff!important}.shades.transparent{background-color:transparent!important;border-color:transparent!important}.shades--text.text--transparent{color:transparent!important;caret-color:transparent!important}.elevation-0{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.elevation-1{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important}.elevation-2{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.elevation-3{box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important}.elevation-4{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.elevation-5{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important}.elevation-6{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important}.elevation-7{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important}.elevation-8{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important}.elevation-9{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important}.elevation-10{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important}.elevation-11{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important}.elevation-12{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important}.elevation-13{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important}.elevation-14{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important}.elevation-15{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important}.elevation-16{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important}.elevation-17{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important}.elevation-18{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important}.elevation-19{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important}.elevation-20{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important}.elevation-21{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important}.elevation-22{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important}.elevation-23{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important}.elevation-24{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important}html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{background-repeat:no-repeat;padding:0;margin:0}audio:not([controls]){display:none;height:0}hr{overflow:visible}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}summary{display:list-item}small{font-size:80%}[hidden],template{display:none}abbr[title]{border-bottom:1px dotted;text-decoration:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}b,strong{font-weight:bolder}dfn{font-style:italic}mark{background-color:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer}[disabled]{cursor:default}[type=number]{width:auto}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:0;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:0;border:0}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,select{text-transform:none}button,input,select,textarea{background-color:transparent;border-style:none;color:inherit}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;max-width:100%;white-space:normal}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}img{border-style:none}progress{vertical-align:baseline}svg:not(:root){overflow:hidden}audio,canvas,progress,video{display:inline-block}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled]{cursor:default}::selection{background-color:#b3d4fc;color:#000;text-shadow:none}.bottom-sheet-transition-enter,.bottom-sheet-transition-leave-to{transform:translateY(100%)}.carousel-transition-enter{transform:translate(100%)}.carousel-transition-leave,.carousel-transition-leave-to{position:absolute;top:0}.carousel-reverse-transition-enter,.carousel-transition-leave,.carousel-transition-leave-to{transform:translate(-100%)}.carousel-reverse-transition-leave,.carousel-reverse-transition-leave-to{position:absolute;top:0;transform:translate(100%)}.dialog-transition-enter,.dialog-transition-leave-to{transform:scale(.5);opacity:0}.dialog-transition-enter-to,.dialog-transition-leave{opacity:1}.dialog-bottom-transition-enter,.dialog-bottom-transition-leave-to{transform:translateY(100%)}.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active,.picker-transition-enter-active,.picker-transition-leave-active{transition:.3s cubic-bezier(0,0,.2,1)}.picker-reverse-transition-enter,.picker-reverse-transition-leave-to,.picker-transition-enter,.picker-transition-leave-to{opacity:0}.picker-reverse-transition-leave,.picker-reverse-transition-leave-active,.picker-reverse-transition-leave-to,.picker-transition-leave,.picker-transition-leave-active,.picker-transition-leave-to{position:absolute!important}.picker-transition-enter{transform:translateY(100%)}.picker-reverse-transition-enter,.picker-transition-leave-to{transform:translateY(-100%)}.picker-reverse-transition-leave-to{transform:translateY(100%)}.picker-title-transition-enter-to,.picker-title-transition-leave{transform:translate(0)}.picker-title-transition-enter{transform:translate(-100%)}.picker-title-transition-leave-to{opacity:0;transform:translate(100%)}.picker-title-transition-leave,.picker-title-transition-leave-active,.picker-title-transition-leave-to{position:absolute!important}.tab-transition-enter{transform:translate(100%)}.tab-transition-leave,.tab-transition-leave-active{position:absolute;top:0}.tab-transition-leave-to{position:absolute}.tab-reverse-transition-enter,.tab-transition-leave-to{transform:translate(-100%)}.tab-reverse-transition-leave,.tab-reverse-transition-leave-to{top:0;position:absolute;transform:translate(100%)}.expand-transition-enter-active,.expand-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-transition-move{transition:transform .6s}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.expand-x-transition-move{transition:transform .6s}.scale-transition-enter-active,.scale-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scale-transition-move{transition:transform .6s}.scale-transition-enter,.scale-transition-leave,.scale-transition-leave-to{opacity:0;transform:scale(0)}.message-transition-enter-active,.message-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.message-transition-move{transition:transform .6s}.message-transition-enter,.message-transition-leave-to{opacity:0;transform:translateY(-15px)}.message-transition-leave,.message-transition-leave-active{position:absolute}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-transition-move{transition:transform .6s}.slide-y-transition-enter,.slide-y-transition-leave-to{opacity:0;transform:translateY(-15px)}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-y-reverse-transition-move{transition:transform .6s}.slide-y-reverse-transition-enter,.slide-y-reverse-transition-leave-to{opacity:0;transform:translateY(15px)}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-transition-move{transition:transform .6s}.scroll-y-transition-enter,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-y-reverse-transition-move{transition:transform .6s}.scroll-y-reverse-transition-enter,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-transition-move{transition:transform .6s}.scroll-x-transition-enter,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter{transform:translateX(-15px)}.scroll-x-transition-leave-to{transform:translateX(15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.scroll-x-reverse-transition-move{transition:transform .6s}.scroll-x-reverse-transition-enter,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter{transform:translateX(15px)}.scroll-x-reverse-transition-leave-to{transform:translateX(-15px)}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-transition-move{transition:transform .6s}.slide-x-transition-enter,.slide-x-transition-leave-to{opacity:0;transform:translateX(-15px)}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.slide-x-reverse-transition-move{transition:transform .6s}.slide-x-reverse-transition-enter,.slide-x-reverse-transition-leave-to{opacity:0;transform:translateX(15px)}.fade-transition-enter-active,.fade-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fade-transition-move{transition:transform .6s}.fade-transition-enter,.fade-transition-leave-to{opacity:0}.fab-transition-enter-active,.fab-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.fab-transition-move{transition:transform .6s}.fab-transition-enter,.fab-transition-leave-to{transform:scale(0) rotate(-45deg)}.blockquote{padding:16px 0 16px 24px;font-size:18px;font-weight:300}code,kbd{display:inline-block;border-radius:3px;white-space:pre-wrap;font-size:85%;font-weight:900}code:after,code:before,kbd:after,kbd:before{content:"\A0";letter-spacing:-1px}code{background-color:#f5f5f5;color:#bd4147;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}kbd{background:#616161;color:#fff}html{font-size:14px;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}.application{font-family:Roboto,sans-serif;line-height:1.5}::-ms-clear,::-ms-reveal{display:none}ol,ul{padding-left:24px}.display-4{font-size:112px!important;font-weight:300;line-height:1!important;letter-spacing:-.04em!important;font-family:Roboto,sans-serif!important}.display-3{font-size:56px!important;line-height:1.35!important;letter-spacing:-.02em!important}.display-2,.display-3{font-weight:400;font-family:Roboto,sans-serif!important}.display-2{font-size:45px!important;line-height:48px!important;letter-spacing:normal!important}.display-1{font-size:34px!important;line-height:40px!important}.display-1,.headline{font-weight:400;letter-spacing:normal!important;font-family:Roboto,sans-serif!important}.headline{font-size:24px!important;line-height:32px!important}.title{font-size:20px!important;font-weight:500;line-height:1!important;letter-spacing:.02em!important;font-family:Roboto,sans-serif!important}.subheading{font-size:16px!important;font-weight:400}.body-2{font-weight:500}.body-1,.body-2{font-size:14px!important}.body-1,.caption{font-weight:400}.caption{font-size:12px!important}p{margin-bottom:16px}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.right{float:right!important}.left{float:left!important}.ma-auto{margin:auto!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-auto{margin-top:auto!important}.mr-auto{margin-right:auto!important}.mb-auto{margin-bottom:auto!important}.ml-auto{margin-left:auto!important}.ma-0{margin:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.mt-0{margin-top:0!important}.mr-0{margin-right:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.pa-0{padding:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.px-0{padding-left:0!important;padding-right:0!important}.pt-0{padding-top:0!important}.pr-0{padding-right:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.ma-1{margin:4px!important}.my-1{margin-top:4px!important;margin-bottom:4px!important}.mx-1{margin-left:4px!important;margin-right:4px!important}.mt-1{margin-top:4px!important}.mr-1{margin-right:4px!important}.mb-1{margin-bottom:4px!important}.ml-1{margin-left:4px!important}.pa-1{padding:4px!important}.py-1{padding-top:4px!important;padding-bottom:4px!important}.px-1{padding-left:4px!important;padding-right:4px!important}.pt-1{padding-top:4px!important}.pr-1{padding-right:4px!important}.pb-1{padding-bottom:4px!important}.pl-1{padding-left:4px!important}.ma-2{margin:8px!important}.my-2{margin-top:8px!important;margin-bottom:8px!important}.mx-2{margin-left:8px!important;margin-right:8px!important}.mt-2{margin-top:8px!important}.mr-2{margin-right:8px!important}.mb-2{margin-bottom:8px!important}.ml-2{margin-left:8px!important}.pa-2{padding:8px!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}.px-2{padding-left:8px!important;padding-right:8px!important}.pt-2{padding-top:8px!important}.pr-2{padding-right:8px!important}.pb-2{padding-bottom:8px!important}.pl-2{padding-left:8px!important}.ma-3{margin:16px!important}.my-3{margin-top:16px!important;margin-bottom:16px!important}.mx-3{margin-left:16px!important;margin-right:16px!important}.mt-3{margin-top:16px!important}.mr-3{margin-right:16px!important}.mb-3{margin-bottom:16px!important}.ml-3{margin-left:16px!important}.pa-3{padding:16px!important}.py-3{padding-top:16px!important;padding-bottom:16px!important}.px-3{padding-left:16px!important;padding-right:16px!important}.pt-3{padding-top:16px!important}.pr-3{padding-right:16px!important}.pb-3{padding-bottom:16px!important}.pl-3{padding-left:16px!important}.ma-4{margin:24px!important}.my-4{margin-top:24px!important;margin-bottom:24px!important}.mx-4{margin-left:24px!important;margin-right:24px!important}.mt-4{margin-top:24px!important}.mr-4{margin-right:24px!important}.mb-4{margin-bottom:24px!important}.ml-4{margin-left:24px!important}.pa-4{padding:24px!important}.py-4{padding-top:24px!important;padding-bottom:24px!important}.px-4{padding-left:24px!important;padding-right:24px!important}.pt-4{padding-top:24px!important}.pr-4{padding-right:24px!important}.pb-4{padding-bottom:24px!important}.pl-4{padding-left:24px!important}.ma-5{margin:48px!important}.my-5{margin-top:48px!important;margin-bottom:48px!important}.mx-5{margin-left:48px!important;margin-right:48px!important}.mt-5{margin-top:48px!important}.mr-5{margin-right:48px!important}.mb-5{margin-bottom:48px!important}.ml-5{margin-left:48px!important}.pa-5{padding:48px!important}.py-5{padding-top:48px!important;padding-bottom:48px!important}.px-5{padding-left:48px!important;padding-right:48px!important}.pt-5{padding-top:48px!important}.pr-5{padding-right:48px!important}.pb-5{padding-bottom:48px!important}.pl-5{padding-left:48px!important}.font-weight-thin{font-weight:100!important}.font-weight-light{font-weight:300!important}.font-weight-regular{font-weight:400!important}.font-weight-medium{font-weight:500!important}.font-weight-bold{font-weight:700!important}.font-weight-black{font-weight:900!important}.font-italic{font-style:italic!important}.text-capitalize{text-transform:capitalize!important}.text-lowercase{text-transform:lowercase!important}.text-none{text-transform:none!important}.text-uppercase{text-transform:uppercase!important}.text-no-wrap,.text-truncate{white-space:nowrap!important}.text-truncate{overflow:hidden!important;text-overflow:ellipsis!important;line-height:1.1!important}.transition-fast-out-slow-in{transition:.3s cubic-bezier(.4,0,.2,1)!important}.transition-linear-out-slow-in{transition:.3s cubic-bezier(0,0,.2,1)!important}.transition-fast-out-linear-in{transition:.3s cubic-bezier(.4,0,1,1)!important}.transition-ease-in-out{transition:.3s cubic-bezier(.4,0,.6,1)!important}.transition-fast-in-fast-out{transition:.3s cubic-bezier(.25,.8,.25,1)!important}.transition-swing{transition:.3s cubic-bezier(.25,.8,.5,1)!important}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}@media only print{.hidden-print-only{display:none!important}}@media only screen{.hidden-screen-only{display:none!important}}@media only screen and (max-width:599px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:600px) and (max-width:959px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:959px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:600px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:960px) and (max-width:1263px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1263px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:960px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:1264px) and (max-width:1903px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1903px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1264px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1904px){.hidden-xl-only{display:none!important}}@media (min-width:0){.text-xs-left{text-align:left!important}.text-xs-center{text-align:center!important}.text-xs-right{text-align:right!important}.text-xs-justify{text-align:justify!important}}@media (min-width:600px){.text-sm-left{text-align:left!important}.text-sm-center{text-align:center!important}.text-sm-right{text-align:right!important}.text-sm-justify{text-align:justify!important}}@media (min-width:960px){.text-md-left{text-align:left!important}.text-md-center{text-align:center!important}.text-md-right{text-align:right!important}.text-md-justify{text-align:justify!important}}@media (min-width:1264px){.text-lg-left{text-align:left!important}.text-lg-center{text-align:center!important}.text-lg-right{text-align:right!important}.text-lg-justify{text-align:justify!important}}@media (min-width:1904px){.text-xl-left{text-align:left!important}.text-xl-center{text-align:center!important}.text-xl-right{text-align:right!important}.text-xl-justify{text-align:justify!important}}.application{display:flex}.application a{cursor:pointer}.application--is-rtl{direction:rtl}.application--wrap{flex:1 1 auto;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column;min-height:100vh;max-width:100%;position:relative}.theme--light.application{background:#fafafa;color:rgba(0,0,0,.87)}.theme--light.application .text--primary{color:rgba(0,0,0,.87)!important}.theme--light.application .text--secondary{color:rgba(0,0,0,.54)!important}.theme--light.application .text--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.application{background:#303030;color:#fff}.theme--dark.application .text--primary{color:#fff!important}.theme--dark.application .text--secondary{color:hsla(0,0%,100%,.7)!important}.theme--dark.application .text--disabled{color:hsla(0,0%,100%,.5)!important}@media print{@-moz-document url-prefix(){.application,.application--wrap{display:block}}}.v-alert{border-radius:0;border-width:4px 0 0;border-style:solid;color:#fff;display:flex;font-size:14px;margin:4px auto;padding:16px;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-alert .v-alert__icon.v-icon,.v-alert__dismissible .v-icon{align-self:center;color:rgba(0,0,0,.3);font-size:24px}.v-alert--outline .v-icon{color:inherit!important}.v-alert__icon{margin-right:16px}.v-alert__dismissible{align-self:flex-start;color:inherit;margin-left:16px;margin-right:0;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-alert__dismissible:hover{opacity:.8}.v-alert--no-icon .v-alert__icon{display:none}.v-alert>div{align-self:center;flex:1 1}.v-alert.v-alert{border-color:rgba(0,0,0,.12)!important}.v-alert.v-alert--outline{border:1px solid!important}@media screen and (max-width:600px){.v-alert__icon{display:none}}.theme--light.v-icon{color:rgba(0,0,0,.54)}.theme--light.v-icon.v-icon--disabled{color:rgba(0,0,0,.38)!important}.theme--dark.v-icon{color:#fff}.theme--dark.v-icon.v-icon--disabled{color:hsla(0,0%,100%,.5)!important}.v-icon{align-items:center;display:inline-flex;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";font-size:24px;justify-content:center;line-height:1;transition:.3s cubic-bezier(.25,.8,.5,1);vertical-align:text-bottom}.v-icon--right{margin-left:16px}.v-icon--left{margin-right:16px}.v-icon.v-icon.v-icon--link{cursor:pointer}.v-icon--disabled{pointer-events:none;opacity:.6}.v-icon--is-component{height:24px}.v-autocomplete.v-input>.v-input__control>.v-input__slot{cursor:text}.v-autocomplete input{align-self:center}.v-autocomplete--is-selecting-index input{opacity:0}.v-autocomplete.v-text-field--enclosed:not(.v-text-field--solo):not(.v-text-field--single-line) .v-select__slot>input{margin-top:24px}.v-autocomplete:not(.v-input--is-disabled).v-select.v-text-field input{pointer-events:inherit}.v-autocomplete__content.v-menu__content,.v-autocomplete__content.v-menu__content .v-card{border-radius:0}.theme--light.v-text-field>.v-input__control>.v-input__slot:before{border-color:rgba(0,0,0,.42)}.theme--light.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:rgba(0,0,0,.87)}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,rgba(0,0,0,.38),rgba(0,0,0,.38) 2px,transparent 0,transparent 4px) 1 repeat}.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__prefix,.theme--light.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__suffix{color:rgba(0,0,0,.38)}.theme--light.v-text-field__prefix,.theme--light.v-text-field__suffix{color:rgba(0,0,0,.54)}.theme--light.v-text-field--solo>.v-input__control>.v-input__slot{border-radius:2px;background:#fff}.theme--light.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:rgba(0,0,0,.16)}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#424242}.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--light.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:#fff}.theme--light.v-text-field--box>.v-input__control>.v-input__slot{background:rgba(0,0,0,.06)}.theme--light.v-text-field--box .v-text-field__prefix{max-height:32px;margin-top:22px}.theme--light.v-text-field--box.v-input--is-dirty .v-text-field__prefix,.theme--light.v-text-field--box.v-input--is-focused .v-text-field__prefix,.theme--light.v-text-field--box.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-text-field--box:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.12)}.theme--light.v-text-field--outline>.v-input__control>.v-input__slot{border:2px solid rgba(0,0,0,.54)}.theme--light.v-text-field--outline:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{border:2px solid rgba(0,0,0,.87)}.theme--dark.v-text-field>.v-input__control>.v-input__slot:before{border-color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field:not(.v-input--has-state)>.v-input__control>.v-input__slot:hover:before{border-color:#fff}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before{border-image:repeating-linear-gradient(90deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.5) 2px,transparent 0,transparent 4px) 1 repeat}.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__prefix,.theme--dark.v-text-field.v-input--is-disabled>.v-input__control>.v-input__slot:before .v-text-field__suffix{color:hsla(0,0%,100%,.5)}.theme--dark.v-text-field__prefix,.theme--dark.v-text-field__suffix{color:hsla(0,0%,100%,.7)}.theme--dark.v-text-field--solo>.v-input__control>.v-input__slot{border-radius:2px;background:#424242}.theme--dark.v-text-field--solo-inverted.v-text-field--solo>.v-input__control>.v-input__slot{background:hsla(0,0%,100%,.16)}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot{background:#fff}.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot .v-label,.theme--dark.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused>.v-input__control>.v-input__slot input{color:rgba(0,0,0,.87)}.theme--dark.v-text-field--box>.v-input__control>.v-input__slot{background:rgba(0,0,0,.1)}.theme--dark.v-text-field--box .v-text-field__prefix{max-height:32px;margin-top:22px}.theme--dark.v-text-field--box.v-input--is-dirty .v-text-field__prefix,.theme--dark.v-text-field--box.v-input--is-focused .v-text-field__prefix,.theme--dark.v-text-field--box.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--dark.v-text-field--box:not(.v-input--is-focused)>.v-input__control>.v-input__slot:hover{background:rgba(0,0,0,.2)}.theme--dark.v-text-field--outline>.v-input__control>.v-input__slot{border:2px solid hsla(0,0%,100%,.7)}.theme--dark.v-text-field--outline:not(.v-input--is-focused):not(.v-input--has-state)>.v-input__control>.v-input__slot:hover{border:2px solid #fff}.application--is-rtl .v-text-field .v-label{transform-origin:top right}.application--is-rtl .v-text-field .v-counter{margin-left:0;margin-right:8px}.application--is-rtl .v-text-field--enclosed .v-input__append-outer{margin-left:0;margin-right:16px}.application--is-rtl .v-text-field--enclosed .v-input__prepend-outer{margin-left:16px;margin-right:0}.application--is-rtl .v-text-field--reverse input{text-align:left}.application--is-rtl .v-text-field--reverse .v-label{transform-origin:top left}.application--is-rtl .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.application--is-rtl .v-text-field__suffix{padding-left:0;padding-right:4px}.application--is-rtl .v-text-field--reverse .v-text-field__prefix{text-align:right;padding-left:0;padding-right:4px}.application--is-rtl .v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-text-field{padding-top:12px;margin-top:4px}.v-text-field input{flex:1 1 auto;line-height:20px;padding:8px 0;max-width:100%;min-width:0;width:100%}.v-text-field .v-input__append-inner,.v-text-field .v-input__prepend-inner{align-self:flex-start;display:inline-flex;margin-top:4px;line-height:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-text-field .v-input__prepend-inner{margin-right:auto;padding-right:4px}.v-text-field .v-input__append-inner{margin-left:auto;padding-left:4px}.v-text-field .v-counter{margin-left:8px;white-space:nowrap}.v-text-field .v-label{max-width:90%;overflow:hidden;text-overflow:ellipsis;top:6px;transform-origin:top left;white-space:nowrap;pointer-events:none}.v-text-field .v-label--active{max-width:133%;transform:translateY(-18px) scale(.75)}.v-text-field>.v-input__control>.v-input__slot{cursor:text;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-text-field>.v-input__control>.v-input__slot:after,.v-text-field>.v-input__control>.v-input__slot:before{bottom:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-text-field>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0 0}.v-text-field>.v-input__control>.v-input__slot:after{border-color:currentcolor;border-style:solid;border-width:thin 0;transform:scaleX(0)}.v-text-field__details{display:flex;flex:1 0 auto;max-width:100%;overflow:hidden}.v-text-field__prefix,.v-text-field__suffix{align-self:center;cursor:default}.v-text-field__prefix{text-align:right;padding-right:4px}.v-text-field__suffix{padding-left:4px;white-space:nowrap}.v-text-field--reverse .v-text-field__prefix{text-align:left;padding-right:0;padding-left:4px}.v-text-field--reverse .v-text-field__suffix{padding-left:0;padding-right:4px}.v-text-field>.v-input__control>.v-input__slot>.v-text-field__slot{display:flex;flex:1 1 auto;position:relative}.v-text-field--box,.v-text-field--full-width,.v-text-field--outline{position:relative}.v-text-field--box>.v-input__control>.v-input__slot,.v-text-field--full-width>.v-input__control>.v-input__slot,.v-text-field--outline>.v-input__control>.v-input__slot{align-items:stretch;min-height:56px}.v-text-field--box input,.v-text-field--full-width input,.v-text-field--outline input{margin-top:22px}.v-text-field--box.v-text-field--single-line input,.v-text-field--full-width.v-text-field--single-line input,.v-text-field--outline.v-text-field--single-line input{margin-top:12px}.v-text-field--box .v-label,.v-text-field--full-width .v-label,.v-text-field--outline .v-label{top:18px}.v-text-field--box .v-label--active,.v-text-field--full-width .v-label--active,.v-text-field--outline .v-label--active{transform:translateY(-6px) scale(.75)}.v-text-field--box>.v-input__control>.v-input__slot{border-top-left-radius:4px;border-top-right-radius:4px}.v-text-field--box>.v-input__control>.v-input__slot:before{border-style:solid;border-width:thin 0}.v-text-field.v-text-field--enclosed{margin:0;padding:0}.v-text-field.v-text-field--enclosed:not(.v-text-field--box) .v-progress-linear__background{display:none}.v-text-field.v-text-field--enclosed .v-input__append-inner,.v-text-field.v-text-field--enclosed .v-input__append-outer,.v-text-field.v-text-field--enclosed .v-input__prepend-inner,.v-text-field.v-text-field--enclosed .v-input__prepend-outer{margin-top:16px}.v-text-field.v-text-field--enclosed .v-text-field__details,.v-text-field.v-text-field--enclosed>.v-input__control>.v-input__slot{padding:0 12px}.v-text-field.v-text-field--enclosed .v-text-field__details{margin-bottom:8px}.v-text-field--reverse input{text-align:right}.v-text-field--reverse .v-label{transform-origin:top right}.v-text-field--reverse .v-text-field__slot,.v-text-field--reverse>.v-input__control>.v-input__slot{flex-direction:row-reverse}.v-text-field--full-width>.v-input__control>.v-input__slot:after,.v-text-field--full-width>.v-input__control>.v-input__slot:before,.v-text-field--outline>.v-input__control>.v-input__slot:after,.v-text-field--outline>.v-input__control>.v-input__slot:before,.v-text-field--solo>.v-input__control>.v-input__slot:after,.v-text-field--solo>.v-input__control>.v-input__slot:before{display:none}.v-text-field--outline{margin-bottom:16px;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outline>.v-input__control>.v-input__slot{background:transparent!important;border-radius:4px}.v-text-field--outline .v-text-field__prefix{max-height:32px}.v-text-field--outline .v-input__append-outer,.v-text-field--outline .v-input__prepend-outer{margin-top:18px}.v-text-field--outline.v-input--is-dirty .v-text-field__prefix,.v-text-field--outline.v-input--is-focused .v-text-field__prefix,.v-text-field--outline.v-text-field--placeholder .v-text-field__prefix{margin-top:22px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-text-field--outline.v-input--has-state>.v-input__control>.v-input__slot,.v-text-field--outline.v-input--is-focused>.v-input__control>.v-input__slot{border:2px solid;transition:border .3s cubic-bezier(.25,.8,.5,1)}.v-text-field.v-text-field--solo .v-label{top:calc(50% - 10px)}.v-text-field.v-text-field--solo .v-input__control{min-height:48px;padding:0}.v-text-field.v-text-field--solo:not(.v-text-field--solo-flat)>.v-input__control>.v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-text-field.v-text-field--solo .v-text-field__slot{align-items:center}.v-text-field.v-text-field--solo .v-input__append-inner,.v-text-field.v-text-field--solo .v-input__prepend-inner{align-self:center;margin-top:0}.v-text-field.v-text-field--solo .v-input__append-outer,.v-text-field.v-text-field--solo .v-input__prepend-outer{margin-top:12px}.v-text-field.v-input--is-focused>.v-input__control>.v-input__slot:after{transform:scaleX(1)}.v-text-field.v-input--has-state>.v-input__control>.v-input__slot:before{border-color:currentColor}.theme--light.v-select .v-select__selections{color:rgba(0,0,0,.87)}.theme--light.v-select .v-chip--disabled,.theme--light.v-select.v-input--is-disabled .v-select__selections,.theme--light.v-select .v-select__selection--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-select .v-select__selections,.theme--light.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:#fff}.theme--dark.v-select .v-chip--disabled,.theme--dark.v-select.v-input--is-disabled .v-select__selections,.theme--dark.v-select .v-select__selection--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-select.v-text-field--solo-inverted.v-input--is-focused .v-select__selections{color:rgba(0,0,0,.87)}.v-select{position:relative}.v-select>.v-input__control>.v-input__slot{cursor:pointer}.v-select .v-chip{flex:0 1 auto}.v-select .fade-transition-leave-active{position:absolute;left:0}.v-select.v-input--is-dirty :-ms-input-placeholder,.v-select.v-input--is-dirty ::-ms-input-placeholder{color:transparent!important}.v-select.v-input--is-dirty ::placeholder{color:transparent!important}.v-select:not(.v-input--is-dirty):not(.v-input--is-focused) .v-text-field__prefix{line-height:20px;position:absolute;top:7px;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-select.v-text-field--enclosed:not(.v-text-field--single-line) .v-select__selections{padding-top:24px}.v-select.v-text-field input{flex:1 1;margin-top:0;min-width:0;pointer-events:none;position:relative}.v-select.v-select--is-menu-active .v-input__icon--append .v-icon{transform:rotate(180deg)}.v-select.v-select--chips input{margin:0}.v-select.v-select--chips .v-select__selections{min-height:42px}.v-select.v-select--chips.v-select--chips--small .v-select__selections{min-height:32px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed .v-select__selections{min-height:68px}.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--box.v-select--chips--small .v-select__selections,.v-select.v-select--chips:not(.v-text-field--single-line).v-text-field--enclosed.v-select--chips--small .v-select__selections{min-height:56px}.v-select.v-text-field--reverse .v-select__selections,.v-select.v-text-field--reverse .v-select__slot{flex-direction:row-reverse}.v-select__selections{align-items:center;display:flex;flex:1 1 auto;flex-wrap:wrap;line-height:18px}.v-select__selection{max-width:90%}.v-select__selection--comma{align-items:center;display:inline-flex;margin:7px 4px 7px 0}.v-select__slot{position:relative;align-items:center;display:flex;width:100%}.v-select:not(.v-text-field--single-line) .v-select__slot>input{align-self:flex-end}.theme--light.v-input:not(.v-input--is-disabled) input,.theme--light.v-input:not(.v-input--is-disabled) textarea{color:rgba(0,0,0,.87)}.theme--light.v-input input:-ms-input-placeholder,.theme--light.v-input input::-ms-input-placeholder,.theme--light.v-input textarea:-ms-input-placeholder,.theme--light.v-input textarea::-ms-input-placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input input::placeholder,.theme--light.v-input textarea::placeholder{color:rgba(0,0,0,.38)}.theme--light.v-input--is-disabled .v-label,.theme--light.v-input--is-disabled input,.theme--light.v-input--is-disabled textarea{color:rgba(0,0,0,.38)}.theme--dark.v-input:not(.v-input--is-disabled) input,.theme--dark.v-input:not(.v-input--is-disabled) textarea{color:#fff}.theme--dark.v-input input:-ms-input-placeholder,.theme--dark.v-input input::-ms-input-placeholder,.theme--dark.v-input textarea:-ms-input-placeholder,.theme--dark.v-input textarea::-ms-input-placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input input::placeholder,.theme--dark.v-input textarea::placeholder{color:hsla(0,0%,100%,.5)}.theme--dark.v-input--is-disabled .v-label,.theme--dark.v-input--is-disabled input,.theme--dark.v-input--is-disabled textarea{color:hsla(0,0%,100%,.5)}.v-input{align-items:flex-start;display:flex;flex:1 1 auto;font-size:16px;text-align:left}.v-input .v-progress-linear{top:calc(100% - 1px);left:0;margin:0;position:absolute}.v-input input{max-height:32px}.v-input input:invalid,.v-input textarea:invalid{box-shadow:none}.v-input input:active,.v-input input:focus,.v-input textarea:active,.v-input textarea:focus{outline:none}.v-input .v-label{height:20px;line-height:20px}.v-input__append-outer,.v-input__prepend-outer{display:inline-flex;margin-bottom:4px;margin-top:4px;line-height:1}.v-input__append-outer .v-icon,.v-input__prepend-outer .v-icon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-input__append-outer{margin-left:9px}.v-input__prepend-outer{margin-right:9px}.v-input__control{display:flex;flex-direction:column;height:auto;flex-grow:1;flex-wrap:wrap;width:100%}.v-input__icon{align-items:center;display:inline-flex;height:24px;flex:1 0 auto;justify-content:center;min-width:24px;width:24px}.v-input__icon--clear{border-radius:50%}.v-input__slot{align-items:center;color:inherit;display:flex;margin-bottom:8px;min-height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-input--is-disabled:not(.v-input--is-readonly){pointer-events:none}.v-input--is-loading>.v-input__control>.v-input__slot:after,.v-input--is-loading>.v-input__control>.v-input__slot:before{display:none}.v-input--hide-details>.v-input__control>.v-input__slot{margin-bottom:0}.v-input--has-state.error--text .v-label{animation:shake .6s cubic-bezier(.25,.8,.5,1)}.theme--light.v-label{color:rgba(0,0,0,.54)}.theme--light.v-label--is-disabled{color:rgba(0,0,0,.38)}.theme--dark.v-label{color:hsla(0,0%,100%,.7)}.theme--dark.v-label--is-disabled{color:hsla(0,0%,100%,.5)}.v-label{font-size:16px;line-height:1;min-height:8px;transition:.3s cubic-bezier(.25,.8,.5,1)}.theme--light.v-messages{color:rgba(0,0,0,.54)}.theme--dark.v-messages{color:hsla(0,0%,100%,.7)}.application--is-rtl .v-messages{text-align:right}.v-messages{flex:1 1 auto;font-size:12px;min-height:12px;min-width:1px;position:relative}.v-messages__message{line-height:1;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.v-progress-linear{background:transparent;margin:1rem 0;overflow:hidden;width:100%;position:relative}.v-progress-linear__bar{width:100%;position:relative;z-index:1}.v-progress-linear__bar,.v-progress-linear__bar__determinate{height:inherit;transition:.2s cubic-bezier(.4,0,.6,1)}.v-progress-linear__bar__indeterminate .long,.v-progress-linear__bar__indeterminate .short{height:inherit;position:absolute;left:0;top:0;bottom:0;will-change:left,right;width:auto;background-color:inherit}.v-progress-linear__bar__indeterminate--active .long{animation:indeterminate;animation-duration:2.2s;animation-iteration-count:infinite}.v-progress-linear__bar__indeterminate--active .short{animation:indeterminate-short;animation-duration:2.2s;animation-iteration-count:infinite}.v-progress-linear__background{position:absolute;top:0;left:0;bottom:0;transition:.3s ease-in}.v-progress-linear__content{width:100%;position:absolute;top:0;left:0;z-index:2}.v-progress-linear--query .v-progress-linear__bar__indeterminate--active .long{animation:query;animation-duration:2s;animation-iteration-count:infinite}.v-progress-linear--query .v-progress-linear__bar__indeterminate--active .short{animation:query-short;animation-duration:2s;animation-iteration-count:infinite}@keyframes indeterminate{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes query{0%{right:-90%;left:100%}60%{right:-90%;left:100%}to{right:100%;left:-35%}}@keyframes query-short{0%{right:-200%;left:100%}60%{right:107%;left:-8%}to{right:107%;left:-8%}}.theme--light.v-counter{color:rgba(0,0,0,.54)}.theme--dark.v-counter{color:hsla(0,0%,100%,.7)}.v-counter{flex:0 1 auto;font-size:12px;min-height:12px;line-height:1}.theme--light.v-card{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-card{background-color:#424242;border-color:#424242;color:#fff}.v-card{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);text-decoration:none}.v-card>:first-child:not(.v-btn):not(.v-chip){border-top-left-radius:inherit;border-top-right-radius:inherit}.v-card>:last-child:not(.v-btn):not(.v-chip){border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.v-card--flat{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-card--hover{cursor:pointer;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:box-shadow}.v-card--hover:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-card__title{align-items:center;display:flex;flex-wrap:wrap;padding:16px}.v-card__title--primary{padding-top:24px}.v-card__text{padding:16px;width:100%}.v-card__actions{align-items:center;display:flex;padding:8px}.v-card__actions .v-btn,.v-card__actions>*{margin:0}.v-card__actions .v-btn+.v-btn{margin-left:8px}.theme--light.v-input--selection-controls.v-input--is-disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--dark.v-input--selection-controls.v-input--is-disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.application--is-rtl .v-input--selection-controls .v-input--selection-controls__input{margin-right:0;margin-left:8px}.v-input--selection-controls{margin-top:16px;padding-top:4px}.v-input--selection-controls .v-input__append-outer,.v-input--selection-controls .v-input__prepend-outer{margin-top:0;margin-bottom:0}.v-input--selection-controls .v-input__control{flex-grow:0;width:auto}.v-input--selection-controls:not(.v-input--hide-details) .v-input__slot{margin-bottom:12px}.v-input--selection-controls__input{color:inherit;display:inline-flex;flex:0 0 auto;height:24px;position:relative;margin-right:8px;transition:.3s cubic-bezier(.25,.8,.25,1);transition-property:color,transform;width:24px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-input--selection-controls__input input{position:absolute;opacity:0;width:100%;height:100%}.v-input--selection-controls__input+.v-label,.v-input--selection-controls__input input{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-input--selection-controls__ripple{border-radius:50%;cursor:pointer;height:34px;position:absolute;transition:inherit;width:34px;left:-12px;top:calc(50% - 24px);margin:7px}.v-input--selection-controls__ripple:before{border-radius:inherit;bottom:0;content:"";position:absolute;opacity:.2;left:0;right:0;top:0;transform-origin:center center;transform:scale(.2);transition:inherit}.v-input--selection-controls__ripple .v-ripple__container{transform:scale(1.4)}.v-input--selection-controls.v-input .v-label{align-items:center;display:inline-flex;top:0;height:auto}.v-input--selection-controls.v-input--is-focused .v-input--selection-controls__ripple:before,.v-input--selection-controls .v-radio--is-focused .v-input--selection-controls__ripple:before{background:currentColor;transform:scale(.8)}.theme--light.v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-divider{border-color:hsla(0,0%,100%,.12)}.v-divider{display:block;flex:1 1 0px;max-width:100%;height:0;max-height:0;border:solid;border-width:thin 0 0;transition:inherit}.v-divider--inset:not(.v-divider--vertical){margin-left:72px;max-width:calc(100% - 72px)}.v-divider--vertical{align-self:stretch;border:solid;border-width:0 thin 0 0;display:inline-flex;height:inherit;min-height:100%;max-height:100%;max-width:0;width:0;vertical-align:text-bottom}.v-divider--vertical.v-divider--inset{margin-top:8px;min-height:0;max-height:calc(100% - 16px)}.theme--light.v-subheader{color:rgba(0,0,0,.54)}.theme--dark.v-subheader{color:hsla(0,0%,100%,.7)}.v-subheader{align-items:center;display:flex;height:48px;font-size:14px;font-weight:500;padding:0 16px}.v-subheader--inset{margin-left:56px}.theme--light.v-list{background:#fff;color:rgba(0,0,0,.87)}.theme--light.v-list .v-list--disabled{color:rgba(0,0,0,.38)}.theme--light.v-list .v-list__tile__sub-title{color:rgba(0,0,0,.54)}.theme--light.v-list .v-list__tile__mask{color:rgba(0,0,0,.38);background:#eee}.theme--light.v-list .v-list__group__header:hover,.theme--light.v-list .v-list__tile--highlighted,.theme--light.v-list .v-list__tile--link:hover{background:rgba(0,0,0,.04)}.theme--light.v-list .v-list__group--active:after,.theme--light.v-list .v-list__group--active:before{background:rgba(0,0,0,.12)}.theme--light.v-list .v-list__group--disabled .v-list__group__header__prepend-icon .v-icon,.theme--light.v-list .v-list__group--disabled .v-list__tile{color:rgba(0,0,0,.38)!important}.theme--dark.v-list{background:#424242;color:#fff}.theme--dark.v-list .v-list--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-list .v-list__tile__sub-title{color:hsla(0,0%,100%,.7)}.theme--dark.v-list .v-list__tile__mask{color:hsla(0,0%,100%,.5);background:#494949}.theme--dark.v-list .v-list__group__header:hover,.theme--dark.v-list .v-list__tile--highlighted,.theme--dark.v-list .v-list__tile--link:hover{background:hsla(0,0%,100%,.08)}.theme--dark.v-list .v-list__group--active:after,.theme--dark.v-list .v-list__group--active:before{background:hsla(0,0%,100%,.12)}.theme--dark.v-list .v-list__group--disabled .v-list__group__header__prepend-icon .v-icon,.theme--dark.v-list .v-list__group--disabled .v-list__tile{color:hsla(0,0%,100%,.5)!important}.application--is-rtl .v-list__tile__content,.application--is-rtl .v-list__tile__title{text-align:right}.v-list{list-style-type:none;padding:8px 0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-list>div{transition:inherit}.v-list__tile{align-items:center;color:inherit;display:flex;font-size:16px;font-weight:400;height:48px;margin:0;padding:0 16px;position:relative;text-decoration:none;transition:background .3s cubic-bezier(.25,.8,.5,1)}.v-list__tile--link{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-list__tile__action,.v-list__tile__content{height:100%}.v-list__tile__sub-title,.v-list__tile__title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-list__tile__title{height:24px;line-height:24px;position:relative;text-align:left}.v-list__tile__sub-title{font-size:14px}.v-list__tile__action,.v-list__tile__avatar{display:flex;justify-content:flex-start;min-width:56px}.v-list__tile__action{align-items:center}.v-list__tile__action .v-btn{padding:0;margin:0}.v-list__tile__action .v-btn--icon{margin:-6px}.v-list__tile__action .v-radio.v-radio{margin:0}.v-list__tile__action .v-input--selection-controls{padding:0;margin:0}.v-list__tile__action .v-input--selection-controls .v-messages{display:none}.v-list__tile__action .v-input--selection-controls .v-input__slot{margin:0}.v-list__tile__action-text{color:#9e9e9e;font-size:12px}.v-list__tile__action--stack{align-items:flex-end;justify-content:space-between;padding-top:8px;padding-bottom:8px;white-space:nowrap;flex-direction:column}.v-list__tile__content{text-align:left;flex:1 1 auto;overflow:hidden;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.v-list__tile__content~.v-list__tile__action:not(.v-list__tile__action--stack),.v-list__tile__content~.v-list__tile__avatar{justify-content:flex-end}.v-list__tile--active .v-list__tile__action:first-of-type .v-icon{color:inherit}.v-list__tile--avatar{height:56px}.v-list--dense{padding-top:4px;padding-bottom:4px}.v-list--dense .v-subheader{font-size:13px;height:40px}.v-list--dense .v-list__group .v-subheader{height:40px}.v-list--dense .v-list__tile{font-size:13px}.v-list--dense .v-list__tile--avatar{height:48px}.v-list--dense .v-list__tile:not(.v-list__tile--avatar){height:40px}.v-list--dense .v-list__tile .v-icon{font-size:22px}.v-list--dense .v-list__tile__sub-title{font-size:13px}.v-list--disabled{pointer-events:none}.v-list--two-line .v-list__tile{height:72px}.v-list--two-line.v-list--dense .v-list__tile{height:60px}.v-list--three-line .v-list__tile{height:88px}.v-list--three-line .v-list__tile__avatar{margin-top:-18px}.v-list--three-line .v-list__tile__sub-title{white-space:normal;-webkit-line-clamp:2;display:-webkit-box}.v-list--three-line.v-list--dense .v-list__tile{height:76px}.v-list>.v-list__group:before{top:0}.v-list>.v-list__group:before .v-list__tile__avatar{margin-top:-14px}.v-list__group{padding:0;position:relative;transition:inherit}.v-list__group:after,.v-list__group:before{content:"";height:1px;left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-list__group--active~.v-list__group:before{display:none}.v-list__group__header{align-items:center;cursor:pointer;display:flex;list-style-type:none}.v-list__group__header>div:not(.v-list__group__header__prepend-icon):not(.v-list__group__header__append-icon){flex:1 1 auto;overflow:hidden}.v-list__group__header .v-list__group__header__append-icon,.v-list__group__header .v-list__group__header__prepend-icon{padding:0 16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-list__group__header--sub-group{align-items:center;display:flex}.v-list__group__header--sub-group div .v-list__tile{padding-left:0}.v-list__group__header--sub-group .v-list__group__header__prepend-icon{padding:0 0 0 40px;margin-right:8px}.v-list__group__header .v-list__group__header__prepend-icon{display:flex;justify-content:flex-start;min-width:56px}.v-list__group__header--active .v-list__group__header__append-icon .v-icon{transform:rotate(-180deg)}.v-list__group__header--active .v-list__group__header__prepend-icon .v-icon{color:inherit}.v-list__group__header--active.v-list__group__header--sub-group .v-list__group__header__prepend-icon .v-icon{transform:rotate(-180deg)}.v-list__group__items{position:relative;padding:0;transition:inherit}.v-list__group__items>div{display:block}.v-list__group__items--no-action .v-list__tile{padding-left:72px}.v-list__group--disabled{pointer-events:none}.v-list--subheader{padding-top:0}.v-avatar{align-items:center;border-radius:50%;display:inline-flex;justify-content:center;position:relative;text-align:center;vertical-align:middle}.v-avatar .v-icon,.v-avatar .v-image,.v-avatar img{border-radius:50%;display:inline-flex;height:inherit;width:inherit}.v-avatar--tile,.v-avatar--tile .v-icon,.v-avatar--tile .v-image,.v-avatar--tile img{border-radius:0}.theme--light.v-chip{background:#e0e0e0;color:rgba(0,0,0,.87)}.theme--light.v-chip--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-chip{background:#555;color:#fff}.theme--dark.v-chip--disabled{color:hsla(0,0%,100%,.5)}.application--is-rtl .v-chip__close{margin:0 8px 0 2px}.application--is-rtl .v-chip--removable .v-chip__content{padding:0 12px 0 4px}.application--is-rtl .v-chip--select-multi{margin:4px 0 4px 4px}.application--is-rtl .v-chip .v-avatar{margin-right:-12px;margin-left:8px}.application--is-rtl .v-chip .v-icon--right{margin-right:12px;margin-left:-8px}.application--is-rtl .v-chip .v-icon--left{margin-right:-8px;margin-left:12px}.v-chip{font-size:13px;margin:4px;outline:none;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-chip,.v-chip .v-chip__content{align-items:center;border-radius:28px;display:inline-flex;vertical-align:middle}.v-chip .v-chip__content{cursor:default;height:32px;justify-content:space-between;padding:0 12px;white-space:nowrap;z-index:1}.v-chip--removable .v-chip__content{padding:0 4px 0 12px}.v-chip .v-avatar{height:32px!important;margin-left:-12px;margin-right:8px;min-width:32px;width:32px!important}.v-chip .v-avatar img{height:100%;width:100%}.v-chip--active,.v-chip--selected,.v-chip:focus:not(.v-chip--disabled){border-color:rgba(0,0,0,.13);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-chip--active:after,.v-chip--selected:after,.v-chip:focus:not(.v-chip--disabled):after{background:currentColor;border-radius:inherit;content:"";height:100%;position:absolute;top:0;left:0;transition:inherit;width:100%;pointer-events:none;opacity:.13}.v-chip--label,.v-chip--label .v-chip__content{border-radius:2px}.v-chip.v-chip.v-chip--outline{background:transparent!important;border:1px solid;color:#9e9e9e;height:32px}.v-chip.v-chip.v-chip--outline .v-avatar{margin-left:-13px}.v-chip--small{height:24px!important}.v-chip--small .v-avatar{height:24px!important;min-width:24px;width:24px!important}.v-chip--small .v-icon{font-size:20px}.v-chip__close{align-items:center;color:inherit;display:flex;font-size:20px;margin:0 2px 0 8px;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-chip__close>.v-icon{color:inherit!important;font-size:20px;cursor:pointer;opacity:.5}.v-chip__close>.v-icon:hover{opacity:1}.v-chip--disabled .v-chip__close{pointer-events:none}.v-chip--select-multi{margin:4px 4px 4px 0}.v-chip .v-icon{color:inherit}.v-chip .v-icon--right{margin-left:12px;margin-right:-8px}.v-chip .v-icon--left{margin-left:-8px;margin-right:12px}.v-menu{display:block;vertical-align:middle}.v-menu--inline{display:inline-block}.v-menu__activator{align-items:center;cursor:pointer;display:flex}.v-menu__activator *{cursor:pointer}.v-menu__content{position:absolute;display:inline-block;border-radius:2px;max-width:80%;overflow-y:auto;overflow-x:hidden;contain:content;will-change:transform;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-menu__content--active{pointer-events:none}.v-menu__content>.card{contain:content;-webkit-backface-visibility:hidden;backface-visibility:hidden}.v-menu>.v-menu__content{max-width:none}.v-menu-transition-enter .v-list__tile{min-width:0;pointer-events:none}.v-menu-transition-enter-to .v-list__tile{pointer-events:auto;transition-delay:.1s}.v-menu-transition-leave-active,.v-menu-transition-leave-to{pointer-events:none}.v-menu-transition-enter,.v-menu-transition-leave-to{opacity:0}.v-menu-transition-enter-active,.v-menu-transition-leave-active{transition:all .3s cubic-bezier(.25,.8,.25,1)}.v-menu-transition-enter.v-menu__content--auto{transition:none!important}.v-menu-transition-enter.v-menu__content--auto .v-list__tile{opacity:0;transform:translateY(-15px)}.v-menu-transition-enter.v-menu__content--auto .v-list__tile--active{opacity:1;transform:none!important;pointer-events:auto}.application--is-rtl .v-badge__badge{right:auto;left:-22px}.application--is-rtl .v-badge--overlap .v-badge__badge{right:auto;left:-8px}.application--is-rtl .v-badge--overlap.v-badge--left .v-badge__badge{right:-8px;left:auto}.application--is-rtl .v-badge--left .v-badge__badge{right:-22px;left:auto}.v-badge{display:inline-block;position:relative}.v-badge__badge{color:#fff;display:flex;position:absolute;font-size:14px;top:-11px;right:-22px;border-radius:50%;height:22px;width:22px;justify-content:center;align-items:center;flex-direction:row;flex-wrap:wrap;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-badge__badge .v-icon{font-size:14px}.v-badge--overlap .v-badge__badge{top:-8px;right:-8px}.v-badge--overlap.v-badge--left .v-badge__badge{left:-8px;right:auto}.v-badge--overlap.v-badge--bottom .v-badge__badge{bottom:-8px;top:auto}.v-badge--left .v-badge__badge{left:-22px}.v-badge--bottom .v-badge__badge{bottom:-11px;top:auto}.theme--light.v-bottom-nav{background-color:#fff}.theme--light.v-bottom-nav .v-btn:not(.v-btn--active){color:rgba(0,0,0,.54)!important}.theme--dark.v-bottom-nav{background-color:#424242}.theme--dark.v-bottom-nav .v-btn:not(.v-btn--active){color:hsla(0,0%,100%,.7)!important}.v-item-group.v-bottom-nav{bottom:0;box-shadow:0 3px 14px 2px rgba(0,0,0,.12);display:flex;left:0;justify-content:center;transform:translateY(60px);transition:all .4s cubic-bezier(.25,.8,.5,1);width:100%}.v-item-group.v-bottom-nav--absolute{position:absolute}.v-item-group.v-bottom-nav--active{transform:translate(0)}.v-item-group.v-bottom-nav--fixed{position:fixed;z-index:4}.v-item-group.v-bottom-nav .v-btn{background:transparent!important;border-radius:0;box-shadow:none!important;font-weight:400;height:100%;margin:0;max-width:168px;min-width:80px;padding:8px 12px 10px;text-transform:none;width:100%;flex-shrink:1}.v-item-group.v-bottom-nav .v-btn .v-btn__content{flex-direction:column-reverse;font-size:12px;white-space:nowrap;will-change:font-size}.v-item-group.v-bottom-nav .v-btn .v-btn__content i.v-icon{color:inherit;margin-bottom:4px;transition:all .4s cubic-bezier(.25,.8,.5,1)}.v-item-group.v-bottom-nav .v-btn .v-btn__content span{line-height:1}.v-item-group.v-bottom-nav .v-btn--active{padding-top:6px}.v-item-group.v-bottom-nav .v-btn--active:before{background-color:transparent}.v-item-group.v-bottom-nav .v-btn--active .v-btn__content{font-size:14px}.v-item-group.v-bottom-nav .v-btn--active .v-btn__content .v-icon{transform:none}.v-item-group.v-bottom-nav--shift .v-btn__content{font-size:14px}.v-item-group.v-bottom-nav--shift .v-btn{transition:all .3s;min-width:56px;max-width:96px}.v-item-group.v-bottom-nav--shift .v-btn--active{min-width:96px;max-width:168px}.v-bottom-nav--shift .v-btn:not(.v-btn--active) .v-btn__content .v-icon{transform:scale(1) translateY(8px)}.v-bottom-nav--shift .v-btn:not(.v-btn--active) .v-btn__content>span:not(.v-badge){color:transparent}.v-item-group{flex:0 1 auto;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-item-group>*{cursor:pointer;flex:1 1 auto}.v-bottom-sheet.v-dialog{align-self:flex-end;border-radius:0;flex:1 0 100%;margin:0;min-width:100%;overflow:visible;transition:.3s cubic-bezier(.25,.8,.25,1)}.v-bottom-sheet.v-dialog.v-bottom-sheet--inset{max-width:70%;min-width:0}@media only screen and (max-width:599px){.v-bottom-sheet.v-dialog.v-bottom-sheet--inset{max-width:none}}.v-dialog{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);border-radius:2px;margin:24px;overflow-y:auto;pointer-events:auto;transition:.3s cubic-bezier(.25,.8,.25,1);width:100%;z-index:inherit}.v-dialog__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:fixed;top:0;transition:.2s cubic-bezier(.25,.8,.25,1);width:100%;z-index:6;outline:none}.v-dialog:not(.v-dialog--fullscreen){max-height:90%}.v-dialog__activator,.v-dialog__activator *{cursor:pointer}.v-dialog__container{display:inline-block;vertical-align:middle}.v-dialog--animated{animation-duration:.15s;animation-name:animate-dialog;animation-timing-function:cubic-bezier(.25,.8,.25,1)}.v-dialog--fullscreen{border-radius:0;margin:0;height:100%;position:fixed;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-card{min-height:100%;min-width:100%;margin:0!important;padding:0!important}.v-dialog--scrollable,.v-dialog--scrollable>form{display:flex}.v-dialog--scrollable>.v-card,.v-dialog--scrollable>form>.v-card{display:flex;flex:1 1 100%;max-width:100%;flex-direction:column}.v-dialog--scrollable>.v-card>.v-card__actions,.v-dialog--scrollable>.v-card>.v-card__title,.v-dialog--scrollable>form>.v-card>.v-card__actions,.v-dialog--scrollable>form>.v-card>.v-card__title{flex:1 0 auto}.v-dialog--scrollable>.v-card>.v-card__text,.v-dialog--scrollable>form>.v-card>.v-card__text{overflow-y:auto;-webkit-backface-visibility:hidden;backface-visibility:hidden}@keyframes animate-dialog{0%{transform:scale(1)}50%{transform:scale(1.03)}to{transform:scale(1)}}.v-overlay{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;transition:.3s cubic-bezier(.25,.8,.5,1);z-index:5}.v-overlay--absolute{position:absolute}.v-overlay:before{background-color:#212121;bottom:0;content:"";height:100%;left:0;opacity:0;position:absolute;right:0;top:0;transition:inherit;transition-delay:.15s;width:100%}.v-overlay--active{pointer-events:auto;touch-action:none}.v-overlay--active:before{opacity:.46}.theme--light.v-breadcrumbs .v-breadcrumbs__divider,.theme--light.v-breadcrumbs .v-breadcrumbs__item--disabled{color:rgba(0,0,0,.38)}.theme--dark.v-breadcrumbs .v-breadcrumbs__divider,.theme--dark.v-breadcrumbs .v-breadcrumbs__item--disabled{color:hsla(0,0%,100%,.5)}.v-breadcrumbs{align-items:center;display:flex;flex-wrap:wrap;flex:0 1 auto;list-style-type:none;margin:0;padding:18px 12px}.v-breadcrumbs li{align-items:center;display:inline-flex;font-size:14px}.v-breadcrumbs li .v-icon{font-size:16px}.v-breadcrumbs li:nth-child(2n){padding:0 12px}.v-breadcrumbs--large li,.v-breadcrumbs--large li .v-icon{font-size:16px}.v-breadcrumbs__item{align-items:center;display:inline-flex;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-breadcrumbs__item--disabled{pointer-events:none}.v-ripple__container{border-radius:inherit;width:100%;height:100%;z-index:0;contain:strict}.v-ripple__animation,.v-ripple__container{color:inherit;position:absolute;left:0;top:0;overflow:hidden;pointer-events:none}.v-ripple__animation{border-radius:50%;background:currentColor;opacity:0;will-change:transform,opacity}.v-ripple__animation--enter{transition:none}.v-ripple__animation--in{transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .1s cubic-bezier(.4,0,.2,1)}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(.4,0,.2,1)}.theme--light.v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn.v-btn--disabled,.theme--light.v-btn.v-btn--disabled .v-btn__loading,.theme--light.v-btn.v-btn--disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--light.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline){background-color:rgba(0,0,0,.12)!important}.theme--light.v-btn:not(.v-btn--icon):not(.v-btn--flat){background-color:#f5f5f5}.theme--dark.v-btn{color:#fff}.theme--dark.v-btn.v-btn--disabled,.theme--dark.v-btn.v-btn--disabled .v-btn__loading,.theme--dark.v-btn.v-btn--disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.theme--dark.v-btn.v-btn--disabled:not(.v-btn--icon):not(.v-btn--flat):not(.v-btn--outline){background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-btn:not(.v-btn--icon):not(.v-btn--flat){background-color:#212121}.v-btn{align-items:center;border-radius:2px;display:inline-flex;height:36px;flex:0 0 auto;font-size:14px;font-weight:500;justify-content:center;margin:6px 8px;min-width:88px;outline:0;text-transform:uppercase;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1),color 1ms;position:relative;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-btn:before{border-radius:inherit;color:inherit;content:"";position:absolute;left:0;top:0;height:100%;opacity:.12;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-btn{padding:0 16px}.v-btn--active,.v-btn:focus,.v-btn:hover{position:relative}.v-btn--active:before,.v-btn:focus:before,.v-btn:hover:before{background-color:currentColor}.v-btn__content{align-items:center;border-radius:inherit;color:inherit;display:flex;flex:1 0 auto;justify-content:center;margin:0 auto;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap;width:inherit}.v-btn--small{font-size:13px;height:28px;padding:0 8px}.v-btn--large{font-size:15px;height:44px;padding:0 32px}.v-btn .v-btn__content .v-icon{color:inherit}.v-btn:not(.v-btn--depressed):not(.v-btn--flat){will-change:box-shadow;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-btn:not(.v-btn--depressed):not(.v-btn--flat):active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.v-btn--icon{background:transparent;box-shadow:none!important;border-radius:50%;justify-content:center;min-width:0;width:36px}.v-btn--icon.v-btn--small{width:28px}.v-btn--icon.v-btn--large{width:44px}.v-btn--floating,.v-btn--icon:before{border-radius:50%}.v-btn--floating{min-width:0;height:56px;width:56px;padding:0}.v-btn--floating.v-btn--absolute,.v-btn--floating.v-btn--fixed{z-index:4}.v-btn--floating:not(.v-btn--depressed):not(.v-btn--flat){box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-btn--floating:not(.v-btn--depressed):not(.v-btn--flat):active{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.v-btn--floating .v-btn__content{flex:1 1 auto;margin:0;height:100%}.v-btn--floating:after{border-radius:50%}.v-btn--floating .v-btn__content :not(:only-child){transition:.3s cubic-bezier(.25,.8,.5,1)}.v-btn--floating .v-btn__content :not(:only-child):first-child{opacity:1}.v-btn--floating .v-btn__content :not(:only-child):last-child{opacity:0;transform:rotate(-45deg)}.v-btn--floating .v-btn__content :not(:only-child):first-child,.v-btn--floating .v-btn__content :not(:only-child):last-child{-webkit-backface-visibility:hidden;position:absolute;left:0;top:0}.v-btn--floating.v-btn--active .v-btn__content :not(:only-child):first-child{opacity:0;transform:rotate(45deg)}.v-btn--floating.v-btn--active .v-btn__content :not(:only-child):last-child{opacity:1;transform:rotate(0)}.v-btn--floating .v-icon{height:inherit;width:inherit}.v-btn--floating.v-btn--small{height:40px;width:40px}.v-btn--floating.v-btn--small .v-icon{font-size:18px}.v-btn--floating.v-btn--large{height:72px;width:72px}.v-btn--floating.v-btn--large .v-icon{font-size:30px}.v-btn--reverse .v-btn__content{flex-direction:row-reverse}.v-btn--reverse.v-btn--column .v-btn__content{flex-direction:column-reverse}.v-btn--absolute,.v-btn--fixed{margin:0}.v-btn.v-btn--absolute{position:absolute}.v-btn.v-btn--fixed{position:fixed}.v-btn--top:not(.v-btn--absolute){top:16px}.v-btn--top.v-btn--absolute{top:-28px}.v-btn--top.v-btn--absolute.v-btn--small{top:-20px}.v-btn--top.v-btn--absolute.v-btn--large{top:-36px}.v-btn--bottom:not(.v-btn--absolute){bottom:16px}.v-btn--bottom.v-btn--absolute{bottom:-28px}.v-btn--bottom.v-btn--absolute.v-btn--small{bottom:-20px}.v-btn--bottom.v-btn--absolute.v-btn--large{bottom:-36px}.v-btn--left{left:16px}.v-btn--right{right:16px}.v-btn.v-btn--disabled{box-shadow:none!important;pointer-events:none}.v-btn:not(.v-btn--disabled):not(.v-btn--floating):not(.v-btn--icon) .v-btn__content .v-icon{transition:none}.v-btn--icon{padding:0}.v-btn--loader{pointer-events:none}.v-btn--loader .v-btn__content{opacity:0}.v-btn__loading{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn__loading .v-icon--left{margin-right:1rem;line-height:inherit}.v-btn__loading .v-icon--right{margin-left:1rem;line-height:inherit}.v-btn.v-btn--outline{border:1px solid;background:transparent!important;box-shadow:none}.v-btn.v-btn--outline:hover{box-shadow:none}.v-btn--block{display:flex;flex:1;margin:6px 0;width:100%}.v-btn--round,.v-btn--round:after{border-radius:28px}.v-btn:not(.v-btn--outline).accent,.v-btn:not(.v-btn--outline).error,.v-btn:not(.v-btn--outline).info,.v-btn:not(.v-btn--outline).primary,.v-btn:not(.v-btn--outline).secondary,.v-btn:not(.v-btn--outline).success,.v-btn:not(.v-btn--outline).warning{color:#fff}@media (hover:none){.v-btn:hover:before{background-color:transparent}}.v-progress-circular{position:relative;display:inline-flex;vertical-align:middle}.v-progress-circular svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular--indeterminate svg{animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{animation:progress-circular-dash 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}.v-progress-circular__underlay{stroke:rgba(0,0,0,.1);z-index:1}.v-progress-circular__overlay{stroke:currentColor;z-index:2;transition:all .6s ease-in-out}.v-progress-circular__info{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-125px}}@keyframes progress-circular-rotate{to{transform:rotate(1turn)}}.theme--light.v-btn-toggle{background:#fff}.theme--light.v-btn-toggle .v-btn{color:rgba(0,0,0,.87)}.theme--light.v-btn-toggle:not(.v-btn-toggle--only-child) .v-btn.v-btn--active:not(:last-child){border-right-color:rgba(0,0,0,.26)}.theme--dark.v-btn-toggle{background:#424242}.theme--dark.v-btn-toggle .v-btn{color:#fff}.theme--dark.v-btn-toggle:not(.v-btn-toggle--only-child) .v-btn.v-btn--active:not(:last-child){border-right-color:hsla(0,0%,100%,.3)}.v-btn-toggle{display:inline-flex;border-radius:2px;transition:.3s cubic-bezier(.25,.8,.5,1);will-change:background,box-shadow}.v-btn-toggle .v-btn{justify-content:center;min-width:auto;width:auto;padding:0 8px;margin:0;opacity:.4;border-radius:0}.v-btn-toggle .v-btn:not(:last-child){border-right:1px solid transparent}.v-btn-toggle .v-btn:after{display:none}.v-btn-toggle .v-btn.v-btn--active{opacity:1}.v-btn-toggle .v-btn span+.v-icon{font-size:medium;margin-left:10px}.v-btn-toggle .v-btn:first-child{border-radius:2px 0 0 2px}.v-btn-toggle .v-btn:last-child{border-radius:0 2px 2px 0}.v-btn-toggle--selected{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.theme--light.v-calendar-weekly{background-color:#fff}.theme--light.v-calendar-weekly .v-calendar-weekly__head-weekday{border-right:1px solid #e0e0e0;color:#000}.theme--light.v-calendar-weekly .v-calendar-weekly__head-weekday.v-past{color:rgba(0,0,0,.38)}.theme--light.v-calendar-weekly .v-calendar-weekly__head-weekday.v-outside{background-color:#f7f7f7}.theme--light.v-calendar-weekly .v-calendar-weekly__day{border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;color:#000}.theme--light.v-calendar-weekly .v-calendar-weekly__day.v-outside{background-color:#f7f7f7}.theme--dark.v-calendar-weekly{background-color:#303030}.theme--dark.v-calendar-weekly .v-calendar-weekly__head-weekday{border-right:1px solid #9e9e9e;color:#fff}.theme--dark.v-calendar-weekly .v-calendar-weekly__head-weekday.v-past{color:hsla(0,0%,100%,.5)}.theme--dark.v-calendar-weekly .v-calendar-weekly__head-weekday.v-outside{background-color:#202020}.theme--dark.v-calendar-weekly .v-calendar-weekly__day{border-right:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e;color:#fff}.theme--dark.v-calendar-weekly .v-calendar-weekly__day.v-outside{background-color:#202020}.v-calendar-weekly{width:100%;height:100%;display:flex;flex-direction:column}.v-calendar-weekly__head{display:flex}.v-calendar-weekly__head,.v-calendar-weekly__head-weekday{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-calendar-weekly__head-weekday{flex:1 0 20px;padding:0 4px;font-size:14px}.v-calendar-weekly__week{display:flex;flex:1}.v-calendar-weekly__day{flex:1;width:0;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;padding:32px 4px 4px}.v-calendar-weekly__day.v-present .v-calendar-weekly__day-label{border:1px solid}.v-calendar-weekly__day.v-present .v-calendar-weekly__day-month{color:currentColor}.v-calendar-weekly__day-label{position:absolute;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;box-shadow:none;text-align:center;left:0;top:0;border-radius:16px;width:32px;height:32px;line-height:32px}.v-calendar-weekly__day-label:hover{text-decoration:underline}.v-calendar-weekly__day-month{position:absolute;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-shadow:none;top:0;left:36px;height:32px;line-height:32px}.theme--light.v-calendar-daily{background-color:#fff}.theme--light.v-calendar-daily .v-calendar-daily__intervals-head{border-right:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily_head-day{border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;color:#000}.theme--light.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-day-label,.theme--light.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-weekday{color:rgba(0,0,0,.38)}.theme--light.v-calendar-daily .v-calendar-daily__intervals-body{border-right:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily__intervals-body .v-calendar-daily__interval-text{color:#424242}.theme--light.v-calendar-daily .v-calendar-daily__day{border-right:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily__day-interval{border-top:1px solid #e0e0e0}.theme--light.v-calendar-daily .v-calendar-daily__day-interval:first-child{border-top:none!important}.theme--dark.v-calendar-daily{background-color:#303030}.theme--dark.v-calendar-daily .v-calendar-daily__intervals-head{border-right:1px solid #9e9e9e}.theme--dark.v-calendar-daily .v-calendar-daily_head-day{border-right:1px solid #9e9e9e;border-bottom:1px solid #9e9e9e;color:#fff}.theme--dark.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-day-label,.theme--dark.v-calendar-daily .v-calendar-daily_head-day.v-past .v-calendar-daily_head-weekday{color:hsla(0,0%,100%,.5)}.theme--dark.v-calendar-daily .v-calendar-daily__intervals-body{border-right:1px solid #9e9e9e}.theme--dark.v-calendar-daily .v-calendar-daily__intervals-body .v-calendar-daily__interval-text{color:#eee}.theme--dark.v-calendar-daily .v-calendar-daily__day{border-right:1px solid #616161;border-bottom:1px solid #616161}.theme--dark.v-calendar-daily .v-calendar-daily__day-interval{border-top:1px solid #616161}.theme--dark.v-calendar-daily .v-calendar-daily__day-interval:first-child{border-top:none!important}.v-calendar-daily{display:flex;flex-direction:column;overflow:hidden;height:100%}.v-calendar-daily__head{flex:none;display:flex}.v-calendar-daily__intervals-head{flex:none;width:44px}.v-calendar-daily_head-day{flex:1 1 auto;width:0}.v-calendar-daily_head-weekday{padding:4px 4px 4px 8px;font-size:14px}.v-calendar-daily_head-day-label,.v-calendar-daily_head-weekday{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-calendar-daily_head-day-label{font-size:40px;padding:0 4px 4px 8px;line-height:40px;cursor:pointer}.v-calendar-daily_head-day-label:hover{text-decoration:underline}.v-calendar-daily__body{flex:1 1 60%;overflow:hidden;display:flex;position:relative;flex-direction:column}.v-calendar-daily__scroll-area{overflow-y:scroll;flex:1 1 auto;display:flex;align-items:flex-start}.v-calendar-daily__pane{width:100%;overflow-y:hidden;flex:none;display:flex;align-items:flex-start}.v-calendar-daily__day-container{display:flex;flex:1;width:100%;height:100%}.v-calendar-daily__intervals-body{flex:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:44px}.v-calendar-daily__interval{text-align:center;border-bottom:none}.v-calendar-daily__interval-text{display:block;position:relative;top:-6px;font-size:10px}.v-calendar-daily__day{flex:1;width:0;position:relative}.theme--light.v-sheet{background-color:#fff;border-color:#fff;color:rgba(0,0,0,.87)}.theme--dark.v-sheet{background-color:#424242;border-color:#424242;color:#fff}.v-sheet{display:block;border-radius:2px;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-sheet--tile{border-radius:0}.v-image{z-index:0}.v-image__image,.v-image__placeholder{z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%}.v-image__image{background-repeat:no-repeat}.v-image__image--preload{filter:blur(2px)}.v-image__image--contain{background-size:contain}.v-image__image--cover{background-size:cover}.v-responsive{position:relative;overflow:hidden;flex:1 0 auto;display:flex}.v-responsive__content{flex:1 0 0px}.v-responsive__sizer{transition:padding-bottom .2s cubic-bezier(.25,.8,.5,1);flex:0 0 0px}.application--is-rtl .v-carousel__prev{left:auto;right:5px}.application--is-rtl .v-carousel__next{left:5px;right:auto}.v-carousel{width:100%;position:relative;overflow:hidden;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-carousel__next,.v-carousel__prev{position:absolute;top:50%;z-index:1;transform:translateY(-50%)}.v-carousel__next .v-btn,.v-carousel__prev .v-btn{margin:0;height:auto;width:auto}.v-carousel__next .v-btn i,.v-carousel__prev .v-btn i{font-size:48px}.v-carousel__next .v-btn:hover,.v-carousel__prev .v-btn:hover{background:none}.v-carousel__prev{left:5px}.v-carousel__next{right:5px}.v-carousel__controls{background:rgba(0,0,0,.5);align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;height:50px;list-style-type:none;width:100%;z-index:1}.v-carousel__controls>.v-item-group{flex:0 1 auto}.v-carousel__controls__item{margin:0 8px!important}.v-carousel__controls__item .v-icon{opacity:.5;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-carousel__controls__item--active .v-icon{opacity:1;vertical-align:middle}.v-carousel__controls__item:hover{background:none}.v-carousel__controls__item:hover .v-icon{opacity:.8}.v-window__container{position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window__container--is-active{overflow:hidden}.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window-x-reverse-transition-leave,.v-window-x-reverse-transition-leave-to,.v-window-x-transition-leave,.v-window-x-transition-leave-to,.v-window-y-reverse-transition-leave,.v-window-y-reverse-transition-leave-to,.v-window-y-transition-leave,.v-window-y-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-x-transition-enter{transform:translateX(100%)}.v-window-x-reverse-transition-enter,.v-window-x-transition-leave-to{transform:translateX(-100%)}.v-window-x-reverse-transition-leave-to{transform:translateX(100%)}.v-window-y-transition-enter{transform:translateY(100%)}.v-window-y-reverse-transition-enter,.v-window-y-transition-leave-to{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)}.theme--light.v-data-iterator .v-data-iterator__actions{color:rgba(0,0,0,.54)}.theme--light.v-data-iterator .v-data-iterator__actions__select .v-select .v-input__append-inner,.theme--light.v-data-iterator .v-data-iterator__actions__select .v-select .v-select__selection--comma{color:rgba(0,0,0,.54)!important}.theme--dark.v-data-iterator .v-data-iterator__actions{color:hsla(0,0%,100%,.7)}.theme--dark.v-data-iterator .v-data-iterator__actions__select .v-select .v-input__append-inner,.theme--dark.v-data-iterator .v-data-iterator__actions__select .v-select .v-select__selection--comma{color:hsla(0,0%,100%,.7)!important}.v-data-iterator__actions{display:flex;justify-content:flex-end;align-items:center;font-size:12px;flex-wrap:wrap-reverse}.v-data-iterator__actions .v-btn{color:inherit}.v-data-iterator__actions .v-btn:last-of-type{margin-left:14px}.v-data-iterator__actions__range-controls{display:flex;align-items:center;min-height:48px}.v-data-iterator__actions__pagination{display:block;text-align:center;margin:0 32px 0 24px}.v-data-iterator__actions__select{display:flex;align-items:center;justify-content:flex-end;margin-right:14px;white-space:nowrap}.v-data-iterator__actions__select .v-select{flex:0 1 0;margin:13px 0 13px 34px;padding:0;position:static}.v-data-iterator__actions__select .v-select__selections{flex-wrap:nowrap}.v-data-iterator__actions__select .v-select__selections .v-select__selection--comma{font-size:12px}.theme--light.v-overflow-btn .v-input__control:before,.theme--light.v-overflow-btn .v-input__slot:before{background-color:rgba(0,0,0,.12)!important}.theme--light.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--light.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--light.v-overflow-btn--editable:hover .v-input__append-inner,.theme--light.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid rgba(0,0,0,.12)}.theme--light.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--light.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--light.v-overflow-btn:hover .v-input__slot{background:#fff}.theme--dark.v-overflow-btn .v-input__control:before,.theme--dark.v-overflow-btn .v-input__slot:before{background-color:hsla(0,0%,100%,.12)!important}.theme--dark.v-overflow-btn--editable.v-input--is-focused .v-input__append-inner,.theme--dark.v-overflow-btn--editable.v-select--is-menu-active .v-input__append-inner,.theme--dark.v-overflow-btn--editable:hover .v-input__append-inner,.theme--dark.v-overflow-btn--segmented .v-input__append-inner{border-left:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-overflow-btn.v-input--is-focused .v-input__slot,.theme--dark.v-overflow-btn.v-select--is-menu-active .v-input__slot,.theme--dark.v-overflow-btn:hover .v-input__slot{background:#424242}.v-overflow-btn{margin-top:12px;padding-top:0}.v-overflow-btn:not(.v-overflow-btn--editable)>.v-input__control>.v-input__slot{cursor:pointer}.v-overflow-btn .v-select__slot{height:48px}.v-overflow-btn .v-select__slot input{margin-left:16px;cursor:pointer}.v-overflow-btn .v-select__selection--comma:first-child{margin-left:16px}.v-overflow-btn .v-input__slot{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-overflow-btn .v-input__slot:after{content:none}.v-overflow-btn .v-label{margin-left:16px;top:calc(50% - 10px)}.v-overflow-btn .v-input__append-inner{width:48px;height:48px;align-self:auto;align-items:center;margin-top:0;padding:0;flex-shrink:0}.v-overflow-btn .v-input__append-outer,.v-overflow-btn .v-input__prepend-outer{margin-top:12px;margin-bottom:12px}.v-overflow-btn .v-input__control:before{height:1px;top:-1px;content:"";left:0;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-overflow-btn.v-input--is-focused .v-input__slot,.v-overflow-btn.v-select--is-menu-active .v-input__slot{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-overflow-btn .v-select__selections{width:0}.v-overflow-btn--segmented .v-select__selections{flex-wrap:nowrap}.v-overflow-btn--segmented .v-select__selections .v-btn{border-radius:0;margin:0 -16px 0 0;height:48px;width:100%}.v-overflow-btn--segmented .v-select__selections .v-btn__content{justify-content:start}.v-overflow-btn--segmented .v-select__selections .v-btn__content:before{background-color:transparent}.v-overflow-btn--editable .v-select__slot input{cursor:text}.v-overflow-btn--editable .v-input__append-inner,.v-overflow-btn--editable .v-input__append-inner *{cursor:pointer}.theme--light.v-table{background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-table thead tr:first-child{border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-table thead th{color:rgba(0,0,0,.54)}.theme--light.v-table tbody tr:not(:last-child){border-bottom:1px solid rgba(0,0,0,.12)}.theme--light.v-table tbody tr[active]{background:#f5f5f5}.theme--light.v-table tbody tr:hover:not(.v-datatable__expand-row){background:#eee}.theme--light.v-table tfoot tr{border-top:1px solid rgba(0,0,0,.12)}.theme--dark.v-table{background-color:#424242;color:#fff}.theme--dark.v-table thead tr:first-child{border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-table thead th{color:hsla(0,0%,100%,.7)}.theme--dark.v-table tbody tr:not(:last-child){border-bottom:1px solid hsla(0,0%,100%,.12)}.theme--dark.v-table tbody tr[active]{background:#505050}.theme--dark.v-table tbody tr:hover:not(.v-datatable__expand-row){background:#616161}.theme--dark.v-table tfoot tr{border-top:1px solid hsla(0,0%,100%,.12)}.v-table__overflow{width:100%;overflow-x:auto;overflow-y:hidden}table.v-table{border-radius:2px;border-collapse:collapse;border-spacing:0;width:100%;max-width:100%}table.v-table tbody td:first-child,table.v-table tbody td:not(:first-child),table.v-table tbody th:first-child,table.v-table tbody th:not(:first-child),table.v-table thead td:first-child,table.v-table thead td:not(:first-child),table.v-table thead th:first-child,table.v-table thead th:not(:first-child){padding:0 24px}table.v-table thead tr{height:56px}table.v-table thead th{font-weight:500;font-size:12px;transition:.3s cubic-bezier(.25,.8,.5,1);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}table.v-table thead th.sortable{pointer-events:auto}table.v-table thead th>div{width:100%}table.v-table tbody tr{transition:background .3s cubic-bezier(.25,.8,.5,1);will-change:background}table.v-table tbody td,table.v-table tbody th{height:48px}table.v-table tbody td{font-weight:400;font-size:13px}table.v-table .input-group--selection-controls{padding:0}table.v-table .input-group--selection-controls .input-group__details{display:none}table.v-table .input-group--selection-controls.checkbox .v-icon{left:50%;transform:translateX(-50%)}table.v-table .input-group--selection-controls.checkbox .input-group--selection-controls__ripple{left:50%;transform:translate(-50%,-50%)}table.v-table tfoot tr{height:48px}table.v-table tfoot tr td{padding:0 24px}.theme--light.v-datatable thead th.column.sortable .v-icon{color:rgba(0,0,0,.38)}.theme--light.v-datatable thead th.column.sortable.active,.theme--light.v-datatable thead th.column.sortable.active .v-icon,.theme--light.v-datatable thead th.column.sortable:hover{color:rgba(0,0,0,.87)}.theme--light.v-datatable .v-datatable__actions{background-color:#fff;color:rgba(0,0,0,.54);border-top:1px solid rgba(0,0,0,.12)}.theme--dark.v-datatable thead th.column.sortable .v-icon{color:hsla(0,0%,100%,.5)}.theme--dark.v-datatable thead th.column.sortable.active,.theme--dark.v-datatable thead th.column.sortable.active .v-icon,.theme--dark.v-datatable thead th.column.sortable:hover{color:#fff}.theme--dark.v-datatable .v-datatable__actions{background-color:#424242;color:hsla(0,0%,100%,.7);border-top:1px solid hsla(0,0%,100%,.12)}.v-datatable .v-input--selection-controls{margin:0;padding:0}.v-datatable thead th.column.sortable{cursor:pointer;outline:0}.v-datatable thead th.column.sortable .v-icon{font-size:16px;display:inline-block;opacity:0;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-datatable thead th.column.sortable:focus .v-icon,.v-datatable thead th.column.sortable:hover .v-icon{opacity:.6}.v-datatable thead th.column.sortable.active{transform:none}.v-datatable thead th.column.sortable.active .v-icon{opacity:1}.v-datatable thead th.column.sortable.active.desc .v-icon{transform:rotate(-180deg)}.v-datatable__actions{display:flex;justify-content:flex-end;align-items:center;font-size:12px;flex-wrap:wrap-reverse}.v-datatable__actions .v-btn{color:inherit}.v-datatable__actions .v-btn:last-of-type{margin-left:14px}.v-datatable__actions__range-controls{display:flex;align-items:center;min-height:48px}.v-datatable__actions__pagination{display:block;text-align:center;margin:0 32px 0 24px}.v-datatable__actions__select{display:flex;align-items:center;justify-content:flex-end;margin-right:14px;white-space:nowrap}.v-datatable__actions__select .v-select{flex:0 1 0;margin:13px 0 13px 34px;padding:0;position:static}.v-datatable__actions__select .v-select__selections{flex-wrap:nowrap}.v-datatable__actions__select .v-select__selections .v-select__selection--comma{font-size:12px}.v-datatable__progress,.v-datatable__progress td,.v-datatable__progress th,.v-datatable__progress tr{height:auto!important}.v-datatable__progress th{padding:0!important}.v-datatable__progress th .v-progress-linear{margin:0}.v-datatable__expand-row{border:none!important}.v-datatable__expand-col{padding:0!important;height:0!important}.v-datatable__expand-col--expanded{border-bottom:1px solid rgba(0,0,0,.12)}.v-datatable__expand-content{transition:height .3s cubic-bezier(.25,.8,.5,1)}.v-datatable__expand-content>.card{border-radius:0;box-shadow:none}.theme--light.v-small-dialog a{color:rgba(0,0,0,.87)}.theme--dark.v-small-dialog a{color:#fff}.theme--light.v-small-dialog__content{background:#fff}.theme--dark.v-small-dialog__content{background:#424242}.theme--light.v-small-dialog__actions{background:#fff}.theme--dark.v-small-dialog__actions{background:#424242}.v-small-dialog{display:block;width:100%;height:100%}.v-small-dialog__content{padding:0 24px}.v-small-dialog__actions{text-align:right;white-space:pre}.v-small-dialog a{display:flex;align-items:center;height:100%;text-decoration:none}.v-small-dialog a>*{width:100%}.v-small-dialog .v-menu__activator{height:100%}.theme--light.v-picker__title{background:#e0e0e0}.theme--dark.v-picker__title{background:#616161}.theme--light.v-picker__body{background:#fff}.theme--dark.v-picker__body{background:#424242}.v-picker{border-radius:2px;contain:layout style;display:inline-flex;flex-direction:column;vertical-align:top;position:relative}.v-picker--full-width{display:flex}.v-picker__title{color:#fff;border-top-left-radius:2px;border-top-right-radius:2px;padding:16px}.v-picker__title__btn{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-picker__title__btn:not(.v-picker__title__btn--active){opacity:.6;cursor:pointer}.v-picker__title__btn:not(.v-picker__title__btn--active):hover:not(:focus){opacity:1}.v-picker__title__btn--readonly{pointer-events:none}.v-picker__title__btn--active{opacity:1}.v-picker__body{height:auto;overflow:hidden;position:relative;z-index:0;flex:1 0 auto;display:flex;flex-direction:column;align-items:center}.v-picker__body>div{width:100%}.v-picker__body>div.fade-transition-leave-active{position:absolute}.v-picker--landscape .v-picker__title{border-top-right-radius:0;border-bottom-right-radius:0;width:170px;position:absolute;top:0;left:0;height:100%;z-index:1}.v-picker--landscape .v-picker__actions,.v-picker--landscape .v-picker__body{margin-left:170px}.application--is-rtl .v-date-picker-title .v-picker__title__btn{text-align:right}.v-date-picker-title{display:flex;justify-content:space-between;flex-direction:column;flex-wrap:wrap;line-height:1}.v-date-picker-title__year{align-items:center;display:inline-flex;font-size:14px;font-weight:500;margin-bottom:8px}.v-date-picker-title__date{font-size:34px;text-align:left;font-weight:500;position:relative;overflow:hidden;padding-bottom:8px;margin-bottom:-8px}.v-date-picker-title__date>div{position:relative}.v-date-picker-title--disabled{pointer-events:none}.theme--light.v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) button:not(:hover):not(:focus){color:rgba(0,0,0,.87)}.theme--light.v-date-picker-header .v-date-picker-header__value--disabled button{color:rgba(0,0,0,.38)}.theme--dark.v-date-picker-header .v-date-picker-header__value:not(.v-date-picker-header__value--disabled) button:not(:hover):not(:focus){color:#fff}.theme--dark.v-date-picker-header .v-date-picker-header__value--disabled button{color:hsla(0,0%,100%,.5)}.v-date-picker-header{padding:4px 16px;align-items:center;display:flex;justify-content:space-between;position:relative}.v-date-picker-header .v-btn{margin:0;z-index:auto}.v-date-picker-header .v-icon{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-date-picker-header__value{flex:1;text-align:center;position:relative;overflow:hidden}.v-date-picker-header__value div{transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-date-picker-header__value button{cursor:pointer;font-weight:700;outline:none;padding:.5rem;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-date-picker-header--disabled{pointer-events:none}.theme--light.v-date-picker-table .v-date-picker-table--date__week,.theme--light.v-date-picker-table th{color:rgba(0,0,0,.38)}.theme--dark.v-date-picker-table .v-date-picker-table--date__week,.theme--dark.v-date-picker-table th{color:hsla(0,0%,100%,.5)}.v-date-picker-table{position:relative;padding:0 12px;height:242px}.v-date-picker-table table{transition:.3s cubic-bezier(.25,.8,.5,1);top:0;table-layout:fixed;width:100%}.v-date-picker-table td,.v-date-picker-table th{text-align:center;position:relative}.v-date-picker-table th{font-size:12px}.v-date-picker-table--date .v-btn{height:32px;width:32px}.v-date-picker-table .v-btn{z-index:auto;margin:0;font-size:12px}.v-date-picker-table .v-btn.v-btn--active{color:#fff}.v-date-picker-table--month td{width:33.333333%;height:56px;vertical-align:middle;text-align:center}.v-date-picker-table--month td .v-btn{margin:0 auto;max-width:160px;min-width:40px;width:100%}.v-date-picker-table--date th{padding:8px 0;font-weight:600}.v-date-picker-table--date td{width:45px}.v-date-picker-table__events{height:8px;left:0;position:absolute;text-align:center;white-space:pre;width:100%}.v-date-picker-table__events>div{border-radius:50%;display:inline-block;height:8px;margin:0 1px;width:8px}.v-date-picker-table--date .v-date-picker-table__events{bottom:6px}.v-date-picker-table--month .v-date-picker-table__events{bottom:8px}.v-date-picker-table--disabled{pointer-events:none}.v-date-picker-years{font-size:16px;font-weight:400;height:286px;list-style-type:none;overflow:auto;padding:0;text-align:center}.v-date-picker-years li{cursor:pointer;padding:8px 0;transition:none}.v-date-picker-years li.active{font-size:26px;font-weight:500;padding:10px 0}.v-date-picker-years li:hover{background:rgba(0,0,0,.12)}.v-picker--landscape .v-date-picker-years{height:286px}.theme--light.v-expansion-panel .v-expansion-panel__container{border-top:1px solid rgba(0,0,0,.12);background-color:#fff;color:rgba(0,0,0,.87)}.theme--light.v-expansion-panel .v-expansion-panel__container .v-expansion-panel__header .v-expansion-panel__header__icon .v-icon{color:rgba(0,0,0,.54)}.theme--light.v-expansion-panel .v-expansion-panel__container--disabled{color:rgba(0,0,0,.38)}.theme--light.v-expansion-panel--focusable .v-expansion-panel__container:focus{background-color:#eee}.theme--dark.v-expansion-panel .v-expansion-panel__container{border-top:1px solid hsla(0,0%,100%,.12);background-color:#424242;color:#fff}.theme--dark.v-expansion-panel .v-expansion-panel__container .v-expansion-panel__header .v-expansion-panel__header__icon .v-icon{color:#fff}.theme--dark.v-expansion-panel .v-expansion-panel__container--disabled{color:hsla(0,0%,100%,.5)}.theme--dark.v-expansion-panel--focusable .v-expansion-panel__container:focus{background-color:#494949}.v-expansion-panel{display:flex;flex-wrap:wrap;justify-content:center;list-style-type:none;padding:0;text-align:left;width:100%;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.v-expansion-panel__container{flex:1 0 100%;max-width:100%;outline:none;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-expansion-panel__container:first-child{border-top:none!important}.v-expansion-panel__container .v-expansion-panel__header__iconnel__header__icon{margin-left:auto}.v-expansion-panel__container--disabled .v-expansion-panel__header{pointer-events:none}.v-expansion-panel__container--active>.v-expansion-panel__header .v-expansion-panel__header__icon .v-icon{transform:rotate(-180deg)}.v-expansion-panel__header{display:flex;cursor:pointer;align-items:center;position:relative;padding:12px 24px;min-height:48px}.v-expansion-panel__header>:not(.v-expansion-panel__header__icon){flex:1 1 auto}.v-expansion-panel__body{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-expansion-panel__body>.v-card{border-radius:0;box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)!important}.v-expansion-panel--inset,.v-expansion-panel--popout{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-expansion-panel--inset .v-expansion-panel__container--active,.v-expansion-panel--popout .v-expansion-panel__container--active{margin:16px;box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)}.v-expansion-panel--inset .v-expansion-panel__container,.v-expansion-panel--popout .v-expansion-panel__container{max-width:95%}.v-expansion-panel--popout .v-expansion-panel__container--active{max-width:100%}.v-expansion-panel--inset .v-expansion-panel__container--active{max-width:85%}.theme--light.v-footer{background:#f5f5f5;color:rgba(0,0,0,.87)}.theme--dark.v-footer{background:#212121;color:#fff}.v-footer{align-items:center;display:flex;flex:0 1 auto!important;min-height:36px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-footer--absolute,.v-footer--fixed{bottom:0;left:0;width:100%;z-index:3}.v-footer--inset{z-index:2}.v-footer--absolute{position:absolute}.v-footer--fixed{position:fixed}.v-form>.container{padding:16px}.v-form>.container>.layout>.flex{padding:8px}.v-form>.container>.layout:only-child{margin:-8px}.v-form>.container>.layout:not(:only-child){margin:auto -8px}.container{flex:1 1 100%;margin:auto;padding:24px;width:100%}.container.fluid{max-width:100%}.container.fill-height{align-items:center;display:flex}.container.fill-height>.layout{height:100%;flex:1 1 auto}.container.grid-list-xs .layout .flex{padding:1px}.container.grid-list-xs .layout:only-child{margin:-1px}.container.grid-list-xs .layout:not(:only-child){margin:auto -1px}.container.grid-list-xs :not(:only-child) .layout:first-child{margin-top:-1px}.container.grid-list-xs :not(:only-child) .layout:last-child{margin-bottom:-1px}.container.grid-list-sm .layout .flex{padding:2px}.container.grid-list-sm .layout:only-child{margin:-2px}.container.grid-list-sm .layout:not(:only-child){margin:auto -2px}.container.grid-list-sm :not(:only-child) .layout:first-child{margin-top:-2px}.container.grid-list-sm :not(:only-child) .layout:last-child{margin-bottom:-2px}.container.grid-list-md .layout .flex{padding:4px}.container.grid-list-md .layout:only-child{margin:-4px}.container.grid-list-md .layout:not(:only-child){margin:auto -4px}.container.grid-list-md :not(:only-child) .layout:first-child{margin-top:-4px}.container.grid-list-md :not(:only-child) .layout:last-child{margin-bottom:-4px}.container.grid-list-lg .layout .flex{padding:8px}.container.grid-list-lg .layout:only-child{margin:-8px}.container.grid-list-lg .layout:not(:only-child){margin:auto -8px}.container.grid-list-lg :not(:only-child) .layout:first-child{margin-top:-8px}.container.grid-list-lg :not(:only-child) .layout:last-child{margin-bottom:-8px}.container.grid-list-xl .layout .flex{padding:12px}.container.grid-list-xl .layout:only-child{margin:-12px}.container.grid-list-xl .layout:not(:only-child){margin:auto -12px}.container.grid-list-xl :not(:only-child) .layout:first-child{margin-top:-12px}.container.grid-list-xl :not(:only-child) .layout:last-child{margin-bottom:-12px}.layout{display:flex;flex:1 1 auto;flex-wrap:nowrap;min-width:0}.layout.row{flex-direction:row}.layout.row.reverse{flex-direction:row-reverse}.layout.column{flex-direction:column}.layout.column.reverse{flex-direction:column-reverse}.layout.column>.flex{max-width:100%}.layout.wrap{flex-wrap:wrap}.child-flex>*,.flex{flex:1 1 auto;max-width:100%}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.align-center{align-items:center}.align-baseline{align-items:baseline}.align-self-start{align-self:flex-start}.align-self-end{align-self:flex-end}.align-self-center{align-self:center}.align-self-baseline{align-self:baseline}.align-content-start{align-content:flex-start}.align-content-end{align-content:flex-end}.align-content-center{align-content:center}.align-content-space-between{align-content:space-between}.align-content-space-around{align-content:space-around}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-space-around{justify-content:space-around}.justify-space-between{justify-content:space-between}.justify-self-start{justify-self:flex-start}.justify-self-end{justify-self:flex-end}.justify-self-center{justify-self:center}.justify-self-baseline{justify-self:baseline}.grow,.spacer{flex-grow:1!important}.grow{flex-shrink:0!important}.shrink{flex-grow:0!important;flex-shrink:1!important}.scroll-y{overflow-y:auto}.fill-height{height:100%}.hide-overflow{overflow:hidden!important}.show-overflow{overflow:visible!important}.ellipsis,.no-wrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-flex>*,.d-inline-flex>*{flex:1 1 auto!important}.d-block{display:block!important}.d-inline-block{display:inline-block!important}.d-inline{display:inline!important}.d-none{display:none!important}@media only screen and (min-width:960px){.container{max-width:900px}}@media only screen and (min-width:1264px){.container{max-width:1185px}}@media only screen and (min-width:1904px){.container{max-width:1785px}}@media only screen and (max-width:959px){.container{padding:16px}}@media (min-width:0){.flex.xs1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-xs1{order:1}.flex.xs2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-xs2{order:2}.flex.xs3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xs3{order:3}.flex.xs4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-xs4{order:4}.flex.xs5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-xs5{order:5}.flex.xs6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xs6{order:6}.flex.xs7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-xs7{order:7}.flex.xs8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-xs8{order:8}.flex.xs9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xs9{order:9}.flex.xs10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-xs10{order:10}.flex.xs11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-xs11{order:11}.flex.xs12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xs12{order:12}.flex.offset-xs0{margin-left:0}.flex.offset-xs1{margin-left:8.333333333333332%}.flex.offset-xs2{margin-left:16.666666666666664%}.flex.offset-xs3{margin-left:25%}.flex.offset-xs4{margin-left:33.33333333333333%}.flex.offset-xs5{margin-left:41.66666666666667%}.flex.offset-xs6{margin-left:50%}.flex.offset-xs7{margin-left:58.333333333333336%}.flex.offset-xs8{margin-left:66.66666666666666%}.flex.offset-xs9{margin-left:75%}.flex.offset-xs10{margin-left:83.33333333333334%}.flex.offset-xs11{margin-left:91.66666666666666%}.flex.offset-xs12{margin-left:100%}}@media (min-width:600px){.flex.sm1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-sm1{order:1}.flex.sm2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-sm2{order:2}.flex.sm3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-sm3{order:3}.flex.sm4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-sm4{order:4}.flex.sm5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-sm5{order:5}.flex.sm6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-sm6{order:6}.flex.sm7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-sm7{order:7}.flex.sm8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-sm8{order:8}.flex.sm9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-sm9{order:9}.flex.sm10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-sm10{order:10}.flex.sm11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-sm11{order:11}.flex.sm12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-sm12{order:12}.flex.offset-sm0{margin-left:0}.flex.offset-sm1{margin-left:8.333333333333332%}.flex.offset-sm2{margin-left:16.666666666666664%}.flex.offset-sm3{margin-left:25%}.flex.offset-sm4{margin-left:33.33333333333333%}.flex.offset-sm5{margin-left:41.66666666666667%}.flex.offset-sm6{margin-left:50%}.flex.offset-sm7{margin-left:58.333333333333336%}.flex.offset-sm8{margin-left:66.66666666666666%}.flex.offset-sm9{margin-left:75%}.flex.offset-sm10{margin-left:83.33333333333334%}.flex.offset-sm11{margin-left:91.66666666666666%}.flex.offset-sm12{margin-left:100%}}@media (min-width:960px){.flex.md1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-md1{order:1}.flex.md2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-md2{order:2}.flex.md3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-md3{order:3}.flex.md4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-md4{order:4}.flex.md5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-md5{order:5}.flex.md6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-md6{order:6}.flex.md7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-md7{order:7}.flex.md8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-md8{order:8}.flex.md9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-md9{order:9}.flex.md10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-md10{order:10}.flex.md11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-md11{order:11}.flex.md12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-md12{order:12}.flex.offset-md0{margin-left:0}.flex.offset-md1{margin-left:8.333333333333332%}.flex.offset-md2{margin-left:16.666666666666664%}.flex.offset-md3{margin-left:25%}.flex.offset-md4{margin-left:33.33333333333333%}.flex.offset-md5{margin-left:41.66666666666667%}.flex.offset-md6{margin-left:50%}.flex.offset-md7{margin-left:58.333333333333336%}.flex.offset-md8{margin-left:66.66666666666666%}.flex.offset-md9{margin-left:75%}.flex.offset-md10{margin-left:83.33333333333334%}.flex.offset-md11{margin-left:91.66666666666666%}.flex.offset-md12{margin-left:100%}}@media (min-width:1264px){.flex.lg1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-lg1{order:1}.flex.lg2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-lg2{order:2}.flex.lg3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-lg3{order:3}.flex.lg4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-lg4{order:4}.flex.lg5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-lg5{order:5}.flex.lg6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-lg6{order:6}.flex.lg7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-lg7{order:7}.flex.lg8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-lg8{order:8}.flex.lg9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-lg9{order:9}.flex.lg10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-lg10{order:10}.flex.lg11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-lg11{order:11}.flex.lg12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-lg12{order:12}.flex.offset-lg0{margin-left:0}.flex.offset-lg1{margin-left:8.333333333333332%}.flex.offset-lg2{margin-left:16.666666666666664%}.flex.offset-lg3{margin-left:25%}.flex.offset-lg4{margin-left:33.33333333333333%}.flex.offset-lg5{margin-left:41.66666666666667%}.flex.offset-lg6{margin-left:50%}.flex.offset-lg7{margin-left:58.333333333333336%}.flex.offset-lg8{margin-left:66.66666666666666%}.flex.offset-lg9{margin-left:75%}.flex.offset-lg10{margin-left:83.33333333333334%}.flex.offset-lg11{margin-left:91.66666666666666%}.flex.offset-lg12{margin-left:100%}}@media (min-width:1904px){.flex.xl1{flex-basis:8.333333333333332%;flex-grow:0;max-width:8.333333333333332%}.flex.order-xl1{order:1}.flex.xl2{flex-basis:16.666666666666664%;flex-grow:0;max-width:16.666666666666664%}.flex.order-xl2{order:2}.flex.xl3{flex-basis:25%;flex-grow:0;max-width:25%}.flex.order-xl3{order:3}.flex.xl4{flex-basis:33.33333333333333%;flex-grow:0;max-width:33.33333333333333%}.flex.order-xl4{order:4}.flex.xl5{flex-basis:41.66666666666667%;flex-grow:0;max-width:41.66666666666667%}.flex.order-xl5{order:5}.flex.xl6{flex-basis:50%;flex-grow:0;max-width:50%}.flex.order-xl6{order:6}.flex.xl7{flex-basis:58.333333333333336%;flex-grow:0;max-width:58.333333333333336%}.flex.order-xl7{order:7}.flex.xl8{flex-basis:66.66666666666666%;flex-grow:0;max-width:66.66666666666666%}.flex.order-xl8{order:8}.flex.xl9{flex-basis:75%;flex-grow:0;max-width:75%}.flex.order-xl9{order:9}.flex.xl10{flex-basis:83.33333333333334%;flex-grow:0;max-width:83.33333333333334%}.flex.order-xl10{order:10}.flex.xl11{flex-basis:91.66666666666666%;flex-grow:0;max-width:91.66666666666666%}.flex.order-xl11{order:11}.flex.xl12{flex-basis:100%;flex-grow:0;max-width:100%}.flex.order-xl12{order:12}.flex.offset-xl0{margin-left:0}.flex.offset-xl1{margin-left:8.333333333333332%}.flex.offset-xl2{margin-left:16.666666666666664%}.flex.offset-xl3{margin-left:25%}.flex.offset-xl4{margin-left:33.33333333333333%}.flex.offset-xl5{margin-left:41.66666666666667%}.flex.offset-xl6{margin-left:50%}.flex.offset-xl7{margin-left:58.333333333333336%}.flex.offset-xl8{margin-left:66.66666666666666%}.flex.offset-xl9{margin-left:75%}.flex.offset-xl10{margin-left:83.33333333333334%}.flex.offset-xl11{margin-left:91.66666666666666%}.flex.offset-xl12{margin-left:100%}}.v-content{transition:none;display:flex;flex:1 0 auto;max-width:100%}.v-content[data-booted=true]{transition:.2s cubic-bezier(.4,0,.2,1)}.v-content__wrap{flex:1 1 auto;max-width:100%;position:relative}@media print{@-moz-document url-prefix(){.v-content{display:block}}}.theme--light.v-jumbotron .v-jumbotron__content{color:rgba(0,0,0,.87)}.theme--dark.v-jumbotron .v-jumbotron__content{color:#fff}.v-jumbotron{display:block;top:0;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-jumbotron__wrapper{height:100%;overflow:hidden;position:relative;transition:inherit;width:100%}.v-jumbotron__background{position:absolute;top:0;left:0;right:0;bottom:0;contain:strict;transition:inherit}.v-jumbotron__image{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);min-width:100%;will-change:transform;transition:inherit}.v-jumbotron__content{height:100%;position:relative;transition:inherit}.theme--light.v-navigation-drawer{background-color:#fff}.theme--light.v-navigation-drawer:not(.v-navigation-drawer--floating) .v-navigation-drawer__border{background-color:rgba(0,0,0,.12)}.theme--light.v-navigation-drawer .v-divider{border-color:rgba(0,0,0,.12)}.theme--dark.v-navigation-drawer{background-color:#424242}.theme--dark.v-navigation-drawer:not(.v-navigation-drawer--floating) .v-navigation-drawer__border{background-color:hsla(0,0%,100%,.12)}.theme--dark.v-navigation-drawer .v-divider{border-color:hsla(0,0%,100%,.12)}.v-navigation-drawer{transition:none;display:block;left:0;max-width:100%;overflow-y:auto;overflow-x:hidden;pointer-events:auto;top:0;will-change:transform;z-index:3;-webkit-overflow-scrolling:touch}.v-navigation-drawer[data-booted=true]{transition:.2s cubic-bezier(.4,0,.2,1);transition-property:transform,width}.v-navigation-drawer__border{position:absolute;right:0;top:0;height:100%;width:1px}.v-navigation-drawer.v-navigation-drawer--right:after{left:0;right:auto}.v-navigation-drawer--right{left:auto;right:0}.v-navigation-drawer--right>.v-navigation-drawer__border{right:auto;left:0}.v-navigation-drawer--absolute{position:absolute}.v-navigation-drawer--fixed{position:fixed}.v-navigation-drawer--floating:after{display:none}.v-navigation-drawer--mini-variant{overflow:hidden}.v-navigation-drawer--mini-variant .v-list__group__header__prepend-icon{flex:1 0 auto;justify-content:center;width:100%}.v-navigation-drawer--mini-variant .v-list__tile__action,.v-navigation-drawer--mini-variant .v-list__tile__avatar{justify-content:center;min-width:48px}.v-navigation-drawer--mini-variant .v-list__tile:after,.v-navigation-drawer--mini-variant .v-list__tile__content{opacity:0}.v-navigation-drawer--mini-variant .v-divider,.v-navigation-drawer--mini-variant .v-list--group,.v-navigation-drawer--mini-variant .v-subheader{display:none!important}.v-navigation-drawer--is-mobile,.v-navigation-drawer--temporary{z-index:6}.v-navigation-drawer--is-mobile:not(.v-navigation-drawer--close),.v-navigation-drawer--temporary:not(.v-navigation-drawer--close){box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.v-navigation-drawer .v-list{background:inherit}.v-navigation-drawer>.v-list .v-list__tile{transition:none;font-weight:500}.v-navigation-drawer>.v-list .v-list__tile--active .v-list__tile__title{color:inherit}.v-navigation-drawer>.v-list .v-list--group .v-list__tile{font-weight:400}.v-navigation-drawer>.v-list .v-list--group__header--active:after{background:transparent}.v-navigation-drawer>.v-list:not(.v-list--dense) .v-list__tile{font-size:14px}.theme--light.v-pagination .v-pagination__item{background:#fff;color:#000;width:auto;min-width:34px;padding:0 5px}.theme--light.v-pagination .v-pagination__item--active{color:#fff}.theme--light.v-pagination .v-pagination__navigation{background:#fff}.theme--light.v-pagination .v-pagination__navigation .v-icon{color:rgba(0,0,0,.54)}.theme--dark.v-pagination .v-pagination__item{background:#424242;color:#fff;width:auto;min-width:34px;padding:0 5px}.theme--dark.v-pagination .v-pagination__item--active{color:#fff}.theme--dark.v-pagination .v-pagination__navigation{background:#424242}.theme--dark.v-pagination .v-pagination__navigation .v-icon{color:#fff}.v-pagination{align-items:center;display:inline-flex;list-style-type:none;margin:0;max-width:100%;padding:0}.v-pagination>li{align-items:center;display:flex}.v-pagination--circle .v-pagination__item,.v-pagination--circle .v-pagination__more,.v-pagination--circle .v-pagination__navigation{border-radius:50%}.v-pagination--disabled{pointer-events:none;opacity:.6}.v-pagination__item{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);border-radius:4px;font-size:14px;background:transparent;height:34px;width:34px;margin:.3rem;text-decoration:none;transition:.3s cubic-bezier(0,0,.2,1)}.v-pagination__item--active{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-pagination__navigation{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);display:inline-flex;justify-content:center;align-items:center;text-decoration:none;height:2rem;border-radius:4px;width:2rem;margin:.3rem 10px}.v-pagination__navigation .v-icon{font-size:2rem;transition:.2s cubic-bezier(.4,0,.6,1);vertical-align:middle}.v-pagination__navigation--disabled{opacity:.6;pointer-events:none}.v-pagination__more{margin:.3rem;display:inline-flex;align-items:flex-end;justify-content:center;height:2rem;width:2rem}.v-parallax{position:relative;overflow:hidden;z-index:0}.v-parallax__image-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;contain:strict}.v-parallax__image{position:absolute;bottom:0;left:50%;min-width:100%;min-height:100%;display:none;transform:translate(-50%);will-change:transform;transition:opacity .3s cubic-bezier(.25,.8,.5,1);z-index:1}.v-parallax__content{color:#fff;height:100%;z-index:2;position:relative;display:flex;flex-direction:column;justify-content:center;padding:0 1rem}.v-input--radio-group__input{display:flex;width:100%}.v-input--radio-group--column .v-input--radio-group__input>.v-label{padding-bottom:8px}.v-input--radio-group--row .v-input--radio-group__input>.v-label{padding-right:8px}.v-input--radio-group--row .v-input--radio-group__input{flex-direction:row;flex-wrap:wrap}.v-input--radio-group--column .v-radio:not(:last-child):not(:only-child){margin-bottom:8px}.v-input--radio-group--column .v-input--radio-group__input{flex-direction:column}.theme--light.v-radio--is-disabled label{color:rgba(0,0,0,.38)}.theme--light.v-radio--is-disabled .v-icon{color:rgba(0,0,0,.26)!important}.theme--dark.v-radio--is-disabled label{color:hsla(0,0%,100%,.5)}.theme--dark.v-radio--is-disabled .v-icon{color:hsla(0,0%,100%,.3)!important}.v-radio{align-items:center;display:flex;height:auto;margin-right:16px;outline:none}.v-radio--is-disabled{pointer-events:none}.theme--light.v-input--range-slider.v-input--slider.v-input--is-disabled .v-slider.v-slider .v-slider__thumb{background:#bdbdbd}.theme--dark.v-input--range-slider.v-input--slider.v-input--is-disabled .v-slider.v-slider .v-slider__thumb{background:#424242}.v-input--range-slider.v-input--is-disabled .v-slider__track-fill{display:none}.v-input--range-slider.v-input--is-disabled.v-input--slider .v-slider.v-slider .v-slider__thumb{border-color:transparent}.theme--light.v-input--slider .v-slider__track,.theme--light.v-input--slider .v-slider__track-fill{background:rgba(0,0,0,.26)}.theme--light.v-input--slider .v-slider__track__container:after{border:1px solid rgba(0,0,0,.87)}.theme--light.v-input--slider .v-slider__ticks{border-color:rgba(0,0,0,.87);color:rgba(0,0,0,.54)}.theme--light.v-input--slider:not(.v-input--is-dirty) .v-slider__thumb-label{background:rgba(0,0,0,.26)}.theme--light.v-input--slider:not(.v-input--is-dirty) .v-slider__thumb{border:3px solid rgba(0,0,0,.26)}.theme--light.v-input--slider:not(.v-input--is-dirty).v-input--slider--is-active .v-slider__thumb{border:3px solid rgba(0,0,0,.38)}.theme--light.v-input--slider.v-input--is-disabled .v-slider__thumb{border:5px solid rgba(0,0,0,.26)}.theme--light.v-input--slider.v-input--is-disabled.v-input--is-dirty .v-slider__thumb{background:rgba(0,0,0,.26)}.theme--light.v-input--slider.v-input--slider--is-active .v-slider__track{background:rgba(0,0,0,.38)}.theme--dark.v-input--slider .v-slider__track,.theme--dark.v-input--slider .v-slider__track-fill{background:hsla(0,0%,100%,.2)}.theme--dark.v-input--slider .v-slider__track__container:after{border:1px solid #fff}.theme--dark.v-input--slider .v-slider__ticks{border-color:#fff;color:hsla(0,0%,100%,.7)}.theme--dark.v-input--slider:not(.v-input--is-dirty) .v-slider__thumb-label{background:hsla(0,0%,100%,.2)}.theme--dark.v-input--slider:not(.v-input--is-dirty) .v-slider__thumb{border:3px solid hsla(0,0%,100%,.2)}.theme--dark.v-input--slider:not(.v-input--is-dirty).v-input--slider--is-active .v-slider__thumb{border:3px solid hsla(0,0%,100%,.3)}.theme--dark.v-input--slider.v-input--is-disabled .v-slider__thumb{border:5px solid hsla(0,0%,100%,.2)}.theme--dark.v-input--slider.v-input--is-disabled.v-input--is-dirty .v-slider__thumb{background:hsla(0,0%,100%,.2)}.theme--dark.v-input--slider.v-input--slider--is-active .v-slider__track{background:hsla(0,0%,100%,.3)}.application--is-rtl .v-input--slider .v-label{margin-left:16px;margin-right:0}.v-input--slider{margin-top:16px}.v-input--slider.v-input--is-focused .v-slider__thumb-container--is-active:not(.v-slider__thumb-container--show-label):before{opacity:.2;transform:scale(1)}.v-input--slider.v-input--is-focused .v-slider__track{transition:none}.v-input--slider.v-input--is-focused.v-input--slider--ticks .v-slider .v-slider__tick,.v-input--slider.v-input--is-focused.v-input--slider--ticks .v-slider__track__container:after,.v-input--slider.v-input--slider--ticks .v-slider__ticks.v-slider__ticks--always-show{opacity:1}.v-input--slider.v-input--slider--ticks-labels .v-input__slot{margin-bottom:16px}.v-input--slider.v-input--is-readonly .v-input__control{pointer-events:none}.v-input--slider.v-input--is-disabled .v-slider__thumb{transform:translateY(-50%) scale(.45)}.v-input--slider.v-input--is-disabled.v-input--is-dirty .v-slider__thumb{border:0 solid transparent}.v-input--slider .v-input__slot>:first-child:not(:only-child){margin-right:16px}.v-slider{cursor:default;display:flex;align-items:center;position:relative;height:32px;flex:1;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider input{cursor:default;opacity:0;padding:0;width:100%}.v-slider__track__container{height:2px;left:0;overflow:hidden;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:100%}.v-slider__track__container:after{content:"";position:absolute;right:0;top:0;height:2px;transition:.3s cubic-bezier(.25,.8,.5,1);width:2px;opacity:0}.v-slider__thumb,.v-slider__ticks,.v-slider__track{position:absolute;top:0}.v-slider__track{transform-origin:right;overflow:hidden}.v-slider__track,.v-slider__track-fill{height:2px;left:0;transition:.3s cubic-bezier(.25,.8,.5,1);width:100%}.v-slider__track-fill{position:absolute;transform-origin:left}.v-slider__ticks-container{position:absolute;left:0;height:2px;width:100%;top:50%;transform:translateY(-50%)}.v-slider__ticks{opacity:0;border-style:solid;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__ticks>span{position:absolute;top:8px;transform:translateX(-50%);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider__ticks:first-child>span{transform:translateX(0)}.v-slider__ticks:last-child>span{transform:translateX(-100%)}.v-slider:not(.v-input--is-dirty) .v-slider__ticks:first-child{border-color:transparent}.v-slider__thumb-container{position:absolute;top:50%;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__thumb-container:before{content:"";color:inherit;background:currentColor;height:32px;left:-16px;opacity:0;overflow:hidden;pointer-events:none;position:absolute;top:-16px;transform:scale(.2);width:32px;will-change:transform,opacity}.v-slider__thumb,.v-slider__thumb-container:before{border-radius:50%;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider__thumb{width:24px;height:24px;left:-12px;top:50%;background:transparent;transform:translateY(-50%) scale(.6);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider--is-active .v-slider__thumb-container--is-active .v-slider__thumb{transform:translateY(-50%) scale(1)}.v-slider--is-active .v-slider__thumb-container--is-active.v-slider__thumb-container--show-label .v-slider__thumb{transform:translateY(-50%) scale(0)}.v-slider--is-active .v-slider__ticks-container .v-slider__ticks{opacity:1}.v-slider__thumb-label__container{top:0}.v-slider__thumb-label,.v-slider__thumb-label__container{position:absolute;left:0;transition:.3s cubic-bezier(.25,.8,.25,1)}.v-slider__thumb-label{display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;width:32px;height:32px;border-radius:50% 50% 0;bottom:100%;transform:translateY(-20%) translateY(-12px) translateX(-50%) rotate(45deg);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-slider__thumb-label>*{transform:rotate(-45deg)}.v-slider__track,.v-slider__track-fill{position:absolute}.v-rating .v-icon{padding:.5rem;border-radius:50%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-rating--readonly .v-icon{pointer-events:none}.v-rating--dense .v-icon{padding:.1rem}.application--is-rtl .v-snack__content .v-btn{margin:0 24px 0 0}.v-snack{position:fixed;display:flex;align-items:center;color:#fff;pointer-events:none;z-index:1000;font-size:14px;left:0;right:0}.v-snack--absolute{position:absolute}.v-snack--top{top:0}.v-snack--bottom{bottom:0}.v-snack__wrapper{background-color:#323232;pointer-events:auto;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.v-snack__content,.v-snack__wrapper{display:flex;align-items:center;width:100%}.v-snack__content{height:48px;padding:14px 24px;justify-content:space-between;overflow:hidden}.v-snack__content .v-btn{color:#fff;flex:0 0 auto;padding:8px;margin:0 0 0 24px;height:auto;min-width:auto;width:auto}.v-snack__content .v-btn__content{margin:-2px}.v-snack__content .v-btn:before{display:none}.v-snack--multi-line .v-snack__content{height:80px;padding:24px}.v-snack--vertical .v-snack__content{height:112px;padding:24px 24px 14px;flex-direction:column;align-items:stretch}.v-snack--vertical .v-snack__content .v-btn.v-btn{justify-content:flex-end;padding:0;margin-left:0;margin-top:24px}.v-snack--vertical .v-snack__content .v-btn__content{flex:0 0 auto;margin:0}.v-snack--auto-height .v-snack__content{height:auto}.v-snack-transition-enter-active,.v-snack-transition-leave-active{transition:transform .4s cubic-bezier(.25,.8,.5,1)}.v-snack-transition-enter-active .v-snack__content,.v-snack-transition-leave-active .v-snack__content{transition:opacity .3s linear .1s}.v-snack-transition-enter .v-snack__content{opacity:0}.v-snack-transition-enter-to .v-snack__content,.v-snack-transition-leave .v-snack__content{opacity:1}.v-snack-transition-enter.v-snack.v-snack--top,.v-snack-transition-leave-to.v-snack.v-snack--top{transform:translateY(calc(-100% - 8px))}.v-snack-transition-enter.v-snack.v-snack--bottom,.v-snack-transition-leave-to.v-snack.v-snack--bottom{transform:translateY(100%)}@media only screen and (min-width:600px){.application--is-rtl .v-snack__content .v-btn:first-of-type{margin-left:0;margin-right:42px}.v-snack__wrapper{width:auto;max-width:568px;min-width:288px;margin:0 auto;border-radius:2px}.v-snack--left .v-snack__wrapper{margin-left:0}.v-snack--right .v-snack__wrapper{margin-right:0}.v-snack--left,.v-snack--right{margin:0 24px}.v-snack--left.v-snack--top,.v-snack--right.v-snack--top{transform:translateY(24px)}.v-snack--left.v-snack--bottom,.v-snack--right.v-snack--bottom{transform:translateY(-24px)}.v-snack__content .v-btn:first-of-type{margin-left:42px}}.v-speed-dial{position:relative}.v-speed-dial--absolute{position:absolute}.v-speed-dial--fixed{position:fixed}.v-speed-dial--absolute,.v-speed-dial--fixed{z-index:4}.v-speed-dial--absolute>.v-btn--floating,.v-speed-dial--fixed>.v-btn--floating{margin:0}.v-speed-dial--top:not(.v-speed-dial--absolute){top:16px}.v-speed-dial--top.v-speed-dial--absolute{top:50%;transform:translateY(-50%)}.v-speed-dial--bottom:not(.v-speed-dial--absolute){bottom:16px}.v-speed-dial--bottom.v-speed-dial--absolute{bottom:50%;transform:translateY(50%)}.v-speed-dial--left{left:16px}.v-speed-dial--right{right:16px}.v-speed-dial--direction-left .v-speed-dial__list,.v-speed-dial--direction-right .v-speed-dial__list{height:100%;top:0}.v-speed-dial--direction-bottom .v-speed-dial__list,.v-speed-dial--direction-top .v-speed-dial__list{left:0;width:100%}.v-speed-dial--direction-top .v-speed-dial__list{flex-direction:column-reverse;bottom:100%}.v-speed-dial--direction-right .v-speed-dial__list{flex-direction:row;left:100%}.v-speed-dial--direction-bottom .v-speed-dial__list{flex-direction:column;top:100%}.v-speed-dial--direction-left .v-speed-dial__list{flex-direction:row-reverse;right:100%}.v-speed-dial__list{align-items:center;display:flex;justify-content:center;position:absolute}.theme--light.v-stepper{background:#fff}.theme--light.v-stepper .v-stepper__step:not(.v-stepper__step--active):not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__step__step{background:rgba(0,0,0,.38)}.theme--light.v-stepper .v-stepper__step__step,.theme--light.v-stepper .v-stepper__step__step .v-icon{color:#fff}.theme--light.v-stepper .v-stepper__header .v-divider{border-color:rgba(0,0,0,.12)}.theme--light.v-stepper .v-stepper__step--active .v-stepper__label{text-shadow:0 0 0 #000}.theme--light.v-stepper .v-stepper__step--editable:hover{background:rgba(0,0,0,.06)}.theme--light.v-stepper .v-stepper__step--editable:hover .v-stepper__label{text-shadow:0 0 0 #000}.theme--light.v-stepper .v-stepper__step--complete .v-stepper__label{color:rgba(0,0,0,.87)}.theme--light.v-stepper .v-stepper__step--inactive.v-stepper__step--editable:not(.v-stepper__step--error):hover .v-stepper__step__step{background:rgba(0,0,0,.54)}.theme--light.v-stepper .v-stepper__label{color:rgba(0,0,0,.38)}.theme--light.v-stepper--non-linear .v-stepper__step:not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__label,.theme--light.v-stepper .v-stepper__label small{color:rgba(0,0,0,.54)}.theme--light.v-stepper--vertical .v-stepper__content:not(:last-child){border-left:1px solid rgba(0,0,0,.12)}.theme--dark.v-stepper{background:#303030}.theme--dark.v-stepper .v-stepper__step:not(.v-stepper__step--active):not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__step__step{background:hsla(0,0%,100%,.5)}.theme--dark.v-stepper .v-stepper__step__step,.theme--dark.v-stepper .v-stepper__step__step .v-icon{color:#fff}.theme--dark.v-stepper .v-stepper__header .v-divider{border-color:hsla(0,0%,100%,.12)}.theme--dark.v-stepper .v-stepper__step--active .v-stepper__label{text-shadow:0 0 0 #fff}.theme--dark.v-stepper .v-stepper__step--editable:hover{background:hsla(0,0%,100%,.06)}.theme--dark.v-stepper .v-stepper__step--editable:hover .v-stepper__label{text-shadow:0 0 0 #fff}.theme--dark.v-stepper .v-stepper__step--complete .v-stepper__label{color:hsla(0,0%,100%,.87)}.theme--dark.v-stepper .v-stepper__step--inactive.v-stepper__step--editable:not(.v-stepper__step--error):hover .v-stepper__step__step{background:hsla(0,0%,100%,.75)}.theme--dark.v-stepper .v-stepper__label{color:hsla(0,0%,100%,.5)}.theme--dark.v-stepper--non-linear .v-stepper__step:not(.v-stepper__step--complete):not(.v-stepper__step--error) .v-stepper__label,.theme--dark.v-stepper .v-stepper__label small{color:hsla(0,0%,100%,.7)}.theme--dark.v-stepper--vertical .v-stepper__content:not(:last-child){border-left:1px solid hsla(0,0%,100%,.12)}.application--is-rtl .v-stepper .v-stepper__step__step{margin-right:0;margin-left:12px}.v-stepper{overflow:hidden;position:relative}.v-stepper,.v-stepper__header{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-stepper__header{height:72px;align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between}.v-stepper__header .v-divider{align-self:center;margin:0 -16px}.v-stepper__items{position:relative;overflow:hidden}.v-stepper__step__step{align-items:center;border-radius:50%;display:inline-flex;font-size:12px;justify-content:center;height:24px;margin-right:8px;min-width:24px;width:24px;transition:.3s cubic-bezier(.25,.8,.25,1)}.v-stepper__step__step .v-icon{font-size:18px}.v-stepper__step{align-items:center;display:flex;flex-direction:row;padding:24px;position:relative}.v-stepper__step--active .v-stepper__label{transition:.3s cubic-bezier(.4,0,.6,1)}.v-stepper__step--editable{cursor:pointer}.v-stepper__step.v-stepper__step--error .v-stepper__step__step{background:transparent;color:inherit}.v-stepper__step.v-stepper__step--error .v-stepper__step__step .v-icon{font-size:24px;color:inherit}.v-stepper__step.v-stepper__step--error .v-stepper__label{color:inherit;text-shadow:none;font-weight:500}.v-stepper__step.v-stepper__step--error .v-stepper__label small{color:inherit}.v-stepper__label{align-items:flex-start;display:flex;flex-direction:column;text-align:left}.v-stepper__label small{font-size:12px;font-weight:300;text-shadow:none}.v-stepper__wrapper{overflow:hidden;transition:none}.v-stepper__content{top:0;padding:24px 24px 16px;flex:1 0 auto;width:100%}.v-stepper__content>.v-btn{margin:24px 8px 8px 0}.v-stepper--is-booted .v-stepper__content,.v-stepper--is-booted .v-stepper__wrapper{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-stepper--vertical{padding-bottom:36px}.v-stepper--vertical .v-stepper__content{margin:-8px -36px -16px 36px;padding:16px 60px 16px 23px;width:auto}.v-stepper--vertical .v-stepper__step{padding:24px 24px 16px}.v-stepper--vertical .v-stepper__step__step{margin-right:12px}.v-stepper--alt-labels .v-stepper__header{height:auto}.v-stepper--alt-labels .v-stepper__header .v-divider{margin:35px -67px 0;align-self:flex-start}.v-stepper--alt-labels .v-stepper__step{flex-direction:column;justify-content:flex-start;align-items:center;flex-basis:175px}.v-stepper--alt-labels .v-stepper__step small{align-self:center}.v-stepper--alt-labels .v-stepper__step__step{margin-right:0;margin-bottom:11px}@media only screen and (max-width:959px){.v-stepper:not(.v-stepper--vertical) .v-stepper__label{display:none}.v-stepper:not(.v-stepper--vertical) .v-stepper__step__step{margin-right:0}}.theme--light.v-input--switch__thumb{color:#fafafa}.theme--light.v-input--switch__track{color:rgba(0,0,0,.38)}.theme--light.v-input--switch.v-input--is-disabled .v-input--switch__thumb{color:#bdbdbd!important}.theme--light.v-input--switch.v-input--is-disabled .v-input--switch__track{color:rgba(0,0,0,.12)!important}.theme--dark.v-input--switch__thumb{color:#bdbdbd}.theme--dark.v-input--switch__track{color:hsla(0,0%,100%,.3)}.theme--dark.v-input--switch.v-input--is-disabled .v-input--switch__thumb{color:#424242!important}.theme--dark.v-input--switch.v-input--is-disabled .v-input--switch__track{color:hsla(0,0%,100%,.1)!important}.application--is-rtl .v-input--switch .v-input--selection-controls__ripple{left:auto;right:-14px}.application--is-rtl .v-input--switch.v-input--is-dirty .v-input--selection-controls__ripple,.application--is-rtl .v-input--switch.v-input--is-dirty .v-input--switch__thumb{transform:translate(-16px)}.v-input--switch__thumb,.v-input--switch__track{background-color:currentColor;pointer-events:none;transition:inherit}.v-input--switch__track{border-radius:8px;height:14px;left:2px;opacity:.6;position:absolute;right:2px;top:calc(50% - 7px)}.v-input--switch__thumb{border-radius:50%;top:calc(50% - 10px);height:20px;position:relative;width:20px;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.v-input--switch .v-input--selection-controls__input{width:38px}.v-input--switch .v-input--selection-controls__ripple{left:-14px;top:calc(50% - 24px)}.v-input--switch.v-input--is-dirty .v-input--selection-controls__ripple,.v-input--switch.v-input--is-dirty .v-input--switch__thumb{transform:translate(16px)}.theme--light.v-system-bar{background-color:#e0e0e0;color:rgba(0,0,0,.54)}.theme--light.v-system-bar .v-icon{color:rgba(0,0,0,.54)}.theme--light.v-system-bar--lights-out{background-color:hsla(0,0%,100%,.7)!important}.theme--dark.v-system-bar{background-color:#000;color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar .v-icon{color:hsla(0,0%,100%,.7)}.theme--dark.v-system-bar--lights-out{background-color:rgba(0,0,0,.2)!important}.v-system-bar{align-items:center;display:flex;font-size:14px;font-weight:500;padding:0 8px}.v-system-bar .v-icon{font-size:16px}.v-system-bar--absolute,.v-system-bar--fixed{left:0;top:0;width:100%;z-index:3}.v-system-bar--fixed{position:fixed}.v-system-bar--absolute{position:absolute}.v-system-bar--status .v-icon{margin-right:4px}.v-system-bar--window .v-icon{font-size:20px;margin-right:8px}.theme--light.v-tabs__bar{background-color:#fff}.theme--light.v-tabs__bar .v-tabs__div{color:rgba(0,0,0,.87)}.theme--light.v-tabs__bar .v-tabs__item--disabled{color:rgba(0,0,0,.26)}.theme--dark.v-tabs__bar{background-color:#424242}.theme--dark.v-tabs__bar .v-tabs__div{color:#fff}.theme--dark.v-tabs__bar .v-tabs__item--disabled{color:hsla(0,0%,100%,.3)}.v-tabs,.v-tabs__bar{position:relative}.v-tabs__bar{border-radius:inherit}.v-tabs__icon{align-items:center;cursor:pointer;display:inline-flex;height:100%;position:absolute;top:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:32px}.v-tabs__icon--prev{left:4px}.v-tabs__icon--next{right:4px}.v-tabs__wrapper{overflow:hidden;contain:content;display:flex}.v-tabs__wrapper--show-arrows{margin-left:40px;margin-right:40px}.v-tabs__wrapper--show-arrows .v-tabs__container--align-with-title{padding-left:16px}.v-tabs__container{flex:1 0 auto;display:flex;height:48px;list-style-type:none;transition:transform .6s cubic-bezier(.86,0,.07,1);white-space:nowrap;position:relative}.v-tabs__container--overflow .v-tabs__div{flex:1 0 auto}.v-tabs__container--grow .v-tabs__div{flex:1 0 auto;max-width:none}.v-tabs__container--icons-and-text{height:72px}.v-tabs__container--align-with-title{padding-left:56px}.v-tabs__container--fixed-tabs .v-tabs__div,.v-tabs__container--icons-and-text .v-tabs__div{min-width:72px}.v-tabs__container--centered .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--centered>.v-tabs__div:first-child,.v-tabs__container--fixed-tabs .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--fixed-tabs>.v-tabs__div:first-child,.v-tabs__container--right .v-tabs__slider-wrapper+.v-tabs__div,.v-tabs__container--right>.v-tabs__div:first-child{margin-left:auto}.v-tabs__container--centered>.v-tabs__div:last-child,.v-tabs__container--fixed-tabs>.v-tabs__div:last-child{margin-right:auto}.v-tabs__container--icons-and-text .v-tabs__item{flex-direction:column-reverse}.v-tabs__container--icons-and-text .v-tabs__item .v-icon{margin-bottom:6px}.v-tabs__div{align-items:center;display:inline-flex;flex:0 1 auto;font-size:14px;font-weight:500;line-height:normal;height:inherit;max-width:264px;text-align:center;text-transform:uppercase;vertical-align:middle}.v-tabs__item{align-items:center;color:inherit;display:flex;flex:1 1 auto;height:100%;justify-content:center;max-width:inherit;padding:6px 12px;text-decoration:none;transition:.3s cubic-bezier(.25,.8,.5,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:normal}.v-tabs__item:not(.v-tabs__item--active){opacity:.7}.v-tabs__item--disabled{pointer-events:none}.v-tabs__slider{height:2px;width:100%}.v-tabs__slider-wrapper{bottom:0;margin:0!important;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}@media only screen and (max-width:599px){.v-tabs__wrapper--show-arrows .v-tabs__container--align-with-title{padding-left:24px}.v-tabs__container--fixed-tabs .v-tabs__div{flex:1 0 auto}}@media only screen and (min-width:600px){.v-tabs__container--fixed-tabs .v-tabs__div,.v-tabs__container--icons-and-text .v-tabs__div{min-width:160px}}.theme--light.v-textarea.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused textarea{color:#fff}.theme--dark.v-textarea.v-text-field--solo-inverted.v-text-field--solo.v-input--is-focused textarea{color:rgba(0,0,0,.87)}.application--is-rtl .v-textarea.v-text-field--enclosed .v-text-field__slot{margin-right:0;margin-left:-12px}.application--is-rtl .v-textarea.v-text-field--enclosed .v-text-field__slot textarea{padding-right:0;padding-left:12px}.v-textarea textarea{flex:1 1 auto;line-height:18px;max-width:100%;min-height:32px;outline:none;padding:7px 0 8px;width:100%}.v-textarea .v-text-field__prefix{padding-top:4px;align-self:start}.v-textarea.v-text-field--full-width.v-text-field--single-line .v-text-field__slot textarea,.v-textarea.v-text-field--full-width .v-text-field__slot textarea{margin-top:0}.v-textarea.v-text-field--full-width.v-text-field--single-line .v-text-field__details,.v-textarea.v-text-field--full-width .v-text-field__details{bottom:4px}.v-textarea.v-text-field--enclosed .v-text-field__slot{margin-right:-12px}.v-textarea.v-text-field--enclosed .v-text-field__slot textarea{padding-right:12px}.v-textarea.v-text-field--box .v-text-field__prefix,.v-textarea.v-text-field--box textarea,.v-textarea.v-text-field--enclosed .v-text-field__prefix,.v-textarea.v-text-field--enclosed textarea{margin-top:24px}.v-textarea.v-text-field--box.v-text-field--single-line .v-text-field__prefix,.v-textarea.v-text-field--box.v-text-field--single-line textarea,.v-textarea.v-text-field--enclosed.v-text-field--single-line .v-text-field__prefix,.v-textarea.v-text-field--enclosed.v-text-field--single-line textarea{margin-top:12px}.v-textarea.v-text-field--box.v-text-field--single-line .v-label,.v-textarea.v-text-field--enclosed.v-text-field--single-line .v-label{top:18px}.v-textarea.v-text-field--box.v-text-field--single-line.v-text-field--outline .v-input__control,.v-textarea.v-text-field--enclosed.v-text-field--single-line.v-text-field--outline .v-input__control{padding-top:0}.v-textarea.v-text-field--solo{align-items:flex-start}.v-textarea.v-text-field--solo .v-input__append-inner,.v-textarea.v-text-field--solo .v-input__append-outer,.v-textarea.v-text-field--solo .v-input__prepend-inner,.v-textarea.v-text-field--solo .v-input__prepend-outer{align-self:flex-start;margin-top:16px}.v-textarea--auto-grow textarea{overflow:hidden}.v-textarea--no-resize textarea{resize:none}.theme--light.v-timeline:before{background:rgba(0,0,0,.12)}.theme--light.v-timeline .v-timeline-item__dot{background:#fff}.theme--light.v-timeline .v-timeline-item .v-card:before{border-right-color:rgba(0,0,0,.12)}.theme--dark.v-timeline:before{background:hsla(0,0%,100%,.12)}.theme--dark.v-timeline .v-timeline-item__dot{background:#424242}.theme--dark.v-timeline .v-timeline-item .v-card:before{border-right-color:rgba(0,0,0,.12)}.v-timeline-item{display:flex;flex-direction:row-reverse;padding-bottom:24px}.v-timeline-item--left,.v-timeline-item:nth-child(odd):not(.v-timeline-item--right){flex-direction:row}.v-timeline-item--left .v-card:after,.v-timeline-item--left .v-card:before,.v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-card:after,.v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-card:before{transform:rotate(180deg);left:100%}.v-timeline-item--left .v-timeline-item__opposite,.v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-timeline-item__opposite{margin-left:96px;text-align:left}.v-timeline-item--left .v-timeline-item__opposite .v-card:after,.v-timeline-item--left .v-timeline-item__opposite .v-card:before,.v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-timeline-item__opposite .v-card:after,.v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-timeline-item__opposite .v-card:before{transform:rotate(0);left:-10px}.v-timeline-item--right .v-card:after,.v-timeline-item--right .v-card:before,.v-timeline-item:nth-child(2n):not(.v-timeline-item--left) .v-card:after,.v-timeline-item:nth-child(2n):not(.v-timeline-item--left) .v-card:before{right:100%}.v-timeline-item--right .v-timeline-item__opposite,.v-timeline-item:nth-child(2n):not(.v-timeline-item--left) .v-timeline-item__opposite{margin-right:96px;text-align:right}.v-timeline-item--right .v-timeline-item__opposite .v-card:after,.v-timeline-item--right .v-timeline-item__opposite .v-card:before,.v-timeline-item:nth-child(2n):not(.v-timeline-item--left) .v-timeline-item__opposite .v-card:after,.v-timeline-item:nth-child(2n):not(.v-timeline-item--left) .v-timeline-item__opposite .v-card:before{transform:rotate(180deg);right:-10px}.v-timeline-item__dot,.v-timeline-item__inner-dot{border-radius:50%}.v-timeline-item__dot{box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);align-self:center;position:absolute;height:38px;left:calc(50% - 19px);width:38px}.v-timeline-item__dot .v-timeline-item__inner-dot{height:30px;margin:4px;width:30px}.v-timeline-item__dot--small{height:24px;left:calc(50% - 12px);width:24px}.v-timeline-item__dot--small .v-timeline-item__inner-dot{height:18px;margin:3px;width:18px}.v-timeline-item__dot--large{height:52px;left:calc(50% - 26px);width:52px}.v-timeline-item__dot--large .v-timeline-item__inner-dot{height:42px;margin:5px;width:42px}.v-timeline-item__inner-dot{display:flex;justify-content:center;align-items:center}.v-timeline-item__body{position:relative;height:100%;flex:1 1 100%;max-width:calc(50% - 48px)}.v-timeline-item .v-card:after,.v-timeline-item .v-card:before{content:"";position:absolute;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #000;top:calc(50% - 10px)}.v-timeline-item .v-card:after{border-right-color:inherit}.v-timeline-item .v-card:before{top:calc(50% - 8px)}.v-timeline-item__opposite{flex:1 1 auto;align-self:center;max-width:calc(50% - 48px)}.v-timeline-item--fill-dot .v-timeline-item__inner-dot{height:inherit;margin:0;width:inherit}.v-timeline{padding-top:24px;position:relative}.v-timeline:before{bottom:0;content:"";height:100%;left:calc(50% - 1px);position:absolute;top:0;width:2px}.v-timeline--align-top .v-timeline-item{position:relative}.v-timeline--align-top .v-timeline-item__dot{top:6px}.v-timeline--align-top .v-timeline-item__dot--small{top:12px}.v-timeline--align-top .v-timeline-item__dot--large{top:0}.v-timeline--align-top .v-timeline-item .v-card:before{top:12px}.v-timeline--align-top .v-timeline-item .v-card:after{top:10px}.v-timeline--dense:before{left:18px}.v-timeline--dense .v-timeline-item--left,.v-timeline--dense .v-timeline-item:nth-child(odd):not(.v-timeline-item--right){flex-direction:row-reverse}.v-timeline--dense .v-timeline-item--left .v-card:after,.v-timeline--dense .v-timeline-item--left .v-card:before,.v-timeline--dense .v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-card:after,.v-timeline--dense .v-timeline-item:nth-child(odd):not(.v-timeline-item--right) .v-card:before{right:auto;left:-10px;transform:none}.v-timeline--dense .v-timeline-item__dot{left:0}.v-timeline--dense .v-timeline-item__dot--small{left:7px}.v-timeline--dense .v-timeline-item__dot--large{left:-7px}.v-timeline--dense .v-timeline-item__body{max-width:calc(100% - 64px)}.v-timeline--dense .v-timeline-item__opposite{display:none}.theme--light.v-time-picker-clock{background:#e0e0e0}.theme--light.v-time-picker-clock .v-time-picker-clock__item--disabled{color:rgba(0,0,0,.26)}.theme--light.v-time-picker-clock .v-time-picker-clock__item--disabled.v-time-picker-clock__item--active{color:hsla(0,0%,100%,.3)}.theme--light.v-time-picker-clock--indeterminate .v-time-picker-clock__hand{background-color:#bdbdbd}.theme--light.v-time-picker-clock--indeterminate .v-time-picker-clock__hand:after{color:#bdbdbd}.theme--light.v-time-picker-clock--indeterminate .v-time-picker-clock__item--active{background-color:#bdbdbd}.theme--dark.v-time-picker-clock{background:#616161}.theme--dark.v-time-picker-clock .v-time-picker-clock__item--disabled,.theme--dark.v-time-picker-clock .v-time-picker-clock__item--disabled.v-time-picker-clock__item--active{color:hsla(0,0%,100%,.3)}.theme--dark.v-time-picker-clock--indeterminate .v-time-picker-clock__hand{background-color:#757575}.theme--dark.v-time-picker-clock--indeterminate .v-time-picker-clock__hand:after{color:#757575}.theme--dark.v-time-picker-clock--indeterminate .v-time-picker-clock__item--active{background-color:#757575}.v-time-picker-clock{border-radius:100%;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;padding-top:100%}.v-time-picker-clock__container{display:flex;align-items:center;justify-content:center;padding:10px}.v-time-picker-clock__hand{height:calc(50% - 4px);width:2px;bottom:50%;left:calc(50% - 1px);transform-origin:center bottom;position:absolute;will-change:transform;z-index:1}.v-time-picker-clock__hand:before{background:transparent;border:2px solid;border-color:inherit;border-radius:100%;width:10px;height:10px;top:-4px}.v-time-picker-clock__hand:after,.v-time-picker-clock__hand:before{content:"";position:absolute;left:50%;transform:translate(-50%,-50%)}.v-time-picker-clock__hand:after{height:8px;width:8px;top:100%;border-radius:100%;border-style:solid;border-color:inherit;background-color:inherit}.v-time-picker-clock__hand--inner:after{height:14px}.v-picker--full-width .v-time-picker-clock__container{max-width:290px}.v-time-picker-clock__inner{position:absolute;bottom:27px;left:27px;right:27px;top:27px}.v-time-picker-clock__item{align-items:center;border-radius:100%;cursor:default;display:flex;font-size:16px;justify-content:center;height:40px;position:absolute;text-align:center;width:40px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transform:translate(-50%,-50%)}.v-time-picker-clock__item>span{z-index:1}.v-time-picker-clock__item:after,.v-time-picker-clock__item:before{content:"";border-radius:100%;position:absolute;top:50%;left:50%;height:14px;width:14px;transform:translate(-50%,-50%);height:40px;width:40px}.v-time-picker-clock__item--active{color:#fff;cursor:default;z-index:2}.v-time-picker-clock__item--disabled{pointer-events:none}.v-time-picker-title{color:#fff;display:flex;line-height:1;justify-content:flex-end}.v-time-picker-title__time{white-space:nowrap}.v-time-picker-title__time .v-picker__title__btn,.v-time-picker-title__time span{align-items:center;display:inline-flex;height:70px;font-size:70px;justify-content:center}.v-time-picker-title__ampm{align-self:flex-end;display:flex;flex-direction:column;font-size:16px;margin:8px 0 6px 8px;text-transform:uppercase}.v-time-picker-title__ampm div:only-child{flex-direction:row}.v-picker__title--landscape .v-time-picker-title{flex-direction:column;justify-content:center;height:100%}.v-picker__title--landscape .v-time-picker-title__time{text-align:right}.v-picker__title--landscape .v-time-picker-title__time .v-picker__title__btn,.v-picker__title--landscape .v-time-picker-title__time span{height:55px;font-size:55px}.v-picker__title--landscape .v-time-picker-title__ampm{margin:16px 0 0;align-self:auto;text-align:center}.theme--light.v-toolbar{background-color:#f5f5f5;color:rgba(0,0,0,.87)}.theme--dark.v-toolbar{background-color:#212121;color:#fff}.application--is-rtl .v-toolbar__title:not(:first-child){margin-left:0;margin-right:20px}.v-toolbar{transition:none;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);position:relative;width:100%;will-change:padding-left,padding-right}.v-toolbar[data-booted=true]{transition:.2s cubic-bezier(.4,0,.2,1)}.v-toolbar .v-text-field--box,.v-toolbar .v-text-field--enclosed{margin:0}.v-toolbar .v-text-field--box .v-text-field__details,.v-toolbar .v-text-field--enclosed .v-text-field__details{display:none}.v-toolbar .v-tabs{width:100%}.v-toolbar__title{font-size:20px;font-weight:500;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v-toolbar__title:not(:first-child){margin-left:20px}.v-toolbar__content,.v-toolbar__extension{align-items:center;display:flex;padding:0 24px}.v-toolbar__content .v-btn--icon,.v-toolbar__extension .v-btn--icon{margin:6px}.v-toolbar__content>:first-child,.v-toolbar__extension>:first-child{margin-left:0}.v-toolbar__content>:first-child.v-btn--icon,.v-toolbar__extension>:first-child.v-btn--icon{margin-left:-6px}.v-toolbar__content>:first-child.v-menu .v-menu__activator .v-btn,.v-toolbar__content>:first-child.v-tooltip span .v-btn,.v-toolbar__extension>:first-child.v-menu .v-menu__activator .v-btn,.v-toolbar__extension>:first-child.v-tooltip span .v-btn{margin-left:0}.v-toolbar__content>:first-child.v-menu .v-menu__activator .v-btn--icon,.v-toolbar__content>:first-child.v-tooltip span .v-btn--icon,.v-toolbar__extension>:first-child.v-menu .v-menu__activator .v-btn--icon,.v-toolbar__extension>:first-child.v-tooltip span .v-btn--icon{margin-left:-6px}.v-toolbar__content>:last-child,.v-toolbar__extension>:last-child{margin-right:0}.v-toolbar__content>:last-child.v-btn--icon,.v-toolbar__extension>:last-child.v-btn--icon{margin-right:-6px}.v-toolbar__content>:last-child.v-menu .v-menu__activator .v-btn,.v-toolbar__content>:last-child.v-tooltip span .v-btn,.v-toolbar__extension>:last-child.v-menu .v-menu__activator .v-btn,.v-toolbar__extension>:last-child.v-tooltip span .v-btn{margin-right:0}.v-toolbar__content>:last-child.v-menu .v-menu__activator .v-btn--icon,.v-toolbar__content>:last-child.v-tooltip span .v-btn--icon,.v-toolbar__extension>:last-child.v-menu .v-menu__activator .v-btn--icon,.v-toolbar__extension>:last-child.v-tooltip span .v-btn--icon{margin-right:-6px}.v-toolbar__content>.v-list,.v-toolbar__extension>.v-list{flex:1 1 auto;max-height:100%}.v-toolbar__content>.v-list:first-child,.v-toolbar__extension>.v-list:first-child{margin-left:-24px}.v-toolbar__content>.v-list:last-child,.v-toolbar__extension>.v-list:last-child{margin-right:-24px}.v-toolbar__extension>.v-toolbar__title{margin-left:72px}.v-toolbar__items{display:flex;height:inherit;max-width:100%;padding:0}.v-toolbar__items .v-btn{align-items:center;align-self:center}.v-toolbar__items .v-tooltip,.v-toolbar__items .v-tooltip>span{height:inherit}.v-toolbar__items .v-btn:not(.v-btn--floating):not(.v-btn--icon),.v-toolbar__items .v-menu,.v-toolbar__items .v-menu__activator{height:inherit;margin:0}.v-toolbar .v-btn-toggle,.v-toolbar .v-overflow-btn{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-toolbar .v-input{margin:0}.v-toolbar .v-overflow-btn .v-input__control:before,.v-toolbar .v-overflow-btn .v-input__slot:before{display:none}.v-toolbar--card{border-radius:2px 2px 0 0;box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.v-toolbar--fixed{position:fixed;z-index:2}.v-toolbar--absolute,.v-toolbar--fixed{top:0;left:0}.v-toolbar--absolute{position:absolute;z-index:2}.v-toolbar--floating{display:inline-flex;margin:16px;width:auto}.v-toolbar--clipped{z-index:3}@media only screen and (max-width:959px){.v-toolbar__content,.v-toolbar__extension{padding:0 16px}.v-toolbar__content>.v-list:first-child,.v-toolbar__extension>.v-list:first-child{margin-left:-16px}.v-toolbar__content>.v-list:last-child,.v-toolbar__extension>.v-list:last-child{margin-right:-16px}}.v-tooltip__content{background:#616161;border-radius:2px;color:#fff;font-size:12px;display:inline-block;padding:5px 8px;position:absolute;text-transform:none;width:auto;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.v-tooltip__content[class*=-active]{transition:.15s cubic-bezier(.25,.8,.5,1);pointer-events:none}@media only screen and (max-width:959px){.v-tooltip .v-tooltip__content{padding:10px 16px}}.theme--light.v-treeview{color:rgba(0,0,0,.87)}.theme--light.v-treeview--hoverable .v-treeview-node__root:hover,.theme--light.v-treeview .v-treeview-node--active{background:rgba(0,0,0,.12)}.theme--dark.v-treeview{color:#fff}.theme--dark.v-treeview--hoverable .v-treeview-node__root:hover,.theme--dark.v-treeview .v-treeview-node--active{background:hsla(0,0%,100%,.12)}.application--is-rtl .v-treeview>.v-treeview-node{margin-right:0}.application--is-rtl .v-treeview>.v-treeview-node--leaf{margin-right:24px;margin-left:0}.application--is-rtl .v-treeview-node{margin-right:26px;margin-left:0}.application--is-rtl .v-treeview-node--leaf{margin-right:50px;margin-left:0}.application--is-rtl .v-treeview-node__toggle{transform:rotate(90deg)}.application--is-rtl .v-treeview-node__toggle--open{transform:none}.v-treeview>.v-treeview-node{margin-left:0}.v-treeview>.v-treeview-node--leaf{margin-left:24px}.v-treeview-node{margin-left:26px}.v-treeview-node--excluded{display:none}.v-treeview-node--click>.v-treeview-node__root,.v-treeview-node--click>.v-treeview-node__root>.v-treeview-node__content>*{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-treeview-node--leaf{margin-left:50px}.v-treeview-node__root{display:flex;align-items:center;height:34px}.v-treeview-node__content{display:flex;flex-grow:1;flex-shrink:0;align-items:center}.v-treeview-node__content .v-btn{flex-grow:0!important;flex-shrink:1!important}.v-treeview-node__label{font-size:1.2rem;margin-left:6px;flex-grow:1;flex-shrink:0}.v-treeview-node__label .v-icon{padding-right:8px}.v-treeview-node__checkbox,.v-treeview-node__toggle{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.v-treeview-node__toggle{transform:rotate(-90deg)}.v-treeview-node__toggle--open{transform:none}.v-treeview-node__toggle--loading{animation:progress-circular-rotate 1s linear infinite}.v-treeview-node__children{transition:all .2s cubic-bezier(0,0,.2,1)}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(/static/fonts/MaterialIcons-Regular.e79bfd8.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(/static/fonts/MaterialIcons-Regular.570eb83.woff2) format("woff2"),url(/static/fonts/MaterialIcons-Regular.012cf6a.woff) format("woff"),url(/static/fonts/MaterialIcons-Regular.a37b0c0.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"} \ No newline at end of file diff --git a/tensorhive/app/web/dist/static/favicon/android-icon-144x144.png b/tensorhive/app/web/dist/static/favicon/android-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..66b3c2e427646f1870a5e8910ebbcd172c2a029d GIT binary patch literal 11146 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 POn}lGb-5}T^U(hX(`_D1 literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/android-icon-36x36.png b/tensorhive/app/web/dist/static/favicon/android-icon-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..932aad81e2f6c15fca2a265130cc6afe2b8f82ed GIT binary patch literal 2004 zcmZ{k2~gA57KblY0>;YnAY}_n7&ck5umlp7%^*Yx0uq6OUrp6~q5U1n~Ex0m}4 zxHcRBu!HPD@`b$7rYXXpc>?_O6Xdo=xKLaG5dXM+ohA>(a%9 z03@0Kkdg+#8nl!$3qTwefVrap5Fr5#UQwOTZYTi@JK#@dlG&kMAJI0K9~c#S@_X?4`&vv?$}SpFGblHo zXqQU@#Kwwlb7x-vYPf1T3D>}PDh3KjZ$R7Qb<-qGA?)$4h=u{# zJuWuPTp}$qJD^*!qxk&Kk)_qlNi10(HZF&hn;ukq+`qL>wRS|)MlGRXP`lnm8p@6t z=!tG!{CC$Sf2v}E!>7mH13HiUwi4ymhY9t&GJoCyL>*I|ntSWVUP!Mlq0;2u8u6Uo zt}MgK%Adn#=12QlRxhsTc~@OG!oatp&LgwqQ&ilNj=edRuslCtwLMvw%o&rL1A%PW zpd_}Y)hBHwbE@BQabdYxp*-i1VmHB}f5=QG_K{Oj)zZM30y`bc0P;`Hf>rG@l*6uk2{+-en<(;$kMuC>nsxP zP5Dn>fRkFOf=x9oxGE$P0!U^&FxPDdz?y*nUf0q@X%~`;(_R7KO;O z6~8#Jh4oQzBgMdc8(bYy>GbZYp`HCfD~&IB1}_tDSjoC>*p{6rNmAOT=oVPj6EvXf zZ%TVv^nPk@dwFGJsxbHJt{-T}q6q44{pW5E%$k+Q7BxJu4vj_A_}`(>q19chv6j-Ir>UZ*&nrhW zH}v+bI}iyg$rX;30fNQ8mbA*p%%1^;@*wLV9yrbvU(h*m$CjptD~q zvZ1&{bZP%1v8yOc%AR+8RlV!JOFBDG&%u_XcluS_k=?@doBjgTxJy}c7DidOv?doV zo0d=R<1gfsVHU=w#g9tHeA;wFuVl;Wf46;Bd7?C_v&Yi7JI$uee_217alR65jF|$v)!sgY@-jz zoHF;px20%zNpfe`4|GO7FrOAHXqdf!+_i_kmO6s(D4aZfZBJbvX`M-sQhrlYwt6}s zvl_2S7Thj08$H3>uQ3yw^m$e|F*~so@UHrZy|3a~hx5<*Ef3ezjXb0NG-4wL7v^$I zT#~LimTOwnF*3|&TMwc^NEjwIHMoAklp zsI*3&NB)e)VyuP9Jx$BhY5`6@A;eo*QHfhKp8qJM~82v#82?EVcMZd^6P8g9$ z;?mgQ1O{BL1 zr3fKfUm+A0hrv(aF~DED!tkOaoT?6c{X>W12T=fLXJ=BrokOfd z2Ee+y=3aN4hf;^XN>P2ufXRwtK*z^$qWMwW2n>^UoJHqG$725bFc_RQgGncZ+1TT) sv0)5+7}GW!58a_X(~e27w`0)JPz4&=UzHYa4(b5NZeFCju15v`0ph`4LjV8( literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/android-icon-48x48.png b/tensorhive/app/web/dist/static/favicon/android-icon-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..172231cd23299ac96a29e000586d4e12a69e5acc GIT binary patch literal 2655 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 Y9`e-rRrA4CsTlxceKWlZUDrGR1-^ytp#T5? literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/android-icon-96x96.png b/tensorhive/app/web/dist/static/favicon/android-icon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..324afc91f19c6204cf188097d88037ad0a487bfc GIT binary patch literal 6429 zcmZ{I2UJr{w{}ABML;@)B26iw6G8`(4gogyALpZz3bX zf7jCe~NRN2f9@;tb`5)Hhw!2N!_mxhEr&K)b(PShUmED2X+5!Xr2 zNQo~Hn9K0bX6@q=ko8T6uj#j|_tMpLrwr|8k%Q>e)j{Os;jhOBCwDro&pI}5HWIIM z>7vpd-A+piJs(^6JoZ~rJ`Wzd+}rf~2Sl^BB5Bq|dT8A%L&y>kfrty=M9r+r)S+&A zH-Dv|L>Dw(ysOLD1J1)HtPR!?yL#Q6?gt6vr zBe_Q%@`6R!!U6ChJ3=15RYvpVA+OWM@mgi_fCXT9#_Br!;20tc7$xrzQrFy8Wk~-g z;Nf*HsZe$ONgzG{pHNz3U@35gM2w`6P=Wk*5tyJ!9)-GRNmbtfOMNQ#b|y-$RVV^W zDrD4oR`7#5X04eLsv$YSHb?9RG=DF&Nf;Zt51^(Z)Pg5DFxjpLY$&~nGvp&92u*{j z5uL>yluWp}6L(TUX{H2J62h1G-~NN*rFPmvuI^x8V%7B9v(CTw!)jG^AhxbJZ>_V>{O+dG*GTv z@u)T_%*ODk%D6ZIBRqHv;ozUtF}-jiFhifrhy^E{{yDZ;$bfGD; zf66;=CmKsOZ582E^o@YtkGC0|G@ai?b=8FqA*mL4S>}vZrdpJbk@JE0+mSBQysV#g zDm2G+q&IX?p6Ho=;~yPQ#zNpP>4+|$@g&0VBeLg0GnFs9eg&Wmyy^fAVfO(0Ku_l8 zCV-YP0TggXK3;}?0F;u{8RP@~`1xd0k~MfmL(@gt`s>Sf_6uQ&2_u5520}(JG977e zt{4Rhe&4``<$MRsHC6vR_+b79>XPna1#oI!(}ZpTW)sG!o}p;&yekHQjcJKPgreVy zHUtu;eX$ugy1!+rTakFxd4A`9IeQecm8T3HB-lP2Wl6A+Oosusup!A_vijc{Mkdt` za2B9)Kx6uMzW??m@8Qb8hG7s;&=xb0jVulvM@21Zf+39A^=wdd$WESAtHa*)Y7?*s zz|X_Wd*yUfva3JfROKue@^kaa=Tn52#QjbZOwrc0GC778#H8f@^j5;qu^-F_euiX0 z^h{phxlcfxr0eC^{Nv=}U7`-E#owzB`Z4gCh+L~n8L!!hYv7ja>S)A;c0RjFF^MLO z4&_fDa!<7)jf7Z}h+doeg8i_Up>{2S(1IkFq~Y!`Z%r66hl0Yt$=$X@`?3;~AY0li z4++*J6%qyN8#`2$RoP@I3G7z^8394g*8%T5)D|M&Iee5rPVHtB`wu(~{YhZ<&%69I zbO-g#5QB=^2ecCRddO-63YyGp#0t{_@SCOpTL8Px-S_ol@8)a)@8ws<&?N2h1Ksm! zM3VKJLrA>{$}Qp2L(%}nXk^_@~e;} z8F&IokZ?IG{53Pfh`ZNx#ZDPj1+VIh_ybn9eBX!%{NS`)z%{k8wOSt0k!ij-splZA zzgP@;#Xp+D?24C))UQE_s34$zP2LwH%I{hz*m@mnueJNBIIlPFBeJK2b->{OIF4~j zgAON?9uMC@D{-xf=6jNc$u*mTGE*XdLZhe>u43tgYMKh8Ynb8A``!~yH*tZ*P zickX#qQ3_o5-jz#q?qKfCtt5q;NM$7aJnxdj|%@!#_~>R=G%CxXDSE{1ZVzoJH}X{b@*k=NC09X6pRX89m17px>TxoH4hkq`Wh#pd0bDhQLZ8%+Ve7hE#1`rGVl|ZN z?8mAPT9wv9q{6_Y^gRF-EH<=t2+9BfR_%@N^Uw(D$cvZ^ex$hZGoDpzCtTEx#<9pddGa*|RZfa_;&perCGu`Ng5x{t zQ-+w1VCB9z-3&K@j$~S4K>#RgL;|rOG2;6s#%bv33iXJ==zs&<&`(Fxh;j;2WFVGo z|M^LN(ilSjx!i?vaV`LWpdu{c{T7_yF;~P8RXO|C%vAU@%q-;#i-rJ0(g;y{%HXxd zmn<|&m<1tp_YdQrmJo&I+a5~Yim8oIoJ@NKnb#=&H?aL&5wn*3&KZ*vai@_i107N5 z_KWbdzAQ9glLNoP2i6;uP3An1qW@#*CPrybyW}R4Jt>klBw;M}er(frcA_+t=alGm z2Un2b_U8rnha@>R(xd?!0my~~+g8B!FO_gN63aG|X1~bPYm0`Fk4pC54=P{+hm)!3 z8-o))Ye!UKVDAI5yMI0_a(9oZoS+1Du3J82NdhW$%)mG0PF)&zPX zw>F|cq=0i9R$NA3V%v=S#Ck9xx^s0MWnUzClaK6RtZ9vPDO39>-?E{7W`S}>zVpcA z+Pv%Y^nwD1?(7gUr(UuN;Ttj6HE~DK6XVGB{y05bLGCx_1GIcWRpoYz;hH9EJTHig zG@_m1%lf=y$fXNSrWcb;ud~!e$jjxjkPsURONZ&?^06@L^AgWHD@gXE+zy>WJ=Uop zL$od{*Gja9G(F=JN<~}M80;l?cg{7b=AN%L+lW(_=MK|E82t(R2VKT*(wU;Fa|#KU zo7P~8=rzsx&Y%8^T6teO_ER#FiMGeW5@q?JHS(+_C7~zeT<_2M& z26#k4d+sd@yGDW{2Lj5N%<5Z$g*eR0KlcZ8o+w-#vc?SKCdU4;R>1}zK!$gJ&vmua zo#!SWm5wfP%SLgrp_Uj-U_mLoxavGXhf+dHoyuaRMidCYr(4PCuSQX0H$04#1F8Q`3fh1B=`}{Nn1=)JCn{%}K?&sFRzH0^#pc2v(qMVZ z3!)9Ck=K6FA#Svz={5T9lpc|9)pL7mRJ+o4_jcDe?iC1~smSn0;ZCxdS_PoqS(Oeu z$B~kzrSp1fyFcC!j@#B9*5rKLe;(9omk?^My&1fMD2EkTRq+v636^p0xKHiBTx7D~ zTelpooF?>+pZ+S5dx<-%LA# z`iYdS?$>3YFp8~LZL@1>6o=C)8p>WGToenOU&%GW-nXJ&KRK^y5d8`V_mt1|=cH&9 z`z9he>fmA=^;AAXAzQwrbuFuK`x*WPe$g+vzJ^W&+>GTyCHURt6uSYFPtIk8AAQ$# zv5u!rccoANZDL`fExKdXZE+!f>xD;e9F2X~g|Ph9qhL3fL?t6U-?ncln7Q(YRG`0n zRwMPe9Kq{i>wz48Opl>}Yqq9X7Ejv9_;2L;p;ogxP>PlCz0A(L=bX2{>)%nTB&@jc zG(gU-en`kI>bAR3S@a*Ik$8EXM>MyY!|UdUJ1O2u^N5CCDi=tk;swDM#sdnRwXwhjX#iIVPxMy}B=|tajx_S$``2W6Il#;gk|p z@-B`@_1tie{ykdh_D{juYo9`Z8Q|CfM}|U(4Uw8xd2)gp?sT&@Efmj13vRk$3;ObI z&NX5y)d+iAl~R$SS3#|Yk9H-D5vh_UZqr5{&jT7rj?!?9ik<>%LH!z4@60KM*Nv?T zl)Xuo7c=G#Y~J2Zhm?o4E0a%!7d{m+W)&*=;|4ep=WA3cCFC9=>OTCJ6^xOYcZ=$e zwW?Q^^-~f;YV6jJ6*cXua=&EpJ$k~co}>5WJ0H{T2Bz6ytRVG!B}@zqJ^5buHG;Kv z7KjhLoLu~AuLxpXWaR=Vu=e#{Zy0qfrLQ<-_Dk7R(O3eV#O7#Mt> zu~X(l?FQce)SDnxk?LX3Wp#N;r_I~e6uF-{)HvTjJ7rKmT{=n4T1kbEt0fC}bVc#H zXNFVwZPu_&c7t}dH1AKvz(4Cf)UR+OKQn}oXDUyjKMb;1S?JANYx0dQ$Gtw=J8ICz zUCbOawdGX>@~S)LXItHY>8WBSimg0rE-uhY2k+Y&dHHZ+Q|%)eqEE(MNw z%vM^a4Y=S_Cy1ewm`&#ykXXF;wi_420oN+0vOsMZCH%>6-|J%paG$3~GW z8hWlQ{)!d%@U6e=wAcGs)N_9=o8zUor9ps0OQCs0QTW$JohJ4*W>cS`-#n_oHI9yT zpyF$H=M7QO=AH!M=E3NL%!ViK!POA%%{vhzp;0XD zUqi$~y|o`>{`E2F^*dYhp_TJLv|xBX)@aQA5;ngdDmK+%V_3Gw=vYaH8u+-(^$c3_ zm0Y)bIp+)ELPdlg0#I;Lzd@oo3`QJELI6A-UnXlxeHpDZ=X9&e=l z>PZN$%DT8!DnzN+R0{=WLr9-?)Y7yid_nb{jc}eD;dTN7PWCIsr~^Mrz!xjqUR;$o z(bn8x?qxHXFIys(_^3&=L*&9NZ5@xJEGg@JFRh23|3gpw=}LXw%IE&W7iNRdwG%o} zena;;RNzcA@R`NBqyom{qK)%UKPSW0Ve;TvPnb8^Shf3*ie0VEZQdt06UsypIKuuX zLUirPVvAk&ujR9Ud5V-u(5me2DKH9OkKei>p4GRYJg5?%7EDNnh)l=bMJ&z!Sz(nd zbYVS`Q>pFGXk~7_{K064KMi8&csVY>@_bd4;jBVC%eKi~l)_4;%9$%ORfAT%{0piq zTdy)-i)b^6I#IS{((CzxmsgGRVii7Y)iqgJoa3H7{o}}IVl?c!8Q0vR=bbBGFzX|I z)*E=W7{&0wU|NZp&%!pBE?MUwBZ`Py2B1%ZVK%LXIl+9mXW(LcpeGPRu zff@R$wMmF$22oo23Vlk4-$x}Og>B4`SyxLXh$7#Rp-@J*i5;!sF=l40t#2Qbfni^e z3=6P*=jH~`vr={4acs@a0;X#eu%m&c?pvK7OLstor{Hk)&OS8_Qfl)0NgOS@`hI$wA zi&K!5U`c{TYIp=`gPr)`H-erBrdERq3%f=G+-{rV?ng|)2orT*p0dzr!G60h?N7xZ zbM}T$yU<(UPO{Y7(nxc8XvU72GLpLI7E>Mr^O=M3buWND42@sbzFG%**N{VQe7=2GeACI+)9+(*rRa#jU0LKV9B~G zyCDaKu~pG@3RjYaAJTL^t|St`^i3x*dc}`3k)gY!{FN>n*%krDL(aisP7x%<$IIsO z4hrk|^r**anBai)1LrEvhI&ywPv;RK@Rm)l_32uKd^G+gOvI5ULC7}&%L{++!tWuq zo**6Uk&Y0Aw z8-`$Jyu!o37G8NeA^q&V9RWJ-_Rfw5_Rg+|7a&#XP;87o+y@gaDSmjAkxA?$00)O;3c6yQ2pZ0x`xzUje{n zxHj?sh52ur5QvMTtFsFd09KHs1$al|G0gwL^Zzgwt`10-zmUml9x^9PSXKwhvcnr+&C;(VSMn+mvR#riBnJ1P7525`J9#hvqM}UO7dP<@4 zF22hAKdK(XbO27SZjSioi@SRu-8`Meo$P&G5uP5e#Q%TCh=U~^oe&Doq~v5JC7wCT qK68?Gkj4K)IVTw>1vwc#hXi*Bi@YItkO09w_!2ZYK^IsgxCFNZ z2zTGF{;K=kzv|XZPgi%J=RDm#UGtpoNifvcAjG4^0{{SoTAE;ERPOU{!ofm4-y>tf zP#LD9vYs*k(C{Ar!3Kybqxl+Zr~qmw=?_o^W{9S-9sm%`2>^sg0|0+eRpI*pfS)h` zaA*wxfU*GqDzCf_BRNz9maUEk81VG(Rn%RcfvUmv(lql00EqhkO=!cO6?OmsgQ^x- z*(7lJSAI}E{e0H$yS=sX4t6-g&D7>$*&TeK7Dc3x?ClCxhDJ0F6-)* zTNI!weVPh(URpg`-E}+Wdn&V6;44V~jfGz2Nr~tNqYJGFvP+$;|&?PjYswX@vQx|ux{#E*vaW6I#xnC`!HYJMpW$EJT?Qgo`JWx z`=1t_73wXbZTaP~Zv<%}PA#(1dxvlbYX#xV@1^IRw|T5EtU#hA9o;`hNY`4x0^>1J z)Zfez4!D`p+ff;`OdReq(uDP1;Y6JNefV27C09a2z}k!~gBqz3wN3S)4EFurk3poP zuM$o&#&s0Z?73{kx-i`xpaD$#Gc_0A;#bJp^p$fIHh)YVc9u(uOARBM6q@Vjs}Cf( z3SJZpysm0Z_w_A|MLe>z%1YU_42_6-t_ zZ2)&5FWhtd57?OtyeHdjU+HR^UL66m2;mAedG4UpuLD zQzHo>qtK-m0eFy9V>eQE^;@oUQmDV6d8rEsDsaivL&C(no`7M~$u1*1=h zLmjbm;-4wC^}Pt3c&b#4y;c39(o8$N-w!>0!`z9~42A4YZAdd~1%u;1W~3P5=AUV zdvCl$!%tZJ+e1)&9JZfVV(vQa*76GPhIV7%WNcrln|PI0cpcD&*7YvZi7}f4>92lX z&ztzD3InEMK6=L&0A4${yg*G-k;$>^)6Uq8CwLO;Z~9|{7=AEQJdQGnagEf7w4)Hl zEz$II2cz$idHCrO`$F()>@W;)Autz+z!O)RKzok<(Uv38VDY83z;xcc$4s1b1`?PH1lrd?wNQhKuy_< zOG%#ZDY_JK7w3{u5#B=hSh(OoVrmGW8G{C`{gZ4Sx-q6NQQFb7%J6ddD%L2v8V=n; zaE+53U zMATw?$~wK5{-KRQ`n4SXz*bK)H)A~+y^p=&_pQD&IV<^N<9a-1N7C?x@z@A;R0|RI z2^D;{=qB<4PO%mH71wa3b973JBn<5p+x8ZDG80%ZD zF01f-VN<4ymL8xNQX&Owf4)d`LqG1!%^FveF_2(YN~uj*5G~-@ojmUv;h_pnAut4c zUju%EhD4_fe-vLLj%>rWz+L_7d+y1p%ABEUXOQ8oM6+6`0+p%wSOgrv5RX1MvHfmQ z-@TFJp=vLviB}PUr}Q~Wp5{0%JOi#1u=fKaK2v^QlL+?ayJo~aceX*~%Y9yMWW8jY z*xxEzc+T^&8qu68}2GG&yY-zkPQ+|Ty!{lw9A2#lIl?Pp%T?cx>p z5FQag(jODNjwvxSul^3tLm|3+V43eW@=-0|uN?95aG#Fe`LN1(AW#>W84qRX#qQjx zBTQg1c8xJklpN9bk`H)Kl1pp_Y(bj~6~+o=ys`?XM;k&H3NHX;VKjY}J-(?uWq2d7 zFs~eB-m9{C=*S+cY2Ye)K;FWfh8^MC_nY}e{rY>{=`r|Q5lc<~b@WckF29YCjf)0< z*TbS7;F`YhDf;K(%i`q7Fq}JJ1<{B#XUY%Hu%(^c1w~Ytw8W<`%1j$`sF29Hc{D{K}!D+Yn#|<>GV5);8=wmf>?MscY1nxo&zf`RfKqbtWR)IyS*h1*3KwmcS zZ3ID-+#-jlgxZzpf%t*Rp|#YVABzYWw0G9*P-J3lFb$(izWztGxl(6U)JyfvAXX73 zh}eVO((RwEj`i1gYlTsr1jngM3DyE%Ol%6#cWF~rBYDUtdfB!hqIkMMCej#I- z9H(&|C{=aaPn1pAh-ra8*Io4G`LQ;Wox=X}zI*11cI0L&Td{VG9KsDtbM%;+ z%^S>HMor5N8?#4XuARKXdxMdj`;62OD@f=o|I&QXNho5EWToI%`RZju?&OrcSfS(;EfYU5D`jA9p}Yx z_YQa>D6A8q5gym)%2$^7n?7pC_$PT@r6xZNaA2bA0Lm{muNr%_*{<`QoW$s)UbV5t zXU1rlIN(%9q900nnSy`t6w(Z$532NhxXO9Oo}(Gh0F1)mxM-)JaL5QQscemgEq5tq zHcAO4K2y$Q&AKQ{8}sj%34JEb(bLHEuXdv$Aw_XOd5J_%Fj?}MnG*?$!I|8p9|%e% z4xlbpJE?8>Yn0%gQssiU(;%VBn}#XX*%tf^JJYURf2L#Xz$TlTeri>cSZau6x=~rn z&@H5RohU)}`FShL4{FsW_A|W&x{4*<$(w$Mnj`PD**n1oXMA5AcLxR!By@z3j=&J+4RBO7N72 z`=PvYoN@oOeONPL)&Gqb1t7kkZJhAD*kEx3B!Lud|cjj zW^p~X0V@tTrD|HMl>d&Fb7y$gscgYIv@xk9LMDLcFtz^lv1&2d8gw~XA#IZpYL-32qkxA7xc%En< zMI)Ij@TCRBGld{CB{`w(vkYL{L=uyDAX9Ps1@kF=Wafa5$~^Bw9PnLM^eyTJ7y9fN zC}>{!WA5S?7KzokO@Pa^t8(RX*{``oMpHE{{F{uc0!k)fOzSGU9l2Y7Cmp`uJBrzM_!Xs3EF#im2WtyAoSWlBnOUhB2RmJurDUA>G~XF z_Zifz%1!~1VU@c)Ob&X(gyani-}W&NHwpKz={6_Vtrebdi(`B@H@Q9`)vE`AHWqEz z){j`@IdMh@o_k!ZgTnup_KaLx&Hd>@hzzBnq(Rx(OTee1`WLn6co~aAK{3x({jas#8 zp5?<}*k9gN3aTxhlq>Q)HmYw2TsC`CoPP|S$Pn_0jNI_zAaCoVGyQE1sV(>Q7_D-z z0Qq>Sn&kWO9j`kZZvO4deKGxS4;O+KvN!{rno+-`SPQxIrL2@KbT;sQ8W(z-zp=}f zAq#mB1@lC&X}^&A_9}d08j3t*hD&Ag#Cg={p4G+qFAm1VsZ65#xHM=Z_d}e$A|X3j|#p$ zUg$#wQyvf$UcY0!?I_{B_c+HiQN53j+*Be~?O47$9D(g_FTViu1_@8W-$=aU8XML~ zDABF#-{CgtoQPS8D zvL#PTovRwAlH24@NkOX*GTCp~Dop7l%yuY#m{h5fDBF2uWGn?Ud?WEc9$I^=c(bxt zQh@jo;4!us{g&+q+T^VqO4r-^Xyc02Y!zQYDCP=`j;BuHVZTBGZQ?^W2#Tu&V`477 zto~w;BZ)uN_7bL=;fZ}74nTG=pbB67oZ4mzf7fLr#Ojs9S9<7L+^OE$S)ULTcat?x zhSbY$U86)HIRGLs;h!tK+#40X=iF?1Oe1lTe}wxkn68prMd7#2IF(`yy(D%Dyln5; z+LQ3jvehR}SFe*!NM)y=#A>i2x$jcu`;}(kn^}$gjmB4`tE6O3SM%$ zqWbq=QuvSRb~xGpiuYW&Oj{jh>q1WEshAPre1Iq1v)PcUhw8G-fbDX(sKJ`Bb`5hc zEtssf6ZdxZHE9`h^2W&T?5Vc|ouRm0^@L3U==oZx(s_AWw6ekexwcPk&ujJpYrS$3qVjl0NJy z_E*xxj4Sb$x8%IJLvMV6Gmf?J+vnVlUPD8ET+LYIjbYd``Mqk@FVgdkhxl<(yDhGW zUhE$OAz=@EUZ4Rq6O<-#>DDKS<_8gktcu!M{c?@ii*3lYRMHcI)cvN;^QHaU%8*^v z8{Pgydi5s-6+`GQAWgGJG$NGMgGhg-n{&Ouo>SPE9Z>}uHvZ$?C{U>;B)U6eQU(1A-r3(*!G6k>dd zE~Ds-6gz;Ywb%_wR2!cOe{xoxojng^?IFn0xtEmDdG-f!CxG^Wmm|rNv1#j`kyWLI zairfs2GK&*wC!~!zdBK61ErU-0q$m(-Iri#1LvGiqX+SYCnPxKG>9yj&MH40ONM2D9l)Wa^Z?-r5K6cPH^m6And%&gidri z0u7eJl2_wg9XMd(1kQ_{d&sr^lvTQG;iaczMa-DbvH_pBG)V7g$RD^13*l|Nx$zdl zQK2cUo_1=Xrl&4?HNs&IBGV~t`A55Da=?y)YlvdBz+EZ@9Pyk@7F4;% zRx8ZuZ_Ln9clPdV^Sj#Rq6=R18s;~L`3@=@$j}K%J0_W{qjbbajl+MbkauJPZZsUgd+(sJqm<2}L!11@^jC91O!<{Uf3EVlGiE)I`D8BrQS)JH z0nr{{M(gAf!<+5MD#s%+!5m7~1wCC;+;3-arZZ+1Ba|kqFm=ULh9^Exym{brI1K&% zT(ga!ae(5LoYh>Xf^g}}YTg`&`H?^K6bH@K6li2JHz)h?Et);0=d;Cl_6EIAqaWAO zvw~)E(Op`wCfmX7mSn1>@zV#GbBB6~Q3WzbKMsa;cn}Tk6z(CPDUR2c6I{q(en@14 zj%tCzVKn+OnWQ2jty>m@Pdl4FWqj7vH9qpUj<4ONd7j_6S+>!hg=D{d(&z%+ga@XT zPquFI!t%;CzbNT}#j--r=bs)=oAC@Q4BTX(^VvkRxbk0#FE|3mdDIXsEfbI`KHD0| z?LzCH?~4K1&xNunPiQ<=CJZDWE}-iSAudK;nek0U6R)dS$7k&6K|NCY*FICuD^L?$iGeOKWioSOqqSa*{?g?zARd8czeS8 zRM2}Vo&RH=Xv=p^l>4ZbHiP|cA%AF3Y0y-hgV%Vanl9%1b*b+ivRp69?ah2b*Sb!( znnoyEzDn1|Im|E3_fj{7wEBg{cdPv?RnWmhwkaI>FHWwKKC3a^&65Djm5@R>8a;=pFHS{q{9ABYgt-KqVbu5p7sy{{M2zZDhv77yZobp3)0noZ+ulMl4DHNRYzyTO!E~r zKONiX$@vpa>U#e~M9Bqv#voTfE`iTy2`8^gHuVG;JKVq3SiLzfhBrQJ+kSQZT5|-^ z=cw$^5RETw69*ntH-7B8$V-tm!vqN&Ny=Na1w6S4k+FTE&BN=5i@5GBs zM!Z*@%eeDjRQHzuM4tDPq86q-7lkmXTx)Rp{acwt)e+tMgL}DvK0#MA+X2{uKe1B3&-rq{?rMl{ikv%Q0YFe;uJoL?kUy(^^lT?}mGBBJj zFRQV=ctKw0QzsiHz-V6>Mh2m8+AY5x?h#&}G*3%iSe34|4E*v*N)Z7!-~oRsfhV@a zp9XoCh8rg=Z}W?QZ_=jhc_{I9O}|L*#iJ*+Y*b2@>GQyxeU0P4{aRaqIZQ0+>O1dQ zJN;89_KAGZ6K0uNCgus;II50|>#t#>PTcq(_Qq|Jnz}Pho4G_G9_9jy?c7Q4r#gc< zMEi4dc=7UiDewshiJ-371De{=Ne-A2CXekrsm2hy1yoLm3(MD zeEV2J8ZaB+Usb+1-%Oar`$30*uqPdiIwwuYWh?)78x}ii|D%$;C0JFx)o(kMDRl(3 zZY*l|EA__`CG;8FLw>AuG&r|#)q*H1P5Tp#6IBGKlp2&IbG4wleC&Ce@r#^EF>)v| zZd#?+ghDE^UAe5oMaFqM)JhVUSwK zjy zo{!o-iOk^MJbGB+J1LUU0QC0qs^;m8Wxr1S496nro}uf0vG2$_9Pth-HX`cR9YHu< z!uMmHt7|XiuJM0PqV}KzH<0wt6ROhD|8oQWDjo(vm}A#D|Dyh}azNEyLG5gy_8^Fl zJt_l;3X8}H2#X7dNScUKoZ5D{fI5|Lzffrjs>4R%ktRw#qI*}!S literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/apple-icon-120x120.png b/tensorhive/app/web/dist/static/favicon/apple-icon-120x120.png new file mode 100644 index 0000000000000000000000000000000000000000..ec1a8c16044932b45cdb7d55f971853908b222ae GIT binary patch literal 8593 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

B*k17| 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 B408Yg literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/apple-icon-57x57.png b/tensorhive/app/web/dist/static/favicon/apple-icon-57x57.png new file mode 100644 index 0000000000000000000000000000000000000000..44c39082d5da3793cd316b3225d4bda5dc860c8e GIT binary patch literal 3254 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 literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/apple-icon-60x60.png b/tensorhive/app/web/dist/static/favicon/apple-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..70635bd212b57fe399085e1d8235b336cdbd9877 GIT binary patch literal 3435 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 literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/apple-icon-72x72.png b/tensorhive/app/web/dist/static/favicon/apple-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..d7592db7ae81cec4e19355cdcf4699f15df148fa GIT binary patch literal 4323 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 Y9`e-rRrA4CsTlxceKWlZUDrGR1-^ytp#T5? literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/apple-icon-76x76.png b/tensorhive/app/web/dist/static/favicon/apple-icon-76x76.png new file mode 100644 index 0000000000000000000000000000000000000000..39b1c74e51de5a6b8b6628133ac7e76c840f3692 GIT binary patch literal 4674 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 LEDg)_oumE>_79&K literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/apple-icon-precomposed.png b/tensorhive/app/web/dist/static/favicon/apple-icon-precomposed.png new file mode 100644 index 0000000000000000000000000000000000000000..83e14773bed74632863eb95c2ad7efba7841f80b GIT binary patch literal 15357 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 +#ffffff \ No newline at end of file diff --git a/tensorhive/app/web/dist/static/favicon/favicon-16x16.png b/tensorhive/app/web/dist/static/favicon/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..ffdfcff5939ea61fb28401ba91e3357cdd613546 GIT binary patch literal 1304 zcmZ`$YfM{Z82);t*K>LSdL2D2YezHMp3}8uJ!2Q3T&hyLQkbB)UN|jhTU#y%aJVqo zbcRiwBSxK<82zJ0oo;_5XtE{h7IpCwoEjwiL#7d- z5D@yxZCkB1cAJ3DuO`eUL%H2n<#IagHcQnOoyl0~*lMv6=55tPHL(R#DwGO2h`^GR zi6NKEq++oMbO3=wt-{qB6?n)uSO~|I_e&-BNF{&*qEsqI5dsyVP^iL{g9zaYIkeVl zR19C3<_onNbv>on>sM&iDi{^Vurs6R^a$u+P_B?mrgG>+9?4}gg#tTS;9(eEu2s9X zt9E$RAfm$Xc+RB4Fia`$%o`PQnF_}q95wfFW|%~c;}(mq)>lpjE6k=!HI9{u#c&CU zNLD74L9W%R?Yau5t|DG0j+TiZ7KwUAB9~U<(Q53~Mw`VLX_7{prMX_=p&nuDZl$%# zRAn+zwBAeW!@Y)|_nyL9t%-+<~@e zJk~Y!o1ycD=7xXPcRsjY*;jQ-3Nf}~v%Hcz zxMvPsJ~(~(I6H|R+DE=uTQgT5lDG-8v9d~Su=91QnWv^_&P?kB7kS+GRp*qq$Uk6k zJJU3n zY>5p9YwfM4lrnAD$hVZyZ2I8L8M+#X_COOKc z3;AKsKOf_vyi6t?Ozo%(c*ztKNM(F|0eHi@j6V~s^D}8TRJdWjO9pBgI-qcKBy^!M GapEtr8(Vh( literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/favicon-32x32.png b/tensorhive/app/web/dist/static/favicon/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..d5478b0b784513af603abf879a338f166b8a17bd GIT binary patch literal 1751 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 literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/manifest.json b/tensorhive/app/web/dist/static/favicon/manifest.json new file mode 100644 index 00000000..013d4a6a --- /dev/null +++ b/tensorhive/app/web/dist/static/favicon/manifest.json @@ -0,0 +1,41 @@ +{ + "name": "App", + "icons": [ + { + "src": "\/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "\/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "\/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "\/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "\/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "\/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/tensorhive/app/web/dist/static/favicon/ms-icon-144x144.png b/tensorhive/app/web/dist/static/favicon/ms-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..66b3c2e427646f1870a5e8910ebbcd172c2a029d GIT binary patch literal 11146 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 Z+JYTAzUB{HC(s@M3bHCP^-`vx{|5vk81Dc8 literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/favicon/ms-icon-310x310.png b/tensorhive/app/web/dist/static/favicon/ms-icon-310x310.png new file mode 100644 index 0000000000000000000000000000000000000000..2ece1edd7f683d81a42d919579e917fc69c941a0 GIT binary patch literal 33865 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

e^^ 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 literal 0 HcmV?d00001 diff --git a/tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js b/tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js new file mode 100644 index 00000000..599b7385 --- /dev/null +++ b/tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js @@ -0,0 +1,7 @@ +webpackJsonp([1],[,,function(t,e,n){"use strict";var r=n(51),i=n.n(r),o=n(31);e.a={request:function(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(!t)return void console.error("API function call requires method argument");if(!e)return void console.error("API function call requires uri argument");var s=o.a.serverURI+e;return null!==n&&(i.a.defaults.headers.common.Authorization=n),i()({method:t,url:s,data:r})}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";e.a={serverURI:"",apiVersion:"",version:"",fixedLayout:!1,hideLogoOnMobile:!1}},,,,,,,,,,,,,,,,,function(t,e,n){"use strict";var r=n(31),i=n(252),o=n(258),s=(n.n(o),n(2));e.a={name:"TheDash",components:{BaseSidebar:i.a},data:function(){return{year:(new Date).getFullYear(),classes:{fixed_layout:r.a.fixedLayout,hide_logo:r.a.hideLogoOnMobile},alert:!1,errorMessage:""}},computed:{displayName:function(){return this.$store.state.user},version:function(){return r.a.version},apiVersion:function(){return r.a.apiVersion}},methods:{handleError:function(t){t.hasOwnProperty("response")?t.response.data.hasOwnProperty("msg")?this.errorMessage=t.response.data.msg:this.errorMessage=t.response.data:this.errorMessage=t.message,this.alert=!0},changeloading:function(){this.$store.commit("TOGGLE_SEARCHING")},logout:function(){var t=this;null!==this.$store.state.accessToken&&s.a.request("delete","/user/logout",this.$store.state.accessToken).then(function(e){t.$store.commit("SET_ACCESS_TOKEN",null),window.localStorage&&window.localStorage.setItem("accessToken",null),null!==t.$store.state.refreshToken&&s.a.request("delete","/user/logout/refresh_token",t.$store.state.refreshToken).then(function(e){t.$store.commit("SET_REFRESH_TOKEN",null),window.localStorage&&window.localStorage.setItem("refreshToken",null)}).catch(function(e){t.handleError(e)})}).catch(function(e){t.handleError(e)}),this.$store.commit("SET_USER",null),this.$store.commit("SET_ROLE",null),window.localStorage&&(window.localStorage.setItem("user",null),window.localStorage.setItem("role",null),window.localStorage.setItem("watches",null),window.localStorage.setItem("watchIds",null)),this.$router.push("/login")}}}},function(t,e,n){"use strict";var r=n(254);e.a={name:"BaseSidebar",components:{BaseSidebarMenu:r.a},mounted:function(){window.jQuery('[data-toggle="hideseek"]').off().hideseek()}}},function(t,e,n){"use strict";e.a={name:"BaseSidebarMenu"}},,,,,,,function(t,e,n){"use strict";var r=n(28),i=n.n(r),o=n(2);e.a={name:"Login",data:function(t){return{section:"Login",username:"",password:"",modalUsername:"",modalEmail:"",modalPassword:"",modalPassword2:"",alert:!1,modalAlert:!1,created:!1,errorMessage:"",showModal:!1,entry:""}},methods:{handleError:function(t){t.hasOwnProperty("response")?t.response.data.hasOwnProperty("msg")?this.errorMessage=t.response.data.msg:this.errorMessage=t.response.data:this.errorMessage=t.message},requestEntry:function(){var t=this;o.a.request("get","/user/authorized_keys_entry",this.$store.state.accessToken).then(function(e){t.entry=e.data,t.showModal=!0}).catch(function(e){t.handleError(e),t.modalAlert=!0})},copyEntryToClipboard:function(){var t=document.querySelector("#entry");t.setAttribute("type","text"),t.select();try{document.execCommand("copy")?alert("Authorized keys entry is in your clipboard"):alert("Something went wrong, try again")}catch(t){alert("Unable to copy")}window.getSelection().removeAllRanges()},createUser:function(){var t=this;if(this.modalPassword===this.modalPassword2){var e=this.modalUsername,n=this.modalEmail,r=this.modalPassword;o.a.request("post","/user/ssh_signup",this.$store.state.accessToken,{username:e,email:n,password:r}).then(function(e){t.showModal=!1,t.created=!0}).catch(function(e){t.handleError(e),t.modalAlert=!0})}else this.errorMessage="Passwords do not match",this.modalAlert=!0},checkCreds:function(){var t=this,e=this.username,n=this.password;this.toggleLoading(),this.resetResponse(),this.$store.commit("TOGGLE_LOADING"),o.a.request("post","/user/login",this.$store.state.accessToken,{username:e,password:n}).then(function(n){t.toggleLoading();var r=n.data;if(r.error){var o=r.error.name;return void(t.response=o?"InvalidCredentialsError"===o?"Username/Password incorrect. Please try again.":o:r.error)}if(e){var s="Bearer "+r.access_token,a="Bearer "+r.refresh_token,l=JSON.parse(atob(r.access_token.split(".")[1])),c=l.identity,u=2===l.user_claims.roles.length?"admin":"user";t.$store.commit("SET_USER",e),t.$store.commit("SET_ROLE",u),t.$store.commit("SET_ID",c),t.$store.commit("SET_ACCESS_TOKEN",s),t.$store.commit("SET_REFRESH_TOKEN",a),window.localStorage&&(window.localStorage.setItem("user",i()(e)),window.localStorage.setItem("accessToken",s),window.localStorage.setItem("refreshToken",a),window.localStorage.setItem("role",u),window.localStorage.setItem("userId",c)),t.$router.push("/")}}).catch(function(e){t.handleError(e),t.alert=!0})},toggleLoading:function(){this.loading=""===this.loading?"loading":""},resetResponse:function(){this.response=""}}}},function(t,e,n){"use strict";e.a={name:"NotFound"}},function(t,e,n){"use strict";var r=n(2),i=n(33),o=n.n(i),s=n(285),a=n(295);e.a={components:{FullCalendar:s.a,MySchedule:a.a},data:function(){return{nodes:[],parsedNodes:[],alert:!1,snackbar:!1,errorMessage:"",updateCalendar:!1,selectedResources:[],nodeCheckbox:!1,resourceTypeCheckbox:!1,resourceCheckbox:!1}},mounted:function(){var t=this;r.a.request("get","/nodes/metrics",this.$store.state.accessToken).then(function(e){t.nodes=e.data,t.parseData()}).catch(function(e){t.handleError(e)})},methods:{handleError:function(t){t.hasOwnProperty("response")?t.response.data.hasOwnProperty("msg")?this.showSnackbar(t.response.data.msg):this.showSnackbar(t.response.data):this.showSnackbar(t.message)},showSnackbar:function(t){this.errorMessage=t,this.snackbar=!0},loadResources:function(t){this.selectedResources=[];for(var e in t)if(t[e].selected){var n={nodeName:t[e].nodeName,name:t[e].resourceName,uuid:e,index:t[e].resourceIndex};this.selectedResources.push(n)}this.updateCalendar=!this.updateCalendar},toggle:function(t){t.open=!t.open},parseData:function(){var t,e,n,r,i,s,a,l;for(var c in this.nodes){r=[],t=this.nodes[c];for(var u in t){n=[],e=t[u];for(var d in e)i={nodeName:c,resourceUUID:d,resourceName:e[d].name,resourceIndex:e[d].index,metrics:e[d].metrics},i.metrics.checked=!0,n.push(i);l=o.a.orderBy(n,"resourceIndex"),s={name:u,checked:!0,open:!1,resources:l},r.push(s)}a={nodeName:c,checked:!0,open:!1,resourceTypes:r},this.parsedNodes.push(a)}this.loadCalendar()},loadCalendar:function(){var t,e,n,r;this.selectedResources=[];for(var i=0;i0){i=this.selectedResources[0].uuid;for(var s=1;s"+e.description),e.allDay||o.a.request("get","/users/"+e.userId,t.$store.state.accessToken).then(function(t){n.find(".fc-title").prepend(t.data.username.bold().big().italics()+"
")}).catch(function(t){r.$emit("handleError",t)})},eventAfterRender:function(e,n,r){for(var i,o=0;oe&&o[r].start48*this.range&&(h=48*this.range);for(var p=d;p=0;l-=this.time/1e3)l%((this.space+1)*this.time/1e3)==0?n.push(l):n.push("");s=[];for(var c in t)null!==t[c].metrics[e]&&this.isVisible(t[c].metrics[e],e)&&(i=isNaN(t[c].metrics[e])?t[c].metrics[e].value:t[c].metrics[e],o=isNaN(t[c].metrics[e])?t[c].metrics[e].unit:"",r=t[c].metrics.mem_total.value,s.push(this.createDataset(c,"GPU"+t[c].index,this.setColor(t[c].index+1),i)));return a=u.a.orderBy(s,"label"),{metricName:e,data:{labels:n,datasets:a},options:this.createOptions(r,e,o)}},createDataset:function(t,e,n,r){for(var i=[],o=0;o *").each(function(t,n){var r=pt(n).outerWidth();r>e&&(e=r)}),e++,t.width(e),e}function u(t,e){var n,r=t.add(e);return r.css({position:"relative",left:-1}),n=t.outerHeight()-e.outerHeight(),r.css({position:"",left:""}),n}function d(t){var e=t.css("position"),n=t.parents().filter(function(){var t=pt(this);return/(auto|scroll)/.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==e&&n.length?n:pt(t[0].ownerDocument||document)}function h(t,e){var n=t.offset(),r=n.left-(e?e.left:0),i=n.top-(e?e.top:0);return{left:r,right:r+t.outerWidth(),top:i,bottom:i+t.outerHeight()}}function p(t,e){var n=t.offset(),r=v(t),i=n.left+w(t,"border-left-width")+r.left-(e?e.left:0),o=n.top+w(t,"border-top-width")+r.top-(e?e.top:0);return{left:i,right:i+t[0].clientWidth,top:o,bottom:o+t[0].clientHeight}}function f(t,e){var n=t.offset(),r=n.left+w(t,"border-left-width")+w(t,"padding-left")-(e?e.left:0),i=n.top+w(t,"border-top-width")+w(t,"padding-top")-(e?e.top:0);return{left:r,right:r+t.width(),top:i,bottom:i+t.height()}}function v(t){var e,n=t[0].offsetWidth-t[0].clientWidth,r=t[0].offsetHeight-t[0].clientHeight;return n=g(n),r=g(r),e={left:0,right:0,top:0,bottom:r},m()&&"rtl"===t.css("direction")?e.left=n:e.right=n,e}function g(t){return t=Math.max(0,t),t=Math.round(t)}function m(){return null===ft&&(ft=y()),ft}function y(){var t=pt("

").css({position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}).appendTo("body"),e=t.children(),n=e.offset().left>t.offset().left;return t.remove(),n}function w(t,e){return parseFloat(t.css(e))||0}function b(t){return 1===t.which&&!t.ctrlKey}function D(t){var e=t.originalEvent.touches;return e&&e.length?e[0].pageX:t.pageX}function S(t){var e=t.originalEvent.touches;return e&&e.length?e[0].pageY:t.pageY}function _(t){return/^touch/.test(t.type)}function E(t){t.addClass("fc-unselectable").on("selectstart",C)}function T(t){t.removeClass("fc-unselectable").off("selectstart",C)}function C(t){t.preventDefault()}function k(t,e){var n={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)};return n.left=1&&ct(o)));r++);return i}function N(t,e){var n=j(t);return"week"===n&&"object"==typeof e&&e.days&&(n="day"),n}function L(t,e,n){return null!=n?n.diff(e,t,!0):ht.isDuration(e)?e.as(t):e.end.diff(e.start,t,!0)}function B(t,e,n){var r;return G(n)?(e-t)/n:(r=n.asMonths(),Math.abs(r)>=1&&ct(r)?e.diff(t,"months",!0)/r:e.diff(t,"days",!0)/n.asDays())}function U(t,e){var n,r;return G(t)||G(e)?t/e:(n=t.asMonths(),r=e.asMonths(),Math.abs(n)>=1&&ct(n)&&Math.abs(r)>=1&&ct(r)?n/r:t.asDays()/e.asDays())}function V(t,e){var n;return G(t)?ht.duration(t*e):(n=t.asMonths(),Math.abs(n)>=1&&ct(n)?ht.duration({months:n*e}):ht.duration({days:t.asDays()*e}))}function G(t){return Boolean(t.hours()||t.minutes()||t.seconds()||t.milliseconds())}function $(t){return"[object Date]"===Object.prototype.toString.call(t)||t instanceof Date}function Y(t){return"string"==typeof t&&/^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(t)}function q(){for(var t=[],e=0;e=0;o--)if("object"==typeof(s=t[o][r]))i.unshift(s);else if(void 0!==s){l[r]=s;break}i.length&&(l[r]=Z(i))}for(n=t.length-1;n>=0;n--){a=t[n];for(r in a)r in l||(l[r]=a[r])}return l}function K(t,e){for(var n in t)X(t,n)&&(e[n]=t[n])}function X(t,e){return vt.call(t,e)}function Q(t,e,n){if(pt.isFunction(t)&&(t=[t]),t){var r=void 0,i=void 0;for(r=0;r/g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
")}function it(t){return t.replace(/&.*?;/g,"")}function ot(t){var e=[];return pt.each(t,function(t,n){null!=n&&e.push(t+":"+n)}),e.join(";")}function st(t){var e=[];return pt.each(t,function(t,n){null!=n&&e.push(t+'="'+rt(n)+'"')}),e.join(" ")}function at(t){return t.charAt(0).toUpperCase()+t.slice(1)}function lt(t,e){return t-e}function ct(t){return t%1==0}function ut(t,e){var n=t[e];return function(){return n.apply(t,arguments)}}function dt(t,e,n){void 0===n&&(n=!1);var r,i,o,s,a,l=function(){var c=+new Date-s;ca&&s.push(new t(a,o.startMs)),o.endMs>a&&(a=o.endMs);return at.startMs)&&(null==this.startMs||null==t.endMs||this.startMs=this.startMs)&&(null==this.endMs||null!=t.endMs&&t.endMs<=this.endMs)},t.prototype.containsDate=function(t){var e=t.valueOf();return(null==this.startMs||e>=this.startMs)&&(null==this.endMs||e=this.endMs&&(e=this.endMs-1),e},t.prototype.equals=function(t){return this.startMs===t.startMs&&this.endMs===t.endMs},t.prototype.clone=function(){var e=new t(this.startMs,this.endMs);return e.isStart=this.isStart,e.isEnd=this.isEnd,e},t.prototype.getStart=function(){return null!=this.startMs?o.default.utc(this.startMs).stripZone():null},t.prototype.getEnd=function(){return null!=this.endMs?o.default.utc(this.endMs).stripZone():null},t.prototype.as=function(t){return i.utc(this.endMs).diff(i.utc(this.startMs),t,!0)},t}();e.default=s},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(208),s=n(33),a=n(49),l=function(t){function e(n){var r=t.call(this)||this;return r.calendar=n,r.className=[],r.uid=String(e.uuid++),r}return r.__extends(e,t),e.parse=function(t,e){var n=new this(e);return!("object"!=typeof t||!n.applyProps(t))&&n},e.normalizeId=function(t){return t?String(t):null},e.prototype.fetch=function(t,e,n){},e.prototype.removeEventDefsById=function(t){},e.prototype.removeAllEventDefs=function(){},e.prototype.getPrimitive=function(t){},e.prototype.parseEventDefs=function(t){var e,n,r=[];for(e=0;e0},e}(o.default);e.default=s},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){this.isAllDay=!1,this.unzonedRange=t,this.isAllDay=e}return t.prototype.toLegacy=function(t){return{start:t.msToMoment(this.unzonedRange.startMs,this.isAllDay),end:t.msToMoment(this.unzonedRange.endMs,this.isAllDay)}},t}();e.default=n},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(34),o=n(209),s=n(17),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.buildInstances=function(){return[this.buildInstance()]},e.prototype.buildInstance=function(){return new o.default(this,this.dateProfile)},e.prototype.isAllDay=function(){return this.dateProfile.isAllDay()},e.prototype.clone=function(){var e=t.prototype.clone.call(this);return e.dateProfile=this.dateProfile,e},e.prototype.rezone=function(){var t=this.source.calendar,e=this.dateProfile;this.dateProfile=new s.default(t.moment(e.start),e.end?t.moment(e.end):null,t)},e.prototype.applyManualStandardProps=function(e){var n=t.prototype.applyManualStandardProps.call(this,e),r=s.default.parse(e,this.source);return!!r&&(this.dateProfile=r,null!=e.date&&(this.miscProps.date=e.date),n)},e}(i.default);e.default=a,a.defineStandardProps({start:!1,date:!1,end:!1,allDay:!1})},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(){}return t.mixInto=function(t){var e=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){t.prototype[n]||(t.prototype[n]=e.prototype[n])})},t.mixOver=function(t){var e=this;Object.getOwnPropertyNames(this.prototype).forEach(function(n){t.prototype[n]=e.prototype[n]})},t}();e.default=n},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this.view=t._getView(),this.component=t}return t.prototype.opt=function(t){return this.view.opt(t)},t.prototype.end=function(){},t}();e.default=n},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0}),e.version="3.9.0",e.internalApiVersion=12;var r=n(4);e.applyAll=r.applyAll,e.debounce=r.debounce,e.isInt=r.isInt,e.htmlEscape=r.htmlEscape,e.cssToStr=r.cssToStr,e.proxy=r.proxy,e.capitaliseFirstLetter=r.capitaliseFirstLetter,e.getOuterRect=r.getOuterRect,e.getClientRect=r.getClientRect,e.getContentRect=r.getContentRect,e.getScrollbarWidths=r.getScrollbarWidths,e.preventDefault=r.preventDefault,e.parseFieldSpecs=r.parseFieldSpecs,e.compareByFieldSpecs=r.compareByFieldSpecs,e.compareByFieldSpec=r.compareByFieldSpec,e.flexibleCompare=r.flexibleCompare,e.computeGreatestUnit=r.computeGreatestUnit,e.divideRangeByDuration=r.divideRangeByDuration,e.divideDurationByDuration=r.divideDurationByDuration,e.multiplyDuration=r.multiplyDuration,e.durationHasTime=r.durationHasTime,e.log=r.log,e.warn=r.warn,e.removeExact=r.removeExact,e.intersectRects=r.intersectRects;var i=n(47);e.formatDate=i.formatDate,e.formatRange=i.formatRange,e.queryMostGranularFormatUnit=i.queryMostGranularFormatUnit;var o=n(31);e.datepickerLocale=o.datepickerLocale,e.locale=o.locale;var s=n(10);e.moment=s.default;var a=n(11);e.EmitterMixin=a.default;var l=n(7);e.ListenerMixin=l.default;var c=n(48);e.Model=c.default;var u=n(207);e.Constraints=u.default;var d=n(5);e.UnzonedRange=d.default;var h=n(12);e.ComponentFootprint=h.default;var p=n(212);e.BusinessHourGenerator=p.default;var f=n(34);e.EventDef=f.default;var v=n(37);e.EventDefMutation=v.default;var g=n(38);e.EventSourceParser=g.default;var m=n(6);e.EventSource=m.default;var y=n(51);e.defineThemeSystem=y.defineThemeSystem;var w=n(18);e.EventInstanceGroup=w.default;var b=n(52);e.ArrayEventSource=b.default;var D=n(215);e.FuncEventSource=D.default;var S=n(216);e.JsonFeedEventSource=S.default;var _=n(36);e.EventFootprint=_.default;var E=n(33);e.Class=E.default;var T=n(14);e.Mixin=T.default;var C=n(53);e.CoordCache=C.default;var k=n(54);e.DragListener=k.default;var M=n(20);e.Promise=M.default;var R=n(217);e.TaskQueue=R.default;var x=n(218);e.RenderQueue=x.default;var I=n(39);e.Scroller=I.default;var P=n(19);e.Theme=P.default;var H=n(219);e.DateComponent=H.default;var F=n(40);e.InteractiveDateComponent=F.default;var O=n(220);e.Calendar=O.default;var A=n(41);e.View=A.default;var z=n(22);e.defineView=z.defineView,e.getViewConfig=z.getViewConfig;var j=n(55);e.DayTableMixin=j.default;var N=n(56);e.BusinessHourRenderer=N.default;var L=n(42);e.EventRenderer=L.default;var B=n(57);e.FillRenderer=B.default;var U=n(58);e.HelperRenderer=U.default;var V=n(222);e.ExternalDropping=V.default;var G=n(223);e.EventResizing=G.default;var $=n(59);e.EventPointing=$.default;var Y=n(224);e.EventDragging=Y.default;var q=n(225);e.DateSelecting=q.default;var W=n(60);e.StandardInteractionsMixin=W.default;var Z=n(226);e.AgendaView=Z.default;var K=n(227);e.TimeGrid=K.default;var X=n(61);e.DayGrid=X.default;var Q=n(62);e.BasicView=Q.default;var J=n(229);e.MonthView=J.default;var tt=n(230);e.ListView=tt.default},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(5),i=function(){function t(t,e,n){this.start=t,this.end=e||null,this.unzonedRange=this.buildUnzonedRange(n)}return t.parse=function(e,n){var r=e.start||e.date,i=e.end;if(!r)return!1;var o=n.calendar,s=o.moment(r),a=i?o.moment(i):null,l=e.allDay,c=o.opt("forceEventDuration");return!!s.isValid()&&(!a||a.isValid()&&a.isAfter(s)||(a=null),null==l&&null==(l=n.allDayDefault)&&(l=o.opt("allDayDefault")),!0===l?(s.stripTime(),a&&a.stripTime()):!1===l&&(s.hasTime()||s.time(0),a&&!a.hasTime()&&a.time(0)),!a&&c&&(a=o.getDefaultEventEnd(!s.hasTime(),s)),new t(s,a,o))},t.isStandardProp=function(t){return"start"===t||"date"===t||"end"===t||"allDay"===t},t.prototype.isAllDay=function(){return!(this.start.hasTime()||this.end&&this.end.hasTime())},t.prototype.buildUnzonedRange=function(t){var e=this.start.clone().stripZone().valueOf(),n=this.getEnd(t).stripZone().valueOf();return new r.default(e,n)},t.prototype.getEnd=function(t){return this.end?this.end.clone():t.getDefaultEventEnd(this.isAllDay(),this.start)},t}();e.default=i},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(5),i=n(35),o=n(211),s=function(){function t(t){this.eventInstances=t||[]}return t.prototype.getAllEventRanges=function(t){return t?this.sliceNormalRenderRanges(t):this.eventInstances.map(i.eventInstanceToEventRange)},t.prototype.sliceRenderRanges=function(t){return this.isInverse()?this.sliceInverseRenderRanges(t):this.sliceNormalRenderRanges(t)},t.prototype.sliceNormalRenderRanges=function(t){var e,n,r,i=this.eventInstances,s=[];for(e=0;e
')},e.prototype.clear=function(){this.setHeight("auto"),this.applyOverflow()},e.prototype.destroy=function(){this.el.remove()},e.prototype.applyOverflow=function(){this.scrollEl.css({"overflow-x":this.overflowX,"overflow-y":this.overflowY})},e.prototype.lockOverflow=function(t){var e=this.overflowX,n=this.overflowY;t=t||this.getScrollbarWidths(),"auto"===e&&(e=t.top||t.bottom||this.scrollEl[0].scrollWidth-1>this.scrollEl[0].clientWidth?"scroll":"hidden"),"auto"===n&&(n=t.left||t.right||this.scrollEl[0].scrollHeight-1>this.scrollEl[0].clientHeight?"scroll":"hidden"),this.scrollEl.css({"overflow-x":e,"overflow-y":n})},e.prototype.setHeight=function(t){this.scrollEl.height(t)},e.prototype.getScrollTop=function(){return this.scrollEl.scrollTop()},e.prototype.setScrollTop=function(t){this.scrollEl.scrollTop(t)},e.prototype.getClientWidth=function(){return this.scrollEl[0].clientWidth},e.prototype.getClientHeight=function(){return this.scrollEl[0].clientHeight},e.prototype.getScrollbarWidths=function(){return o.getScrollbarWidths(this.scrollEl)},e}(s.default);e.default=a},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(4),s=n(219),a=n(21),l=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.segSelector=".fc-event-container > *",r.dateSelectingClass&&(r.dateClicking=new r.dateClickingClass(r)),r.dateSelectingClass&&(r.dateSelecting=new r.dateSelectingClass(r)),r.eventPointingClass&&(r.eventPointing=new r.eventPointingClass(r)),r.eventDraggingClass&&r.eventPointing&&(r.eventDragging=new r.eventDraggingClass(r,r.eventPointing)),r.eventResizingClass&&r.eventPointing&&(r.eventResizing=new r.eventResizingClass(r,r.eventPointing)),r.externalDroppingClass&&(r.externalDropping=new r.externalDroppingClass(r)),r}return r.__extends(e,t),e.prototype.setElement=function(e){t.prototype.setElement.call(this,e),this.dateClicking&&this.dateClicking.bindToEl(e),this.dateSelecting&&this.dateSelecting.bindToEl(e),this.bindAllSegHandlersToEl(e)},e.prototype.removeElement=function(){this.endInteractions(),t.prototype.removeElement.call(this)},e.prototype.executeEventUnrender=function(){this.endInteractions(),t.prototype.executeEventUnrender.call(this)},e.prototype.bindGlobalHandlers=function(){t.prototype.bindGlobalHandlers.call(this),this.externalDropping&&this.externalDropping.bindToDocument()},e.prototype.unbindGlobalHandlers=function(){t.prototype.unbindGlobalHandlers.call(this),this.externalDropping&&this.externalDropping.unbindFromDocument()},e.prototype.bindDateHandlerToEl=function(t,e,n){var r=this;this.el.on(e,function(t){if(!i(t.target).is(r.segSelector+":not(.fc-helper),"+r.segSelector+":not(.fc-helper) *,.fc-more,a[data-goto]"))return n.call(r,t)})},e.prototype.bindAllSegHandlersToEl=function(t){[this.eventPointing,this.eventDragging,this.eventResizing].forEach(function(e){e&&e.bindToEl(t)})},e.prototype.bindSegHandlerToEl=function(t,e,n){var r=this;t.on(e,this.segSelector,function(t){var e=i(t.currentTarget);if(!e.is(".fc-helper")){var o=e.data("fc-seg");if(o&&!r.shouldIgnoreEventPointing())return n.call(r,o,t)}})},e.prototype.shouldIgnoreMouse=function(){return a.default.get().shouldIgnoreMouse()},e.prototype.shouldIgnoreTouch=function(){var t=this._getView();return t.isSelected||t.selectedEvent},e.prototype.shouldIgnoreEventPointing=function(){return this.eventDragging&&this.eventDragging.isDragging||this.eventResizing&&this.eventResizing.isResizing},e.prototype.canStartSelection=function(t,e){return o.getEvIsTouch(e)&&!this.canStartResize(t,e)&&(this.isEventDefDraggable(t.footprint.eventDef)||this.isEventDefResizable(t.footprint.eventDef))},e.prototype.canStartDrag=function(t,e){return!this.canStartResize(t,e)&&this.isEventDefDraggable(t.footprint.eventDef)},e.prototype.canStartResize=function(t,e){var n=this._getView(),r=t.footprint.eventDef;return(!o.getEvIsTouch(e)||n.isEventDefSelected(r))&&this.isEventDefResizable(r)&&i(e.target).is(".fc-resizer")},e.prototype.endInteractions=function(){[this.dateClicking,this.dateSelecting,this.eventPointing,this.eventDragging,this.eventResizing].forEach(function(t){t&&t.end()})},e.prototype.isEventDefDraggable=function(t){return this.isEventDefStartEditable(t)},e.prototype.isEventDefStartEditable=function(t){var e=t.isStartExplicitlyEditable();return null==e&&null==(e=this.opt("eventStartEditable"))&&(e=this.isEventDefGenerallyEditable(t)),e},e.prototype.isEventDefGenerallyEditable=function(t){var e=t.isExplicitlyEditable();return null==e&&(e=this.opt("editable")),e},e.prototype.isEventDefResizableFromStart=function(t){return this.opt("eventResizableFromStart")&&this.isEventDefResizable(t)},e.prototype.isEventDefResizableFromEnd=function(t){return this.isEventDefResizable(t)},e.prototype.isEventDefResizable=function(t){var e=t.isDurationExplicitlyEditable();return null==e&&null==(e=this.opt("eventDurationEditable"))&&(e=this.isEventDefGenerallyEditable(t)),e},e.prototype.diffDates=function(t,e){return this.largeUnit?o.diffByUnit(t,e,this.largeUnit):o.diffDayTime(t,e)},e.prototype.isEventInstanceGroupAllowed=function(t){var e,n=this._getView(),r=this.dateProfile,i=this.eventRangesToEventFootprints(t.getAllEventRanges());for(e=0;e1?"ll":"LL"},e.prototype.setDate=function(t){var e=this.get("dateProfile"),n=this.dateProfileGenerator.build(t,void 0,!0);e&&e.activeUnzonedRange.equals(n.activeUnzonedRange)||this.set("dateProfile",n)},e.prototype.unsetDate=function(){this.unset("dateProfile")},e.prototype.fetchInitialEvents=function(t){var e=this.calendar,n=t.isRangeAllDay&&!this.usesMinMaxTime;return e.requestEvents(e.msToMoment(t.activeUnzonedRange.startMs,n),e.msToMoment(t.activeUnzonedRange.endMs,n))},e.prototype.bindEventChanges=function(){this.listenTo(this.calendar,"eventsReset",this.resetEvents)},e.prototype.unbindEventChanges=function(){this.stopListeningTo(this.calendar,"eventsReset")},e.prototype.setEvents=function(t){this.set("currentEvents",t),this.set("hasEvents",!0)},e.prototype.unsetEvents=function(){this.unset("currentEvents"),this.unset("hasEvents")},e.prototype.resetEvents=function(t){this.startBatchRender(),this.unsetEvents(),this.setEvents(t),this.stopBatchRender()},e.prototype.requestDateRender=function(t){var e=this;this.requestRender(function(){e.executeDateRender(t)},"date","init")},e.prototype.requestDateUnrender=function(){var t=this;this.requestRender(function(){t.executeDateUnrender()},"date","destroy")},e.prototype.executeDateRender=function(e){t.prototype.executeDateRender.call(this,e),this.render&&this.render(),this.trigger("datesRendered"),this.addScroll({isDateInit:!0}),this.startNowIndicator()},e.prototype.executeDateUnrender=function(){this.unselect(),this.stopNowIndicator(),this.trigger("before:datesUnrendered"),this.destroy&&this.destroy(),t.prototype.executeDateUnrender.call(this)},e.prototype.bindBaseRenderHandlers=function(){var t=this;this.on("datesRendered",function(){t.whenSizeUpdated(t.triggerViewRender)}),this.on("before:datesUnrendered",function(){t.triggerViewDestroy()})},e.prototype.triggerViewRender=function(){this.publiclyTrigger("viewRender",{context:this,args:[this,this.el]})},e.prototype.triggerViewDestroy=function(){this.publiclyTrigger("viewDestroy",{context:this,args:[this,this.el]})},e.prototype.requestEventsRender=function(t){var e=this;this.requestRender(function(){e.executeEventRender(t),e.whenSizeUpdated(e.triggerAfterEventsRendered)},"event","init")},e.prototype.requestEventsUnrender=function(){var t=this;this.requestRender(function(){t.triggerBeforeEventsDestroyed(),t.executeEventUnrender()},"event","destroy")},e.prototype.requestBusinessHoursRender=function(t){var e=this;this.requestRender(function(){e.renderBusinessHours(t)},"businessHours","init")},e.prototype.requestBusinessHoursUnrender=function(){var t=this;this.requestRender(function(){t.unrenderBusinessHours()},"businessHours","destroy")},e.prototype.bindGlobalHandlers=function(){t.prototype.bindGlobalHandlers.call(this),this.listenTo(u.default.get(),{touchstart:this.processUnselect,mousedown:this.handleDocumentMousedown})},e.prototype.unbindGlobalHandlers=function(){t.prototype.unbindGlobalHandlers.call(this),this.stopListeningTo(u.default.get())},e.prototype.startNowIndicator=function(){var t,e,n,r=this;this.opt("nowIndicator")&&(t=this.getNowIndicatorUnit())&&(e=s.proxy(this,"updateNowIndicator"),this.initialNowDate=this.calendar.getNow(),this.initialNowQueriedMs=(new Date).valueOf(),n=this.initialNowDate.clone().startOf(t).add(1,t).valueOf()-this.initialNowDate.valueOf(),this.nowIndicatorTimeoutID=setTimeout(function(){r.nowIndicatorTimeoutID=null,e(),n=+o.duration(1,t),n=Math.max(100,n),r.nowIndicatorIntervalID=setInterval(e,n)},n))},e.prototype.updateNowIndicator=function(){this.isDatesRendered&&this.initialNowDate&&(this.unrenderNowIndicator(),this.renderNowIndicator(this.initialNowDate.clone().add((new Date).valueOf()-this.initialNowQueriedMs)),this.isNowIndicatorRendered=!0)},e.prototype.stopNowIndicator=function(){this.isNowIndicatorRendered&&(this.nowIndicatorTimeoutID&&(clearTimeout(this.nowIndicatorTimeoutID),this.nowIndicatorTimeoutID=null),this.nowIndicatorIntervalID&&(clearInterval(this.nowIndicatorIntervalID),this.nowIndicatorIntervalID=null),this.unrenderNowIndicator(),this.isNowIndicatorRendered=!1)},e.prototype.updateSize=function(e,n,r){this.setHeight?this.setHeight(e,n):t.prototype.updateSize.call(this,e,n,r),this.updateNowIndicator()},e.prototype.addScroll=function(t){var e=this.queuedScroll||(this.queuedScroll={});i.extend(e,t)},e.prototype.popScroll=function(){this.applyQueuedScroll(),this.queuedScroll=null},e.prototype.applyQueuedScroll=function(){this.queuedScroll&&this.applyScroll(this.queuedScroll)},e.prototype.queryScroll=function(){var t={};return this.isDatesRendered&&i.extend(t,this.queryDateScroll()),t},e.prototype.applyScroll=function(t){t.isDateInit&&this.isDatesRendered&&i.extend(t,this.computeInitialDateScroll()),this.isDatesRendered&&this.applyDateScroll(t)},e.prototype.computeInitialDateScroll=function(){return{}},e.prototype.queryDateScroll=function(){return{}},e.prototype.applyDateScroll=function(t){},e.prototype.reportEventDrop=function(t,e,n,r){var i=this.calendar.eventManager,s=i.mutateEventsWithId(t.def.id,e),a=e.dateMutation;a&&(t.dateProfile=a.buildNewDateProfile(t.dateProfile,this.calendar)),this.triggerEventDrop(t,a&&a.dateDelta||o.duration(),s,n,r)},e.prototype.triggerEventDrop=function(t,e,n,r,i){this.publiclyTrigger("eventDrop",{context:r[0],args:[t.toLegacy(),e,n,i,{},this]})},e.prototype.reportExternalDrop=function(t,e,n,r,i,o){e&&this.calendar.eventManager.addEventDef(t,n),this.triggerExternalDrop(t,e,r,i,o)},e.prototype.triggerExternalDrop=function(t,e,n,r,i){this.publiclyTrigger("drop",{context:n[0],args:[t.dateProfile.start.clone(),r,i,this]}),e&&this.publiclyTrigger("eventReceive",{context:this,args:[t.buildInstance().toLegacy(),this]})},e.prototype.reportEventResize=function(t,e,n,r){var i=this.calendar.eventManager,o=i.mutateEventsWithId(t.def.id,e);t.dateProfile=e.dateMutation.buildNewDateProfile(t.dateProfile,this.calendar),this.triggerEventResize(t,e.dateMutation.endDelta,o,n,r)},e.prototype.triggerEventResize=function(t,e,n,r,i){this.publiclyTrigger("eventResize",{context:r[0],args:[t.toLegacy(),e,n,i,{},this]})},e.prototype.select=function(t,e){this.unselect(e),this.renderSelectionFootprint(t),this.reportSelection(t,e)},e.prototype.renderSelectionFootprint=function(e){this.renderSelection?this.renderSelection(e.toLegacy(this.calendar)):t.prototype.renderSelectionFootprint.call(this,e)},e.prototype.reportSelection=function(t,e){this.isSelected=!0,this.triggerSelect(t,e)},e.prototype.triggerSelect=function(t,e){var n=this.calendar.footprintToDateProfile(t);this.publiclyTrigger("select",{context:this,args:[n.start,n.end,e,this]})},e.prototype.unselect=function(t){this.isSelected&&(this.isSelected=!1,this.destroySelection&&this.destroySelection(),this.unrenderSelection(),this.publiclyTrigger("unselect",{context:this,args:[t,this]}))},e.prototype.selectEventInstance=function(t){this.selectedEventInstance&&this.selectedEventInstance===t||(this.unselectEventInstance(),this.getEventSegs().forEach(function(e){e.footprint.eventInstance===t&&e.el&&e.el.addClass("fc-selected")}),this.selectedEventInstance=t)},e.prototype.unselectEventInstance=function(){this.selectedEventInstance&&(this.getEventSegs().forEach(function(t){t.el&&t.el.removeClass("fc-selected")}),this.selectedEventInstance=null)},e.prototype.isEventDefSelected=function(t){return this.selectedEventInstance&&this.selectedEventInstance.def.id===t.id},e.prototype.handleDocumentMousedown=function(t){s.isPrimaryMouseButton(t)&&this.processUnselect(t)},e.prototype.processUnselect=function(t){this.processRangeUnselect(t),this.processEventUnselect(t)},e.prototype.processRangeUnselect=function(t){var e;this.isSelected&&this.opt("unselectAuto")&&((e=this.opt("unselectCancel"))&&i(t.target).closest(e).length||this.unselect(t))},e.prototype.processEventUnselect=function(t){this.selectedEventInstance&&(i(t.target).closest(".fc-selected").length||this.unselectEventInstance())},e.prototype.triggerBaseRendered=function(){this.publiclyTrigger("viewRender",{context:this,args:[this,this.el]})},e.prototype.triggerBaseUnrendered=function(){this.publiclyTrigger("viewDestroy",{context:this,args:[this,this.el]})},e.prototype.triggerDayClick=function(t,e,n){var r=this.calendar.footprintToDateProfile(t);this.publiclyTrigger("dayClick",{context:e,args:[r.start,n,this]})},e.prototype.isDateInOtherMonth=function(t,e){return!1},e.prototype.getUnzonedRangeOption=function(t){var e=this.opt(t);if("function"==typeof e&&(e=e.apply(null,Array.prototype.slice.call(arguments,1))),e)return this.calendar.parseUnzonedRange(e)},e.prototype.initHiddenDays=function(){var t,e=this.opt("hiddenDays")||[],n=[],r=0;for(!1===this.opt("weekends")&&e.push(0,6),t=0;t<7;t++)(n[t]=-1!==i.inArray(t,e))||r++;if(!r)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n},e.prototype.trimHiddenDays=function(t){var e=t.getStart(),n=t.getEnd();return e&&(e=this.skipHiddenDays(e)),n&&(n=this.skipHiddenDays(n,-1,!0)),null===e||null===n||eo&&(!l[s]||c.isSame(u,l[s]))&&(s-1!==o||"."!==d[s]);s--)g=d[s]+g;for(a=o;a<=s;a++)m+=d[a],y+=h[a];return(m||y)&&(w=i?y+r+m:m+r+y),v(p+w+g)}function a(t){return E[t]||(E[t]=l(t))}function l(t){var e=c(t);return{fakeFormatString:d(e),sameUnits:h(e)}}function c(t){for(var e,n=[],r=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;e=r.exec(t);)e[1]?n.push.apply(n,u(e[1])):e[2]?n.push({maybe:c(e[2])}):e[3]?n.push({token:e[3]}):e[5]&&n.push.apply(n,u(e[5]));return n}function u(t){return". "===t?["."," "]:[t]}function d(t){var e,n,r=[];for(e=0;ei.value)&&(i=r);return i?i.unit:null}Object.defineProperty(e,"__esModule",{value:!0});var m=n(10);m.newMomentProto.format=function(){return this._fullCalendar&&arguments[0]?i(this,arguments[0]):this._ambigTime?m.oldMomentFormat(r(this),"YYYY-MM-DD"):this._ambigZone?m.oldMomentFormat(r(this),"YYYY-MM-DD[T]HH:mm:ss"):this._fullCalendar?m.oldMomentFormat(r(this)):m.oldMomentProto.format.apply(this,arguments)},m.newMomentProto.toISOString=function(){return this._ambigTime?m.oldMomentFormat(r(this),"YYYY-MM-DD"):this._ambigZone?m.oldMomentFormat(r(this),"YYYY-MM-DD[T]HH:mm:ss"):this._fullCalendar?m.oldMomentProto.toISOString.apply(r(this),arguments):m.oldMomentProto.toISOString.apply(this,arguments)};var y="\v",w="",b="",D=new RegExp(b+"([^"+b+"]*)"+b,"g"),S={t:function(t){return m.oldMomentFormat(t,"a").charAt(0)},T:function(t){return m.oldMomentFormat(t,"A").charAt(0)}},_={Y:{value:1,unit:"year"},M:{value:2,unit:"month"},W:{value:3,unit:"week"},w:{value:3,unit:"week"},D:{value:4,unit:"day"},d:{value:4,unit:"day"}};e.formatDate=i,e.formatRange=o;var E={};e.queryMostGranularFormatUnit=g},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(33),o=n(11),s=n(7),a=function(t){function e(){var e=t.call(this)||this;return e._watchers={},e._props={},e.applyGlobalWatchers(),e.constructed(),e}return r.__extends(e,t),e.watch=function(t){for(var e=[],n=1;n0&&(t=this.els.eq(0).offsetParent()),this.origin=t?t.offset():null,this.boundingRect=this.queryBoundingRect(),this.isHorizontal&&this.buildElHorizontals(),this.isVertical&&this.buildElVerticals()},t.prototype.clear=function(){this.origin=null,this.boundingRect=null,this.lefts=null,this.rights=null,this.tops=null,this.bottoms=null},t.prototype.ensureBuilt=function(){this.origin||this.build()},t.prototype.buildElHorizontals=function(){var t=[],e=[];this.els.each(function(n,i){var o=r(i),s=o.offset().left,a=o.outerWidth();t.push(s),e.push(s+a)}),this.lefts=t,this.rights=e},t.prototype.buildElVerticals=function(){var t=[],e=[];this.els.each(function(n,i){var o=r(i),s=o.offset().top,a=o.outerHeight();t.push(s),e.push(s+a)}),this.tops=t,this.bottoms=e},t.prototype.getHorizontalIndex=function(t){this.ensureBuilt();var e,n=this.lefts,r=this.rights,i=n.length;for(e=0;e=n[e]&&t=n[e]&&t0&&(t=i.getScrollParent(this.els.eq(0)),!t.is(document))?i.getClientRect(t):null},t.prototype.isPointInBounds=function(t,e){return this.isLeftInBounds(t)&&this.isTopInBounds(e)},t.prototype.isLeftInBounds=function(t){return!this.boundingRect||t>=this.boundingRect.left&&t=this.boundingRect.top&&t=r*r&&this.handleDistanceSurpassed(t),this.isDragging&&this.handleDrag(e,n,t)},t.prototype.handleDrag=function(t,e,n){this.trigger("drag",t,e,n),this.updateAutoScroll(n)},t.prototype.endDrag=function(t){this.isDragging&&(this.isDragging=!1,this.handleDragEnd(t))},t.prototype.handleDragEnd=function(t){this.trigger("dragEnd",t)},t.prototype.startDelay=function(t){var e=this;this.delay?this.delayTimeoutId=setTimeout(function(){e.handleDelayEnd(t)},this.delay):this.handleDelayEnd(t)},t.prototype.handleDelayEnd=function(t){this.isDelayEnded=!0,this.isDistanceSurpassed&&this.startDrag(t)},t.prototype.handleDistanceSurpassed=function(t){this.isDistanceSurpassed=!0,this.isDelayEnded&&this.startDrag(t)},t.prototype.handleTouchMove=function(t){this.isDragging&&this.shouldCancelTouchScroll&&t.preventDefault(),this.handleMove(t)},t.prototype.handleMouseMove=function(t){this.handleMove(t)},t.prototype.handleTouchScroll=function(t){this.isDragging&&!this.scrollAlwaysKills||this.endInteraction(t,!0)},t.prototype.trigger=function(t){for(var e=[],n=1;n=0&&e<=1?l=e*this.scrollSpeed*-1:n>=0&&n<=1&&(l=n*this.scrollSpeed),r>=0&&r<=1?c=r*this.scrollSpeed*-1:o>=0&&o<=1&&(c=o*this.scrollSpeed)),this.setScrollVel(l,c)},t.prototype.setScrollVel=function(t,e){this.scrollTopVel=t,this.scrollLeftVel=e,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(i.proxy(this,"scrollIntervalFunc"),this.scrollIntervalMs))},t.prototype.constrainScrollVel=function(){var t=this.scrollEl;this.scrollTopVel<0?t.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&t.scrollTop()+t[0].clientHeight>=t[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?t.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&t.scrollLeft()+t[0].clientWidth>=t[0].scrollWidth&&(this.scrollLeftVel=0)},t.prototype.scrollIntervalFunc=function(){var t=this.scrollEl,e=this.scrollIntervalMs/1e3;this.scrollTopVel&&t.scrollTop(t.scrollTop()+this.scrollTopVel*e),this.scrollLeftVel&&t.scrollLeft(t.scrollLeft()+this.scrollLeftVel*e),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.endAutoScroll()},t.prototype.endAutoScroll=function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.handleScrollEnd())},t.prototype.handleDebouncedScroll=function(){this.scrollIntervalId||this.handleScrollEnd()},t.prototype.handleScrollEnd=function(){},t}();e.default=a,o.default.mixInto(a)},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(4),o=n(14),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.updateDayTable=function(){for(var t,e,n,r=this,i=r.view,o=i.calendar,s=o.msToUtcMoment(r.dateProfile.renderUnzonedRange.startMs,!0),a=o.msToUtcMoment(r.dateProfile.renderUnzonedRange.endMs,!0),l=-1,c=[],u=[];s.isBefore(a);)i.isHiddenDay(s)?c.push(l+.5):(l++,c.push(l),u.push(s.clone())),s.add(1,"days");if(this.breakOnWeeks){for(e=u[0].day(),t=1;t=e.length?e[e.length-1]+1:e[n]},e.prototype.computeColHeadFormat=function(){return this.rowCnt>1||this.colCnt>10?"ddd":this.colCnt>1?this.opt("dayOfMonthFormat"):"dddd"},e.prototype.sliceRangeByRow=function(t){var e,n,r,i,o,s=this.daysPerRow,a=this.view.computeDayRange(t),l=this.getDateDayIndex(a.start),c=this.getDateDayIndex(a.end.clone().subtract(1,"days")),u=[];for(e=0;e'+this.renderHeadTrHtml()+"
"},e.prototype.renderHeadIntroHtml=function(){return this.renderIntroHtml()},e.prototype.renderHeadTrHtml=function(){return""+(this.isRTL?"":this.renderHeadIntroHtml())+this.renderHeadDateCellsHtml()+(this.isRTL?this.renderHeadIntroHtml():"")+""},e.prototype.renderHeadDateCellsHtml=function(){var t,e,n=[];for(t=0;t1?' colspan="'+e+'"':"")+(n?" "+n:"")+">"+(a?s.buildGotoAnchorHtml({date:t,forceOff:o.rowCnt>1||1===o.colCnt},r):r)+""},e.prototype.renderBgTrHtml=function(t){return""+(this.isRTL?"":this.renderBgIntroHtml(t))+this.renderBgCellsHtml(t)+(this.isRTL?this.renderBgIntroHtml(t):"")+""},e.prototype.renderBgIntroHtml=function(t){return this.renderIntroHtml()},e.prototype.renderBgCellsHtml=function(t){var e,n,r=[];for(e=0;e"},e.prototype.renderIntroHtml=function(){},e.prototype.bookendCells=function(t){var e=this.renderIntroHtml();e&&(this.isRTL?t.append(e):t.prepend(e))},e}(o.default);e.default=s},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){this.component=t,this.fillRenderer=e}return t.prototype.render=function(t){var e=this.component,n=e._getDateProfile().activeUnzonedRange,r=t.buildEventInstanceGroup(e.hasAllDayBusinessHours,n),i=r?e.eventRangesToEventFootprints(r.sliceRenderRanges(n)):[];this.renderEventFootprints(i)},t.prototype.renderEventFootprints=function(t){var e=this.component.eventFootprintsToSegs(t);this.renderSegs(e),this.segs=e},t.prototype.renderSegs=function(t){this.fillRenderer&&this.fillRenderer.renderSegs("businessHours",t,{getClasses:function(t){return["fc-nonbusiness","fc-bgevent"]}})},t.prototype.unrender=function(){this.fillRenderer&&this.fillRenderer.unrender("businessHours"),this.segs=null},t.prototype.getSegs=function(){return this.segs||[]},t}();e.default=n},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=n(4),o=function(){function t(t){this.fillSegTag="div",this.component=t,this.elsByFill={}}return t.prototype.renderFootprint=function(t,e,n){this.renderSegs(t,this.component.componentFootprintToSegs(e),n)},t.prototype.renderSegs=function(t,e,n){var r;return e=this.buildSegEls(t,e,n),r=this.attachSegEls(t,e),r&&this.reportEls(t,r),e},t.prototype.unrender=function(t){var e=this.elsByFill[t];e&&(e.remove(),delete this.elsByFill[t])},t.prototype.buildSegEls=function(t,e,n){var i,o=this,s="",a=[];if(e.length){for(i=0;i"},t.prototype.attachSegEls=function(t,e){},t.prototype.reportEls=function(t,e){this.elsByFill[t]?this.elsByFill[t]=this.elsByFill[t].add(e):this.elsByFill[t]=r(e)},t}();e.default=o},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(13),i=n(36),o=n(6),s=function(){function t(t,e){this.view=t._getView(),this.component=t,this.eventRenderer=e}return t.prototype.renderComponentFootprint=function(t){this.renderEventFootprints([this.fabricateEventFootprint(t)])},t.prototype.renderEventDraggingFootprints=function(t,e,n){this.renderEventFootprints(t,e,"fc-dragging",n?null:this.view.opt("dragOpacity"))},t.prototype.renderEventResizingFootprints=function(t,e,n){this.renderEventFootprints(t,e,"fc-resizing")},t.prototype.renderEventFootprints=function(t,e,n,r){var i,o=this.component.eventFootprintsToSegs(t),s="fc-helper "+(n||"");for(o=this.eventRenderer.renderFgSegEls(o),i=0;i
'+this.renderBgTrHtml(t)+'
'+(this.getIsNumbersVisible()?""+this.renderNumberTrHtml(t)+"":"")+"
"},e.prototype.getIsNumbersVisible=function(){return this.getIsDayNumbersVisible()||this.cellWeekNumbersVisible},e.prototype.getIsDayNumbersVisible=function(){return this.rowCnt>1},e.prototype.renderNumberTrHtml=function(t){return""+(this.isRTL?"":this.renderNumberIntroHtml(t))+this.renderNumberCellsHtml(t)+(this.isRTL?this.renderNumberIntroHtml(t):"")+""},e.prototype.renderNumberIntroHtml=function(t){return this.renderIntroHtml()},e.prototype.renderNumberCellsHtml=function(t){var e,n,r=[];for(e=0;e",this.cellWeekNumbersVisible&&t.day()===n&&(i+=r.buildGotoAnchorHtml({date:t,type:"week"},{class:"fc-week-number"},t.format("w"))),s&&(i+=r.buildGotoAnchorHtml(t,{class:"fc-day-number"},t.format("D"))),i+=""):""},e.prototype.prepareHits=function(){this.colCoordCache.build(),this.rowCoordCache.build(),this.rowCoordCache.bottoms[this.rowCnt-1]+=this.bottomCoordPadding},e.prototype.releaseHits=function(){this.colCoordCache.clear(),this.rowCoordCache.clear()},e.prototype.queryHit=function(t,e){if(this.colCoordCache.isLeftInBounds(t)&&this.rowCoordCache.isTopInBounds(e)){var n=this.colCoordCache.getHorizontalIndex(t),r=this.rowCoordCache.getVerticalIndex(e);if(null!=r&&null!=n)return this.getCellHit(r,n)}},e.prototype.getHitFootprint=function(t){var e=this.getCellRange(t.row,t.col);return new c.default(new l.default(e.start,e.end),!0)},e.prototype.getHitEl=function(t){return this.getCellEl(t.row,t.col)},e.prototype.getCellHit=function(t,e){return{row:t,col:e,component:this,left:this.colCoordCache.getLeftOffset(e),right:this.colCoordCache.getRightOffset(e),top:this.rowCoordCache.getTopOffset(t),bottom:this.rowCoordCache.getBottomOffset(t)}},e.prototype.getCellEl=function(t,e){return this.cellEls.eq(t*this.colCnt+e)},e.prototype.executeEventUnrender=function(){this.removeSegPopover(),t.prototype.executeEventUnrender.call(this)},e.prototype.getOwnEventSegs=function(){return t.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs||[])},e.prototype.renderDrag=function(t,e,n){var r;for(r=0;r td > :first-child").each(e),r.position().top+o>a)return n;return!1},e.prototype.limitRow=function(t,e){var n,r,o,s,a,l,c,u,d,h,p,f,v,g,m,y=this,w=this.eventRenderer.rowStructs[t],b=[],D=0,S=function(n){for(;D").append(m),d.append(g),b.push(g[0])),D++};if(e&&e').attr("rowspan",h),l=u[f],m=this.renderMoreLink(t,a.leftCol+f,[a].concat(l)),g=i("
").append(m),v.append(g),p.push(v[0]),b.push(v[0]);d.addClass("fc-limited").after(i(p)),o.push(d[0])}}S(this.colCnt),w.moreEls=i(b),w.limitedEls=i(o)}},e.prototype.unlimitRow=function(t){var e=this.eventRenderer.rowStructs[t];e.moreEls&&(e.moreEls.remove(),e.moreEls=null),e.limitedEls&&(e.limitedEls.removeClass("fc-limited"),e.limitedEls=null)},e.prototype.renderMoreLink=function(t,e,n){var r=this,o=this.view;return i('').text(this.getMoreLinkText(n.length)).on("click",function(s){var a=r.opt("eventLimitClick"),l=r.getCellDate(t,e),c=i(s.currentTarget),u=r.getCellEl(t,e),d=r.getCellSegs(t,e),h=r.resliceDaySegs(d,l),p=r.resliceDaySegs(n,l);"function"==typeof a&&(a=r.publiclyTrigger("eventLimitClick",{context:o,args:[{date:l.clone(),dayEl:u,moreEl:c,segs:h,hiddenSegs:p},s,o]})),"popover"===a?r.showSegPopover(t,e,c,h):"string"==typeof a&&o.calendar.zoomTo(l,a)})},e.prototype.showSegPopover=function(t,e,n,r){var i,o,s=this,l=this.view,c=n.parent();i=1===this.rowCnt?l.el:this.rowEls.eq(t),o={className:"fc-more-popover "+l.calendar.theme.getClass("popover"),content:this.renderSegPopoverContent(t,e,r),parentEl:l.el,top:i.offset().top,autoHide:!0,viewportConstrain:this.opt("popoverViewportConstrain"),hide:function(){s.popoverSegs&&s.triggerBeforeEventSegsDestroyed(s.popoverSegs),s.segPopover.removeElement(),s.segPopover=null,s.popoverSegs=null}},this.isRTL?o.right=c.offset().left+c.outerWidth()+1:o.left=c.offset().left-1,this.segPopover=new a.default(o),this.segPopover.show(),this.bindAllSegHandlersToEl(this.segPopover.el),this.triggerAfterEventSegsRendered(r)},e.prototype.renderSegPopoverContent=function(t,e,n){var r,s=this.view,a=s.calendar.theme,l=this.getCellDate(t,e).format(this.opt("dayPopoverFormat")),c=i('
'+o.htmlEscape(l)+'
'),u=c.find(".fc-event-container");for(n=this.eventRenderer.renderFgSegEls(n,!0),this.popoverSegs=n,r=0;r"+s.htmlEscape(this.opt("weekNumberTitle"))+"":""},e.prototype.renderNumberIntroHtml=function(t){var e=this.view,n=this.getCellDate(t,0);return this.colWeekNumbersVisible?'"+e.buildGotoAnchorHtml({date:n,type:"week",forceOff:1===this.colCnt},n.format("w"))+"":""},e.prototype.renderBgIntroHtml=function(){var t=this.view;return this.colWeekNumbersVisible?'":""},e.prototype.renderIntroHtml=function(){var t=this.view;return this.colWeekNumbersVisible?'":""},e.prototype.getIsNumbersVisible=function(){return u.default.prototype.getIsNumbersVisible.apply(this,arguments)||this.colWeekNumbersVisible},e}(t)}Object.defineProperty(e,"__esModule",{value:!0});var i=n(2),o=n(3),s=n(4),a=n(39),l=n(41),c=n(228),u=n(61),d=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.dayGrid=r.instantiateDayGrid(),r.dayGrid.isRigid=r.hasRigidRows(),r.opt("weekNumbers")&&(r.opt("weekNumbersWithinDays")?(r.dayGrid.cellWeekNumbersVisible=!0,r.dayGrid.colWeekNumbersVisible=!1):(r.dayGrid.cellWeekNumbersVisible=!1,r.dayGrid.colWeekNumbersVisible=!0)),r.addChild(r.dayGrid),r.scroller=new a.default({overflowX:"hidden",overflowY:"auto"}),r}return i.__extends(e,t),e.prototype.instantiateDayGrid=function(){return new(r(this.dayGridClass))(this)},e.prototype.executeDateRender=function(e){this.dayGrid.breakOnWeeks=/year|month|week/.test(e.currentRangeUnit),t.prototype.executeDateRender.call(this,e)},e.prototype.renderSkeleton=function(){var t,e;this.el.addClass("fc-basic-view").html(this.renderSkeletonHtml()),this.scroller.render(),t=this.scroller.el.addClass("fc-day-grid-container"),e=o('
').appendTo(t),this.el.find(".fc-body > tr > td").append(t),this.dayGrid.headContainerEl=this.el.find(".fc-head-container"),this.dayGrid.setElement(e)},e.prototype.unrenderSkeleton=function(){this.dayGrid.removeElement(),this.scroller.destroy()},e.prototype.renderSkeletonHtml=function(){var t=this.calendar.theme;return''+(this.opt("columnHeader")?'':"")+'
 
'},e.prototype.weekNumberStyleAttr=function(){return null!=this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},e.prototype.hasRigidRows=function(){var t=this.opt("eventLimit");return t&&"number"!=typeof t},e.prototype.updateSize=function(e,n,r){var i,o,a=this.opt("eventLimit"),l=this.dayGrid.headContainerEl.find(".fc-row");if(!this.dayGrid.rowEls)return void(n||(i=this.computeScrollerHeight(e),this.scroller.setHeight(i)));t.prototype.updateSize.call(this,e,n,r),this.dayGrid.colWeekNumbersVisible&&(this.weekNumberWidth=s.matchCellWidths(this.el.find(".fc-week-number"))),this.scroller.clear(),s.uncompensateScroll(l),this.dayGrid.removeSegPopover(),a&&"number"==typeof a&&this.dayGrid.limitRows(a),i=this.computeScrollerHeight(e),this.setGridHeight(i,n),a&&"number"!=typeof a&&this.dayGrid.limitRows(a),n||(this.scroller.setHeight(i),o=this.scroller.getScrollbarWidths(),(o.left||o.right)&&(s.compensateScroll(l,o),i=this.computeScrollerHeight(e),this.scroller.setHeight(i)),this.scroller.lockOverflow(o))},e.prototype.computeScrollerHeight=function(t){return t-s.subtractInnerElHeight(this.el,this.scroller.el)},e.prototype.setGridHeight=function(t,e){e?s.undistributeHeight(this.dayGrid.rowEls):s.distributeHeight(this.dayGrid.rowEls,t,!0)},e.prototype.computeInitialDateScroll=function(){return{top:0}},e.prototype.queryDateScroll=function(){return{top:this.scroller.getScrollTop()}},e.prototype.applyDateScroll=function(t){void 0!==t.top&&this.scroller.setScrollTop(t.top)},e}(l.default);e.default=d,d.prototype.dateProfileGeneratorClass=c.default,d.prototype.dayGridClass=u.default},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){function r(t,e,n){var r;for(r=0;r=0;e--)switch(n=r[e],n.type){case"init":i=!1;case"add":case"remove":r.splice(e,1)}return i&&r.push(t),i},e}(i.default);e.default=o},function(t,e,n){function r(t){var e,n,r,i=[];for(e in t)for(n=t[e].eventInstances,r=0;r'+n+"
":""+n+""},e.prototype.getAllDayHtml=function(){return this.opt("allDayHtml")||a.htmlEscape(this.opt("allDayText"))},e.prototype.getDayClasses=function(t,e){var n,r=this._getView(),i=[];return this.dateProfile.activeUnzonedRange.containsDate(t)?(i.push("fc-"+a.dayIDs[t.day()]),r.isDateInOtherMonth(t,this.dateProfile)&&i.push("fc-other-month"),n=r.calendar.getNow(),t.isSame(n,"day")?(i.push("fc-today"),!0!==e&&i.push(r.calendar.theme.getClass("today"))):t=this.nextDayThreshold&&o.add(1,"days"),o<=n&&(o=n.clone().add(1,"days")),{start:n,end:o}},e.prototype.isMultiDayRange=function(t){var e=this.computeDayRange(t);return e.end.diff(e.start,"days")>1},e.guid=0,e}(u.default);e.default=h},function(t,e,n){function r(t,e){return null==e?t:i.isFunction(e)?t.filter(e):(e+="",t.filter(function(t){return t.id==e||t._id===e}))}Object.defineProperty(e,"__esModule",{value:!0});var i=n(3),o=n(0),s=n(4),a=n(32),l=n(238),c=n(21),u=n(11),d=n(7),h=n(239),p=n(240),f=n(241),v=n(207),g=n(31),m=n(10),y=n(5),w=n(12),b=n(17),D=n(242),S=n(212),_=n(38),E=n(49),T=n(13),C=n(37),k=n(6),M=n(51),R=function(){function t(t,e){this.loadingLevel=0,this.ignoreUpdateViewSize=0,this.freezeContentHeightDepth=0,c.default.needed(),this.el=t,this.viewsByType={},this.optionsManager=new p.default(this,e),this.viewSpecManager=new f.default(this.optionsManager,this),this.initMomentInternals(),this.initCurrentDate(),this.initEventManager(),this.constraints=new v.default(this.eventManager,this),this.constructed()}return t.prototype.constructed=function(){},t.prototype.getView=function(){return this.view},t.prototype.publiclyTrigger=function(t,e){var n,r,o=this.opt(t);if(i.isPlainObject(e)?(n=e.context,r=e.args):i.isArray(e)&&(r=e),null==n&&(n=this.el[0]),r||(r=[]),this.triggerWith(t,n,r),o)return o.apply(n,r)},t.prototype.hasPublicHandlers=function(t){return this.hasHandlers(t)||this.opt(t)},t.prototype.option=function(t,e){var n;if("string"==typeof t){if(void 0===e)return this.optionsManager.get(t);n={},n[t]=e,this.optionsManager.add(n)}else"object"==typeof t&&this.optionsManager.add(t)},t.prototype.opt=function(t){return this.optionsManager.get(t)},t.prototype.instantiateView=function(t){var e=this.viewSpecManager.getViewSpec(t);if(!e)throw new Error('View type "'+t+'" is not valid');return new e.class(this,e)},t.prototype.isValidViewType=function(t){return Boolean(this.viewSpecManager.getViewSpec(t))},t.prototype.changeView=function(t,e){e&&(e.start&&e.end?this.optionsManager.recordOverrides({visibleRange:e}):this.currentDate=this.moment(e).stripZone()),this.renderView(t)},t.prototype.zoomTo=function(t,e){var n;e=e||"day",n=this.viewSpecManager.getViewSpec(e)||this.viewSpecManager.getUnitViewSpec(e),this.currentDate=t.clone(),this.renderView(n?n.type:null)},t.prototype.initCurrentDate=function(){var t=this.opt("defaultDate");this.currentDate=null!=t?this.moment(t).stripZone():this.getNow()},t.prototype.prev=function(){var t=this.view,e=t.dateProfileGenerator.buildPrev(t.get("dateProfile"));e.isValid&&(this.currentDate=e.date,this.renderView())},t.prototype.next=function(){var t=this.view,e=t.dateProfileGenerator.buildNext(t.get("dateProfile"));e.isValid&&(this.currentDate=e.date,this.renderView())},t.prototype.prevYear=function(){this.currentDate.add(-1,"years"),this.renderView()},t.prototype.nextYear=function(){this.currentDate.add(1,"years"),this.renderView()},t.prototype.today=function(){this.currentDate=this.getNow(),this.renderView()},t.prototype.gotoDate=function(t){this.currentDate=this.moment(t).stripZone(),this.renderView()},t.prototype.incrementDate=function(t){this.currentDate.add(o.duration(t)),this.renderView()},t.prototype.getDate=function(){return this.applyTimezone(this.currentDate)},t.prototype.pushLoading=function(){this.loadingLevel++||this.publiclyTrigger("loading",[!0,this.view])},t.prototype.popLoading=function(){--this.loadingLevel||this.publiclyTrigger("loading",[!1,this.view])},t.prototype.render=function(){this.contentEl?this.elementVisible()&&(this.calcSize(),this.updateViewSize()):this.initialRender()},t.prototype.initialRender=function(){var t=this,e=this.el;e.addClass("fc"),e.on("click.fc","a[data-goto]",function(e){var n=i(e.currentTarget),r=n.data("goto"),o=t.moment(r.date),a=r.type,l=t.view.opt("navLink"+s.capitaliseFirstLetter(a)+"Click");"function"==typeof l?l(o,e):("string"==typeof l&&(a=l),t.zoomTo(o,a))}),this.optionsManager.watch("settingTheme",["?theme","?themeSystem"],function(n){var r=M.getThemeSystemClass(n.themeSystem||n.theme),i=new r(t.optionsManager),o=i.getClass("widget");t.theme=i,o&&e.addClass(o)},function(){var n=t.theme.getClass("widget");t.theme=null,n&&e.removeClass(n)}),this.optionsManager.watch("settingBusinessHourGenerator",["?businessHours"],function(e){t.businessHourGenerator=new S.default(e.businessHours,t),t.view&&t.view.set("businessHourGenerator",t.businessHourGenerator)},function(){t.businessHourGenerator=null}),this.optionsManager.watch("applyingDirClasses",["?isRTL","?locale"],function(t){e.toggleClass("fc-ltr",!t.isRTL),e.toggleClass("fc-rtl",t.isRTL)}),this.contentEl=i("
").prependTo(e),this.initToolbars(),this.renderHeader(),this.renderFooter(),this.renderView(this.opt("defaultView")),this.opt("handleWindowResize")&&i(window).resize(this.windowResizeProxy=s.debounce(this.windowResize.bind(this),this.opt("windowResizeDelay")))},t.prototype.destroy=function(){this.view&&this.clearView(),this.toolbarsManager.proxyCall("removeElement"),this.contentEl.remove(),this.el.removeClass("fc fc-ltr fc-rtl"),this.optionsManager.unwatch("settingTheme"),this.optionsManager.unwatch("settingBusinessHourGenerator"),this.el.off(".fc"),this.windowResizeProxy&&(i(window).unbind("resize",this.windowResizeProxy),this.windowResizeProxy=null),c.default.unneeded()},t.prototype.elementVisible=function(){return this.el.is(":visible")},t.prototype.bindViewHandlers=function(t){var e=this;t.watch("titleForCalendar",["title"],function(n){t===e.view&&e.setToolbarsTitle(n.title)}),t.watch("dateProfileForCalendar",["dateProfile"],function(n){t===e.view&&(e.currentDate=n.dateProfile.date,e.updateToolbarButtons(n.dateProfile))})},t.prototype.unbindViewHandlers=function(t){t.unwatch("titleForCalendar"),t.unwatch("dateProfileForCalendar")},t.prototype.renderView=function(t){var e,n=this.view;this.freezeContentHeight(),n&&t&&n.type!==t&&this.clearView(),!this.view&&t&&(e=this.view=this.viewsByType[t]||(this.viewsByType[t]=this.instantiateView(t)),this.bindViewHandlers(e),e.startBatchRender(),e.setElement(i("
").appendTo(this.contentEl)),this.toolbarsManager.proxyCall("activateButton",t)),this.view&&(this.view.get("businessHourGenerator")!==this.businessHourGenerator&&this.view.set("businessHourGenerator",this.businessHourGenerator),this.view.setDate(this.currentDate),e&&e.stopBatchRender()),this.thawContentHeight()},t.prototype.clearView=function(){var t=this.view;this.toolbarsManager.proxyCall("deactivateButton",t.type),this.unbindViewHandlers(t),t.removeElement(),t.unsetDate(),this.view=null},t.prototype.reinitView=function(){var t=this.view,e=t.queryScroll();this.freezeContentHeight(),this.clearView(),this.calcSize(),this.renderView(t.type),this.view.applyScroll(e),this.thawContentHeight()},t.prototype.getSuggestedViewHeight=function(){return null==this.suggestedViewHeight&&this.calcSize(),this.suggestedViewHeight},t.prototype.isHeightAuto=function(){return"auto"===this.opt("contentHeight")||"auto"===this.opt("height")},t.prototype.updateViewSize=function(t){void 0===t&&(t=!1);var e,n=this.view;if(!this.ignoreUpdateViewSize&&n)return t&&(this.calcSize(),e=n.queryScroll()),this.ignoreUpdateViewSize++,n.updateSize(this.getSuggestedViewHeight(),this.isHeightAuto(),t),this.ignoreUpdateViewSize--,t&&n.applyScroll(e),!0},t.prototype.calcSize=function(){this.elementVisible()&&this._calcSize()},t.prototype._calcSize=function(){var t=this.opt("contentHeight"),e=this.opt("height");this.suggestedViewHeight="number"==typeof t?t:"function"==typeof t?t():"number"==typeof e?e-this.queryToolbarsHeight():"function"==typeof e?e()-this.queryToolbarsHeight():"parent"===e?this.el.parent().height()-this.queryToolbarsHeight():Math.round(this.contentEl.width()/Math.max(this.opt("aspectRatio"),.5))},t.prototype.windowResize=function(t){t.target===window&&this.view&&this.view.isDatesRendered&&this.updateViewSize(!0)&&this.publiclyTrigger("windowResize",[this.view])},t.prototype.freezeContentHeight=function(){this.freezeContentHeightDepth++||this.forceFreezeContentHeight()},t.prototype.forceFreezeContentHeight=function(){this.contentEl.css({width:"100%",height:this.contentEl.height(),overflow:"hidden"})},t.prototype.thawContentHeight=function(){this.freezeContentHeightDepth--,this.contentEl.css({width:"",height:"",overflow:""}),this.freezeContentHeightDepth&&this.forceFreezeContentHeight()},t.prototype.initToolbars=function(){this.header=new h.default(this,this.computeHeaderOptions()),this.footer=new h.default(this,this.computeFooterOptions()),this.toolbarsManager=new l.default([this.header,this.footer])},t.prototype.computeHeaderOptions=function(){return{extraClasses:"fc-header-toolbar",layout:this.opt("header")}},t.prototype.computeFooterOptions=function(){return{extraClasses:"fc-footer-toolbar",layout:this.opt("footer")}},t.prototype.renderHeader=function(){var t=this.header;t.setToolbarOptions(this.computeHeaderOptions()),t.render(),t.el&&this.el.prepend(t.el)},t.prototype.renderFooter=function(){var t=this.footer;t.setToolbarOptions(this.computeFooterOptions()),t.render(),t.el&&this.el.append(t.el)},t.prototype.setToolbarsTitle=function(t){this.toolbarsManager.proxyCall("updateTitle",t)},t.prototype.updateToolbarButtons=function(t){var e=this.getNow(),n=this.view,r=n.dateProfileGenerator.build(e),i=n.dateProfileGenerator.buildPrev(n.get("dateProfile")),o=n.dateProfileGenerator.buildNext(n.get("dateProfile"));this.toolbarsManager.proxyCall(r.isValid&&!t.currentUnzonedRange.containsDate(e)?"enableButton":"disableButton","today"),this.toolbarsManager.proxyCall(i.isValid?"enableButton":"disableButton","prev"),this.toolbarsManager.proxyCall(o.isValid?"enableButton":"disableButton","next")},t.prototype.queryToolbarsHeight=function(){return this.toolbarsManager.items.reduce(function(t,e){return t+(e.el?e.el.outerHeight(!0):0)},0)},t.prototype.select=function(t,e){this.view.select(this.buildSelectFootprint.apply(this,arguments))},t.prototype.unselect=function(){this.view&&this.view.unselect()},t.prototype.buildSelectFootprint=function(t,e){var n,r=this.moment(t).stripZone();return n=e?this.moment(e).stripZone():r.hasTime()?r.clone().add(this.defaultTimedEventDuration):r.clone().add(this.defaultAllDayEventDuration),new w.default(new y.default(r,n),!r.hasTime())},t.prototype.initMomentInternals=function(){var t=this;this.defaultAllDayEventDuration=o.duration(this.opt("defaultAllDayEventDuration")),this.defaultTimedEventDuration=o.duration(this.opt("defaultTimedEventDuration")),this.optionsManager.watch("buildingMomentLocale",["?locale","?monthNames","?monthNamesShort","?dayNames","?dayNamesShort","?firstDay","?weekNumberCalculation"],function(e){var n,r=e.weekNumberCalculation,i=e.firstDay;"iso"===r&&(r="ISO");var o=Object.create(g.getMomentLocaleData(e.locale));e.monthNames&&(o._months=e.monthNames),e.monthNamesShort&&(o._monthsShort=e.monthNamesShort),e.dayNames&&(o._weekdays=e.dayNames),e.dayNamesShort&&(o._weekdaysShort=e.dayNamesShort),null==i&&"ISO"===r&&(i=1),null!=i&&(n=Object.create(o._week),n.dow=i,o._week=n),"ISO"!==r&&"local"!==r&&"function"!=typeof r||(o._fullCalendar_weekCalc=r),t.localeData=o,t.currentDate&&t.localizeMoment(t.currentDate)})},t.prototype.moment=function(){for(var t=[],e=0;e864e5&&i.time(n-864e5)),new o.default(r,i)},t.prototype.buildRangeFromDuration=function(t,e,n,s){function a(){u=t.clone().startOf(p),d=u.clone().add(n),h=new o.default(u,d)}var l,c,u,d,h,p=this.opt("dateAlignment");return p||(l=this.opt("dateIncrement"),l?(c=r.duration(l),p=co.getStart()&&(r=new a.default,r.setEndDelta(l),i=new s.default,i.setDateMutation(r),i)},e}(c.default);e.default=u},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(4),o=n(37),s=n(50),a=n(54),l=n(23),c=n(244),u=n(15),d=function(t){function e(e,n){var r=t.call(this,e)||this;return r.isDragging=!1,r.eventPointing=n,r}return r.__extends(e,t),e.prototype.end=function(){this.dragListener&&this.dragListener.endInteraction()},e.prototype.getSelectionDelay=function(){var t=this.opt("eventLongPressDelay");return null==t&&(t=this.opt("longPressDelay")),t},e.prototype.bindToEl=function(t){var e=this.component;e.bindSegHandlerToEl(t,"mousedown",this.handleMousedown.bind(this)),e.bindSegHandlerToEl(t,"touchstart",this.handleTouchStart.bind(this))},e.prototype.handleMousedown=function(t,e){!this.component.shouldIgnoreMouse()&&this.component.canStartDrag(t,e)&&this.buildDragListener(t).startInteraction(e,{distance:5})},e.prototype.handleTouchStart=function(t,e){var n=this.component,r={delay:this.view.isEventDefSelected(t.footprint.eventDef)?0:this.getSelectionDelay()};n.canStartDrag(t,e)?this.buildDragListener(t).startInteraction(e,r):n.canStartSelection(t,e)&&this.buildSelectListener(t).startInteraction(e,r)},e.prototype.buildSelectListener=function(t){var e=this,n=this.view,r=t.footprint.eventDef,i=t.footprint.eventInstance;if(this.dragListener)return this.dragListener;var o=this.dragListener=new a.default({dragStart:function(t){o.isTouch&&!n.isEventDefSelected(r)&&i&&n.selectEventInstance(i)},interactionEnd:function(t){e.dragListener=null}});return o},e.prototype.buildDragListener=function(t){var e,n,r,o=this,s=this.component,a=this.view,u=a.calendar,d=u.eventManager,h=t.el,p=t.footprint.eventDef,f=t.footprint.eventInstance;if(this.dragListener)return this.dragListener;var v=this.dragListener=new l.default(a,{scroll:this.opt("dragScroll"),subjectEl:h,subjectCenter:!0,interactionStart:function(r){t.component=s,e=!1,n=new c.default(t.el,{additionalClass:"fc-dragging",parentEl:a.el,opacity:v.isTouch?null:o.opt("dragOpacity"),revertDuration:o.opt("dragRevertDuration"),zIndex:2}),n.hide(),n.start(r)},dragStart:function(n){v.isTouch&&!a.isEventDefSelected(p)&&f&&a.selectEventInstance(f),e=!0,o.eventPointing.handleMouseout(t,n),o.segDragStart(t,n),a.hideEventsWithId(t.footprint.eventDef.id)},hitOver:function(e,l,c){var h,f,g,m=!0;t.hit&&(c=t.hit),h=c.component.getSafeHitFootprint(c),f=e.component.getSafeHitFootprint(e),h&&f?(r=o.computeEventDropMutation(h,f,p),r?(g=d.buildMutatedEventInstanceGroup(p.id,r),m=s.isEventInstanceGroupAllowed(g)):m=!1):m=!1,m||(r=null,i.disableCursor()),r&&a.renderDrag(s.eventRangesToEventFootprints(g.sliceRenderRanges(s.dateProfile.renderUnzonedRange,u)),t,v.isTouch)?n.hide():n.show(),l&&(r=null)},hitOut:function(){a.unrenderDrag(t),n.show(),r=null},hitDone:function(){i.enableCursor()},interactionEnd:function(i){delete t.component,n.stop(!r,function(){e&&(a.unrenderDrag(t),o.segDragStop(t,i)),a.showEventsWithId(t.footprint.eventDef.id),r&&a.reportEventDrop(f,r,h,i)}),o.dragListener=null}});return v},e.prototype.segDragStart=function(t,e){this.isDragging=!0,this.component.publiclyTrigger("eventDragStart",{context:t.el[0],args:[t.footprint.getEventLegacy(),e,{},this.view]})},e.prototype.segDragStop=function(t,e){this.isDragging=!1,this.component.publiclyTrigger("eventDragStop",{context:t.el[0],args:[t.footprint.getEventLegacy(),e,{},this.view]})},e.prototype.computeEventDropMutation=function(t,e,n){var r=new o.default;return r.setDateMutation(this.computeEventDateMutation(t,e)),r},e.prototype.computeEventDateMutation=function(t,e){var n,r,i=t.unzonedRange.getStart(),o=e.unzonedRange.getStart(),a=!1,l=!1,c=!1;return t.isAllDay!==e.isAllDay&&(a=!0,e.isAllDay?(c=!0,i.stripTime()):l=!0),n=this.component.diffDates(o,i),r=new s.default,r.clearEnd=a,r.forceTimed=l,r.forceAllDay=c,r.setDateDelta(n),r},e}(u.default);e.default=d},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(4),o=n(23),s=n(12),a=n(5),l=n(15),c=function(t){function e(e){var n=t.call(this,e)||this;return n.dragListener=n.buildDragListener(),n}return r.__extends(e,t),e.prototype.end=function(){this.dragListener.endInteraction()},e.prototype.getDelay=function(){var t=this.opt("selectLongPressDelay");return null==t&&(t=this.opt("longPressDelay")),t},e.prototype.bindToEl=function(t){var e=this,n=this.component,r=this.dragListener;n.bindDateHandlerToEl(t,"mousedown",function(t){e.opt("selectable")&&!n.shouldIgnoreMouse()&&r.startInteraction(t,{distance:e.opt("selectMinDistance")})}),n.bindDateHandlerToEl(t,"touchstart",function(t){e.opt("selectable")&&!n.shouldIgnoreTouch()&&r.startInteraction(t,{delay:e.getDelay()})}),i.preventSelection(t)},e.prototype.buildDragListener=function(){var t,e=this,n=this.component;return new o.default(n,{scroll:this.opt("dragScroll"),interactionStart:function(){t=null},dragStart:function(t){e.view.unselect(t)},hitOver:function(r,o,s){var a,l;s&&(a=n.getSafeHitFootprint(s),l=n.getSafeHitFootprint(r),t=a&&l?e.computeSelection(a,l):null,t?n.renderSelectionFootprint(t):!1===t&&i.disableCursor())},hitOut:function(){t=null,n.unrenderSelection()},hitDone:function(){i.enableCursor()},interactionEnd:function(n,r){!r&&t&&e.view.reportSelection(t,n)}})},e.prototype.computeSelection=function(t,e){var n=this.computeSelectionFootprint(t,e);return!(n&&!this.isSelectionFootprintAllowed(n))&&n},e.prototype.computeSelectionFootprint=function(t,e){var n=[t.unzonedRange.startMs,t.unzonedRange.endMs,e.unzonedRange.startMs,e.unzonedRange.endMs];return n.sort(i.compareNumbers),new s.default(new a.default(n[0],n[3]),t.isAllDay)},e.prototype.isSelectionFootprintAllowed=function(t){return this.component.dateProfile.validUnzonedRange.containsRange(t.unzonedRange)&&this.view.calendar.constraints.isSelectionFootprintAllowed(t)},e}(l.default);e.default=c},function(t,e,n){function r(t){var e,n=[],r=[];for(e=0;e').appendTo(t),this.el.find(".fc-body > tr > td").append(t),this.timeGrid.headContainerEl=this.el.find(".fc-head-container"),this.timeGrid.setElement(e),this.dayGrid&&(this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.bottomCoordPadding=this.dayGrid.el.next("hr").outerHeight())},e.prototype.unrenderSkeleton=function(){this.timeGrid.removeElement(),this.dayGrid&&this.dayGrid.removeElement(),this.scroller.destroy()},e.prototype.renderSkeletonHtml=function(){var t=this.calendar.theme;return''+(this.opt("columnHeader")?'':"")+'
 
'+(this.dayGrid?'

':"")+"
"},e.prototype.axisStyleAttr=function(){return null!=this.axisWidth?'style="width:'+this.axisWidth+'px"':""},e.prototype.getNowIndicatorUnit=function(){return this.timeGrid.getNowIndicatorUnit()},e.prototype.updateSize=function(e,n,r){var i,o,s;if(t.prototype.updateSize.call(this,e,n,r),this.axisWidth=c.matchCellWidths(this.el.find(".fc-axis")),!this.timeGrid.colEls)return void(n||(o=this.computeScrollerHeight(e),this.scroller.setHeight(o)));var a=this.el.find(".fc-row:not(.fc-scroller *)");this.timeGrid.bottomRuleEl.hide(),this.scroller.clear(),c.uncompensateScroll(a),this.dayGrid&&(this.dayGrid.removeSegPopover(),i=this.opt("eventLimit"),i&&"number"!=typeof i&&(i=5),i&&this.dayGrid.limitRows(i)),n||(o=this.computeScrollerHeight(e),this.scroller.setHeight(o),s=this.scroller.getScrollbarWidths(),(s.left||s.right)&&(c.compensateScroll(a,s),o=this.computeScrollerHeight(e),this.scroller.setHeight(o)),this.scroller.lockOverflow(s),this.timeGrid.getTotalSlatHeight()"+e.buildGotoAnchorHtml({date:r,type:"week",forceOff:this.colCnt>1},c.htmlEscape(t))+""):'"},renderBgIntroHtml:function(){var t=this.view;return'"},renderIntroHtml:function(){return'"}},o={renderBgIntroHtml:function(){var t=this.view;return'"+t.getAllDayHtml()+""},renderIntroHtml:function(){return'"}}},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(0),s=n(4),a=n(40),l=n(56),c=n(60),u=n(55),d=n(53),h=n(5),p=n(12),f=n(246),v=n(247),g=n(248),m=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}],y=function(t){function e(e){var n=t.call(this,e)||this;return n.processOptions(),n}return r.__extends(e,t),e.prototype.componentFootprintToSegs=function(t){var e,n=this.sliceRangeByTimes(t.unzonedRange);for(e=0;e=0;e--)if(n=o.duration(m[e]),r=s.divideDurationByDuration(n,t),s.isInt(r)&&r>1)return n;return o.duration(t)},e.prototype.renderDates=function(t){this.dateProfile=t,this.updateDayTable(),this.renderSlats(),this.renderColumns()},e.prototype.unrenderDates=function(){this.unrenderColumns()},e.prototype.renderSkeleton=function(){var t=this.view.calendar.theme;this.el.html('
'),this.bottomRuleEl=this.el.find("hr")},e.prototype.renderSlats=function(){var t=this.view.calendar.theme;this.slatContainerEl=this.el.find("> .fc-slats").html(''+this.renderSlatRowHtml()+"
"),this.slatEls=this.slatContainerEl.find("tr"),this.slatCoordCache=new d.default({els:this.slatEls,isVertical:!0})},e.prototype.renderSlatRowHtml=function(){for(var t,e,n,r=this.view,i=r.calendar,a=i.theme,l=this.isRTL,c=this.dateProfile,u="",d=o.duration(+c.minTime),h=o.duration(0);d"+(e?""+s.htmlEscape(t.format(this.labelFormat))+"":"")+"",u+='"+(l?"":n)+''+(l?n:"")+"",d.add(this.slotDuration),h.add(this.slotDuration);return u},e.prototype.renderColumns=function(){var t=this.dateProfile,e=this.view.calendar.theme;this.dayRanges=this.dayDates.map(function(e){return new h.default(e.clone().add(t.minTime),e.clone().add(t.maxTime))}),this.headContainerEl&&this.headContainerEl.html(this.renderHeadHtml()),this.el.find("> .fc-bg").html(''+this.renderBgTrHtml(0)+"
"),this.colEls=this.el.find(".fc-day, .fc-disabled-day"),this.colCoordCache=new d.default({els:this.colEls,isHorizontal:!0}),this.renderContentSkeleton()},e.prototype.unrenderColumns=function(){this.unrenderContentSkeleton()},e.prototype.renderContentSkeleton=function(){var t,e,n="";for(t=0;t
';e=this.contentSkeletonEl=i('
'+n+"
"),this.colContainerEls=e.find(".fc-content-col"),this.helperContainerEls=e.find(".fc-helper-container"),this.fgContainerEls=e.find(".fc-event-container:not(.fc-helper-container)"),this.bgContainerEls=e.find(".fc-bgevent-container"),this.highlightContainerEls=e.find(".fc-highlight-container"),this.businessContainerEls=e.find(".fc-business-container"),this.bookendCells(e.find("tr")),this.el.append(e)},e.prototype.unrenderContentSkeleton=function(){this.contentSkeletonEl&&(this.contentSkeletonEl.remove(),this.contentSkeletonEl=null,this.colContainerEls=null,this.helperContainerEls=null,this.fgContainerEls=null,this.bgContainerEls=null,this.highlightContainerEls=null,this.businessContainerEls=null)},e.prototype.groupSegsByCol=function(t){var e,n=[];for(e=0;e
').css("top",r).appendTo(this.colContainerEls.eq(n[e].col))[0]);n.length>0&&o.push(i('
').css("top",r).appendTo(this.el.find(".fc-content-skeleton"))[0]),this.nowIndicatorEls=i(o)}},e.prototype.unrenderNowIndicator=function(){this.nowIndicatorEls&&(this.nowIndicatorEls.remove(),this.nowIndicatorEls=null)},e.prototype.updateSize=function(e,n,r){t.prototype.updateSize.call(this,e,n,r),this.slatCoordCache.build(),r&&this.updateSegVerticals([].concat(this.eventRenderer.getSegs(),this.businessSegs||[]))},e.prototype.getTotalSlatHeight=function(){return this.slatContainerEl.outerHeight()},e.prototype.computeDateTop=function(t,e){return this.computeTimeTop(o.duration(t-e.clone().stripTime()))},e.prototype.computeTimeTop=function(t){var e,n,r=this.slatEls.length,i=this.dateProfile,o=(t-i.minTime)/this.slotDuration;return o=Math.max(0,o),o=Math.min(r,o),e=Math.floor(o),e=Math.min(e,r-1),n=o-e,this.slatCoordCache.getTopPosition(e)+this.slatCoordCache.getHeight(e)*n},e.prototype.updateSegVerticals=function(t){this.computeSegVerticals(t),this.assignSegVerticals(t)},e.prototype.computeSegVerticals=function(t){var e,n,r,i=this.opt("agendaEventMinHeight");for(e=0;e
'+o.htmlEscape(this.opt("noEventsMessage"))+"
")},e.prototype.renderSegList=function(t){var e,n,r,o=this.groupSegsByDay(t),s=i('
'),a=s.find("tbody");for(e=0;e'+(e?this.buildGotoAnchorHtml(t,{class:"fc-list-heading-main"},o.htmlEscape(t.format(e))):"")+(n?this.buildGotoAnchorHtml(t,{class:"fc-list-heading-alt"},o.htmlEscape(t.format(n))):"")+""},e}(a.default);e.default=d,d.prototype.eventRendererClass=c.default,d.prototype.eventPointingClass=u.default},,,,,,function(t,e,n){var r=n(3),i=n(16),o=n(4),s=n(220);n(10),n(47),n(256),n(257),n(260),n(261),n(262),n(263),r.fullCalendar=i,r.fn.fullCalendar=function(t){var e=Array.prototype.slice.call(arguments,1),n=this;return this.each(function(i,a){var l,c=r(a),u=c.data("fullCalendar");"string"==typeof t?"getCalendar"===t?i||(n=u):"destroy"===t?u&&(u.destroy(),c.removeData("fullCalendar")):u?r.isFunction(u[t])?(l=u[t].apply(u,e),i||(n=l),"destroy"===t&&c.removeData("fullCalendar")):o.warn("'"+t+"' is an unknown FullCalendar method."):o.warn("Attempting to call a FullCalendar method on an element with no calendar."):u||(u=new s.default(c,t),c.data("fullCalendar",u),u.render())}),n},t.exports=i},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(48),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.setElement=function(t){this.el=t,this.bindGlobalHandlers(),this.renderSkeleton(),this.set("isInDom",!0)},e.prototype.removeElement=function(){this.unset("isInDom"),this.unrenderSkeleton(),this.unbindGlobalHandlers(),this.el.remove()},e.prototype.bindGlobalHandlers=function(){},e.prototype.unbindGlobalHandlers=function(){},e.prototype.renderSkeleton=function(){},e.prototype.unrenderSkeleton=function(){},e}(i.default);e.default=o},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t){this.items=t||[]}return t.prototype.proxyCall=function(t){for(var e=[],n=1;n"),e.append(this.renderSection("left")).append(this.renderSection("right")).append(this.renderSection("center")).append('
')):this.removeElement()},t.prototype.removeElement=function(){this.el&&(this.el.remove(),this.el=null)},t.prototype.renderSection=function(t){var e=this,n=this.calendar,o=n.theme,s=n.optionsManager,a=n.viewSpecManager,l=r('
'),c=this.toolbarOptions.layout[t],u=s.get("customButtons")||{},d=s.overrides.buttonText||{},h=s.get("buttonText")||{};return c&&r.each(c.split(" "),function(t,s){var c,p=r(),f=!0;r.each(s.split(","),function(t,s){var l,c,v,g,m,y,w,b,D;"title"===s?(p=p.add(r("

 

")),f=!1):((l=u[s])?(v=function(t){l.click&&l.click.call(b[0],t)},(g=o.getCustomButtonIconClass(l))||(g=o.getIconClass(s))||(m=l.text)):(c=a.getViewSpec(s))?(e.viewsWithButtons.push(s),v=function(){n.changeView(s)},(m=c.buttonTextOverride)||(g=o.getIconClass(s))||(m=c.buttonTextDefault)):n[s]&&(v=function(){n[s]()},(m=d[s])||(g=o.getIconClass(s))||(m=h[s])),v&&(w=["fc-"+s+"-button",o.getClass("button"),o.getClass("stateDefault")],m?(y=i.htmlEscape(m),D=""):g&&(y="",D=' aria-label="'+s+'"'),b=r('").click(function(t){b.hasClass(o.getClass("stateDisabled"))||(v(t),(b.hasClass(o.getClass("stateActive"))||b.hasClass(o.getClass("stateDisabled")))&&b.removeClass(o.getClass("stateHover")))}).mousedown(function(){b.not("."+o.getClass("stateActive")).not("."+o.getClass("stateDisabled")).addClass(o.getClass("stateDown"))}).mouseup(function(){b.removeClass(o.getClass("stateDown"))}).hover(function(){b.not("."+o.getClass("stateActive")).not("."+o.getClass("stateDisabled")).addClass(o.getClass("stateHover"))},function(){b.removeClass(o.getClass("stateHover")).removeClass(o.getClass("stateDown"))}),p=p.add(b)))}),f&&p.first().addClass(o.getClass("cornerLeft")).end().last().addClass(o.getClass("cornerRight")).end(),p.length>1?(c=r("
"),f&&c.addClass(o.getClass("buttonGroup")),c.append(p),l.append(c)):l.append(p)}),l},t.prototype.updateTitle=function(t){this.el&&this.el.find("h2").text(t)},t.prototype.activateButton=function(t){this.el&&this.el.find(".fc-"+t+"-button").addClass(this.calendar.theme.getClass("stateActive"))},t.prototype.deactivateButton=function(t){this.el&&this.el.find(".fc-"+t+"-button").removeClass(this.calendar.theme.getClass("stateActive"))},t.prototype.disableButton=function(t){this.el&&this.el.find(".fc-"+t+"-button").prop("disabled",!0).addClass(this.calendar.theme.getClass("stateDisabled"))},t.prototype.enableButton=function(t){this.el&&this.el.find(".fc-"+t+"-button").prop("disabled",!1).removeClass(this.calendar.theme.getClass("stateDisabled"))},t.prototype.getViewsWithButtons=function(){return this.viewsWithButtons},t}();e.default=o},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(4),s=n(32),a=n(31),l=n(48),c=function(t){function e(e,n){var r=t.call(this)||this;return r._calendar=e,r.overrides=i.extend({},n),r.dynamicOverrides={},r.compute(),r}return r.__extends(e,t),e.prototype.add=function(t){var e,n=0;this.recordOverrides(t);for(e in t)n++;if(1===n){if("height"===e||"contentHeight"===e||"aspectRatio"===e)return void this._calendar.updateViewSize(!0);if("defaultDate"===e)return;if("businessHours"===e)return;if(/^(event|select)(Overlap|Constraint|Allow)$/.test(e))return;if("timezone"===e)return void this._calendar.view.flash("initialEvents")}this._calendar.renderHeader(),this._calendar.renderFooter(),this._calendar.viewsByType={},this._calendar.reinitView()},e.prototype.compute=function(){var t,e,n,r,i;t=o.firstDefined(this.dynamicOverrides.locale,this.overrides.locale),e=a.localeOptionHash[t],e||(t=s.globalDefaults.locale,e=a.localeOptionHash[t]||{}),n=o.firstDefined(this.dynamicOverrides.isRTL,this.overrides.isRTL,e.isRTL,s.globalDefaults.isRTL),r=n?s.rtlDefaults:{},this.dirDefaults=r,this.localeDefaults=e,i=s.mergeOptions([s.globalDefaults,r,e,this.overrides,this.dynamicOverrides]),a.populateInstanceComputableOptions(i),this.reset(i)},e.prototype.recordOverrides=function(t){var e;for(e in t)this.dynamicOverrides[e]=t[e];this._calendar.viewSpecManager.clearCache(),this.compute()},e}(l.default);e.default=c},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(0),i=n(3),o=n(22),s=n(4),a=n(32),l=n(31),c=function(){function t(t,e){this.optionsManager=t,this._calendar=e,this.clearCache()}return t.prototype.clearCache=function(){this.viewSpecCache={}},t.prototype.getViewSpec=function(t){var e=this.viewSpecCache;return e[t]||(e[t]=this.buildViewSpec(t))},t.prototype.getUnitViewSpec=function(t){var e,n,r;if(-1!==i.inArray(t,s.unitsDesc))for(e=this._calendar.header.getViewsWithButtons(),i.each(o.viewHash,function(t){e.push(t)}),n=0;n
'+(n?'
'+l.htmlEscape(n)+"
":"")+(u.title?'
'+l.htmlEscape(u.title)+"
":"")+'
'+(p?'
':"")+""},e.prototype.updateFgSegCoords=function(t){this.timeGrid.computeSegVerticals(t),this.computeFgSegHorizontals(t),this.timeGrid.assignSegVerticals(t),this.assignFgSegHorizontals(t)},e.prototype.computeFgSegHorizontals=function(t){var e,n,s;if(this.sortEventSegs(t),e=r(t),i(e),n=e[0]){for(s=0;s').addClass(e.className||"").css({top:0,left:0}).append(e.content).appendTo(e.parentEl),this.el.on("click",".fc-close",function(){t.hide()}),e.autoHide&&this.listenTo(r(document),"mousedown",this.documentMousedown)},t.prototype.documentMousedown=function(t){this.el&&!r(t.target).closest(this.el).length&&this.hide()},t.prototype.removeElement=function(){this.hide(),this.el&&(this.el.remove(),this.el=null),this.stopListeningTo(r(document),"mousedown")},t.prototype.position=function(){var t,e,n,o,s,a=this.options,l=this.el.offsetParent().offset(),c=this.el.outerWidth(),u=this.el.outerHeight(),d=r(window),h=i.getScrollParent(this.el);o=a.top||0,s=void 0!==a.left?a.left:void 0!==a.right?a.right-c:0,h.is(window)||h.is(document)?(h=d,t=0,e=0):(n=h.offset(),t=n.top,e=n.left),t+=d.scrollTop(),e+=d.scrollLeft(),!1!==a.viewportConstrain&&(o=Math.min(o,t+h.outerHeight()-u-this.margin),o=Math.max(o,t+this.margin),s=Math.min(s,e+h.outerWidth()-c-this.margin),s=Math.max(s,e+this.margin)),this.el.css({top:o-l.top,left:s-l.left})},t.prototype.trigger=function(t){this.options[t]&&this.options[t].apply(this,Array.prototype.slice.call(arguments,1))},t}();e.default=s,o.default.mixInto(s)},function(t,e,n){function r(t,e){var n,r;for(n=0;n=t.leftCol)return!0;return!1}function i(t,e){return t.leftCol-e.leftCol}Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),s=n(3),a=n(4),l=n(42),c=function(t){function e(e,n){var r=t.call(this,e,n)||this;return r.dayGrid=e,r}return o.__extends(e,t),e.prototype.renderBgRanges=function(e){e=s.grep(e,function(t){return t.eventDef.isAllDay()}),t.prototype.renderBgRanges.call(this,e)},e.prototype.renderFgSegs=function(t){var e=this.rowStructs=this.renderSegRows(t);this.dayGrid.rowEls.each(function(t,n){s(n).find(".fc-content-skeleton > table").append(e[t].tbodyEl)})},e.prototype.unrenderFgSegs=function(){for(var t,e=this.rowStructs||[];t=e.pop();)t.tbodyEl.remove();this.rowStructs=null},e.prototype.renderSegRows=function(t){var e,n,r=[];for(e=this.groupSegRows(t),n=0;n"),a.append(u)),g[r][o]=u,m[r][o]=u,o++}var r,i,o,a,l,c,u,d=this.dayGrid.colCnt,h=this.buildSegLevels(e),p=Math.max(1,h.length),f=s(""),v=[],g=[],m=[];for(r=0;r"),v.push([]),g.push([]),m.push([]),i)for(l=0;l').append(c.el),c.leftCol!==c.rightCol?u.attr("colspan",c.rightCol-c.leftCol+1):m[r][o]=u;o<=c.rightCol;)g[r][o]=u,v[r][o]=c,o++;a.append(u)}n(d),this.dayGrid.bookendCells(a),f.append(a)}return{row:t,tbodyEl:f,cellMatrix:g,segMatrix:v,segLevels:h,segs:e}},e.prototype.buildSegLevels=function(t){var e,n,o,s=[];for(this.sortEventSegs(t),e=0;e'+a.htmlEscape(n)+""),r=''+(a.htmlEscape(o.title||"")||" ")+"",'
'+(this.dayGrid.isRTL?r+" "+p:p+" "+r)+"
"+(c?'
':"")+(u?'
':"")+""},e}(l.default);e.default=c},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(58),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.renderSegs=function(t,e){var n,r=[];return n=this.eventRenderer.renderSegRows(t),this.component.rowEls.each(function(t,o){var s,a,l=i(o),c=i('
');e&&e.row===t?a=e.el.position().top:(s=l.find(".fc-content-skeleton tbody"),s.length||(s=l.find(".fc-content-skeleton table")),a=s.position().top),c.css("top",a).find("table").append(n[t].tbodyEl),l.append(c),r.push(c[0])}),i(r)},e}(o.default);e.default=s},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(57),s=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.fillSegTag="td",e}return r.__extends(e,t),e.prototype.attachSegEls=function(t,e){var n,r,i,o=[];for(n=0;n
'),o=r.find("tr"),a>0&&o.append(''),o.append(e.el.attr("colspan",l-a)),l'),this.component.bookendCells(o),r},e}(o.default);e.default=s},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(228),o=n(5),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.buildRenderRange=function(e,n,r){var i,s=t.prototype.buildRenderRange.call(this,e,n,r),a=this.msToUtcMoment(s.startMs,r),l=this.msToUtcMoment(s.endMs,r);return this.opt("fixedWeekCount")&&(i=Math.ceil(l.diff(a,"weeks",!0)),l.add(6-i,"weeks")),new o.default(a,l)},e}(i.default);e.default=s},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(4),o=n(42),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.renderFgSegs=function(t){t.length?this.component.renderSegList(t):this.component.renderEmptyMessage()},e.prototype.fgSegHtml=function(t){var e,n=this.view,r=n.calendar,o=r.theme,s=t.footprint,a=s.eventDef,l=s.componentFootprint,c=a.url,u=["fc-list-item"].concat(this.getClasses(a)),d=this.getBgColor(a);return e=l.isAllDay?n.getAllDayHtml():n.isMultiDayRange(l.unzonedRange)?t.isStart||t.isEnd?i.htmlEscape(this._getTimeText(r.msToMoment(t.startMs),r.msToMoment(t.endMs),l.isAllDay)):n.getAllDayHtml():i.htmlEscape(this.getTimeText(s)),c&&u.push("fc-has-url"),''+(this.displayEventTime?''+(e||"")+"":"")+'"+i.htmlEscape(a.title||"")+""},e.prototype.computeEventTimeFormat=function(){return this.opt("mediumTimeFormat")},e}(o.default);e.default=s},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(3),o=n(59),s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e.prototype.handleClick=function(e,n){var r;t.prototype.handleClick.call(this,e,n),i(n.target).closest("a[href]").length||(r=e.footprint.eventDef.url)&&!n.isDefaultPrevented()&&(window.location.href=r)},e}(o.default);e.default=s},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(38),i=n(52),o=n(215),s=n(216);r.default.registerClass(i.default),r.default.registerClass(o.default),r.default.registerClass(s.default)},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(51),i=n(213),o=n(214),s=n(258),a=n(259);r.defineThemeSystem("standard",i.default),r.defineThemeSystem("jquery-ui",o.default),r.defineThemeSystem("bootstrap3",s.default),r.defineThemeSystem("bootstrap4",a.default)},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(19),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e}(i.default);e.default=o,o.prototype.classes={widget:"fc-bootstrap3",tableGrid:"table-bordered",tableList:"table",tableListHeading:"active",buttonGroup:"btn-group",button:"btn btn-default",stateActive:"active",stateDisabled:"disabled",today:"alert alert-info",popover:"panel panel-default",popoverHeader:"panel-heading",popoverContent:"panel-body",headerRow:"panel-default",dayRow:"panel-default",listView:"panel panel-default"},o.prototype.baseIconClass="glyphicon",o.prototype.iconClasses={close:"glyphicon-remove",prev:"glyphicon-chevron-left",next:"glyphicon-chevron-right",prevYear:"glyphicon-backward",nextYear:"glyphicon-forward"},o.prototype.iconOverrideOption="bootstrapGlyphicons",o.prototype.iconOverrideCustomButtonOption="bootstrapGlyphicon",o.prototype.iconOverridePrefix="glyphicon-"},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),i=n(19),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r.__extends(e,t),e}(i.default);e.default=o,o.prototype.classes={widget:"fc-bootstrap4",tableGrid:"table-bordered",tableList:"table",tableListHeading:"table-active",buttonGroup:"btn-group",button:"btn btn-primary",stateActive:"active",stateDisabled:"disabled",today:"alert alert-info",popover:"card card-primary",popoverHeader:"card-header",popoverContent:"card-body",headerRow:"table-bordered",dayRow:"table-bordered",listView:"card card-primary"},o.prototype.baseIconClass="fa",o.prototype.iconClasses={close:"fa-times",prev:"fa-chevron-left",next:"fa-chevron-right",prevYear:"fa-angle-double-left",nextYear:"fa-angle-double-right"},o.prototype.iconOverrideOption="bootstrapFontAwesome",o.prototype.iconOverrideCustomButtonOption="bootstrapFontAwesome",o.prototype.iconOverridePrefix="fa-"},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(22),i=n(62),o=n(229);r.defineView("basic",{class:i.default}),r.defineView("basicDay",{type:"basic",duration:{days:1}}),r.defineView("basicWeek",{type:"basic",duration:{weeks:1}}),r.defineView("month",{class:o.default,duration:{months:1},defaults:{fixedWeekCount:!0}})},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(22),i=n(226);r.defineView("agenda",{class:i.default,defaults:{allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0}}),r.defineView("agendaDay",{type:"agenda",duration:{days:1}}),r.defineView("agendaWeek",{type:"agenda",duration:{weeks:1}})},function(t,e,n){Object.defineProperty(e,"__esModule",{value:!0});var r=n(22),i=n(230);r.defineView("list",{class:i.default,buttonTextKey:"list",defaults:{buttonText:"list",listDayFormat:"LL",noEventsMessage:"No events to display"}}),r.defineView("listDay",{type:"list",duration:{days:1},defaults:{listDayFormat:"dddd"}}),r.defineView("listWeek",{type:"list",duration:{weeks:1},defaults:{listDayFormat:"dddd",listDayAltFormat:"LL"}}),r.defineView("listMonth",{type:"list",duration:{month:1},defaults:{listDayAltFormat:"dddd"}}),r.defineView("listYear",{type:"list",duration:{year:1},defaults:{listDayAltFormat:"dddd"}})},function(t,e){Object.defineProperty(e,"__esModule",{value:!0})}])})},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("full-calendar-reserve",{attrs:{"show-modal":t.showModalReserve,startDate:t.startDate,endDate:t.endDate,"resources-checkboxes":t.resourcesCheckboxes,"number-of-resources":t.selectedResources.length,"add-reservation":t.addReservation},on:{close:function(e){t.showModalReserve=!1}}}),t._v(" "),n("full-calendar-info",{attrs:{"show-modal":t.showModalInfo,reservation:t.reservation,cancel:t.cancelReservation,update:t.updateReservation,refreshTasks:t.refreshTasks,nodes:t.nodes},on:{close:function(e){t.showModalInfo=!1},handleError:t.handleError}})],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";function r(t){n(296)}var i=n(192),o=n(297),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-3b70e2bc",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{staticClass:"range-select-container"},[n("v-menu",{attrs:{"close-on-content-click":!1,"nudge-right":40,lazy:"",transition:"scale-transition","offset-y":"","full-width":"","min-width":"290px"},model:{value:t.menu,callback:function(e){t.menu=e},expression:"menu"}},[n("v-text-field",{staticClass:"date-input",attrs:{slot:"activator",label:"Schedule start date","prepend-icon":"event",readonly:""},slot:"activator",model:{value:t.picker,callback:function(e){t.picker=e},expression:"picker"}}),t._v(" "),n("v-date-picker",{on:{input:function(e){t.menu=!1,t.changeSchedule()}},model:{value:t.picker,callback:function(e){t.picker=e},expression:"picker"}})],1),t._v(" "),n("v-text-field",{staticClass:"range-input",attrs:{min:"1",step:"1",type:"number",label:"Schedule range in days"},on:{input:function(e){return t.changeSchedule()}},model:{value:t.range,callback:function(e){t.range=e},expression:"range"}})],1),t._v(" "),n("div",{key:t.tableKey,staticClass:"container"},[n("div",{staticClass:"left-table"},[t._m(0),t._v(" "),t._m(1),t._v(" "),n("table",[n("tbody",t._l(t.tableContent.resources,function(e){return n("tr",{key:e.id},[n("td",{staticClass:"first-column",class:{selected:e.selected}},[e.selected?t._e():n("v-btn",{staticClass:"small-button",attrs:{fab:"",dark:"",color:"blue"},on:{click:function(n){return t.toggle(e)}}},[n("v-icon",{attrs:{dark:""}},[t._v("add")])],1),t._v(" "),e.selected?n("v-btn",{staticClass:"small-button",attrs:{fab:"",dark:"",color:"blue"},on:{click:function(n){return t.toggle(e)}}},[n("v-icon",{attrs:{dark:""}},[t._v("remove")])],1):t._e(),t._v("\n "+t._s(e.name)+"\n ")],1)])}),0)])]),t._v(" "),n("div",{staticClass:"right-table"},[n("table",[n("tbody",t._l(t.tableContent.header,function(e){return n("th",{key:e.value},[t._v(t._s(e.value))])}),0)]),t._v(" "),n("table",[n("tbody",[n("tr",t._l(t.tableContent.hours,function(e){return n("td",{key:e.id,staticClass:"hours"},[t._v(t._s(e.value))])}),0)])]),t._v(" "),n("table",[n("tbody",t._l(t.tableContent.resources,function(e){return n("tr",{key:e.id},t._l(e.slots,function(e){return n("td",{key:e.id,class:{reserved:e.reserved,userReservation:e.userReservation}},[t._v(t._s(e.value))])}),0)}),0)])])])])},i=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("table",[n("tbody",[n("th",{staticClass:"first-column"},[t._v("Resources")])])])},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("table",[n("tbody",[n("tr",[n("td",{staticClass:"first-column"},[t._v("Hours")])])])])}],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"content"},[n("v-snackbar",{attrs:{color:"error",bottom:"","multi-line":""},model:{value:t.snackbar,callback:function(e){t.snackbar=e},expression:"snackbar"}},[t._v("\n "+t._s(t.errorMessage)+"\n "),n("v-btn",{attrs:{color:"white",flat:""},on:{click:function(e){t.snackbar=!1}}},[t._v("\n Close\n ")])],1),t._v(" "),n("section",{attrs:{id:"schedule_section"}},[n("MySchedule",{attrs:{"parsed-nodes":t.parsedNodes},on:{handleError:function(e){return t.handleError.apply(void 0,arguments)},loadResources:function(e){return t.loadResources.apply(void 0,arguments)}}})],1),t._v(" "),n("section",{attrs:{id:"calendar_section"}},[n("FullCalendar",{attrs:{"update-calendar":t.updateCalendar,"selected-resources":t.selectedResources,nodes:t.nodes},on:{handleError:function(e){return t.handleError.apply(void 0,arguments)}}})],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=n(193),i=n(315),o=n(1),s=o(r.a,i.a,!1,null,null,null);e.a=s.exports},function(t,e,n){"use strict";function r(t){n(301)}var i=n(194),o=n(314),s=n(1),a=r,l=s(i.a,o.a,!1,a,null,null);e.a=l.exports},function(t,e){},,,,,function(t,e,n){"use strict";function r(t){n(307)}var i=n(195),o=n(313),s=n(1),a=r,l=s(i.a,o.a,!1,a,null,null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=n(196),i=n(1),o=i(r.a,null,!1,null,null,null);e.a=o.exports},,,,,function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("div",{staticClass:"select_line"},[n("v-select",{staticClass:"select_item",attrs:{items:t.nodes},model:{value:t.selectedNode,callback:function(e){t.selectedNode=e},expression:"selectedNode"}}),t._v(" "),n("div",{staticClass:"select_space"}),t._v(" "),n("v-select",{staticClass:"select_item",attrs:{items:t.resourceTypes},model:{value:t.selectedResourceType,callback:function(e){t.selectedResourceType=e},expression:"selectedResourceType"}}),t._v(" "),n("div",{staticClass:"select_space"}),t._v(" "),n("v-select",{staticClass:"select_item",attrs:{items:t.metrics},model:{value:t.selectedMetric,callback:function(e){t.selectedMetric=e},expression:"selectedMetric"}}),t._v(" "),n("v-btn",{attrs:{color:"indigo",fab:"",dark:"",small:"",outline:""},on:{click:function(e){return t.removeMe()}}},[n("v-icon",{attrs:{dark:""}},[t._v("delete")])],1)],1),t._v(" "),n("v-alert",{attrs:{dismissible:"",type:"error"},model:{value:t.alert,callback:function(e){t.alert=e},expression:"alert"}},[t._v("\n "+t._s(t.errorMessage)+"\n ")]),t._v(" "),!0===t.showProcesses?n("div",{staticClass:"table_box"},[n("v-data-table",{staticClass:"elevation-1",attrs:{headers:t.headers,items:t.processes,"item-key":"pid","hide-actions":""},scopedSlots:t._u([{key:"items",fn:function(e){return[n("tr",{on:{click:function(t){e.expanded=!e.expanded}}},[n("td",{staticClass:"text-xs-right"},[t._v(t._s(e.item.index))]),t._v(" "),n("td",{staticClass:"text-xs-right"},[t._v(t._s(e.item.owner))]),t._v(" "),n("td",{staticClass:"text-xs-right"},[t._v(t._s(e.item.pid))]),t._v(" "),n("td",{staticClass:"text-xs-right"},[t._v(t._s(e.item.command))])])]}},{key:"expand",fn:function(e){return[n("v-card",{attrs:{flat:""}},[n("v-card-text",[t._v("GPU UUID: "+t._s(e.item.uuid))])],1)]}}],null,!1,51043860)})],1):n("div",[n("LineChart",{staticClass:"chart_box",attrs:{"chart-data":t.metricData,options:t.metricOptions,"rerender-chart":t.rerenderChart,"update-chart":t.updateChart}})],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-alert",{attrs:{dismissible:"",type:"error"},model:{value:t.alert,callback:function(e){t.alert=e},expression:"alert"}},[t._v("\n "+t._s(t.errorMessage)+"\n ")]),t._v(" "),n("v-btn",{attrs:{color:"info",small:"",outline:"",round:""},on:{click:t.addWatch}},[t._v("\n Add watch\n ")]),t._v(" "),n("div",{staticClass:"watch_table"},t._l(t.watches,function(e){return n("WatchBox",{key:e.id,staticClass:"watch_box",attrs:{"default-node":e.defaultNode,"default-resource-type":e.defaultResourceType,"default-metric":e.defaultMetric,"resources-indexes":t.resourcesIndexes,"chart-datasets":t.chartDatasets,"update-chart":t.updateChart,time:t.time},on:{changeDefaultNode:function(n){for(var r=arguments.length,i=Array(r);r--;)i[r]=arguments[r];return t.changeDefaultNode.apply(void 0,[e.id].concat(i))},changeDefaultResourceType:function(n){for(var r=arguments.length,i=Array(r);r--;)i[r]=arguments[r];return t.changeDefaultResourceType.apply(void 0,[e.id].concat(i))},changeDefaultMetric:function(n){for(var r=arguments.length,i=Array(r);r--;)i[r]=arguments[r];return t.changeDefaultMetric.apply(void 0,[e.id].concat(i))},deleteWatch:function(n){return t.deleteWatch(e.id)}}})}),1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"content"},[n("WatchGenerator")],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";function r(t){n(317)}var i=n(197),o=n(336),s=n(1),a=r,l=s(i.a,o.a,!1,a,null,null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";function r(t){n(319)}var i=n(198),o=n(326),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-1853547a",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";function r(t){n(321)}var i=n(199),o=n(325),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-b07ebe7c",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";function r(t){n(323)}var i=n(200),o=n(324),s=n(1),a=r,l=s(i.a,o.a,!1,a,null,null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-text-field",{staticClass:"task-input",attrs:{label:t.newParameter,small:""},model:{value:t.newValue,callback:function(e){t.newValue=e},expression:"newValue"}}),t._v(" "),n("v-btn",{staticClass:"remove-button",attrs:{color:"indigo",fab:"",dark:"",small:"",outline:""},on:{click:function(e){return t.removeMe()}}},[n("v-icon",{attrs:{dark:""}},[t._v("delete")])],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("v-layout",{attrs:{"align-center":"","justify-center":""}},[n("div",{staticClass:"task-preview"},[t._v("\n "+t._s(t.taskPreview)+"\n ")])]),t._v(" "),n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-select",{staticClass:"task-select",attrs:{items:t.hostnames,label:"Hostname",small:""},model:{value:t.newHost,callback:function(e){t.newHost=e},expression:"newHost"}}),t._v(" "),n("span",{staticClass:"space"}),t._v(" "),n("v-select",{staticClass:"task-select",attrs:{items:t.hostResources,label:"Resource",small:""},model:{value:t.newResource,callback:function(e){t.newResource=e},expression:"newResource"}}),t._v(" "),n("span",{staticClass:"space"}),t._v(" "),n("v-text-field",{staticClass:"task-input",attrs:{label:"Command",small:""},model:{value:t.newCommand,callback:function(e){t.newCommand=e},expression:"newCommand"}}),t._v(" "),n("span",{staticClass:"space"}),t._v(" "),n("v-layout",{attrs:{"align-center":"","justify-start":""}},t._l(t.parameters,function(e){return n("TaskLineParameter",{key:e.id,staticClass:"task-input",attrs:{parameter:e.parameter,value:e.value},on:{changeParameter:function(n){for(var r=arguments.length,i=Array(r);r--;)i[r]=arguments[r];return t.changeParameter.apply(void 0,[e.id].concat(i))},deleteParameter:function(n){return t.deleteParameter(e.id)}}})}),1),t._v(" "),n("v-btn",{attrs:{color:"error",small:""},on:{click:function(e){return t.removeMe()}}},[t._v("\n Remove task\n ")])],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-dialog",{attrs:{persistent:"",width:"80vw"},model:{value:t.showModal,callback:function(e){t.showModal=e},expression:"showModal"}},[n("v-card",[n("v-card-title",[n("span",{staticClass:"headline"},[t._v("Create tasks")]),t._v(" "),n("v-tooltip",{attrs:{right:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({},r),[t._v("\n info\n ")])]}}])},[t._v(" "),n("span",[t._v("CPU tasks can be run without making reservation.\n "),n("br"),t._v("When you want to create a GPU task, you must\n "),n("br"),t._v("first ensure that you are eligible to do so\n "),n("br"),t._v("(having active reservation for that GPU).\n ")])])],1),t._v(" "),n("v-card-text",t._l(t.lines,function(e){return n("TaskLine",{key:e.id,attrs:{hostnames:t.hostnames,hosts:t.hosts,host:e.host,resource:e.resource,command:e.command,parameters:e.parameters},on:{changeLine:function(n){for(var r=arguments.length,i=Array(r);r--;)i[r]=arguments[r];return t.changeLine.apply(void 0,[e.id].concat(i))},deleteLine:function(n){return t.deleteLine(e.id)}}})}),1),t._v(" "),n("v-card-text",[n("v-flex",{attrs:{xs12:""}},[n("v-btn",{attrs:{color:"info",block:"",small:""},on:{click:t.copyLine}},[t._v("\n Add task\n ")])],1),t._v(" "),n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-text-field",{staticClass:"parameter-name-input",attrs:{label:"Parameter name",small:""},model:{value:t.newParameter,callback:function(e){t.newParameter=e},expression:"newParameter"}}),t._v(" "),n("v-btn",{attrs:{color:"info",round:""},on:{click:t.addParameter}},[t._v("\n Add parameter to all tasks\n ")])],1)],1),t._v(" "),n("v-card-text",[n("v-layout",{attrs:{"align-center":"","justify-end":""}},[n("v-btn",{attrs:{color:"info",small:"",outline:"",round:""},on:{click:t.close}},[t._v("\n Cancel\n ")]),t._v(" "),n("v-btn",{attrs:{color:"success"},on:{click:t.addTasks}},[t._v("\n Create all tasks\n ")])],1)],1)],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";function r(t){n(328)}var i=n(201),o=n(329),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-23f3faef",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-dialog",{attrs:{persistent:"",width:"80vw"},model:{value:t.showModal,callback:function(e){t.showModal=e},expression:"showModal"}},[n("v-card",[n("v-card-title",[n("span",{staticClass:"headline"},[t._v("Edit task")])]),t._v(" "),n("v-card-text",[n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-text-field",{staticClass:"host-input",attrs:{label:"Hostname",small:""},model:{value:t.newHost,callback:function(e){t.newHost=e},expression:"newHost"}}),t._v(" "),n("span",{staticClass:"space"}),t._v(" "),n("v-text-field",{staticClass:"command-input",attrs:{label:"Command",small:""},model:{value:t.newCommand,callback:function(e){t.newCommand=e},expression:"newCommand"}})],1)],1),t._v(" "),n("v-card-text",[n("v-layout",{attrs:{"align-center":"","justify-end":""}},[n("v-btn",{attrs:{color:"info",small:"",outline:"",round:""},on:{click:t.close}},[t._v("\n Cancel\n ")]),t._v(" "),n("v-btn",{attrs:{color:"success"},on:{click:t.changeTask}},[t._v("\n Edit task\n ")])],1)],1)],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";function r(t){n(331)}var i=n(202),o=n(332),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-54bcbb8f",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-dialog",{attrs:{persistent:"",width:"40vw"},model:{value:t.showModal,callback:function(e){t.showModal=e},expression:"showModal"}},[n("v-card",[n("v-card-title",[n("span",{staticClass:"headline"},[t._v("Schedule task")])]),t._v(" "),n("v-card-text",[n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-checkbox",{attrs:{label:"Set spawn time"},model:{value:t.spawn,callback:function(e){t.spawn=e},expression:"spawn"}}),t._v(" "),n("v-menu",{attrs:{"close-on-content-click":!1,"nudge-right":40,lazy:"",transition:"none","offset-y":"","full-width":"","min-width":"290px"},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-text-field",t._g({attrs:{label:"Spawn date","prepend-icon":"event"},model:{value:t.newSpawnDate,callback:function(e){t.newSpawnDate=e},expression:"newSpawnDate"}},r))]}}]),model:{value:t.spawnDateMenu,callback:function(e){t.spawnDateMenu=e},expression:"spawnDateMenu"}},[t._v(" "),n("v-date-picker",{on:{input:function(e){t.spawnDateMenu=!1}},model:{value:t.newSpawnDate,callback:function(e){t.newSpawnDate=e},expression:"newSpawnDate"}})],1),t._v(" "),n("v-menu",{ref:"spawnMenu",attrs:{"close-on-content-click":!1,"nudge-right":40,"return-value":t.newSpawnTime,lazy:"",transition:"none","offset-y":"","full-width":"","max-width":"290px","min-width":"290px"},on:{"update:returnValue":function(e){t.newSpawnTime=e},"update:return-value":function(e){t.newSpawnTime=e}},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-text-field",t._g({attrs:{label:"Spawn time","prepend-icon":"access_time"},model:{value:t.newSpawnTime,callback:function(e){t.newSpawnTime=e},expression:"newSpawnTime"}},r))]}}]),model:{value:t.spawnTimeMenu,callback:function(e){t.spawnTimeMenu=e},expression:"spawnTimeMenu"}},[t._v(" "),t.spawnTimeMenu?n("v-time-picker",{attrs:{"full-width":"",format:"24hr"},on:{"click:minute":function(e){return t.$refs.spawnMenu.save(t.newSpawnTime)}},model:{value:t.newSpawnTime,callback:function(e){t.newSpawnTime=e},expression:"newSpawnTime"}}):t._e()],1)],1),t._v(" "),n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-checkbox",{attrs:{label:"Set terminate time"},model:{value:t.terminate,callback:function(e){t.terminate=e},expression:"terminate"}}),t._v(" "),n("v-menu",{attrs:{"close-on-content-click":!1,"nudge-right":40,lazy:"",transition:"none","offset-y":"","full-width":"","min-width":"290px"},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-text-field",t._g({attrs:{label:"Terminate date","prepend-icon":"event"},model:{value:t.newTerminateDate,callback:function(e){t.newTerminateDate=e},expression:"newTerminateDate"}},r))]}}]),model:{value:t.terminateDateMenu,callback:function(e){t.terminateDateMenu=e},expression:"terminateDateMenu"}},[t._v(" "),n("v-date-picker",{on:{input:function(e){t.terminateDateMenu=!1}},model:{value:t.newTerminateDate,callback:function(e){t.newTerminateDate=e},expression:"newTerminateDate"}})],1),t._v(" "),n("v-menu",{ref:"terminateMenu",attrs:{"close-on-content-click":!1,"nudge-right":40,"return-value":t.newTerminateTime,lazy:"",transition:"none","offset-y":"","full-width":"","max-width":"290px","min-width":"290px"},on:{"update:returnValue":function(e){t.newTerminateTime=e},"update:return-value":function(e){t.newTerminateTime=e}},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-text-field",t._g({attrs:{label:"Terminate time","prepend-icon":"access_time"},model:{value:t.newTerminateTime,callback:function(e){t.newTerminateTime=e},expression:"newTerminateTime"}},r))]}}]),model:{value:t.terminateTimeMenu,callback:function(e){t.terminateTimeMenu=e},expression:"terminateTimeMenu"}},[t._v(" "),t.terminateTimeMenu?n("v-time-picker",{attrs:{"full-width":"",format:"24hr"},on:{"click:minute":function(e){return t.$refs.terminateMenu.save(t.newTerminateTime)}},model:{value:t.newTerminateTime,callback:function(e){t.newTerminateTime=e},expression:"newTerminateTime"}}):t._e()],1)],1)],1),t._v(" "),n("v-card-text",[n("v-layout",{attrs:{"align-center":"","justify-end":""}},[n("v-btn",{attrs:{color:"info",small:"",outline:"",round:""},on:{click:t.close}},[t._v("\n Cancel\n ")]),t._v(" "),n("v-btn",{attrs:{color:"success"},on:{click:t.checkActionFlag}},[t._v("\n Schedule task\n ")])],1)],1)],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";function r(t){n(334)}var i=n(203),o=n(335),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-4d909ec3",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("v-dialog",{attrs:{persistent:"",width:"80vw"},model:{value:t.showModal,callback:function(e){t.showModal=e},expression:"showModal"}},[n("v-card",[n("v-card-title",[n("span",{staticClass:"headline"},[t._v("Task log")])]),t._v(" "),n("v-card-text",[t._v("\n "+t._s(t.path)+"\n "),n("div",{staticClass:"log_box"},t._l(t.lines,function(e,r){return n("div",{key:r},[t._v("\n "+t._s(e)+"\n ")])}),0)]),t._v(" "),n("v-card-text",[n("v-layout",{attrs:{"align-center":"","justify-end":""}},[n("v-btn",{attrs:{color:"info",small:"",outline:"",round:""},on:{click:t.close}},[t._v("\n Close\n ")])],1)],1)],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"content"},[n("TaskCreate",{attrs:{"show-modal":t.showModalCreate,hostnames:t.hostnames,hosts:t.hosts,actionFlag:t.actionFlag},on:{close:function(e){t.showModalCreate=!1},getTasks:t.getTasks}}),t._v(" "),n("TaskEdit",{attrs:{"show-modal":t.showModalEdit,taskId:t.taskId,hostname:t.newHostname,command:t.newCommand,actionFlag:t.actionFlag},on:{close:function(e){t.showModalEdit=!1},getTask:function(e){return t.getTask.apply(void 0,arguments)},changeActionFlag:function(e){return t.changeActionFlag.apply(void 0,arguments)},changeSnackbar:function(e){return t.changeSnackbar.apply(void 0,arguments)}}}),t._v(" "),n("TaskSchedule",{attrs:{"show-modal":t.showModalSchedule,taskId:t.taskId,spawnTime:t.newSpawnTime,terminateTime:t.newTerminateTime,actionFlag:t.actionFlag,multipleFlag:t.multipleFlag,selected:t.selected},on:{close:function(e){t.showModalSchedule=!1},updateTask:function(e){return t.updateTask.apply(void 0,arguments)},changeActionFlag:function(e){return t.changeActionFlag.apply(void 0,arguments)},changeSnackbar:function(e){return t.changeSnackbar.apply(void 0,arguments)},handleError:function(e){return t.handleError.apply(void 0,arguments)}}}),t._v(" "),n("TaskLog",{attrs:{"show-modal":t.showModalLog,lines:t.logs,path:t.path},on:{close:function(e){t.showModalLog=!1}}}),t._v(" "),n("v-dialog",{attrs:{width:"500"},model:{value:t.showModalHowItWorks,callback:function(e){t.showModalHowItWorks=e},expression:"showModalHowItWorks"}},[n("v-card",[n("v-card-title",{staticClass:"headline grey lighten-2",attrs:{"primary-title":""}},[t._v("\n How it works\n ")]),t._v(" "),n("v-card-text",[t._v("\n Your tasks are managed by `screen` program installed on each machine. You can attach\n to/close them as they are running. Screen sessions created by TensorHive have custom\n names so you won't be confused which is which."),n("br"),n("br"),t._v("\n When your task command stops executing, screen session will disappear from `screen -ls`\n but stdout produced your process will be redirected to a log file.\n Logs are automatically gathered and stored on that machine under `~/TensorHiveLogs`\n ")]),t._v(" "),n("v-divider"),t._v(" "),n("v-card-actions",[n("v-spacer"),t._v(" "),n("v-btn",{attrs:{color:"primary",flat:""},on:{click:function(e){t.showModalHowItWorks=!1}}},[t._v("\n Close\n ")])],1)],1)],1),t._v(" "),n("v-dialog",{attrs:{width:"400"},model:{value:t.showModalRemove,callback:function(e){t.showModalRemove=e},expression:"showModalRemove"}},[n("v-card",[n("v-card-title",{staticClass:"headline grey lighten-2",attrs:{"primary-title":""}},[t._v("\n Do you want to remove this task?\n ")]),t._v(" "),n("v-card-actions",[n("v-layout",{attrs:{"align-center":"","justify-end":""}},[n("v-btn",{attrs:{color:"error",small:"",outline:"",round:""},on:{click:function(e){t.showModalRemove=!1}}},[t._v("\n No\n ")]),t._v(" "),n("v-btn",{attrs:{color:"success",round:""},on:{click:function(e){return t.removeTask()}}},[t._v("\n Yes\n ")])],1)],1)],1)],1),t._v(" "),n("v-data-table",{key:t.tableKey,staticClass:"elevation-1",attrs:{headers:t.headers,items:t.tasks,pagination:t.pagination,loading:t.actionFlag,"select-all":"","item-key":"id"},on:{"update:pagination":function(e){t.pagination=e}},scopedSlots:t._u([{key:"headers",fn:function(e){return[n("tr",[n("th",[n("v-layout",{attrs:{"align-center":"","justify-start":""}},[n("v-checkbox",{attrs:{"input-value":e.all,indeterminate:e.indeterminate,primary:"","hide-details":""},on:{click:function(e){return e.stopPropagation(),t.toggleAll(e)}}}),t._v(" "),n("v-tooltip",{attrs:{right:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({on:{click:function(e){t.showModalHowItWorks=!0}}},r),[t._v("\n info\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("How it works")])])],1)],1),t._v(" "),t._l(e.headers,function(e){return n("th",{key:e.text,class:["column sortable",t.pagination.descending?"desc":"asc",e.value===t.pagination.sortBy?"active":""],on:{click:function(n){return t.changeSort(e.value)}}},[n("v-icon",{attrs:{small:""}},[t._v("arrow_upward")]),t._v("\n "+t._s(e.text)+"\n ")],1)})],2)]}},{key:"items",fn:function(e){return[n("tr",{attrs:{active:e.selected},on:{click:function(t){e.selected=!e.selected}}},[n("td",[n("v-checkbox",{attrs:{"input-value":e.selected,primary:"","hide-details":""}})],1),t._v(" "),n("td",[t._v(t._s(e.item.id))]),t._v(" "),n("td",[t._v(t._s(e.item.hostname))]),t._v(" "),n("td",{staticClass:"task-command"},[t._v(t._s(e.item.command))]),t._v(" "),n("td",[t._v(t._s(e.item.pid))]),t._v(" "),n("td",[t._v(t._s(e.item.status))]),t._v(" "),n("td",[t._v(t._s(t.prettyDate(e.item.spawnAt)))]),t._v(" "),n("td",[t._v(t._s(t.prettyDate(e.item.terminateAt)))]),t._v(" "),n("td",[n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({on:{click:function(n){return t.scheduleTasks(e.item)}}},i),[t._v("\n schedule\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Schedule task")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({on:{click:function(n){return t.spawnTasks(e.item.id)}}},i),[t._v("\n play_arrow\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Spawn task")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({on:{click:function(n){return t.terminateTasks(e.item.id,null)}}},i),[t._v("\n stop\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Terminate task - does not guarantee that\n "),n("br"),t._v(" task will stop (depends on command)")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({staticStyle:{"font-size":"20px"},on:{click:function(n){return t.terminateTasks(e.item.id,!1)}}},i),[t._v("\n 💀\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Kill task - use when command is more stubborn")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({staticStyle:{"font-size":"20px"},on:{click:function(n){return t.getLog(e.item.id)}}},i),[t._v("\n description\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Show log")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({on:{click:function(n){return t.editTask(e.item)}}},i),[t._v("\n edit\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Edit task")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(r){var i=r.on;return[n("v-icon",t._g({on:{click:function(n){return t.showConfirmationDialog(e.item.id)}}},i),[t._v("\n delete\n ")])]}}],null,!0)},[t._v(" "),n("span",[t._v("Remove task")])])],1)])]}}]),model:{value:t.selected,callback:function(e){t.selected=e},expression:"selected"}},[t._v(" "),n("v-progress-linear",{attrs:{indeterminate:!0},scopedSlots:t._u([{key:"progress",fn:function(){},proxy:!0}])})],1),t._v(" "),n("div",{staticClass:"text-xs-center pt-2"},[n("v-btn",{attrs:{color:"primary"},on:{click:function(e){t.showModalCreate=!0}}},[t._v("Create tasks")]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({on:{click:function(e){return t.getTasks(!0)}}},r),[t._v("\n refresh\n ")])]}}])},[t._v(" "),n("span",[t._v("Refresh")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({on:{click:function(e){return t.scheduleTasks(null)}}},r),[t._v("\n schedule\n ")])]}}])},[t._v(" "),n("span",[t._v("Schedule selected tasks")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({on:{click:function(e){return t.spawnTasks(null)}}},r),[t._v("\n play_arrow\n ")])]}}])},[t._v(" "),n("span",[t._v("Spawn selected tasks")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({on:{click:function(e){return t.terminateTasks(null,null)}}},r),[t._v("\n stop\n ")])]}}])},[t._v(" "),n("span",[t._v("Terminate selected tasks - does not guarantee that\n "),n("br"),t._v("task will stop (depends on command)")])]),t._v(" "),n("v-tooltip",{attrs:{top:""},scopedSlots:t._u([{key:"activator",fn:function(e){var r=e.on;return[n("v-icon",t._g({staticStyle:{"font-size":"20px"},on:{click:function(e){return t.terminateTasks(null,!1)}}},r),[t._v("\n 💀\n ")])]}}])},[t._v(" "),n("span",[t._v("Kill selected tasks - use when command is more stubborn")])])],1),t._v(" "),n("v-snackbar",{attrs:{color:"amber",bottom:"","multi-line":""},model:{value:t.snackbar,callback:function(e){t.snackbar=e},expression:"snackbar"}},[n("span",{staticStyle:{color:"black"}},[t._v(" Synchronization in progress. Actions are not allowed now. ")]),t._v(" "),n("v-btn",{attrs:{color:"black",flat:""},on:{click:function(e){t.snackbar=!1}}},[t._v("\n Close\n ")])],1),t._v(" "),n("v-snackbar",{attrs:{color:"red",bottom:"","multi-line":""},model:{value:t.snackbarError,callback:function(e){t.snackbarError=e},expression:"snackbarError"}},[t._v("\n "+t._s(t.errorMessage)+"\n "),n("v-btn",{attrs:{color:"black",flat:""},on:{click:function(e){t.snackbarError=!1}}},[t._v("\n Close\n ")])],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";function r(t){n(338)}var i=n(204),o=n(339),s=n(1),a=r,l=s(i.a,o.a,!1,a,"data-v-3f0582b0",null);e.a=l.exports},function(t,e){},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"content"},[n("v-alert",{attrs:{dismissible:"",type:"error"},model:{value:t.alert,callback:function(e){t.alert=e},expression:"alert"}},[t._v("\n "+t._s(t.errorMessage)+"\n ")]),t._v(" "),n("v-alert",{attrs:{dismissible:"",type:"info"},model:{value:t.created,callback:function(e){t.created=e},expression:"created"}},[t._v("\n User successfully created\n ")]),t._v(" "),n("v-layout",{attrs:{row:"","justify-center":""}},[n("v-dialog",{attrs:{persistent:"",width:"50vw"},model:{value:t.showModal,callback:function(e){t.showModal=e},expression:"showModal"}},[n("v-card",[n("v-card-title",[n("span",{staticClass:"headline"},[t._v("Create new user")])]),t._v(" "),n("v-card-text",[n("form",{on:{submit:function(e){return e.preventDefault(),t.createUser(e)}}},[t._v("\n Username\n "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-user"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.modalUsername,expression:"modalUsername"}],staticClass:"form-control",attrs:{name:"modalUsername",placeholder:"Username",type:"text"},domProps:{value:t.modalUsername},on:{input:function(e){e.target.composing||(t.modalUsername=e.target.value)}}})]),t._v("\n Email\n "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-envelope"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.modalEmail,expression:"modalEmail"}],staticClass:"form-control",attrs:{name:"modalEmail",placeholder:"Email",type:"text"},domProps:{value:t.modalEmail},on:{input:function(e){e.target.composing||(t.modalEmail=e.target.value)}}})]),t._v("\n Password\n "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-lock"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.modalPassword,expression:"modalPassword"}],staticClass:"form-control",attrs:{name:"modalPassword",placeholder:"Password",type:"password"},domProps:{value:t.modalPassword},on:{input:function(e){e.target.composing||(t.modalPassword=e.target.value)}}})]),t._v("\n Repeat password\n "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-lock"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.modalPassword2,expression:"modalPassword2"}],staticClass:"form-control",attrs:{name:"modalPassword2",placeholder:"Password2",type:"password"},domProps:{value:t.modalPassword2},on:{input:function(e){e.target.composing||(t.modalPassword2=e.target.value)}}})]),t._v(" "),n("v-alert",{attrs:{dismissible:"",type:"error"},model:{value:t.modalAlert,callback:function(e){t.modalAlert=e},expression:"modalAlert"}},[t._v("\n "+t._s(t.errorMessage)+"\n ")]),t._v(" "),n("v-btn",{attrs:{color:"info",small:"",outline:"",round:""},on:{click:function(e){t.showModal=!1}}},[t._v("\n Cancel\n ")]),t._v(" "),n("v-btn",{attrs:{color:"success",type:"submit"}},[t._v("\n Create\n ")])],1)])],1)],1)],1),t._v(" "),n("v-dialog",{attrs:{width:"400"},model:{value:t.showModalRemove,callback:function(e){t.showModalRemove=e},expression:"showModalRemove"}},[n("v-card",[n("v-card-title",{staticClass:"headline grey lighten-2",attrs:{"primary-title":""}},[t._v("\n Do you want to remove this user?\n ")]),t._v(" "),n("v-card-actions",[n("v-layout",{attrs:{"align-center":"","justify-end":""}},[n("v-btn",{attrs:{color:"error",small:"",outline:"",round:""},on:{click:function(e){t.showModalRemove=!1}}},[t._v("\n No\n ")]),t._v(" "),n("v-btn",{attrs:{color:"success",round:""},on:{click:function(e){return t.removeUser()}}},[t._v("\n Yes\n ")])],1)],1)],1)],1),t._v(" "),n("div",[n("div",{staticClass:"text-xs-center pt-2"},[n("v-btn",{attrs:{color:"primary"},on:{click:function(e){t.showModal=!0}}},[t._v("Create user")])],1),t._v(" "),n("v-dialog",{attrs:{"max-width":"500px"},model:{value:t.dialog,callback:function(e){t.dialog=e},expression:"dialog"}},[n("v-card",[n("v-card-text",[n("v-card-text",[t._v("\n Edit user\n ")]),t._v(" "),n("v-card-text",[t._v("\n Current username: "+t._s(t.currentUser.username)+"\n ")]),t._v(" "),n("v-card-text",[t._v("\n New username\n ")]),t._v(" "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-envelope"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.user.username,expression:"user.username"}],staticClass:"form-control",attrs:{name:"modalUsername",placeholder:"Username",type:"text"},domProps:{value:t.user.username},on:{input:function(e){e.target.composing||t.$set(t.user,"username",e.target.value)}}})]),t._v(" "),n("v-card-text",[t._v("\n Current email: "+t._s(t.currentUser.email)+"\n ")]),t._v(" "),n("v-card-text",[t._v("\n New email\n ")]),t._v(" "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-envelope"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.user.email,expression:"user.email"}],staticClass:"form-control",attrs:{name:"modalEmail",placeholder:"Email",type:"text"},domProps:{value:t.user.email},on:{input:function(e){e.target.composing||t.$set(t.user,"email",e.target.value)}}})]),t._v(" "),n("v-card-text",[t._v("\n New password\n ")]),t._v(" "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-lock"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.user.password,expression:"user.password"}],staticClass:"form-control",attrs:{name:"modalPassword",placeholder:"Password",type:"password"},domProps:{value:t.user.password},on:{input:function(e){e.target.composing||t.$set(t.user,"password",e.target.value)}}})]),t._v(" "),n("v-card-text",[t._v("\n Repeat password\n ")]),t._v(" "),n("div",{staticClass:"input-group"},[n("span",{staticClass:"input-group-addon"},[n("i",{staticClass:"fa fa-lock"})]),t._v(" "),n("input",{directives:[{name:"model",rawName:"v-model",value:t.user.password2,expression:"user.password2"}],staticClass:"form-control",attrs:{name:"modalPassword2",placeholder:"Password2",type:"password"},domProps:{value:t.user.password2},on:{input:function(e){e.target.composing||t.$set(t.user,"password2",e.target.value)}}})]),t._v(" "),n("v-card-text",[t._v("\n Account roles:\n ")]),t._v(" "),n("v-card-text",[n("v-checkbox",{attrs:{label:"admin"},model:{value:t.adminCheckbox,callback:function(e){t.adminCheckbox=e},expression:"adminCheckbox"}})],1)],1),t._v(" "),n("v-card-actions",[n("v-spacer"),t._v(" "),n("v-btn",{attrs:{color:"blue darken-1",flat:""},on:{click:function(e){t.dialog=!1}}},[t._v("Cancel")]),t._v(" "),n("v-btn",{attrs:{color:"blue darken-1",flat:""},on:{click:t.updateUser}},[t._v("Edit")])],1)],1)],1),t._v(" "),n("v-data-table",{staticClass:"elevation-1",attrs:{headers:t.headers,items:t.users,search:t.search,pagination:t.pagination,"item-key":"id","hide-actions":""},on:{"update:pagination":function(e){t.pagination=e}},scopedSlots:t._u([{key:"items",fn:function(e){return[n("tr",[n("td",[t._v(t._s(e.item.id))]),t._v(" "),n("td",[t._v(t._s(e.item.username))]),t._v(" "),n("td",[t._v(t._s(e.item.email))]),t._v(" "),n("td",[t._v(t._s(t.prettyDate(e.item.createdAt)))]),t._v(" "),n("td",[t._v(t._s(e.item.role))]),t._v(" "),n("td",[n("v-icon",{attrs:{small:""},on:{click:function(n){return t.editUser(e.item)}}},[t._v("\n edit\n ")]),t._v(" "),n("v-icon",{attrs:{small:""},on:{click:function(n){return t.showConfirmationDialog(e.item.id)}}},[t._v("\n delete\n ")])],1)])]}}])}),t._v(" "),n("div",{staticClass:"text-xs-center pt-2"},[n("v-pagination",{attrs:{length:t.pages},model:{value:t.pagination.page,callback:function(e){t.$set(t.pagination,"page",e)},expression:"pagination.page"}})],1)],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},function(t,e,n){"use strict";var r=n(30),i=n(341),o=n(342),s=n(343),a=n(344);r.default.use(i.a),e.a=new i.a.Store({state:o.a,actions:s.a,mutations:a.a})},,function(t,e,n){"use strict";e.a={callingAPI:!1,searching:"",serverURI:"http://10.110.1.136:8080",user:null,role:null,id:null,accessToken:null,refreshToken:null,userInfo:{messages:[{1:"test",2:"test"}],notifications:[],tasks:[]}}},function(t,e,n){"use strict";e.a={}},function(t,e,n){"use strict";e.a={TOGGLE_LOADING:function(t){t.callingAPI=!t.callingAPI},TOGGLE_SEARCHING:function(t){t.searching=""===t.searching?"loading":""},SET_USER:function(t,e){t.user=e},SET_ROLE:function(t,e){t.role=e},SET_ID:function(t,e){t.id=e},SET_ACCESS_TOKEN:function(t,e){t.accessToken=e},SET_REFRESH_TOKEN:function(t,e){t.refreshToken=e}}},function(t,e,n){"use strict";function r(t){return a.href=t,a.hostname}function i(t){return t.length}function o(t){return new Date(t).toDateString()}function s(t,e){return 1===t?t+e:t+e+"s"}e.b=r,e.a=i,e.d=o,e.c=s;var a=document.createElement("a")},function(t,e,n){"use strict";var r=n(205),i=n(347),o=n(1),s=o(r.a,i.a,!1,null,null,null);e.a=s.exports},function(t,e,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{attrs:{id:"app"}},[n("v-app",[n("router-view")],1)],1)},i=[],o={render:r,staticRenderFns:i};e.a=o},,function(t,e){},function(t,e){}],[206]); +//# sourceMappingURL=app.607bb86363643317145e.js.map \ No newline at end of file diff --git a/tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js.map b/tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js.map new file mode 100644 index 00000000..6d9eb67f --- /dev/null +++ b/tensorhive/app/web/dist/static/js/app.607bb86363643317145e.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///static/js/app.607bb86363643317145e.js","webpack:///./src/api/index.js","webpack:///./src/config/index.js","webpack:///src/components/TheDash.vue","webpack:///src/components/dash/BaseSidebar.vue","webpack:///src/components/dash/BaseSidebarMenu.vue","webpack:///src/components/TheLogin.vue","webpack:///src/components/404.vue","webpack:///src/components/views/ReservationsOverview.vue","webpack:///src/components/views/reserve_resources/FullCalendar.vue","webpack:///src/components/views/reserve_resources/FullCalendarReserve.vue","webpack:///src/components/views/reserve_resources/FullCalendarInfo.vue","webpack:///src/components/views/reserve_resources/MySchedule.vue","webpack:///src/components/views/NodesOverview.vue","webpack:///src/components/views/nodes_overview/WatchGenerator.vue","webpack:///src/components/views/nodes_overview/WatchBox.vue","webpack:///src/components/views/nodes_overview/LineChart.vue","webpack:///src/components/views/TasksOverview.vue","webpack:///src/components/views/tasks_overview/TaskCreate.vue","webpack:///src/components/views/tasks_overview/TaskLine.vue","webpack:///src/components/views/tasks_overview/TaskLineParameter.vue","webpack:///src/components/views/tasks_overview/TaskEdit.vue","webpack:///src/components/views/tasks_overview/TaskSchedule.vue","webpack:///src/components/views/tasks_overview/TaskLog.vue","webpack:///src/components/views/UsersOverview.vue","webpack:///src/components/App.vue","webpack:///./src/main.js","webpack:///./src/routes.js","webpack:///./src/components/TheDash.vue","webpack:///./src/components/dash/BaseSidebar.vue","webpack:///./src/components/dash/BaseSidebarMenu.vue","webpack:///./src/components/dash/BaseSidebarMenu.vue?ea08","webpack:///./src/components/dash/BaseSidebar.vue?593a","webpack:///./src/components/TheDash.vue?9990","webpack:///./src/components/TheLogin.vue","webpack:///./src/components/TheLogin.vue?b5e5","webpack:///./src/components/404.vue","webpack:///./src/components/404.vue?a49b","webpack:///./src/components/views/ReservationsOverview.vue","webpack:///./src/components/views/reserve_resources/FullCalendar.vue","webpack:///./src/components/views/reserve_resources/FullCalendarReserve.vue","webpack:///./node_modules/moment/locale ^\\.\\/.*$","webpack:///./src/components/views/reserve_resources/FullCalendarReserve.vue?7b0f","webpack:///./src/components/views/reserve_resources/FullCalendarInfo.vue","webpack:///./src/components/views/reserve_resources/FullCalendarInfo.vue?723f","webpack:///./static/fullcalendar/fullcalendar.js","webpack:///./src/components/views/reserve_resources/FullCalendar.vue?1ccc","webpack:///./src/components/views/reserve_resources/MySchedule.vue","webpack:///./src/components/views/reserve_resources/MySchedule.vue?baf9","webpack:///./src/components/views/ReservationsOverview.vue?ef65","webpack:///./src/components/views/NodesOverview.vue","webpack:///./src/components/views/nodes_overview/WatchGenerator.vue","webpack:///./src/components/views/nodes_overview/WatchBox.vue","webpack:///./src/components/views/nodes_overview/LineChart.vue","webpack:///./src/components/views/nodes_overview/WatchBox.vue?7539","webpack:///./src/components/views/nodes_overview/WatchGenerator.vue?ffc0","webpack:///./src/components/views/NodesOverview.vue?bbc4","webpack:///./src/components/views/TasksOverview.vue","webpack:///./src/components/views/tasks_overview/TaskCreate.vue","webpack:///./src/components/views/tasks_overview/TaskLine.vue","webpack:///./src/components/views/tasks_overview/TaskLineParameter.vue","webpack:///./src/components/views/tasks_overview/TaskLineParameter.vue?1cdb","webpack:///./src/components/views/tasks_overview/TaskLine.vue?a5d8","webpack:///./src/components/views/tasks_overview/TaskCreate.vue?7e7e","webpack:///./src/components/views/tasks_overview/TaskEdit.vue","webpack:///./src/components/views/tasks_overview/TaskEdit.vue?b212","webpack:///./src/components/views/tasks_overview/TaskSchedule.vue","webpack:///./src/components/views/tasks_overview/TaskSchedule.vue?75bd","webpack:///./src/components/views/tasks_overview/TaskLog.vue","webpack:///./src/components/views/tasks_overview/TaskLog.vue?9f9f","webpack:///./src/components/views/TasksOverview.vue?7755","webpack:///./src/components/views/UsersOverview.vue","webpack:///./src/components/views/UsersOverview.vue?1871","webpack:///./src/store/index.js","webpack:///./src/store/state.js","webpack:///./src/store/actions.js","webpack:///./src/store/mutations.js","webpack:///./src/filters/index.js","webpack:///./src/components/App.vue","webpack:///./src/components/App.vue?6735"],"names":["webpackJsonp","module","__webpack_exports__","__webpack_require__","__WEBPACK_IMPORTED_MODULE_0_axios__","__WEBPACK_IMPORTED_MODULE_0_axios___default","n","__WEBPACK_IMPORTED_MODULE_1__config__","request","method","uri","token","data","arguments","length","undefined","console","error","url","config","serverURI","axios","defaults","headers","common","apiVersion","version","fixedLayout","hideLogoOnMobile","__WEBPACK_IMPORTED_MODULE_0__config__","__WEBPACK_IMPORTED_MODULE_1__dash_BaseSidebar_vue__","__WEBPACK_IMPORTED_MODULE_2_hideseek__","__WEBPACK_IMPORTED_MODULE_3__api__","name","components","BaseSidebar","year","Date","getFullYear","classes","fixed_layout","hide_logo","alert","errorMessage","computed","displayName","this","$store","state","user","methods","handleError","hasOwnProperty","response","msg","message","changeloading","commit","logout","_this","accessToken","then","window","localStorage","setItem","refreshToken","catch","$router","push","__WEBPACK_IMPORTED_MODULE_0__BaseSidebarMenu_vue__","BaseSidebarMenu","mounted","jQuery","off","hideseek","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default","__WEBPACK_IMPORTED_MODULE_1__api__","router","section","username","password","modalUsername","modalEmail","modalPassword","modalPassword2","modalAlert","created","showModal","entry","requestEntry","copyEntryToClipboard","entryInput","document","querySelector","setAttribute","select","execCommand","e","getSelection","removeAllRanges","createUser","_this2","email","checkCreds","_this3","toggleLoading","resetResponse","errorName","access_token","refresh_token","object","JSON","parse","atob","split","id","identity","role","user_claims","roles","loading","__WEBPACK_IMPORTED_MODULE_0__api__","__WEBPACK_IMPORTED_MODULE_1_lodash__","__WEBPACK_IMPORTED_MODULE_1_lodash___default","__WEBPACK_IMPORTED_MODULE_2__reserve_resources_FullCalendar_vue__","__WEBPACK_IMPORTED_MODULE_3__reserve_resources_MySchedule_vue__","FullCalendar","MySchedule","nodes","parsedNodes","snackbar","updateCalendar","selectedResources","nodeCheckbox","resourceTypeCheckbox","resourceCheckbox","parseData","showSnackbar","loadResources","resources","selected","obj","nodeName","resourceName","uuid","index","resourceIndex","toggle","node","open","resourceType","resourceTypes","tempResource","tempResourceType","tempNode","orderedResources","resourceTypeName","resourceUUID","metrics","a","orderBy","checked","loadCalendar","resource","i","j","k","__WEBPACK_IMPORTED_MODULE_0__FullCalendarReserve_vue__","__WEBPACK_IMPORTED_MODULE_1__FullCalendarInfo_vue__","__WEBPACK_IMPORTED_MODULE_2__api__","__WEBPACK_IMPORTED_MODULE_3_jquery__","__WEBPACK_IMPORTED_MODULE_3_jquery___default","__WEBPACK_IMPORTED_MODULE_4_moment__","__WEBPACK_IMPORTED_MODULE_4_moment___default","__WEBPACK_IMPORTED_MODULE_5_lodash__","__WEBPACK_IMPORTED_MODULE_5_lodash___default","FullCalendarReserve","FullCalendarInfo","props","Object","Array","Boolean","watch","calendar","fullCalendar","showModalReserve","showModalInfo","reservation","title","description","resourceId","start","end","reservationId","startDate","endDate","resourcesCheckboxes","refreshTasks","$emit","getEvents","callback","resourcesString","self","toISOString","disabled","addResourcesHeader","dayStart","cloneDeep","tempReservation","allDay","userId","add","setColor","color","step","colorToInt","parseInt","substr","nstep","isNaN","ncolor","toString","join","test","updateReservation","newTime","newTitle","newDescription","toUpdate","empty","key","cancelReservation","addReservation","_this4","$el","resize","allDaySlot","allDayText","height","selectable","selectOverlap","slotEventOverlap","editable","nowIndicator","firstDay","timezone","defaultView","header","left","center","right","views","week","columnHeaderFormat","buttonText","week2","type","duration","days","dateIncrement","events","eventRender","event","element","_this5","find","append","prepend","bold","big","italics","eventAfterRender","view","width","el","clientWidth","dayWidth","eventSlotWidth","eventWidth","Math","floor","css","margin","c","_ambigTime","toDate","eventClick","calEvent","jsEvent","viewRender","__WEBPACK_IMPORTED_MODULE_0_moment__","__WEBPACK_IMPORTED_MODULE_0_moment___default","numberOfResources","Number","Function","startTime","newStartDate","format","newStartTime","endTime","newEndDate","newEndTime","startTimeMenu","startDateMenu","endTimeMenu","endDateMenu","showInfo","reservationTitle","reservationDescription","close","anyChecked","checkbox","__WEBPACK_IMPORTED_MODULE_1_moment__","__WEBPACK_IMPORTED_MODULE_1_moment___default","cancel","update","gpuUtilAvg","memUtilAvg","reservationStart","reservationEnd","getTasks","tasksCard","cancelCard","updateCard","pagination","sortBy","tasks","selectedIndex","text","value","tableKey","actionFlag","showAlert","prettyDate","date","checkActionFlag","scheduleTasks","newTask","adjustHostAndCommand","getTask","gpuUUID","GPU","hostname","command","setCommand","splitCommand","updateTask","task","newData","splice","toggleAll","slice","changeSort","column","descending","tableContent","hours","scheduleStart","scheduleEnd","resourcesIds","startMoment","picker","menu","landscape","reactive","range","fillTable","changeSchedule","adjustTimezone","headerName","forceRerenderTable","resourceIds","nodeIndex","resourceTypeIndex","slots","reserved","userReservation","getReservations","dayDifferenceStart","diff","hoursDifferenceStart","minutesDifferenceStart","dayDifferenceEnd","hoursDifferenceEnd","minutesDifferenceEnd","startSlot","endSlot","slot","getTimezoneOffset","__WEBPACK_IMPORTED_MODULE_0__nodes_overview_WatchGenerator_vue__","WatchGenerator","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default","__WEBPACK_IMPORTED_MODULE_2__WatchBox_vue__","__WEBPACK_IMPORTED_MODULE_4_lodash__","__WEBPACK_IMPORTED_MODULE_4_lodash___default","WatchBox","watches","chartDatasets","time","chartLength","space","interval","updateChart","resourcesIndexes","watchIds","loadData","setInterval","$route","fullPath","clearInterval","changeData","saveWatches","changeDefaultNode","defaultNode","changeDefaultResourceType","defaultResourceType","changeDefaultMetric","defaultMetric","deleteWatch","getItem","isVisible","metric","metricName","apiResponse","uniqueMetricNames","findMetrics","tempMetrics","uniqueMetrics","unit","visible","uniqueMetricName","createMetric","labels","totalMemory","datasets","orderedDatasets","createDataset","options","createOptions","label","defaultData","fill","borderColor","pointBackgroundColor","backgroundColor","responsive","maintainAspectRatio","legend","position","display","tooltips","mode","xPadding","yPadding","bodySpacing","scales","xAxes","scaleLabel","labelString","yAxes","suggestedMin","max","suggestedMax","counter","apiRequest","shift","addWatch","__WEBPACK_IMPORTED_MODULE_0__LineChart_vue__","LineChart","String","selectedNode","selectedResourceType","selectedMetric","rerenderChart","metricData","metricOptions","showProcesses","processes","sendDefaultNode","newDefault","sendDefaultResourceType","sendDefaultMetric","removeMe","loadOptions","fillNodes","fillResourceTypes","fillMetrics","metricIndex","checkProcesses","tempProcess","__WEBPACK_IMPORTED_MODULE_0_vue_chartjs__","extends","chartData","$data","_chart","destroy","renderChart","__WEBPACK_IMPORTED_MODULE_2__tasks_overview_TaskCreate_vue__","__WEBPACK_IMPORTED_MODULE_3__tasks_overview_TaskEdit_vue__","__WEBPACK_IMPORTED_MODULE_4__tasks_overview_TaskSchedule_vue__","__WEBPACK_IMPORTED_MODULE_5__tasks_overview_TaskLog_vue__","TaskCreate","TaskEdit","TaskSchedule","TaskLog","sortable","hostnames","hosts","showModalCreate","showModalEdit","showModalSchedule","showModalHowItWorks","showModalRemove","showModalLog","taskId","newHostname","newCommand","newSpawnTime","newTerminateTime","initialSyncFlag","snackbarError","multipleFlag","logs","path","actionType","gracefully","getHosts","showError","changeActionFlag","bool","changeSnackbar","convertHostsInfo","hostsInfo","host","sync","spawnTasks","prepareActionLoop","terminateTasks","actionLoop","actionPath","getTaskLoop","resumeLoop","spawnAt","terminateAt","editTask","showConfirmationDialog","removeTask","_this6","getLog","_this7","stdout_lines","__WEBPACK_IMPORTED_MODULE_1__TaskLine_vue__","TaskLine","newParameter","linesIds","lines","parameters","parameterIds","addTasks","lineIndex","line","convertResource","parameterIndex","parameter","addParameter","copyLine","addLine","lineToCopy","parametersToCopy","newParameters","parameterToCopy","changeLine","deleteLine","__WEBPACK_IMPORTED_MODULE_0__TaskLineParameter_vue__","TaskLineParameter","newHost","newResource","hostResources","taskPreview","updateLine","changeParameter","deleteParameter","newValue","changeTask","spawnTime","terminateTime","spawnTimeMenu","spawnDateMenu","terminateTimeMenu","terminateDateMenu","spawn","terminate","newSpawnDate","newTerminateDate","actionSave","$refs","save","dialog","search","users","password2","currentUser","userCheckbox","adminCheckbox","pages","rowsPerPage","totalItems","ceil","checkUsers","editUser","admin","updateUser","updatedUser","removeUser","defineProperty","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default","__WEBPACK_IMPORTED_MODULE_2_es6_promise_auto__","__WEBPACK_IMPORTED_MODULE_3_vue__","__WEBPACK_IMPORTED_MODULE_4_vue_router__","__WEBPACK_IMPORTED_MODULE_5_vuex_router_sync__","__WEBPACK_IMPORTED_MODULE_6__routes__","__WEBPACK_IMPORTED_MODULE_7__store__","__WEBPACK_IMPORTED_MODULE_8__api__","__WEBPACK_IMPORTED_MODULE_9__filters__","__WEBPACK_IMPORTED_MODULE_10__components_App_vue__","__WEBPACK_IMPORTED_MODULE_11_vuetify__","__WEBPACK_IMPORTED_MODULE_11_vuetify___default","__WEBPACK_IMPORTED_MODULE_12_vuetify_dist_vuetify_min_css__","__WEBPACK_IMPORTED_MODULE_13_material_design_icons_iconfont_dist_material_design_icons_css__","__WEBPACK_IMPORTED_MODULE_14_axios__","__WEBPACK_IMPORTED_MODULE_14_axios___default","__WEBPACK_IMPORTED_MODULE_15__config__","get","log","store","api","apiPath","clear","location","reload","Vue","use","Vuetify","filter","count","domain","pluralize","VueRouter","routes","linkExactActiveClass","scrollBehavior","to","from","savedPosition","x","y","beforeEach","next","matched","some","record","meta","requiresAuth","app","query","redirect","interceptors","status","reject","localUserString","localUser","render","h","AppView","__WEBPACK_IMPORTED_MODULE_0__components_TheDash_vue__","__WEBPACK_IMPORTED_MODULE_1__components_TheLogin_vue__","__WEBPACK_IMPORTED_MODULE_2__components_404_vue__","__WEBPACK_IMPORTED_MODULE_3__components_views_ReservationsOverview_vue__","__WEBPACK_IMPORTED_MODULE_4__components_views_NodesOverview_vue__","__WEBPACK_IMPORTED_MODULE_5__components_views_TasksOverview_vue__","__WEBPACK_IMPORTED_MODULE_6__components_views_UsersOverview_vue__","component","DashView","children","alias","CalendarView","WatchView","TasksView","UsersView","LoginView","NotFoundView","injectStyle","ssrContext","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TheDash_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ece43d6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TheDash_vue__","normalizeComponent","__vue_styles__","Component","exports","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_BaseSidebar_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_8c8911fe_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_BaseSidebar_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_BaseSidebarMenu_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1ff073b3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_BaseSidebarMenu_vue__","_vm","_h","$createElement","_c","_self","staticClass","_v","attrs","tag","_e","staticRenderFns","esExports","class","dismissible","model","$$v","expression","_s","_m","close-on-content-click","offset-y","text-color","flat","on","click","$event","justify-center","row","wrap","text-xs-center","white--text","xs12","href","data-toggle","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TheLogin_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_78d7a2a0_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TheLogin_vue__","persistent","submit","preventDefault","directives","rawName","placeholder","domProps","input","target","composing","solo","small","outline","round","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_404_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_209d35e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_404_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ReservationsOverview_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f2a7601_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_ReservationsOverview_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendar_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_74cfb89e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendar_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendarReserve_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18b777fb_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendarReserve_vue__","webpackContext","req","webpackContextResolve","map","Error","./af","./af.js","./ar","./ar-dz","./ar-dz.js","./ar-kw","./ar-kw.js","./ar-ly","./ar-ly.js","./ar-ma","./ar-ma.js","./ar-sa","./ar-sa.js","./ar-tn","./ar-tn.js","./ar.js","./az","./az.js","./be","./be.js","./bg","./bg.js","./bm","./bm.js","./bn","./bn.js","./bo","./bo.js","./br","./br.js","./bs","./bs.js","./ca","./ca.js","./cs","./cs.js","./cv","./cv.js","./cy","./cy.js","./da","./da.js","./de","./de-at","./de-at.js","./de-ch","./de-ch.js","./de.js","./dv","./dv.js","./el","./el.js","./en-SG","./en-SG.js","./en-au","./en-au.js","./en-ca","./en-ca.js","./en-gb","./en-gb.js","./en-ie","./en-ie.js","./en-il","./en-il.js","./en-nz","./en-nz.js","./eo","./eo.js","./es","./es-do","./es-do.js","./es-us","./es-us.js","./es.js","./et","./et.js","./eu","./eu.js","./fa","./fa.js","./fi","./fi.js","./fo","./fo.js","./fr","./fr-ca","./fr-ca.js","./fr-ch","./fr-ch.js","./fr.js","./fy","./fy.js","./ga","./ga.js","./gd","./gd.js","./gl","./gl.js","./gom-latn","./gom-latn.js","./gu","./gu.js","./he","./he.js","./hi","./hi.js","./hr","./hr.js","./hu","./hu.js","./hy-am","./hy-am.js","./id","./id.js","./is","./is.js","./it","./it-ch","./it-ch.js","./it.js","./ja","./ja.js","./jv","./jv.js","./ka","./ka.js","./kk","./kk.js","./km","./km.js","./kn","./kn.js","./ko","./ko.js","./ku","./ku.js","./ky","./ky.js","./lb","./lb.js","./lo","./lo.js","./lt","./lt.js","./lv","./lv.js","./me","./me.js","./mi","./mi.js","./mk","./mk.js","./ml","./ml.js","./mn","./mn.js","./mr","./mr.js","./ms","./ms-my","./ms-my.js","./ms.js","./mt","./mt.js","./my","./my.js","./nb","./nb.js","./ne","./ne.js","./nl","./nl-be","./nl-be.js","./nl.js","./nn","./nn.js","./pa-in","./pa-in.js","./pl","./pl.js","./pt","./pt-br","./pt-br.js","./pt.js","./ro","./ro.js","./ru","./ru.js","./sd","./sd.js","./se","./se.js","./si","./si.js","./sk","./sk.js","./sl","./sl.js","./sq","./sq.js","./sr","./sr-cyrl","./sr-cyrl.js","./sr.js","./ss","./ss.js","./sv","./sv.js","./sw","./sw.js","./ta","./ta.js","./te","./te.js","./tet","./tet.js","./tg","./tg.js","./th","./th.js","./tl-ph","./tl-ph.js","./tlh","./tlh.js","./tr","./tr.js","./tzl","./tzl.js","./tzm","./tzm-latn","./tzm-latn.js","./tzm.js","./ug-cn","./ug-cn.js","./uk","./uk.js","./ur","./ur.js","./uz","./uz-latn","./uz-latn.js","./uz.js","./vi","./vi.js","./x-pseudo","./x-pseudo.js","./yo","./yo.js","./zh-cn","./zh-cn.js","./zh-hk","./zh-hk.js","./zh-tw","./zh-tw.js","keys","resolve","_l","$set","align-center","justify-start","nudge-right","lazy","transition","full-width","min-width","scopedSlots","_u","fn","ref","_g","prepend-icon","return-value","max-width","update:returnValue","update:return-value","allowed-minutes","m","click:minute","startMenu","endMenu","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendarInfo_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_396e82ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendarInfo_vue__","icon","items","select-all","item-key","update:pagination","input-value","all","indeterminate","primary","hide-details","stopPropagation","active","item","proxy","root","factory","__WEBPACK_EXTERNAL_MODULE_0__","__WEBPACK_EXTERNAL_MODULE_3__","modules","moduleId","installedModules","l","call","d","getter","o","configurable","enumerable","__esModule","property","prototype","p","s","extendStatics","setPrototypeOf","__proto__","b","__extends","__","constructor","create","compensateScroll","rowEls","scrollbarWidths","border-left-width","margin-left","border-right-width","margin-right","uncompensateScroll","disableCursor","$","addClass","enableCursor","removeClass","distributeHeight","els","availableHeight","shouldRedistribute","minOffset1","minOffset2","flexEls","flexOffsets","flexHeights","usedHeight","undistributeHeight","each","minOffset","naturalOffset","outerHeight","naturalHeight","newHeight","matchCellWidths","maxInnerWidth","innerEl","innerWidth","outerWidth","subtractInnerElHeight","outerEl","both","getScrollParent","scrollParent","parents","parent","eq","ownerDocument","getOuterRect","origin","offset","top","bottom","getClientRect","getScrollbarWidths","getCssFloat","clientHeight","getContentRect","widths","leftRightWidth","offsetWidth","bottomWidth","offsetHeight","sanitizeScrollbarWidth","getIsLeftRtlScrollbars","_isLeftRtlScrollbars","computeIsLeftRtlScrollbars","border","padding","overflow","direction","appendTo","res","remove","prop","parseFloat","isPrimaryMouseButton","ev","which","ctrlKey","getEvX","touches","originalEvent","pageX","getEvY","pageY","getEvIsTouch","preventSelection","allowSelection","intersectRects","rect1","rect2","min","constrainPoint","point","rect","getRectCenter","diffPoints","point1","point2","parseFieldSpecs","specs","tokens","isArray","charAt","field","substring","order","func","compareByFieldSpecs","obj1","obj2","fieldSpecs","obj1fallback","obj2fallback","cmp","compareByFieldSpec","fieldSpec","val1","val2","flexibleCompare","localeCompare","diffDayTime","moment","clone","stripTime","ms","diffDay","diffByUnit","computeGreatestUnit","val","unitsDesc","computeRangeAs","isInt","computeDurationGreatestUnit","durationInput","isDuration","as","divideRangeByDuration","dur","months","durationHasTime","asMonths","abs","asDays","divideDurationByDuration","dur1","dur2","months1","months2","multiplyDuration","minutes","seconds","milliseconds","isNativeDate","isTimeString","str","args","_i","apply","warn","mergeProps","propObjs","complexProps","complexObjs","dest","unshift","copyOwnProps","src","name_1","hasOwnProp","hasOwnPropMethod","applyAll","functions","thisObj","isFunction","ret","removeMatching","array","testFunc","removeCnt","removeExact","exactVal","isArraysEqual","a0","a1","len","firstDefined","htmlEscape","replace","stripHtmlEntities","cssToStr","cssProps","statements","attrsToStr","parts","capitaliseFirstLetter","toUpperCase","compareNumbers","methodName","debounce","wait","immediate","timeout","context","timestamp","result","later","last","setTimeout","callNow","dayIDs","compareUnzonedRanges","range1","range2","startMs","moment_ext_1","UnzonedRange","startInput","endInput","isStart","isEnd","isMoment","stripZone","valueOf","endMs","invertRanges","ranges","constraintRange","dateRange","invertedRanges","sort","intersect","otherRange","newRange","intersectsWith","containsRange","innerRange","containsDate","constrainDate","equals","getStart","default","utc","getEnd","tslib_1","ParsableModelMixin_1","Class_1","EventDefParser_1","EventSource","_super","className","uid","rawInput","source","applyProps","normalizeId","fetch","removeEventDefsById","eventDefId","removeAllEventDefs","getPrimitive","otherSource","parseEventDefs","rawEventDefs","eventDef","eventDefs","parseEventDef","calendarTransform","opt","sourceTransform","eventDataTransform","applyManualStandardProps","rawProps","defineStandardProps","copyVerbatimStandardProps","mixInto","textColor","startEditable","durationEditable","rendering","overlap","constraint","allDayDefault","Mixin_1","guid","ListenerMixin","listenTo","other","arg","eventName","getListenerNamespace","stopListeningTo","listenerId","oldMomentFormat","mom","formatStr","oldMomentProto","makeMoment","parseAsUTC","parseZone","isAmbigTime","isAmbigZone","ambigMatch","isSingleString","util_1","ambigDateOfMonthRegex","ambigTimeOrZoneRegex","exec","_ambigZone","utcOffset","_fullCalendar","newMomentProto","extend","momentProperties","momentExt","hasTime","weeks","weekCalc","_locale","_fullCalendar_weekCalc","isoWeek","dayHours","set","wasAmbigTime","hasZone","local","keepLocalTime","tzo","EmitterMixin","types","handler","_prepareIntercept","one","intercept","extra","trigger","triggerHandler","triggerWith","hasHandlers","hash","_data","ComponentFootprint","unzonedRange","isAllDay","toLegacy","msToMoment","EventDef_1","EventInstance_1","EventDateProfile_1","SingleEventDef","buildInstances","buildInstance","dateProfile","def","rezone","superSuccess","miscProps","Mixin","destClass","getOwnPropertyNames","forEach","mixOver","Interaction","_getView","internalApiVersion","date_formatting_1","formatDate","formatRange","queryMostGranularFormatUnit","locale_1","datepickerLocale","locale","EmitterMixin_1","ListenerMixin_1","Model_1","Model","Constraints_1","Constraints","UnzonedRange_1","ComponentFootprint_1","BusinessHourGenerator_1","BusinessHourGenerator","EventDef","EventDefMutation_1","EventDefMutation","EventSourceParser_1","EventSourceParser","EventSource_1","ThemeRegistry_1","defineThemeSystem","EventInstanceGroup_1","EventInstanceGroup","ArrayEventSource_1","ArrayEventSource","FuncEventSource_1","FuncEventSource","JsonFeedEventSource_1","JsonFeedEventSource","EventFootprint_1","EventFootprint","Class","CoordCache_1","CoordCache","DragListener_1","DragListener","Promise_1","Promise","TaskQueue_1","TaskQueue","RenderQueue_1","RenderQueue","Scroller_1","Scroller","Theme_1","Theme","DateComponent_1","DateComponent","InteractiveDateComponent_1","InteractiveDateComponent","Calendar_1","Calendar","View_1","View","ViewRegistry_1","defineView","getViewConfig","DayTableMixin_1","DayTableMixin","BusinessHourRenderer_1","BusinessHourRenderer","EventRenderer_1","EventRenderer","FillRenderer_1","FillRenderer","HelperRenderer_1","HelperRenderer","ExternalDropping_1","ExternalDropping","EventResizing_1","EventResizing","EventPointing_1","EventPointing","EventDragging_1","EventDragging","DateSelecting_1","DateSelecting","StandardInteractionsMixin_1","StandardInteractionsMixin","AgendaView_1","AgendaView","TimeGrid_1","TimeGrid","DayGrid_1","DayGrid","BasicView_1","BasicView","MonthView_1","MonthView","ListView_1","ListView","EventDateProfile","buildUnzonedRange","forcedAllDay","forceEventDuration","isValid","isAfter","getDefaultEventEnd","isStandardProp","propName","EventRange_1","eventInstances","getAllEventRanges","sliceNormalRenderRanges","eventInstanceToEventRange","sliceRenderRanges","isInverse","sliceInverseRenderRanges","eventInstance","slicedRange","slicedEventRanges","unzonedRanges","eventInstanceToUnzonedRange","ownerDef","getEventDef","hasInverseRendering","explicitEventDef","optionsManager","processIconOverride","iconOverrideOption","setIconOverride","iconOverrideHash","iconClassesCopy","buttonName","isPlainObject","iconClasses","applyIconOverridePrefix","prefix","iconOverridePrefix","indexOf","getClass","getIconClass","baseIconClass","getCustomButtonIconClass","customButtonProps","iconOverrideCustomButtonOption","attachImmediatelyResolvingThen","promise","onResolve","PromiseStub","attachImmediatelyRejectingThen","onReject","construct","executor","deferred","Deferred","exportHooks","touchMouseIgnoreWait","globalEmitter","neededCount","GlobalEmitter","isTouching","mouseIgnoreDepth","bind","needed","unneeded","unbind","touchstart","handleTouchStart","touchcancel","handleTouchCancel","touchend","handleTouchEnd","mousedown","handleMouseDown","mousemove","handleMouseMove","mouseup","handleMouseUp","handleClick","selectstart","handleSelectStart","contextmenu","handleContextMenu","addEventListener","handleTouchMoveProxy","handleTouchMove","Event","passive","handleScrollProxy","handleScroll","removeEventListener","stopTouch","shouldIgnoreMouse","skipMouseIgnore","startTouchMouseIgnore","viewName","viewConfig","viewHash","isHitsEqual","hit0","hit1","isHitPropsWithin","subHit","superHit","HitDragListener","handleInteractionStart","subjectRect","origPoint","subjectEl","hitsNeeded","computeScrollBounds","origHit","queryHit","subjectCenter","coordAdjust","handleDragStart","hit","handleHitOver","handleDrag","dx","dy","handleHitOut","handleDragEnd","handleHitDone","isOrig","handleInteractionEnd","isCancelled","hitsNotNeeded","handleScrollEnd","isDragging","releaseHits","prepareHits","populateInstanceComputableOptions","instanceComputableOptions","localeCode","dpLocaleCode","dpOptions","fcOptions","localeOptionHash","isRTL","weekNumberTitle","weekHeader","dpComputableOptions","jqDatePicker","datepicker","regional","en","setDefaults","newFcOptions","momOptions","options_1","mergeOptions","getMomentLocaleData","momComputableOptions","globalDefaults","localeData","locales","prev","prevText","nextText","today","currentText","monthYearFormat","showMonthAfterYear","yearSuffix","dayOfMonthFormat","longDateFormat","mediumTimeFormat","smallTimeFormat","extraSmallTimeFormat","hourFormat","noMeridiemTimeFormat","smallDayDateFormat","weekFormat","smallWeekFormat","englishDefaults","optionObjs","complexOptions","titleRangeSeparator","defaultTimedEventDuration","defaultAllDayEventDuration","nextDayThreshold","columnHeader","aspectRatio","weekends","weekNumbers","weekNumberCalculation","scrollTime","minTime","maxTime","showNonCurrentDates","lazyFetching","startParam","endParam","timezoneParam","prevYear","nextYear","month","day","agendaEventMinHeight","theme","dragOpacity","dragRevertDuration","dragScroll","unselectAuto","dropAccept","eventOrder","eventLimit","eventLimitText","eventLimitClick","dayPopoverFormat","handleWindowResize","windowResizeDelay","longPressDelay","rtlDefaults","buttonIcons","themeButtonIcons","members","SubClass","mixin","generateId","copy","rawId","getRendering","hasBgRendering","getConstraint","getOverlap","isStartExplicitlyEditable","isDurationExplicitlyEditable","isExplicitlyEditable","_id","applyMiscProps","eventDefsToEventInstances","eventRangeToEventFootprint","eventRange","eventFootprintToComponentFootprint","eventFootprint","componentFootprint","getEventLegacy","EventDefDateMutation_1","SingleEventDef_1","createFromRawProps","largeUnit","dateMutation","defMutation","dateProps","standardProps","verbatimStandardProps","createFromDiff","mutateSingle","origDateProfile","buildNewDateProfile","setDateMutation","isEmpty","sourceClasses","registerClass","EventSourceClass","eventSource","overflowX","overflowY","renderEl","applyOverflow","scrollEl","setHeight","overflow-x","overflow-y","lockOverflow","scrollWidth","scrollHeight","getScrollTop","scrollTop","setScrollTop","getClientWidth","getClientHeight","GlobalEmitter_1","_view","_options","segSelector","dateSelectingClass","dateClicking","dateClickingClass","dateSelecting","eventPointingClass","eventPointing","eventDraggingClass","eventDragging","eventResizingClass","eventResizing","externalDroppingClass","externalDropping","setElement","bindToEl","bindAllSegHandlersToEl","removeElement","endInteractions","executeEventUnrender","bindGlobalHandlers","bindToDocument","unbindGlobalHandlers","unbindFromDocument","bindDateHandlerToEl","is","eventInteraction","bindSegHandlerToEl","segEl","currentTarget","seg","shouldIgnoreEventPointing","shouldIgnoreTouch","isSelected","selectedEvent","isResizing","canStartSelection","canStartResize","isEventDefDraggable","footprint","isEventDefResizable","canStartDrag","isEventDefSelected","interaction","isEventDefStartEditable","isEditable","isEventDefGenerallyEditable","isEventDefResizableFromStart","isEventDefResizableFromEnd","isResizable","diffDates","isEventInstanceGroupAllowed","eventInstanceGroup","eventFootprints","eventRangesToEventFootprints","validUnzonedRange","constraints","isExternalInstanceGroupAllowed","isSelectionFootprintAllowed","DateProfileGenerator_1","viewSpec","batchRenderDepth","initRenderQueue","initHiddenDays","dateProfileGenerator","dateProfileGeneratorClass","bindBaseRenderHandlers","eventOrderSpecs","renderQueue","onRenderQueueStart","onRenderQueueStop","startBatchRender","stopBatchRender","freezeContentHeight","addScroll","queryScroll","updateViewSize","popScroll","thawContentHeight","pause","resume","requestRender","namespace","queue","whenSizeUpdated","isRunning","computeTitle","currentRangeUnit","currentUnzonedRange","activeUnzonedRange","isRangeAllDay","computeTitleFormat","setDate","currentDateProfile","newDateProfile","build","unsetDate","unset","fetchInitialEvents","forceAllDay","usesMinMaxTime","requestEvents","bindEventChanges","resetEvents","unbindEventChanges","setEvents","eventsPayload","unsetEvents","requestDateRender","executeDateRender","requestDateUnrender","executeDateUnrender","isDateInit","startNowIndicator","unselect","stopNowIndicator","triggerViewRender","triggerViewDestroy","publiclyTrigger","requestEventsRender","executeEventRender","triggerAfterEventsRendered","requestEventsUnrender","triggerBeforeEventsDestroyed","requestBusinessHoursRender","businessHourGenerator","renderBusinessHours","requestBusinessHoursUnrender","unrenderBusinessHours","processUnselect","handleDocumentMousedown","delay","getNowIndicatorUnit","initialNowDate","getNow","initialNowQueriedMs","startOf","nowIndicatorTimeoutID","nowIndicatorIntervalID","updateNowIndicator","isDatesRendered","unrenderNowIndicator","renderNowIndicator","isNowIndicatorRendered","clearTimeout","updateSize","totalHeight","isAuto","isResize","scroll","queuedScroll","applyQueuedScroll","applyScroll","queryDateScroll","computeInitialDateScroll","applyDateScroll","reportEventDrop","eventMutation","eventManager","undoFunc","mutateEventsWithId","triggerEventDrop","dateDelta","reportExternalDrop","singleEventDef","isEvent","isSticky","ui","addEventDef","triggerExternalDrop","reportEventResize","triggerEventResize","endDelta","durationDelta","renderSelectionFootprint","reportSelection","triggerSelect","footprintToDateProfile","unrenderSelection","selectEventInstance","selectedEventInstance","unselectEventInstance","getEventSegs","processRangeUnselect","processEventUnselect","ignore","closest","triggerBaseRendered","triggerBaseUnrendered","triggerDayClick","dayEl","isDateInOtherMonth","getUnzonedRangeOption","parseUnzonedRange","hiddenDays","isHiddenDayHash","dayCnt","inArray","trimHiddenDays","inputUnzonedRange","skipHiddenDays","isHiddenDay","inc","isExclusive","out","deps","initialEvents","intervalStart","intervalEnd","fillRenderer","rangeUpdated","displayEventTime","displayEventEnd","eventTimeFormat","computeEventTimeFormat","computeDisplayEventTime","computeDisplayEventEnd","instanceGroup","eventRanges","_getDateProfile","bgRanges","fgRanges","renderBgRanges","renderFgRanges","unrender","unrenderBgRanges","unrenderFgRanges","segs","eventFootprintsToSegs","renderFgSegEls","renderFgSegs","fgSegs","unrenderFgSegs","renderBgSegs","bgSegs","unrenderBgSegs","getSegs","concat","renderSegs","getClasses","getBgClasses","getCss","background-color","getBgColor","filterEl","filterEventRenderEl","disableResizing","hasEventRenderHandlers","hasPublicHandlers","html","renderedSegs","beforeFgSegHtml","fgSegHtml","getSegClasses","isDraggable","legacy","custom","getTimeText","displayEnd","_getTimeText","classNames","objs","getStylingObjs","eventClassName","getSkinCss","border-color","getBorderColor","getTextColor","eventBackgroundColor","eventColor","eventBorderColor","eventTextColor","getFallbackStylingObjs","sortEventSegs","compareEventSegs","seg1","seg2","f1","f2","cf1","cf2","r1","r2","englishMoment","renderFakeFormatString","getParsedFormatString","fakeFormatString","date1","date2","separator","renderParsedFormat","parsedFormat","leftI","rightI","middleI","sameUnits","unzonedDate1","unzonedDate2","renderedParts1","renderFakeFormatStringParts","renderedParts2","leftStr","rightStr","middleStr1","middleStr2","middleStr","isSame","processMaybeMarkers","parsedFormatStrCache","parseFormatString","chunks","chunkFormatString","buildFakeFormatString","buildSameUnits","match","chunker","splitStringLiteral","maybe","chunk","specialTokens","SPECIAL_TOKEN_MARKER","MAYBE_MARKER","PART_SEPARATOR","tokenInfo","units","largeTokenMap","fakePart","fakeRender","fakeParts","MAYBE_REGEXP","m0","m1","candidate","best","RegExp","t","T","Y","M","W","w","D","_watchers","_props","applyGlobalWatchers","constructed","_globalWatchArgs","has","newProps","setProps","reset","oldProps","changeset","names","changedProps","changedCnt","depList","startFunc","stopFunc","unwatch","_watchDeps","watcher","teardown","queuedChangeCnt","depCnt","satisfyCnt","values","bindTuples","isCallingStop","onBeforeDepChange","depName","isOptional","onDepChange","flash","RecurringEventDef_1","eventInput","EventDefDateMutation","clearEnd","forceTimed","dateProfile0","dateProfile1","subtractDates","date0","endDiff","mutation","subtract","setDateDelta","setEndDelta","eventDateProfile","shouldRezone","startDelta","applyTimezone","setStartDelta","themeName","themeClass","themeClassHash","getThemeSystemClass","themeSetting","JqueryUiTheme_1","StandardTheme_1","setRawEventDefs","currentTimezone","isHorizontal","isVertical","forcedOffsetParentEl","offsetParent","offsetParentEl","boundingRect","queryBoundingRect","buildElHorizontals","buildElVerticals","lefts","rights","tops","bottoms","ensureBuilt","getHorizontalIndex","leftOffset","getVerticalIndex","topOffset","getLeftOffset","leftIndex","getLeftPosition","getRightOffset","getRightPosition","getWidth","getTopOffset","topIndex","getTopPosition","getBottomOffset","getBottomPosition","getHeight","scrollParentEl","isPointInBounds","isLeftInBounds","isTopInBounds","isInteracting","isDistanceSurpassed","isDelayEnded","isTouch","isGeneric","shouldCancelTouchScroll","scrollAlwaysKills","isAutoScroll","scrollSensitivity","scrollSpeed","scrollIntervalMs","startInteraction","extraOptions","minDistance","distance","originX","originY","bindHandlers","initAutoScroll","startDelay","handleDistanceSurpassed","endInteraction","endDrag","delayTimeoutId","destroyAutoScroll","unbindHandlers","drag","handleMove","dragstop","touchmove","handleTouchScroll","startDrag","updateAutoScroll","initialEv","handleDelayEnd","handleDebouncedScroll","endAutoScroll","scrollBounds","topCloseness","bottomCloseness","leftCloseness","rightCloseness","sensitivity","bounds","topVel","leftVel","setScrollVel","scrollTopVel","scrollLeftVel","constrainScrollVel","scrollIntervalId","scrollLeft","scrollIntervalFunc","frac","updateDayTable","daysPerRow","rowCnt","msToUtcMoment","renderUnzonedRange","dayIndex","dayIndices","dayDates","isBefore","breakOnWeeks","updateDayTableCols","colCnt","computeColCnt","colHeadFormat","computeColHeadFormat","getCellDate","col","getCellDayIndex","getCellRange","getColDayIndex","getDateDayIndex","dayOffset","sliceRangeByRow","rowFirst","rowLast","segFirst","segLast","normalRange","computeDayRange","rangeFirst","rangeLast","firstRowDayIndex","lastRowDayIndex","sliceRangeByDay","renderHeadHtml","renderHeadTrHtml","renderHeadIntroHtml","renderIntroHtml","renderHeadDateCellsHtml","htmls","renderHeadDateCellHtml","colspan","otherAttrs","innerHtml","isDateValid","getDayClasses","buildGotoAnchorHtml","forceOff","renderBgTrHtml","renderBgIntroHtml","renderBgCellsHtml","renderBgCellHtml","bookendCells","trEl","introHtml","buildEventInstanceGroup","hasAllDayBusinessHours","renderEventFootprints","fillSegTag","elsByFill","renderFootprint","componentFootprintToSegs","buildSegEls","attachSegEls","reportEls","buildSegHtml","eventRenderer","renderComponentFootprint","fabricateEventFootprint","renderEventDraggingFootprints","sourceSeg","renderEventResizingFootprints","extraClassNames","opacity","helperEls","dummyInstance","dummyEvent","Interaction_1","handleMouseover","handleMouseout","mousedOverSeg","DateClicking_1","Popover_1","DayGridEventRenderer_1","DayGridHelperRenderer_1","DayGridFillRenderer_1","cellWeekNumbersVisible","bottomCoordPadding","isRigid","leftCol","rightCol","renderDates","renderGrid","unrenderDates","removeSegPopover","headContainerEl","renderDayRowHtml","cellEls","rowCoordCache","colCoordCache","getCellEl","getIsNumbersVisible","renderNumberTrHtml","getIsDayNumbersVisible","renderNumberIntroHtml","renderNumberCellsHtml","renderNumberCellHtml","weekCalcFirstDoW","isDayNumberVisible","firstDayOfWeek","getCellHit","getHitFootprint","getHitEl","getOwnEventSegs","popoverSegs","renderDrag","renderHighlight","helperRenderer","unrenderDrag","unrenderHighlight","renderEventResize","unrenderEventResize","segPopover","hide","limitRows","levelLimit","rowLevelLimit","rowStructs","unlimitRow","computeRowLevelLimit","limitRow","iterInnerHeights","childNode","trHeight","rowEl","rowHeight","trEls","tbodyEl","levelSegs","cellMatrix","limitedNodes","segsBelow","totalSegsBelow","colSegsBelow","td","rowspan","segMoreNodes","moreTd","moreWrap","moreLink","rowStruct","moreNodes","emptyCellsUntil","endCol","getCellSegs","renderMoreLink","segLevels","attr","after","moreEls","limitedEls","hiddenSegs","getMoreLinkText","clickOption","moreEl","allSegs","reslicedAllSegs","resliceDaySegs","reslicedHiddenSegs","showSegPopover","zoomTo","topEl","content","renderSegPopoverContent","parentEl","autoHide","viewportConstrain","triggerBeforeEventSegsDestroyed","show","triggerAfterEventSegsRendered","segContainer","dayDate","dayEnd","dayRange","newSegs","num","startLevel","segMatrix","level","eventRendererClass","businessHourRendererClass","helperRendererClass","fillRendererClass","makeDayGridSubclass","SuperClass","colWeekNumbersVisible","weekNumberStyleAttr","weekStart","BasicViewDateProfileGenerator_1","dayGrid","instantiateDayGrid","hasRigidRows","addChild","scroller","dayGridClass","renderSkeleton","dayGridContainerEl","dayGridEl","renderSkeletonHtml","unrenderSkeleton","weekNumberWidth","scrollerHeight","headRowEl","computeScrollerHeight","setGridHeight","isOverlapsAllowedByFunc","overlapEventFootprints","overlapFunc","subjectEventInstance","isOverlapEventInstancesAllowed","overlapEventInstance","overlapEventDef","overlapVal","subjectLegacyInstance","_calendar","peerEventInstances","getPeerEventInstances","peerEventRanges","peerEventFootprints","constraintVal","eventAllowFunc","isFootprintAllowed","getEventInstancesWithoutId","selectAllowFunc","getEventInstances","constraintFootprints","constraintValToFootprints","isFootprintWithinConstraints","collectOverlapEventFootprints","footprintContainsFootprint","buildCurrentBusinessFootprints","parseEventDefToInstances","eventInstancesToFootprints","parseFootprints","getEventInstancesWithId","targetFootprint","footprintsIntersect","currentPeriod","eventRangeToEventFootprints","outerFootprint","innerFootprint","footprint0","footprint1","ParsableModelMixin","propDefs","proto","standardPropMap","manualProps","EventInstance","RecurringEventDef","zonedDayStart","instanceStart","instanceEnd","unzonedDate","unzonedEnd","instances","dowHash","setDow","dowNumbers","dow","EventRange","BUSINESS_HOUR_EVENT_DEFAULTS","rawComplexDef","buildEventDefs","rawDefs","requireDow","defs","buildEventDef","rawDef","fullRawDef","StandardTheme","widget","widgetHeader","widgetContent","buttonGroup","button","cornerLeft","cornerRight","stateDefault","stateActive","stateDisabled","stateHover","stateDown","popoverHeader","popoverContent","headerRow","dayRow","listView","JqueryUiTheme","pushLoading","popLoading","ajaxSettings","onSuccess","success","onError","requestParams","buildRequestParams","ajax","AJAX_DEFAULTS","xhr","callbackRes","statusText","errorThrown","customRequestParams","params","dataType","cache","q","isPaused","tryStart","getIsIdle","canRunNext","runRemaining","runTask","waitsByNamespace","taskFunc","waitMs","waitNamespace","delayWait","clearWait","compoundTask","startWait","spawnWait","waitId","shouldAppend","convertEventsPayloadToLegacyArray","legacyEvents","Component_1","util_2","hitsNeededDepth","childrenByUid","businessHourRenderer","child","removeChild","callChildren","_getCalendar","getBusinessHourSegs","getOwnBusinessHourSegs","iterChildren","showEventsWithId","hideEventsWithId","renderedHelper","getSafeHitFootprint","eventFootprintToSegs","gotoOptions","finalOptions","stringify","getAllDayHtml","noThemeHighlight","currentRangeAs","startDay","endTimeMS","endDay","isMultiDayRange","filterLegacyEventInstances","legacyEventInstances","legacyQuery","legacyEventInstance","Iterator_1","Toolbar_1","OptionsManager_1","ViewSpecManager_1","EventManager_1","overrides","loadingLevel","ignoreUpdateViewSize","freezeContentHeightDepth","viewsByType","viewSpecManager","initMomentInternals","initCurrentDate","initEventManager","getView","triggerInfo","optHandler","option","newOptionHash","instantiateView","viewType","spec","getViewSpec","isValidViewType","changeView","dateOrRange","recordOverrides","visibleRange","currentDate","renderView","newDate","getUnitViewSpec","defaultDateInput","prevInfo","buildPrev","nextInfo","buildNext","gotoDate","zonedDateInput","incrementDate","delta","getDate","contentEl","elementVisible","calcSize","initialRender","anchorEl","customAction","opts","themeSystem","widgetClass","businessHours","toggleClass","prependTo","initToolbars","renderHeader","renderFooter","windowResizeProxy","windowResize","clearView","toolbarsManager","proxyCall","bindViewHandlers","setToolbarsTitle","updateToolbarButtons","unbindViewHandlers","newView","oldView","currentView","reinitView","getSuggestedViewHeight","suggestedViewHeight","isHeightAuto","_calcSize","contentHeightInput","heightInput","queryToolbarsHeight","forceFreezeContentHeight","computeHeaderOptions","footer","computeFooterOptions","extraClasses","layout","setToolbarOptions","now","todayInfo","reduce","accumulator","toolbar","zonedStartInput","zonedEndInput","buildSelectFootprint","_week","monthNames","_months","monthNamesShort","_monthsShort","dayNames","_weekdays","dayNamesShort","_weekdaysShort","localizeMoment","getIsAmbigTimezone","adjustedZonedDate","zonedDate","toArray","timeAdjust","asMilliseconds","ignoreEnd","humanizeDuration","humanize","rangeInput","rawSources","singleRawSource","freeze","rawSource","addSource","thaw","getEventEnd","zonedStart","rerenderEvents","refetchEvents","refetchAllSources","renderEvents","eventInputs","renderEvent","stickySource","removeEvents","legacyInstances","idMap","getEventDefByUid","clientEvents","updateEvents","eventPropsArray","updateEvent","eventProps","eventDefMutation","getEventSources","otherSources","getEventSourceById","getSourceById","addEventSource","sourceInput","removeEventSources","sourceMultiQuery","sources","removeAllSources","multiQuerySources","removeSource","removeEventSource","sourceQuery","querySources","refetchEventSources","refetchSource","DateProfileGenerator","prevDate","nextDate","forceToValid","currentInfo","isDateAllDay","buildValidRange","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","dayCount","durationUnit","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","getFallbackDuration","computeRes","alignment","dateIncrementInput","dateIncrementDuration","customAlignment","runningCount","visibleUnzonedRange","fallback","getDraggedElMeta","stick","dataAttrPrefix","HitDragListener_1","dragListener","dragstart","sortstart","accept","listenToExternalDrag","interactionStart","hitOver","mutatedEventInstanceGroup","isAllowed","hitFootprint","computeExternalDrop","hitOut","hitDone","interactionEnd","buildDragListener","resizeMutation","dragStart","segResizeStart","origHitFootprint","computeEventStartResizeMutation","computeEventEndResizeMutation","buildMutatedEventInstanceGroup","segResizeStop","startFootprint","endFootprint","origEventFootprint","origRange","MouseFollower_1","getSelectionDelay","handleMousedown","settings","buildSelectListener","mouseFollower","additionalClass","revertDuration","zIndex","segDragStart","origFootprint","computeEventDropMutation","stop","segDragStop","computeEventDateMutation","getDelay","selectionFootprint","computeSelection","wholeFootprint","computeSelectionFootprint","groupEventFootprintsByAllDay","timed","agendaTimeGridMethods","agendaDayGridMethods","timeGrid","instantiateTimeGrid","timeGridClass","timeGridWrapEl","timeGridEl","axisStyleAttr","axisWidth","colEls","noScrollRowEls","bottomRuleEl","getTotalSlatHeight","computeTimeTop","dayEventsPayload","timedEventsPayload","groups","weekText","TimeGridEventRenderer_1","TimeGridHelperRenderer_1","TimeGridFillRenderer_1","AGENDA_STOCK_SUB_DURATIONS","processOptions","sliceRangeByTimes","segRange","dayRanges","slotDuration","snapDuration","snapsPerSlot","labelFormat","labelInterval","computeLabelInterval","slotsPerLabel","renderSlats","renderColumns","unrenderColumns","slatContainerEl","renderSlatRowHtml","slatEls","slatCoordCache","slotDate","isLabeled","axisHtml","slotTime","slotIterator","renderContentSkeleton","unrenderContentSkeleton","skeletonEl","cellHtml","contentSkeletonEl","colContainerEls","helperContainerEls","fgContainerEls","bgContainerEls","highlightContainerEls","businessContainerEls","groupSegsByCol","segsByCol","attachSegsByCol","containerEls","computeDateTop","nowIndicatorEls","updateSegVerticals","businessSegs","startOfDayDate","slatIndex","slatRemainder","slatCoverage","computeSegVerticals","assignSegVerticals","eventMinHeight","generateSegVerticalCss","colIndex","slatTop","slatHeight","partial","localSnapIndex","snapIndex","snapTop","snapBottom","snap","computeSnapTime","BasicViewDateProfileGenerator","weekday","MonthViewDateProfileGenerator_1","ListEventRenderer_1","ListEventPointing_1","viewEnd","renderEmptyMessage","renderSegList","daySegs","segsByDay","groupSegsByDay","tableEl","dayHeaderHtml","mainFormat","altFormat","_element","singleRes","removeData","Iterator","results","Toolbar","toolbarOptions","viewsWithButtons","newToolbarOptions","sections","renderSection","sectionEl","buttonStr","calendarCustomButtons","calendarButtonTextOverrides","calendarButtonText","buttonGroupStr","groupEl","groupChildren","isOnlyButtons","buttonClick","buttonIcon","buttonInnerHtml","buttonClasses","buttonEl","buttonAriaAttr","buttonTextOverride","buttonTextDefault","hasClass","not","hover","first","updateTitle","activateButton","deactivateButton","disableButton","enableButton","getViewsWithButtons","OptionsManager","dynamicOverrides","compute","optionName","optionCnt","localeDefaults","dirDefaults","rawOptions","clearCache","ViewSpecManager","viewSpecCache","buildViewSpec","viewTypes","singleUnit","requestedViewType","viewOverrides","specChain","defaultsChain","overridesChain","buildViewSpecOptions","buildViewSpecButtonText","queryButtonText","buttonTextKey","isSourcesEquivalent","source0","source1","EventPeriod_1","EventManager","force","isWithinRange","setPeriod","whenReleased","requestSource","doomedSource","purgeSource","purgeAllSources","requestSources","getSources","matchInputs","matchingSources","matchInput","grep","eventPeriod","unbindPeriod","bindPeriod","eventId","undoFuncs","getEventDefsById","removeEventDef","defCopy","allInstances","EventPeriod","pendingCnt","freezeDepth","stuntedReleaseCnt","releaseCnt","requestsByUid","eventDefsByUid","eventDefsById","eventInstanceGroupsById","addEventDefs","tryRelease","completedCnt","eventDefUid","addEventInstance","isEmptyObject","removeEventInstancesForDef","matchingInstances","currentEventInstance","release","MouseFollower","sourceEl","isFollowing","isHidden","isAnimating","y0","x0","topDelta","leftDelta","updatePosition","shouldRevert","complete","top0","left0","animate","getEl","visibility","sourceOffset","DateClicking","dayClickHit","buildSlotSegLevels","levels","computeSlotSegCollisions","computeForwardSlotSegs","forwardSegs","computeSlotSegPressures","forwardSeg","forwardPressure","otherSegs","TimeGridEventRenderer","renderFgSegsIntoContainers","updateFgSegCoords","timeText","fullTimeText","startTimeText","isResizableFromStart","isResizableFromEnd","skinCss","zonedEnd","computeFgSegHorizontals","assignFgSegHorizontals","level0","computeFgSegForwardBack","seriesBackwardPressure","seriesBackwardCoord","forwardCoord","sortForwardSegs","backwardCoord","compareForwardSegs","generateFgSegHorizontalCss","shouldOverlap","TimeGridHelperRenderer","helperNodes","TimeGridFillRenderer","Popover","documentMousedown","viewportTop","viewportLeft","viewportOffset","windowEl","viewportEl","isDaySegCollision","otherSeg","compareDaySegCols","DayGridEventRenderer","renderSegRows","rowNode","pop","segRows","groupSegRows","renderSegRow","rowSegs","loneCellMatrix","tr","buildSegLevels","levelCnt","tbody","titleHtml","timeHtml","DayGridHelperRenderer","skeletonTopEl","skeletonTop","DayGridFillRenderer","renderFillRow","startCol","toLowerCase","MonthViewDateProfileGenerator","ListEventRenderer","bgColor","ListEventPointing","isDefaultPrevented","Bootstrap3Theme_1","Bootstrap4Theme_1","Bootstrap3Theme","tableGrid","tableList","tableListHeading","popover","Bootstrap4Theme","fixedWeekCount","listDayFormat","noEventsMessage","listDayAltFormat","show-modal","resources-checkboxes","number-of-resources","add-reservation","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MySchedule_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3b70e2bc_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_MySchedule_vue__","readonly","fab","dark","multi-line","parsed-nodes","update-calendar","selected-resources","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_NodesOverview_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18fc6060_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_NodesOverview_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_WatchGenerator_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_09be105e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_WatchGenerator_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_WatchBox_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_76d51dc2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_WatchBox_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LineChart_vue__","hide-actions","expanded","owner","pid","chart-data","rerender-chart","update-chart","default-node","default-resource-type","default-metric","resources-indexes","chart-datasets","argsArray","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TasksOverview_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3aaf4402_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TasksOverview_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskCreate_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1853547a_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskCreate_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLine_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b07ebe7c_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLine_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLineParameter_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d52c3886_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLineParameter_vue__","block","justify-end","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskEdit_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_23f3faef_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskEdit_vue__","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskSchedule_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_54bcbb8f_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskSchedule_vue__","spawnMenu","terminateMenu","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLog_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4d909ec3_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLog_vue__","primary-title","staticStyle","font-size","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UsersOverview_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3f0582b0_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_UsersOverview_vue__","createdAt","__WEBPACK_IMPORTED_MODULE_0_vue__","__WEBPACK_IMPORTED_MODULE_1_vuex__","__WEBPACK_IMPORTED_MODULE_2__state__","__WEBPACK_IMPORTED_MODULE_3__actions__","__WEBPACK_IMPORTED_MODULE_4__mutations__","Vuex","Store","actions","mutations","callingAPI","searching","userInfo","messages","1","2","notifications","TOGGLE_LOADING","TOGGLE_SEARCHING","SET_USER","SET_ROLE","SET_ID","SET_ACCESS_TOKEN","SET_REFRESH_TOKEN","urlParser","arr","toDateString","createElement","__WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__","__WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_535f2ac0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__"],"mappings":"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QAIAnK,MAAAqQ,UAAA,MVysCQ,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUlT,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuH,GAAqCvH,EAAoB,GACzDsT,EAAuCtT,EAAoB,GAC3DuT,EAA+CvT,EAAoBG,EAAEmT,EWnxC9FvT,GAAA,GACA+B,KAAA,mBAEAkJ,OACA3F,UAAA8F,QACAM,YAAAR,OACAuI,OAAApB,SACAqB,OAAArB,SACAjG,aAAAhB,QACArD,MAAAmD,QAGAxI,UACAiR,WADA,WAEA,cAAA/Q,KAAA8I,YAAAiI,WACA,6CACA,IAAA/Q,KAAA8I,YAAAiI,WACA,uCAEA/Q,KAAA8I,YAAAiI,WAAA,KAIAC,WAXA,WAYA,cAAAhR,KAAA8I,YAAAkI,WACA,6CACA,IAAAhR,KAAA8I,YAAAkI,WACA,uCAEAhR,KAAA8I,YAAAkI,WAAA,KAGAV,iBApBA,WAqBA,MAAAtQ,MAAA8I,YAAAC,OAGAwH,uBAxBA,WAyBA,MAAAvQ,MAAA8I,YAAAE,aAGAiI,iBA5BA,WA6BA,MAAAjR,MAAA8I,YAAAI,OAGAgI,eAhCA,WAiCA,MAAAlR,MAAA8I,YAAAK,MAIAV,OACAe,aADA,WAEAxJ,KAAAmR,YAEAb,iBAJA,WAKAtQ,KAAAqL,SAAArL,KAAAsQ,kBAGAC,uBARA,WASAvQ,KAAAsL,eAAAtL,KAAAuQ,wBAGAU,iBAZA,WAaA,OAAAjR,KAAAiR,kBACAjR,KAAA2P,aAAAiB,IAAA5Q,KAAAiR,kBAAArB,OAAA,cACA5P,KAAA6P,aAAAe,IAAA5Q,KAAAiR,kBAAArB,OAAA,WAEA5P,KAAA2P,aAAA,GACA3P,KAAA6P,aAAA,KAIAqB,eAtBA,WAuBA,OAAAlR,KAAAkR,gBACAlR,KAAA+P,WAAAa,IAAA5Q,KAAAkR,gBAAAtB,OAAA,cACA5P,KAAAgQ,WAAAY,IAAA5Q,KAAAkR,gBAAAtB,OAAA,WAEA5P,KAAA+P,WAAA,GACA/P,KAAAgQ,WAAA,MAKAlS,KAlFA,WAmFA,OACAsT,WAAA,EACAC,YAAA,EACAC,YAAA,EACAjG,SAAA,GACAC,eAAA,GACA2E,eAAA,EACAC,eAAA,EACAC,aAAA,EACAC,aAAA,EACAT,aAAA,GACAE,aAAA,GACAE,WAAA,GACAC,WAAA,GACAuB,YACAC,OAAA,QAEAC,SACA1L,YACA2L,cAAA,EACAjT,UACAkT,KAAA,KAAAC,MAAA,OACAD,KAAA,UAAAC,MAAA,YACAD,KAAA,WAAAC,MAAA,YACAD,KAAA,eAAAC,MAAA,gBAEAC,SAAA,EACAC,YAAA,EACAC,WAAA,IAIA3R,SACA4R,WADA,SACAC,GACA,cAAAA,EACArB,IAAAqB,GAAArC,OAAA,wBAEA,MAIAuB,SAAA,cAAAtQ,GAAAb,IACM4E,GAAA,EACNlH,QAAA,uBAAAsC,KAAAC,OAAAC,MAAAoE,GAAA,iBAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAM,EAAA4Q,MAAAlR,EAAAzC,KAAA2T,QAEArQ,MAAA,SAAAjD,GACA0C,EAAA4I,MAAA,cAAAtL,MAIA+T,gBAAA,YACA,IAAAlS,KAAA8R,aACA9R,KAAA8R,YAAA,EACA9R,KAAA+R,WAAA,EACA/R,KAAAmS,kBAIAA,cAAA,cACA7N,GADAd,EAAAxD,IAEAsE,GAAAtE,KAAA+F,SAAA/F,KAAA0R,eAAApN,EACA,IAAA8N,GAAApS,KAAAqS,sBACAD,GAAA,QAAApS,KAAA8I,YAAAI,MACAkJ,EAAA,YAAApS,KAAA8I,YAAAK,IACMvE,EAAA,EACNlH,QAAA,gBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,YAAAsR,GACArR,KAAA,SAAAR,GACAiD,EAAA8O,QAAAhO,KAEAlD,MAAA,SAAAjD,GACAqF,EAAAiG,MAAA,cAAAtL,GACAqF,EAAA8O,QAAAhO,MAIA+N,qBAAA,WACA,OAAApM,KAAAjG,MAAAmF,MACA,OAAAoN,KAAAvS,MAAAmF,MAAAc,GAAAuM,IACA,GAAAD,IAAAvS,KAAA8I,YAAAG,WACA,OACAwJ,SAAAxM,EACAyM,QAAA1S,KAAA2S,WAAA3S,KAAAmF,MAAAc,GAAAuM,IAAAD,GAAAnM,OAKA,WAGAuM,WAAA,SAAAvM,GACA,GAAAsM,GAAA1S,KAAA+F,SAAA/F,KAAA0R,eAAAgB,QACAE,EAAAF,EAAArO,MAAA,IAEA,OADAuO,GAAA,2BAAAxM,EACAwM,EAAA3H,KAAA,MAGAqH,QAAA,SAAAhO,GAAA,GAAAX,GAAA3D,IACM4E,GAAA,EACNlH,QAAA,gBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAoD,EAAAkP,WAAAvO,EAAA/D,EAAAzC,KAAAgV,MACAnP,EAAA+N,gBACA/N,EAAA+N,cAAA/N,EAAAoC,SAAA/H,OACA2F,EAAAwO,iBAEAxO,EAAA+N,cAAA,EACA/N,EAAAmO,YAAA,EACAnO,EAAAoO,WAAA,KAGA3Q,MAAA,SAAAjD,GACAwF,EAAA8F,MAAA,cAAAtL,GACAwF,EAAA+N,gBACA/N,EAAA+N,cAAA/N,EAAAoC,SAAA/H,OACA2F,EAAAwO,iBAEAxO,EAAA+N,cAAA,EACA/N,EAAAmO,YAAA,EACAnO,EAAAoO,WAAA,MAKAc,WAAA,SAAAvO,EAAAyO,GACA,OAAA3M,KAAApG,MAAAyR,MACAzR,KAAAyR,MAAArL,GAAA9B,SACA,OAAAyO,EACA/S,KAAAyR,MAAArL,GAAA2M,EAEA/S,KAAAyR,MAAAuB,OAAA5M,EAAA,GAIApG,MAAA6R,YAGAoB,UA1GA,WA2GAjT,KAAA+F,SAAA/H,OAAAgC,KAAA+F,YACA/F,KAAA+F,SAAA/F,KAAAyR,MAAAyB,SAGAC,WA/GA,SA+GAC,GACApT,KAAAuR,WAAAC,SAAA4B,EACApT,KAAAuR,WAAA8B,YAAArT,KAAAuR,WAAA8B,YAEArT,KAAAuR,WAAAC,OAAA4B,EACApT,KAAAuR,WAAA8B,YAAA,IAIA7C,MAAA,WACAxQ,KAAAyJ,MAAA,UAGAiC,kBAAA,WACA1L,KAAA6Q,OAAA7Q,KAAA8I,cAGAqC,kBAAA,WACA,GAAAC,IAAAwF,IAAA5Q,KAAA2P,aAAA,IAAA3P,KAAA6P,cAAAe,IAAA5Q,KAAA+P,WAAA,IAAA/P,KAAAgQ,YACAhQ,MAAA8Q,OAAA9Q,KAAA8I,YAAAsC,EAAApL,KAAAqL,SAAArL,KAAAsL,oBXukDS,CAEH,SAAUnO,EAAQC,EAAqBC,GAE7C,YACqB,IAAIgS,GAAuChS,EAAoB,GAC3DiS,EAA+CjS,EAAoBG,EAAE6R,GACrEtN,EAAqC1E,EAAoB,EYrhElFD,GAAA,GAEAU,KAFA,WAGA,OACAwV,cACAxN,aACA4G,UACA6G,SACA1B,SAAA,GAEA2B,cAAA,GACAC,YAAA,GACAC,gBACAC,eACA9B,SAAA,EACA+B,QAAA,GAAArU,OAAAuK,cAAAc,OAAA,MACAiJ,MAAA,EACAC,WAAA,EACAC,UAAA,EACAC,MAAA,IAIA3L,OACAjD,YAAAmD,OAGAE,OACArD,YADA,WAEApF,KAAAiU,cAIA7T,SACAyF,cAAA,WACA7F,KAAAyJ,MAAA,gBAAAzJ,KAAAsT,aAAAxN,YAGAoO,eAAA,WACA,GAAAhL,GAAAoG,IAAAtP,KAAA4T,OAAA,kBAAAtJ,IAAAtK,KAAAmU,iBAAA,QACAnU,MAAA2T,YAAAzK,EACAlJ,KAAAwT,cAAAtK,EAAAY,cACA9J,KAAAyT,YAAAnE,IAAApG,GAAAoB,IAAAtK,KAAAgU,MAAA,QAAAlK,aACA,IAAA4C,KACAA,GAAApL,MAAAsQ,MAAA1I,EAAA0G,OAAA,sBAAAtL,GAAA,GACA,QAAAiD,GAAA,EAAAA,EAAAvH,KAAAgU,MAAAzM,IACAmF,EAAApL,MAAAsQ,MAAAtC,IAAApG,GAAAoB,IAAA/C,EAAA,QAAAqI,OAAA,sBAAAtL,GAAAiD,EAAA,GAEA,IAAAgM,KACA,QAAAa,KAAA1H,GACA,IAAAnF,EAAA,EAAAA,EAAA,GAAAA,IACAgM,EAAAjS,MAAAsQ,MAAArK,EAAA,MAAAjD,GAAA8P,EAAA,SAAA7M,GAGAvH,MAAAsT,aAAA5G,SACA1M,KAAAsT,aAAAC,QACAvT,KAAAiU,aAGA3N,OAAA,SAAAgB,GACAA,EAAAvB,UAAAuB,EAAAvB,SACA/F,KAAA6F,gBACA7F,KAAAqU,sBAGAJ,UAAA,WACAjU,KAAAsU,eACAtU,KAAAsT,aAAAxN,YACA,QAAAyO,KAAAvU,MAAAoF,YAAA,CACA,GAAAmB,GAAAvG,KAAAoF,YAAAmP,EACA,QAAAC,KAAAjO,GAAAG,cAAA,CACA,GAAAD,GAAAF,EAAAG,cAAA8N,EACA,QAAAnO,KAAAI,GAAAX,UAAA,CACA,GAAAwB,GAAAb,EAAAX,UAAAO,EACAiB,GAAAnI,KAAAmI,EAAArB,SAAA,OAAAI,EACAiB,EAAA,YACAtH,KAAA0T,aAAApS,KAAAgG,EAAAN,aAEA,QADAyN,MACAlN,EAAA,EAAAA,EAAA,GAAAvH,KAAAgU,MAAAzM,IACAkN,EAAAnT,MAAAsQ,MAAA,GAAAtN,GAAA,QAAAiD,EAAAmN,UAAA,EAAAC,iBAAA,GAEArN,GAAA,MAAAmN,EACAzU,KAAAsT,aAAAxN,UAAAwB,EAAAN,cAAAM,IAIAtH,KAAA4U,mBAGAA,gBAAA,cAAA/T,GAAAb,KACA4J,EAAA,EACA,QAAArC,KAAAvH,MAAA0T,aACA9J,GAAA5J,KAAA0T,aAAAnM,GAAA,GAEAqC,KAAAsJ,MAAA,MACMnR,EAAA,EACNrE,QAAA,qCAAAkM,EAAA,UAAA5J,KAAAwT,cAAA,QAAAxT,KAAAyT,YAAAzT,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAM,EAAA8E,UAAApF,EAAAzC,QAEAsD,MAAA,SAAAjD,GACA0C,EAAA4I,MAAA,cAAAtL,MAIAwH,UAAA,SAAA7H,GACA,OAAAyJ,KAAAzJ,GAAA,CACA,GAAAoL,GAAAoG,IAAAxR,EAAAyJ,GAAA2B,OACA2L,EAAA7U,KAAA2T,YAAAmB,KAAA5L,EAAA,QACA6L,EAAA/U,KAAA2T,YAAAmB,KAAA5L,EAAA,YACA8L,EAAAhV,KAAA2T,YAAAmB,KAAA5L,EAAA,aACA,KAAA8L,MAAA,EACA,IAAA7L,GAAAmG,IAAAxR,EAAAyJ,GAAA4B,KACA8L,EAAAjV,KAAA2T,YAAAmB,KAAA3L,EAAA,QACA+L,EAAAlV,KAAA2T,YAAAmB,KAAA3L,EAAA,YACAgM,EAAAnV,KAAA2T,YAAAmB,KAAA3L,EAAA,aACA,KAAAgM,MAAA,EACA,IAAAC,GAAA,IAAAP,EAAA,EAAAE,EAAAC,EACAK,EAAA,IAAAJ,EAAA,EAAAC,EAAAC,CACAC,GAAA,IAAAA,EAAA,GACAC,EAAA,GAAArV,KAAAgU,QAAAqB,EAAA,GAAArV,KAAAgU,MACA,QAAAsB,GAAAF,EAAAE,EAAAD,EAAAC,IACA3K,SAAA3K,KAAAC,OAAAC,MAAAoE,MAAAqG,SAAA7M,EAAAyJ,GAAA8C,QACArK,KAAAsT,aAAAxN,UAAAhI,EAAAyJ,GAAA0B,YAAAwL,MAAAa,GAAAX,iBAAA,EAEA3U,KAAAsT,aAAAxN,UAAAhI,EAAAyJ,GAAA0B,YAAAwL,MAAAa,GAAAZ,UAAA,CAGA1U,MAAAqU,uBAIAA,mBAAA,WACArU,KAAA6R,UAAA,GAGAsC,eAAA,WAGA,OAFA,GAAA5U,OACAgW,oBACA,KAIA9T,QA/IA,WAgJA,GAAAyH,GAAAoG,KAAA,GAAA/P,OAAAuK,eAAAQ,IAAAtK,KAAAmU,iBAAA,QACAnU,MAAA2T,YAAAzK,EACAlJ,KAAAwT,cAAAtK,EAAAY,cACA9J,KAAAyT,YAAAnE,IAAApG,GAAAoB,IAAA,UAAAR,aACA,IAAA4C,KACAkF,MAAA1I,EAAA0G,OAAA,sBAAAtL,GAAA,IACAsN,MAAAtC,IAAApG,GAAAoB,IAAA,UAAAsF,OAAA,sBAAAtL,GAAA,IACAsN,MAAAtC,IAAApG,GAAAoB,IAAA,UAAAsF,OAAA,sBAAAtL,GAAA,IACAsN,MAAAtC,IAAApG,GAAAoB,IAAA,UAAAsF,OAAA,sBAAAtL,GAAA,IACAsN,MAAAtC,IAAApG,GAAAoB,IAAA,UAAAsF,OAAA,sBAAAtL,GAAA,IACAsN,MAAAtC,IAAApG,GAAAoB,IAAA,UAAAsF,OAAA,sBAAAtL,GAAA,IACAsN,MAAAtC,IAAApG,GAAAoB,IAAA,UAAAsF,OAAA,sBAAAtL,GAAA,IAEAiP,IACA,QAAAa,KAAA1H,GACA,OAAAnF,GAAA,EAAAA,EAAA,GAAAA,IACAgM,EAAAjS,MAAAsQ,MAAArK,EAAA,MAAAjD,GAAA8P,EAAA,SAAA7M,GAGAvH,MAAAsT,cACAxN,aACA4G,SACA6G,YZ6nEM,SAAUpW,EAAQC,EAAqBC,GAE7C,YACqB,IAAImY,GAAmEnY,EAAoB,Iav4EhHD,GAAA,GACAgC,YACAqW,eAAAD,EAAA,Kbs5EM,SAAUrY,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqY,GAAkErY,EAAoB,KACtFsY,EAA0EtY,EAAoBG,EAAEkY,GAChGE,EAAqEvY,EAAoB,IACzFwY,EAA6ExY,EAAoBG,EAAEoY,GACnGE,EAA8CzY,EAAoB,KAClE6B,EAAqC7B,EAAoB,GACzD0Y,EAAuC1Y,EAAoB,IAC3D2Y,EAA+C3Y,EAAoBG,EAAEuY,Ec/3E9F3Y,GAAA,GACAgC,YACA6W,SAAAH,EAAA,GAGAhY,KALA,WAMA,OACAoY,WACAC,iBACAC,KAAA,IACAC,YAAA,GACAC,MAAA,EACAC,SAAA,KACA3W,OAAA,EACAC,aAAA,GACA2W,aAAA,EACAC,oBACAC,SAAA,IAIAjU,QArBA,WAsBAzC,KAAA2W,UACA,IAAA9M,GAAA7J,IACAA,MAAAuW,SAAAK,YAAA,WACA,oBAAA/M,EAAAgN,OAAAC,UACAC,cAAAlN,EAAA0M,UAEA1M,EAAAmN,cACAhX,KAAAoW,OAGAhW,SACAC,YAAA,SAAAlC,GACAA,EAAAmC,eAAA,YAGAnC,EAAAoC,SAAAzC,KAAAwC,eAAA,OAGAN,KAAAH,aAAA1B,EAAAoC,SAAAzC,KAAA0C,IAFAR,KAAAH,aAAA1B,EAAAoC,SAAAzC,KAHAkC,KAAAH,aAAA1B,EAAAsC,QAQAT,KAAAJ,OAAA,GAGAqX,YAAA,WACAjW,OAAAC,aAAAC,QAAA,UAAA2U,IAAA7V,KAAAkW,UACAlV,OAAAC,aAAAC,QAAA,WAAA2U,IAAA7V,KAAA0W,YAEAQ,kBAAA,SAAA5S,EAAAnF,GACA,OAAAiH,KAAApG,MAAAkW,QACAlW,KAAAkW,QAAA9P,GAAA9B,SACAtE,KAAAkW,QAAA9P,GAAA+Q,YAAAhY,EAGAa,MAAAiX,eAEAG,0BAAA,SAAA9S,EAAAnF,GACA,OAAAiH,KAAApG,MAAAkW,QACAlW,KAAAkW,QAAA9P,GAAA9B,SACAtE,KAAAkW,QAAA9P,GAAAiR,oBAAAlY,EAGAa,MAAAiX,eAEAK,oBAAA,SAAAhT,EAAAnF,GACA,OAAAiH,KAAApG,MAAAkW,QACAlW,KAAAkW,QAAA9P,GAAA9B,SACAtE,KAAAkW,QAAA9P,GAAAmR,cAAApY,EAGAa,MAAAiX,eAEAO,YAAA,SAAAlT,GACA,OAAA8B,KAAApG,MAAAkW,QACAlW,KAAAkW,QAAA9P,GAAA9B,QACAtE,KAAAkW,QAAAlD,OAAA5M,EAAA,EAGApG,MAAAiX,eAGA1M,SAAA,SAAAhE,GACA,GAAAiE,GAAA,UACAC,EAAA,OAAAlE,EACAmE,EAAAC,SAAAH,EAAAI,OAAA,OACAC,EAAAF,SAAAF,EACA,KAAAK,MAAAJ,KAAAI,MAAAD,GAAA,CACAH,GAAAG,CACA,IAAAE,GAAAL,EAAAM,SAAA,GAEA,IADAD,EAAA,OAAAxC,OAAA,EAAAwC,EAAA/M,QAAAiN,KAAA,GAAAF,EACA,kBAAAG,KAAAH,GACA,MAAAA,GAGA,MAAAP,IAGAmM,SAAA,cAAA9V,GAAAb,IACMd,GAAA,EACNxB,QAAA,uBAAAsC,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACA,OAAA2D,KAAAC,MAAAnD,OAAAC,aAAAwW,QAAA,YACA5W,EAAAqV,UAEA5R,GAAA,EACA6S,YAAA,GACAE,oBAAA,GACAE,cAAA,aAGAjT,GAAA,EACA6S,YAAA,GACAE,oBAAA,GACAE,cAAA,aAGAjT,GAAA,EACA6S,YAAA,GACAE,oBAAA,GACAE,cAAA,eAIA1W,EAAAqV,QAAAhS,KAAAC,MAAAnD,OAAAC,aAAAwW,QAAA,YACA5W,EAAA6V,SAAAxS,KAAAC,MAAAnD,OAAAC,aAAAwW,QAAA,cAEA5W,EAAA8E,UAAApF,EAAAzC,QAEAsD,MAAA,SAAAjD,GACA0C,EAAAR,YAAAlC,MAIAuZ,UAAA,SAAAC,EAAAC,GACA,cAAAD,EAAA/F,OAGA,cAAAgG,GAKAjS,UAAA,SAAAkS,GACA,GAAAtR,GAAAE,EAAAQ,EAAAP,EAAAoR,CACAA,KACA,QAAA7R,KAAA4R,GAAA,CAGA,GAFAnR,KAEA,QADAH,EAAAsR,EAAA5R,IAEA,OAAAc,KAAAR,GAGA,GAFAuR,KAEA,QADArR,EAAAF,EAAAQ,IACA,CACAE,EAAAjH,KAAA+X,YAAAtR,EACA,QAAAmR,KAAA3Q,GACA6Q,EAAAxW,KAAAsW,EAEAlR,GAAAK,IACAE,UACA6Q,qBAKA9X,KAAAmW,cAAAlQ,GAAAS,IAIAqR,YAAA,SAAAtR,GACA,GAAAa,GAAAqQ,EAAAK,EAAAC,CACAD,MACAC,IACA,QAAAjR,KAAAP,GACA,UAAAA,EAAAO,GAAA,CACAhH,KAAAyW,iBAAAzP,GAAAP,EAAAO,GAAAZ,MACAkB,EAAAb,EAAAO,EACA,QAAA4Q,KAAAtQ,GAAAL,QACA6D,MAAAxD,EAAAL,QAAA2Q,KACAD,EAAArQ,EAAAL,QAAA2Q,GACAD,EAAA,QAAA3X,KAAA0X,UAAApQ,EAAAL,QAAA2Q,OAEAD,GACA/F,MAAAtK,EAAAL,QAAA2Q,GACAM,KAAA,GACAC,QAAAnY,KAAA0X,UAAApQ,EAAAL,QAAA2Q,OAGAK,EAAA3X,eAAAsX,IACA,IAAAK,EAAAL,GAAAO,UACAF,EAAAL,GAAAD,GAGAM,EAAAL,GAAAD,EAKA,OAAAS,KAAAH,IACA,IAAAA,EAAAG,GAAAD,UACAH,EAAAI,GAAApY,KAAAqY,aAAA5R,EAAA2R,GAGA,OAAAJ,IAGAK,aAAA,SAAA5R,EAAAmR,GACA,GAAAU,GAAAC,EAAA3G,EAAAsG,EAAAM,EAAAC,CACAH,KACA,QAAA/Q,IAAAvH,KAAAqW,YAAA,GAAArW,KAAAoW,KAAA,IAAA7O,GAAA,EAAAA,GAAAvH,KAAAoW,KAAA,IACA7O,IAAAvH,KAAAsW,MAAA,GAAAtW,KAAAoW,KAAA,QACAkC,EAAAhX,KAAAiG,GAEA+Q,EAAAhX,KAAA,GAGAkX,KACA,QAAAxR,KAAAP,GACA,OAAAA,EAAAO,GAAAC,QAAA2Q,IAAA5X,KAAA0X,UAAAjR,EAAAO,GAAAC,QAAA2Q,QACAhG,EAAA9G,MAAArE,EAAAO,GAAAC,QAAA2Q,IAAAnR,EAAAO,GAAAC,QAAA2Q,GAAAhG,MAAAnL,EAAAO,GAAAC,QAAA2Q,GACAM,EAAApN,MAAArE,EAAAO,GAAAC,QAAA2Q,IAAAnR,EAAAO,GAAAC,QAAA2Q,GAAAM,KAAA,GACAK,EAAA9R,EAAAO,GAAAC,QAAA,UAAA2K,MACA4G,EAAAlX,KACAtB,KAAA0Y,cACA1R,EACA,MAAAP,EAAAO,GAAAZ,MACApG,KAAAuK,SAAA9D,EAAAO,GAAAZ,MAAA,GACAwL,IAcA,OATA6G,GAAAzC,EAAA9O,EAAAC,QAAAqR,EAAA,UAEAZ,aACA9Z,MACAwa,SACAE,SAAAC,GAEAE,QAAA3Y,KAAA4Y,cAAAL,EAAAX,EAAAM,KAKAQ,cAAA,SAAAvS,EAAA0S,EAAArO,EAAA1M,GAEA,OADAgb,MACAvR,EAAA,EAAAA,EAAAvH,KAAAqW,YAAA,EAAA9O,IACAuR,EAAAxX,KAAA,EAgBA,OAdA,QAAAxD,EACAgb,EAAAxX,KAAAxD,GAEAgb,EAAAxX,MAAA,IAGA6E,OACA0S,QACAE,MAAA,EACAC,YAAAxO,EACAyO,qBAAAzO,EACA0O,gBAAA,mBACApb,KAAAgb,IAKAF,cAAA,SAAAL,EAAAX,EAAAM,GACA,GAAAlS,IACAmT,YAAA,EACAC,qBAAA,EACAC,QACAC,SAAA,SACAC,SAAA,GAEAC,UACAC,KAAA,QACAC,SAAA,GACAC,SAAA,GACAC,YAAA,IAEAC,QACAC,QACAC,YACAR,SAAA,EACAS,YAAA,iBAGAC,QACA3V,GAAA,WACA6I,KAAA,SACAmM,SAAA,OACAS,YACAR,SAAA,EACAS,YAAA,OAkBA,OAbAhU,GAAA,uCAAAkS,EACA,aAAAN,GAAA,aAAAA,GAAA,cAAAA,IACA5R,EAAA,uBACAkU,aAAA,EACAC,IAAA,MAGA,aAAAvC,GAAA,aAAAA,IACA5R,EAAA,uBACAkU,aAAA,EACAE,aAAA7B,IAGAvS,GAGAgR,WAAA,WACA,GAAAzQ,GAAA8T,CACAA,GAAA1E,IAAA3V,KAAAmW,eAAAnY,MACA,QAAAiI,KAAAjG,MAAAmW,cACAkE,IACA9T,EAAAvG,KAAAmW,cAAAlQ,GACAjG,KAAAsa,WAAA/T,EAAAN,EAAAoU,IAIAC,WAAA,SAAA/T,EAAAN,EAAAoU,GAAA,GACA1C,GAAAlR,EAAAmL,EADApO,EAAAxD,KAEAlC,IACMoB,GAAA,EACNxB,QAAA,gBAAAuI,EAAA,eAAAjG,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAzC,EAAAyC,EAAAzC,IACA,QAAAiJ,KAAAR,GAAA,CACAE,EAAAF,EAAAQ,EACA,QAAA6Q,KAAAnR,GAAAQ,QAAA,CACA0Q,EAAAlR,EAAAQ,QAAA2Q,EACA,QAAArQ,GAAA,EAAAA,EAAAoQ,EAAA7Z,KAAA0a,SAAAxa,OAAAuJ,IACAqK,EAAA9G,MAAAhN,EAAA6Z,EAAA7Z,KAAA0a,SAAAjR,GAAApB,MAAAwR,EAAAC,aACA9Z,EAAA6Z,EAAA7Z,KAAA0a,SAAAjR,GAAApB,MAAAwR,EAAAC,YAAAhG,MACA9T,EAAA6Z,EAAA7Z,KAAA0a,SAAAjR,GAAApB,MAAAwR,EAAAC,YACAD,EAAA7Z,KAAA0a,SAAAjR,GAAAzJ,KAAAyc,QACA5C,EAAA7Z,KAAA0a,SAAAjR,GAAAzJ,KAAAwD,KAAAsQ,IAIAyI,IACA7W,EAAAgT,aAAAhT,EAAAgT,eAGApV,MAAA,SAAAjD,GACAqF,EAAAnD,YAAAlC,MAIAqc,SAAA,WACAxa,KAAAkW,QAAA5U,MACAgD,GAAAtE,KAAA0W,SACAS,YAAA,GACAE,oBAAA,GACAE,cAAA,KAEAvX,KAAA0W,WACA1W,KAAAiX,kBdq6EM,SAAU9Z,EAAQC,EAAqBC,GAE7C,YACqB,IAAIod,GAA+Cpd,EAAoB,KACnE0E,EAAqC1E,EAAoB,EenvFlFD,GAAA,GACAgC,YACAsb,UAAAD,EAAA,GAGApS,OACA8O,YAAAwD,OACAtD,oBAAAsD,OACApD,cAAAoD,OACAlE,iBAAAnO,OACA6N,cAAA7N,OACAkO,YAAAhO,QACA4N,KAAA5G,QAGA1R,KAfA,WAgBA,OACA8c,aAAA,GACAzV,SACA0V,qBAAA,GACAnU,iBACAoU,eAAA,GACA7T,WACA8T,eAAA,EACAC,WAAA,KACAC,cAAA,KACAC,eAAA,EACA3E,SAAA,KACA9X,UACAkT,KAAA,YAAAC,MAAA,UACAD,KAAA,QAAAC,MAAA,UACAD,KAAA,MAAAC,MAAA,QACAD,KAAA,UAAAC,MAAA,YAEAuJ,aACAvb,OAAA,EACAC,aAAA,KAIAO,SACAgb,gBAAA,SAAAC,GACArb,KAAAyJ,MAAA,oBAAA4R,IAEAC,wBAAA,SAAAD,GACArb,KAAAyJ,MAAA,4BAAA4R,IAEAE,kBAAA,SAAAF,GACArb,KAAAyJ,MAAA,sBAAA4R,IAEAG,SAAA,WACAxb,KAAAyJ,MAAA,gBAGAkN,SAAA,WACA,MAAA3W,MAAAmW,cAAAnW,KAAA4a,cAAA5a,KAAA6a,sBAAA5T,QAAAjH,KAAA8a,gBAAAhd,MAGA2d,YAAA,WACA,MAAAzb,MAAAmW,cAAAnW,KAAA4a,cAAA5a,KAAA6a,sBAAA5T,QAAAjH,KAAA8a,gBAAAnC,SAGA+C,UAAA,WACA1b,KAAAmF,QACA,IAAAA,GAAAnF,KAAAmW,aACA,QAAAlQ,KAAAd,GACAnF,KAAAmF,MAAA7D,KAAA2E,EAEA,MAAAjG,KAAAmX,YACAnX,KAAA4a,aAAA5a,KAAAmF,MAAA,GAEAnF,KAAA4a,aAAA5a,KAAAmX,YAEAnX,KAAA2b,qBAGAA,kBAAA,WACA3b,KAAA0G,gBACA,IAAAA,GAAA1G,KAAAmW,cAAAnW,KAAA4a,aACA,QAAA7T,KAAAL,GACA1G,KAAA0G,cAAApF,KAAAyF,EAEA,MAAA/G,KAAAqX,oBACArX,KAAA6a,qBAAA7a,KAAA0G,cAAA,GAEA1G,KAAA6a,qBAAA7a,KAAAqX,oBAEArX,KAAA4b,eAGAA,YAAA,WACA5b,KAAAiH,UACA,IAAAA,GAAAjH,KAAAmW,cAAAnW,KAAA4a,cAAA5a,KAAA6a,sBAAA/C,iBACA,QAAA+D,KAAA5U,GACAjH,KAAAiH,QAAA3F,KAAA2F,EAAA4U,GAGA,IADA7b,KAAAiH,QAAA3F,KAAA,aACA,KAAAtB,KAAAuX,cAAA,CACA,GAAAI,GAAA3X,KAAAiH,QAAA,EACA,KAAA4U,IAAA7b,MAAAiH,QAAA,CACA,GAAA2Q,GAAA5X,KAAAiH,QAAA4U,EACA,iBAAAjE,EAAA,CACAD,EAAAC,CACA,OACA,aAAAA,IACAD,EAAAC,GAGA5X,KAAA8a,eAAAnD,MAEA3X,MAAA8a,eAAA9a,KAAAuX,eAIAuE,eAAA,cACAhe,GAAAqd,EAAAY,EADAlb,EAAAb,IAEAmb,MACMpZ,EAAA,EACNrE,QAAA,gBAAAsC,KAAA4a,aAAA,iBAAA5a,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAzC,EAAAyC,EAAAzC,IACA,QAAAkJ,KAAAlJ,GACA,UAAAA,EAAAkJ,GACA,OAAAO,GAAA,EAAAA,EAAAzJ,EAAAkJ,GAAAhJ,OAAAuJ,IACAwU,EAAAje,EAAAkJ,GAAAO,GACAwU,EAAA,MAAAlb,EAAA4V,iBAAAzP,GACA+U,EAAA,KAAA/U,EACAmU,EAAA7Z,KAAAya,EAIAlb,GAAAsa,cAEA/Z,MAAA,SAAAjD,GACAA,EAAAmC,eAAA,YAGAnC,EAAAoC,SAAAzC,KAAAwC,eAAA,OAGAO,EAAAhB,aAAA1B,EAAAoC,SAAAzC,KAAA0C,IAFAK,EAAAhB,aAAA1B,EAAAoC,SAAAzC,KAHA+C,EAAAhB,aAAA1B,EAAAsC,QAQAI,EAAAjB,OAAA,MAKA6I,OACAmS,aADA,WAEA5a,KAAAob,gBAAApb,KAAA4a,cACA5a,KAAA2b,qBAEAd,qBALA,WAMA7a,KAAAsb,wBAAAtb,KAAA6a,sBACA7a,KAAA4b,eAEAd,eATA,WAWA,GADA9a,KAAAub,kBAAAvb,KAAA8a,gBACA,cAAA9a,KAAA8a,eAAA,CACA9a,KAAA8b,gBACA,IAAAjS,GAAA7J,IACAA,MAAAuW,SAAAK,YAAA,WACA,oBAAA/M,EAAAgN,OAAAC,UACAC,cAAAlN,EAAA0M,UAEA1M,EAAAiS,kBACA9b,KAAAoW,MACApW,KAAAkb,eAAA,MAEAlb,MAAAkb,eAAA,EACAlb,KAAAgb,WAAAhb,KAAA2W,WACA3W,KAAAib,cAAAjb,KAAAyb,cACAzb,KAAA+a,eAAA/a,KAAA+a,cACA,OAAA/a,KAAAuW,UACAQ,cAAA/W,KAAAuW,YAMA9T,QArLA,WAsLAzC,KAAA0b,efg0FM,SAAUve,EAAQC,EAAqBC,GAE7C,YACqB,IAAI2e,GAA4C3e,EAAoB,IgBjkGzFD,GAAA,GACA6e,QAAAD,EAAA,EACA3T,OACA6T,UAAA5T,OACAqQ,QAAArQ,OACAyS,cAAAvS,QACAgO,YAAAhO,SAGAC,OACAsS,cADA,WAEA/a,KAAAmc,MAAAC,OAAAC,UACArc,KAAAsc,YAAAtc,KAAAkc,UAAAlc,KAAA2Y,UAEAnC,YALA,WAMAxW,KAAAmc,MAAAC,OAAAtL,WAIArP,QAnBA,WAsBAzB,KAAAsc,YAAAtc,KAAAkc,UAAAlc,KAAA2Y,YhB2kGM,SAAUxb,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuH,GAAqCvH,EAAoB,GACzDsT,EAAuCtT,EAAoB,GAC3DuT,EAA+CvT,EAAoBG,EAAEmT,GACrE4L,EAA+Dlf,EAAoB,KACnFmf,EAA6Dnf,EAAoB,KACjFof,EAAiEpf,EAAoB,KACrFqf,EAA4Drf,EAAoB,IiB1yFzGD,GAAA,GACAgC,YACAud,WAAAJ,EAAA,EACAK,SAAAJ,EAAA,EACAK,aAAAJ,EAAA,EACAK,QAAAJ,EAAA,GAEA5e,KAPA,WAQA,OACAyT,YACAC,OAAA,QAEAzL,YACAtH,UACAkT,KAAA,KAAAC,MAAA,OACAD,KAAA,WAAAC,MAAA,aACAD,KAAA,UAAAC,MAAA,YACAD,KAAA,MAAAC,MAAA,QACAD,KAAA,SAAAC,MAAA,WACAD,KAAA,WAAAC,MAAA,YACAD,KAAA,eAAAC,MAAA,gBACAD,KAAA,UAAAC,MAAA,KAAAmL,UAAA,IAEAtL,SACAuL,aACAC,SACAC,iBAAA,EACAC,eAAA,EACAC,mBAAA,EACAC,qBAAA,EACAC,iBAAA,EACAC,cAAA,EACAC,QAAA,EACAC,YAAA,GACAC,WAAA,GACAC,aAAA,GACAC,iBAAA,GACA/L,SAAA,EACA0E,SAAA,KACAH,KAAA,IACAyH,iBAAA,EACAxY,UAAA,EACAyY,eAAA,EACAje,aAAA,GACA6R,cAAA,EACAI,YAAA,EACAiM,cAAA,EACAC,QACAC,KAAA,GACAC,WAAA,GACAC,WAAA,OAIA1V,OACAoV,gBADA,WAEA7d,KAAAmR,UAAA,KAIA1O,QA5DA,WA6DA,GAAAoH,GAAA7J,IACAA,MAAAuW,SAAAK,YAAA,WACA,oBAAA/M,EAAAgN,OAAAC,UACAC,cAAAlN,EAAA0M,UAEA1M,EAAAsH,UAAA,IACAnR,KAAAoW,OAGA3U,QAtEA,WAuEAzB,KAAAoe,WACApe,KAAAmR,UAAA,IAGA/Q,SACAC,YAAA,SAAAlC,GACAA,EAAAmC,eAAA,YAGAnC,EAAAoC,SAAAzC,KAAAwC,eAAA,OAGAN,KAAAqe,UAAAlgB,EAAAoC,SAAAzC,KAAA0C,KAFAR,KAAAqe,UAAAlgB,EAAAoC,SAAAzC,MAHAkC,KAAAqe,UAAAlgB,EAAAsC,UAUA4d,UAbA,SAaA5d,GACAT,KAAAH,aAAAY,EACAT,KAAA8d,eAAA,GAGA9L,WAlBA,SAkBAC,GACA,cAAAA,EACArB,IAAAqB,GAAArC,OAAA,wBAEA,MAIA0O,iBA1BA,SA0BAC,GACAve,KAAA8R,WAAAyM,GAEAC,eA7BA,SA6BAD,GACAve,KAAAqF,SAAAkZ,GAGAtL,UAjCA,WAkCAjT,KAAA+F,SAAA/H,OAAAgC,KAAA+F,YACA/F,KAAA+F,SAAA/F,KAAAyR,MAAAyB,SAGAC,WAtCA,SAsCAC,GACApT,KAAAuR,WAAAC,SAAA4B,EACApT,KAAAuR,WAAA8B,YAAArT,KAAAuR,WAAA8B,YAEArT,KAAAuR,WAAAC,OAAA4B,EACApT,KAAAuR,WAAA8B,YAAA,IAIA+K,SAAA,cAAAvd,GAAAb,IACM4E,GAAA,EACNlH,QAAA,yBAAAsC,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAM,EAAAmc,UAAAzc,EAAAzC,OAEM8G,EAAA,EACNlH,QAAA,uBAAAsC,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAM,EAAA4d,iBAAAle,EAAAzC,SAIA2gB,iBAAA,SAAAC,GACA,GAAAzB,KACA,QAAAxK,KAAAiM,GAAA,CACA,GAAAC,GAAAD,EAAAjM,GACA3M,GAAA,MACA,QAAAyM,KAAAoM,GAAAnM,IACA1M,EAAAxE,KAAA,MAAAqd,EAAAnM,IAAAD,GAAAnM,MAEA6W,GAAAxK,IAAA3M,aAEA9F,KAAAid,SAGA9L,SAAA,SAAAyN,GAAA,GAAApb,GAAAxD,IACAA,MAAA8R,aACA9R,KAAAqF,UAAA,EACArF,KAAA8R,YAAA,EACQlN,EAAA,EACRlH,QAAA,uBAAAsC,KAAAC,OAAAC,MAAAoE,GAAA,YAAAsa,EAAA5e,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAiD,EAAA6B,UAAA,EACA7B,EAAAsO,YAAA,EACAtO,EAAAiO,MAAAlR,EAAAzC,KAAA2T,MACAmN,IACApb,EAAAqa,iBAAAra,EAAAqa,mBAGAzc,MAAA,SAAAjD,GACAqF,EAAAnD,YAAAlC,GACAqF,EAAA6B,UAAA,EACA7B,EAAAsO,YAAA,MAKA+M,WAAA,SAAAva,GACAtE,KAAAke,WAAA,QACAle,KAAA8e,kBAAAxa,IAGAya,eAAA,SAAAza,EAAA6Z,GACAne,KAAAme,aACAne,KAAAke,WAAA,YACAle,KAAA8e,kBAAAxa,IAGAwa,kBAAA,SAAAxa,EAAA4Z,GACA,OAAA5Z,GACAtE,KAAA+d,cAAA,EACA/d,KAAAwd,OAAAlZ,GAEAtE,KAAA+d,cAAA,EAEA/d,KAAA8R,aACA9R,KAAA+d,aAIA/d,KAAA+F,SAAA/H,SACAgC,KAAA8R,YAAA,EACA9R,KAAAqF,UAAA,EACArF,KAAAgf,eANAhf,KAAA8R,YAAA,EACA9R,KAAAqF,UAAA,EACArF,KAAAgf,gBASAA,WAAA,cACA1a,GADAX,EAAA3D,IAGAsE,GADAtE,KAAA+d,aACA/d,KAAA+F,SAAA/F,KAAA0R,eAAApN,GAEAtE,KAAAwd,MAEA,IAAAyB,EACA,QAAAjf,KAAAke,YACA,YAAAe,EAAA,UAAA3a,EAAA,cACA,iBAAA2a,EAAA,UAAA3a,EAAA,yBAAAtE,KAAAme,WAEMvZ,EAAA,EACNlH,QAAA,MAAAuhB,EAAAjf,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAoD,EAAAub,YAAA5a,KAEAlD,MAAA,SAAAjD,GACAwF,EAAAtD,YAAAlC,GACAwF,EAAAub,YAAA5a,MAIA4a,YAAA,SAAA5a,EAAA4Z,GAAA,GAAAtS,GAAA5L,IACM4E,GAAA,EACNlH,QAAA,gBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAqL,EAAAiH,WAAAvO,EAAA/D,EAAAzC,KAAAgV,MACAlH,EAAAuT,eAEA/d,MAAA,SAAAjD,GACAyN,EAAAvL,YAAAlC,GACAyN,EAAAuT,gBAIAA,WAAA,WACA,GAAAnf,KAAA+d,aAEA,KADA/d,KAAA0R,cACA1R,KAAA+F,SAAA/H,OACA,OAAAgC,KAAAke,YACA,YACA,gBAAAle,KAAAgf,iBAGAhf,MAAA0R,cAAA,EACA1R,KAAAqF,UAAA,EACArF,KAAA8R,YAAA,MAGA9R,MAAAqF,UAAA,EACArF,KAAA8R,YAAA,GAIAK,cAAA,SAAAW,GACA,MAAAA,GACA9S,KAAA+d,cAAA,EACA/d,KAAAwd,OAAA1K,EAAAxO,GACAtE,KAAA2d,aAAA7K,EAAAsM,QACApf,KAAA4d,iBAAA9K,EAAAuM,aAEArf,KAAA+d,cAAA,EAEA/d,KAAA+d,aAEA/d,KAAA+F,SAAA/H,SACAgC,KAAAod,mBAAA,GAFApd,KAAAod,mBAAA,GAMAkC,SAAA,SAAAxM,GACA9S,KAAAwd,OAAA1K,EAAAxO,GACAtE,KAAAyd,YAAA3K,EAAAL,SACAzS,KAAA0d,WAAA5K,EAAAJ,QACA1S,KAAAmd,eAAA,GAGA7K,QAAA,SAAAhO,GAAA,GAAAqJ,GAAA3N,IACM4E,GAAA,EACNlH,QAAA,gBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAoN,EAAAkF,WAAAvO,EAAA/D,EAAAzC,KAAAgV,MACAnF,EAAAtI,UAAA,EACAsI,EAAAmE,YAAA,IAEA1Q,MAAA,SAAAjD,GACAwP,EAAAtN,YAAAlC,GACAwP,EAAAtI,UAAA,EACAsI,EAAAmE,YAAA,KAIAe,WAAA,SAAAvO,EAAAyO,GACA,OAAA3M,KAAApG,MAAAyR,MACAzR,KAAAyR,MAAArL,GAAA9B,SACA,OAAAyO,EACA/S,KAAAyR,MAAArL,GAAA2M,EAEA/S,KAAAyR,MAAAuB,OAAA5M,EAAA,GAIApG,MAAA6R,YAGA0N,uBAxOA,SAwOAjb,GACAtE,KAAAwd,OAAAlZ,EACAtE,KAAAsd,iBAAA,GAGAkC,WAAA,cAAAC,GAAAzf,KACAsE,EAAAtE,KAAAwd,MACAxd,MAAA8R,aACA9R,KAAAqF,UAAA,EACArF,KAAA8R,YAAA,EACQlN,EAAA,EACRlH,QAAA,mBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAkf,EAAAnC,iBAAA,EACAmC,EAAApa,UAAA,EACAoa,EAAA3N,YAAA,EACA2N,EAAA5M,WAAAvO,EAAA,QAEAlD,MAAA,SAAAjD,GACAshB,EAAApf,YAAAlC,GACAshB,EAAApa,UAAA,EACAoa,EAAA3N,YAAA,MAKA4N,OAAA,SAAApb,GAAA,GAAAqb,GAAA3f,IACAA,MAAA8R,aACA9R,KAAAqF,UAAA,EACArF,KAAA8R,YAAA,EACQlN,EAAA,EACRlH,QAAA,gBAAA4G,EAAA,OAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAof,EAAA3B,KAAAzd,EAAAzC,KAAA8hB,aACAD,EAAA1B,KAAA1d,EAAAzC,KAAAmgB,KACA0B,EAAApC,cAAA,EACAoC,EAAAta,UAAA,EACAsa,EAAA7N,YAAA,IAEA1Q,MAAA,SAAAjD,GACAwhB,EAAAtf,YAAAlC,GACAwhB,EAAAta,UAAA,EACAsa,EAAA7N,YAAA,SjBwmGM,SAAU3U,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuH,GAAqCvH,EAAoB,GACzDwiB,EAA8CxiB,EAAoB,IkBnrH3FD,GAAA,GACAgC,YACA0gB,SAAAD,EAAA,GAGAxX,OACA3F,UAAA8F,QACAwU,UAAAzU,MACA0U,MAAA3U,OACAwJ,WAAAtJ,SAGA1K,KAZA,WAaA,OACAiiB,aAAA,GACAC,SAAA,EACAC,QAEA3b,GAAA,EACAqa,KAAA,GACArX,SAAA,GACAoL,QAAA,GACAwN,cAEAC,aAAA,MAMA/f,SACAoQ,MAAA,WACAxQ,KAAAyJ,MAAA,UAGA2W,SAAA,cAAAvf,GAAAb,IACA,QAAAqgB,KAAArgB,MAAAigB,MAAA,CACA,GAAAK,GAAAtgB,KAAAigB,MAAAI,GACA3N,EAAA1S,KAAAugB,gBAAAD,EAAAhZ,UAAA,IAAAgZ,EAAA5N,OACA,QAAA8N,KAAAF,GAAAJ,WAAA,CACA,GAAAO,GAAAH,EAAAJ,WAAAM,EACA9N,IAAA,IAAA+N,YAAA,IAAAA,EAAA7O,MAEA,GAAAkB,IACAzI,OAAArK,KAAAC,OAAAC,MAAAoE,GACAmO,SAAA6N,EAAA3B,KACAjM,UAEA1S,MAAA8R,YACUlN,EAAA,EACVlH,QAAA,gBAAAsC,KAAAC,OAAAC,MAAAY,YAAAgS,GACA/R,KAAA,SAAAR,GACAM,EAAA2P,QACA3P,EAAA4I,MAAA,mBAMAiX,aAAA,WACA,OAAAJ,KAAAtgB,MAAAigB,MAAA,CACA,GAAAQ,IACAnc,GAAAtE,KAAAigB,MAAAK,GAAAH,aACAM,UAAAzgB,KAAA+f,aACAnO,MAAA,GAEA5R,MAAAigB,MAAAK,GAAAH,eACAngB,KAAAigB,MAAAK,GAAAJ,WAAA5e,KAAAmf,KAIAE,SAAA,WACA,OAAA3gB,KAAAigB,MAAAjiB,OACAgC,KAAA4gB,cACA,CACA,GAAAC,GAAA7gB,KAAAigB,MAAAjgB,KAAAigB,MAAAjiB,OAAA,GACA8iB,EAAAD,EAAAX,WACAa,IACA,QAAA3a,KAAA0a,GAAA,CACA,GAAAE,GAAAF,EAAA1a,GACA2Z,GACAzb,GAAA8B,EACAqa,UAAAO,EAAAP,UACA7O,MAAAoP,EAAApP,MAEAmP,GAAAzf,KAAAye,GAEA,GAAAO,IACAhc,GAAAtE,KAAAggB,SACArB,KAAAkC,EAAAlC,KACArX,SAAAuZ,EAAAvZ,SACAoL,QAAAmO,EAAAnO,QACAwN,WAAAa,EAEA/gB,MAAAggB,WACAhgB,KAAAigB,MAAA3e,KAAAgf,KAIAM,QAAA,WACA,GAAAN,IACAhc,GAAAtE,KAAAggB,SACArB,KAAA,GACArX,SAAA,GACAoL,QAAA,GACAwN,cAGAlgB,MAAAggB,WACAhgB,KAAAigB,MAAA3e,KAAAgf,IAGAW,WAAA,SAAA3c,EAAAqa,EAAArX,EAAAoL,EAAAwN,GACA,OAAA9Z,KAAApG,MAAAigB,MACAjgB,KAAAigB,MAAA7Z,GAAA9B,SACAtE,KAAAigB,MAAA7Z,GAAAuY,OACA3e,KAAAigB,MAAA7Z,GAAAkB,WACAtH,KAAAigB,MAAA7Z,GAAAsM,UACA1S,KAAAigB,MAAA7Z,GAAA8Z,eAKAgB,WAAA,SAAA5c,GACA,OAAA8B,KAAApG,MAAAigB,MACAjgB,KAAAigB,MAAA7Z,GAAA9B,QACAtE,KAAAigB,MAAAjN,OAAA5M,EAAA,IAKAma,gBAAA,SAAAjZ,GACA,WAAAA,GAAA,OAAAA,EACA,QAAAA,EACA,wBAEA,wBAAAA,EAAA,GAGA,OlBkxHM,SAAUnK,EAAQC,EAAqBC,GAE7C,YACqB,IAAI8jB,GAAuD9jB,EAAoB,ImBl8HpGD,GAAA,GACAgC,YACAgiB,kBAAAD,EAAA,GAGA9Y,OACA2U,UAAAzU,MACA0U,MAAA3U,OACAqW,KAAAhE,OACArT,SAAAqT,OACAjI,QAAAiI,OACAuF,WAAA3X,OAGAzK,KAdA,WAeA,OACAujB,QAAA,GACAC,YAAA,GACA5D,WAAA,GACAqD,gBAEAzc,GAAA,EACAmc,UAAA,GACA7O,MAAA,KAGAlP,WAAA,IAIAD,QA9BA,WA+BAzC,KAAAqhB,QAAArhB,KAAA2e,KACA3e,KAAAshB,YAAAthB,KAAAsH,SACAtH,KAAA0d,WAAA1d,KAAA0S,QACA1S,KAAA+gB,cAAA/gB,KAAAkgB,WACAlgB,KAAAmgB,aAAAngB,KAAAkgB,WAAAliB,QAGA8B,UACAyhB,cADA,WAEA,WAAAvhB,KAAAqhB,QACArhB,KAAAid,MAAAjd,KAAAqhB,SAAAvb,cAKA0b,YARA,WASA,GAAAtB,GAAA,EACA,QAAA9Z,KAAApG,MAAAkgB,WACAA,GAAAlgB,KAAAkgB,WAAA9Z,GAAAqa,UAAAzgB,KAAAkgB,WAAA9Z,GAAAwL,MAAA,GAEA,OAAA5R,MAAA2e,KAAA,IAAA3e,KAAAugB,gBAAAvgB,KAAAsH,UAAA,IAAAtH,KAAA0S,QAAA,IAAAwN,IAIAzX,OACA4Y,QADA,WAEArhB,KAAAshB,YAAAthB,KAAAid,MAAAjd,KAAAqhB,SAAAvb,UAAA,GACA9F,KAAAyhB,cAEAH,YALA,WAMAthB,KAAAyhB,cAEA/D,WARA,WASA1d,KAAAyhB,cAEAV,cAXA,WAYA/gB,KAAAyhB,eAIArhB,SACAmgB,gBADA,SACAjZ,GACA,WAAAA,GAAA,OAAAA,EACA,QAAAA,EACA,wBAEA,wBAAAA,EAAA,GAGA,IAIAoa,gBAAA,SAAApd,EAAAmc,EAAA7O,GACA,OAAAxL,KAAApG,MAAAkgB,WACAlgB,KAAAkgB,WAAA9Z,GAAA9B,SACAtE,KAAAkgB,WAAA9Z,GAAAqa,YACAzgB,KAAAkgB,WAAA9Z,GAAAwL,UAKA+P,gBAAA,SAAArd,GACA,OAAA8B,KAAApG,MAAAkgB,WACAlgB,KAAAkgB,WAAA9Z,GAAA9B,QACAtE,KAAAkgB,WAAAlN,OAAA5M,EAAA,IAKAqb,WAAA,WACAzhB,KAAAyJ,MAAA,aAAAzJ,KAAAqhB,QAAArhB,KAAAshB,YAAAthB,KAAA0d,WAAA1d,KAAA+gB,gBAGAvF,SAAA,WACAxb,KAAAyJ,MAAA,kBnBggIM,SAAUtM,EAAQC,EAAqBC,GAE7C,YoB5oIAD,GAAA,GACAiL,OACAoY,UAAA9F,OACA/I,MAAA+I,QAGA7c,KANA,WAOA,OACAiiB,aAAA,GACA6B,SAAA,KAIAnf,QAbA,WAcAzC,KAAA+f,aAAA/f,KAAAygB,UACAzgB,KAAA4hB,SAAA5hB,KAAA4R,OAGAnJ,OACAsX,aADA,WAEA/f,KAAAyJ,MAAA,kBAAAzJ,KAAA+f,aAAA/f,KAAA4hB,WAEAA,SAJA,WAKA5hB,KAAAyJ,MAAA,kBAAAzJ,KAAA+f,aAAA/f,KAAA4hB,YAIAxhB,SACAob,SAAA,WACAxb,KAAAyJ,MAAA,uBpB2qIM,SAAUtM,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuH,GAAqCvH,EAAoB,EqB9qIlFD,GAAA,GACAiL,OACA3F,UAAA8F,QACAgV,OAAAhO,OACAiD,SAAAkI,OACAjI,QAAAiI,OACA7I,WAAAtJ,SAGA1K,KATA,WAUA,OACAujB,QAAA,GACA3D,WAAA,KAIAjV,OACAgK,SADA,WAEAzS,KAAAqhB,QAAArhB,KAAAyS,UAEAC,QAJA,WAKA1S,KAAA0d,WAAA1d,KAAA0S,UAIAtS,SACAyhB,WAAA,cAAAhhB,GAAAb,KACAoS,GACAK,SAAAzS,KAAAqhB,QACA3O,QAAA1S,KAAA0d,WAEA1d,MAAA8R,aACA9R,KAAAyJ,MAAA,uBACAzJ,KAAAyJ,MAAA,qBACQ7E,EAAA,EACRlH,QAAA,gBAAAsC,KAAAwd,OAAAxd,KAAAC,OAAAC,MAAAY,YAAAsR,GACArR,KAAA,SAAAR,GACAM,EAAA2P,QACA3P,EAAA4I,MAAA,UAAA5I,EAAA2c,QAAA,OAKAhN,MAAA,WACAxQ,KAAAyJ,MAAA,arB2uIM,SAAUtM,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuH,GAAqCvH,EAAoB,GACzDsT,EAAuCtT,EAAoB,GAC3DuT,EAA+CvT,EAAoBG,EAAEmT,EsBvrI9FvT,GAAA,GACAiL,OACA3F,UAAA8F,QACAgV,OAAAhO,OACAsS,UAAAnH,OACAoH,cAAApH,OACA7I,WAAAtJ,QACAuV,aAAAvV,QACAzC,SAAAwC,OAGAzK,KAXA,WAYA,OACAkkB,eAAA,EACAC,eAAA,EACAC,mBAAA,EACAC,mBAAA,EACAC,OAAA,EACAC,WAAA,EACAC,aAAA,GACA3E,aAAA,GACA4E,iBAAA,GACA3E,iBAAA,GACAlM,cAAA,IAIAjJ,OACAqZ,UADA,WAEA,OAAA9hB,KAAA8hB,WACA9hB,KAAAsiB,aAAA1R,IAAA5Q,KAAA8hB,WAAAlS,OAAA,cACA5P,KAAA2d,aAAA/M,IAAA5Q,KAAA8hB,WAAAlS,OAAA,WAEA5P,KAAAsiB,aAAA,GACAtiB,KAAA2d,aAAA,KAGAoE,cAVA,WAWA,OAAA/hB,KAAA+hB,eACA/hB,KAAAuiB,iBAAA3R,IAAA5Q,KAAA+hB,eAAAnS,OAAA,cACA5P,KAAA4d,iBAAAhN,IAAA5Q,KAAA+hB,eAAAnS,OAAA,WAEA5P,KAAAuiB,iBAAA,GACAviB,KAAA4d,iBAAA,MAKAxd,SACAoiB,WAAA,WACAxiB,KAAAyiB,MAAA5O,KAAA6O,KAAA1iB,KAAA2d,eAGAzL,gBAAA,YACA,IAAAlS,KAAA8R,aACA9R,KAAAyJ,MAAA,uBACAzJ,KAAAyJ,MAAA,qBACAzJ,KAAAmS,kBAIAA,cAAA,cAAAtR,GAAAb,KACAoS,IACA,MAAApS,KAAA2d,cAAA,OAAA3d,KAAA2d,kBAAA1f,KAAA+B,KAAA2d,eACAvL,EAAA,QAAAxB,IAAA5Q,KAAAsiB,aAAA,IAAAtiB,KAAA2d,cAAA7T,eAEA,KAAA9J,KAAA4d,kBAAA,OAAA5d,KAAA4d,sBAAA3f,KAAA+B,KAAA4d,mBACAxL,EAAA,YAAAxB,IAAA5Q,KAAAuiB,iBAAA,IAAAviB,KAAA4d,kBAAA9T,eAEA9J,KAAAoiB,QACAhQ,EAAA,cAEApS,KAAAqiB,YACAjQ,EAAA,iBAEA,IAAA9N,EAEAA,GADAtE,KAAA+d,aACA/d,KAAA+F,SAAA/F,KAAA0R,eAAApN,GAEAtE,KAAAwd,OAEM5Y,EAAA,EACNlH,QAAA,gBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,YAAAsR,GACArR,KAAA,SAAAR,GACAM,EAAA2P,QACA3P,EAAAyR,QAAAhO,KAEAlD,MAAA,SAAAjD,GACA0C,EAAA4I,MAAA,cAAAtL,GACA0C,EAAA2P,QACA3P,EAAAyR,QAAAhO,MAIAgO,QAAA,SAAAhO,GAAA,GAAAd,GAAAxD,IACM4E,GAAA,EACNlH,QAAA,gBAAA4G,EAAAtE,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAiD,EAAAiG,MAAA,aAAAnF,EAAA/D,EAAAzC,KAAAgV,MACAtP,EAAAua,cACAva,EAAAkO,gBACAlO,EAAAkO,cAAAlO,EAAAuC,SAAA/H,OACAwF,EAAA2O,iBAEA3O,EAAAkO,cAAA,EACAlO,EAAAiG,MAAA,uBACAjG,EAAAiG,MAAA,wBAGAjG,EAAAiG,MAAA,uBACAjG,EAAAiG,MAAA,wBAGArI,MAAA,SAAAjD,GACAqF,EAAAiG,MAAA,cAAAtL,GACAqF,EAAAua,cACAva,EAAAkO,gBACAlO,EAAAkO,cAAAlO,EAAAuC,SAAA/H,OACAwF,EAAA2O,iBAEA3O,EAAAkO,cAAA,EACAlO,EAAAiG,MAAA,uBACAjG,EAAAiG,MAAA,wBAGAjG,EAAAiG,MAAA,uBACAjG,EAAAiG,MAAA,yBAKA+G,MAAA,WACAxQ,KAAAyJ,MAAA,atBu1IM,SAAUtM,EAAQC,EAAqBC,GAE7C,YuBllJAD,GAAA,GACAiL,OACA3F,UAAA8F,QACAyX,MAAA1X,MACA0V,KAAAtD,QAGAva,SACAoQ,MAAA,WACAxQ,KAAAyJ,MAAA,avB8nJM,SAAUtM,EAAQC,EAAqBC,GAE7C,YACqB,IAAIuH,GAAqCvH,EAAoB,GACzDsT,EAAuCtT,EAAoB,GAC3DuT,EAA+CvT,EAAoBG,EAAEmT,EwB36I9FvT,GAAA,GACAU,KADA,WAEA,OACA6kB,QAAA,EACAC,OAAA,GACArR,cACAxL,YACAtH,UACAkT,KAAA,UAAAC,MAAA,OACAD,KAAA,WAAAC,MAAA,aACAD,KAAA,QAAAC,MAAA,UACAD,KAAA,aAAAC,MAAA,cACAD,KAAA,OAAAC,MAAA,SACAD,KAAA,UAAAC,MAAA,OAEAiR,SACA1iB,MACAmE,IAAA,EACApC,SAAA,GACAuB,MAAA,GACAtB,SAAA,GACA2gB,UAAA,GACApe,UAEAqe,eACA3M,KAAA,IACAxW,OAAA,EACAC,aAAA,GACAmjB,cAAA,EACAC,eAAA,EACA7gB,cAAA,GACAC,WAAA,GACAC,cAAA,GACAC,eAAA,GACAC,YAAA,EACA8a,iBAAA,EACAjT,QAAA,EACA5H,SAAA,EACAC,WAAA,IAIA5C,UACAojB,MADA,WAEA,aAAAljB,KAAAuR,WAAA4R,aACA,MAAAnjB,KAAAuR,WAAA6R,WACA,EAEA1U,KAAA2U,KAAArjB,KAAAuR,WAAA6R,WAAApjB,KAAAuR,WAAA4R,eAIA1hB,QApDA,WAqDAzB,KAAAsjB,cAGAljB,SACA4R,WADA,SACAC,GACA,cAAAA,EACArB,IAAAqB,GAAArC,OAAA,wBAEA,MAIAvP,YAAA,SAAAlC,GACAA,EAAAmC,eAAA,YAGAnC,EAAAoC,SAAAzC,KAAAwC,eAAA,OAGAN,KAAAH,aAAA1B,EAAAoC,SAAAzC,KAAA0C,IAFAR,KAAAH,aAAA1B,EAAAoC,SAAAzC,KAHAkC,KAAAH,aAAA1B,EAAAsC,SAUA8C,WArBA,WAqBA,GAAA1C,GAAAb,IACA,IAAAA,KAAAsC,gBAAAtC,KAAAuC,eAAA,IACAH,GAAApC,KAAAoC,cAAAC,EAAArC,KAAAqC,WAAAC,EAAAtC,KAAAsC,aACQsC,GAAA,EACRlH,QAAA,sBAAAsC,KAAAC,OAAAC,MAAAY,aAAAoB,SAAAE,EAAAqB,MAAApB,EAAAF,SAAAG,IACAvB,KAAA,SAAAR,GACAM,EAAA6B,WAAA,EACA7B,EAAA4B,SAAA,EACA5B,EAAAyiB,eAEAliB,MAAA,SAAAjD,GACA0C,EAAAR,YAAAlC,GACA0C,EAAA2B,YAAA,QAGAxC,MAAAH,aAAA,yBACAG,KAAAwC,YAAA,GAIA+gB,SAAA,SAAAR,GACA/iB,KAAA2iB,QAAA,EACA3iB,KAAAG,KAAAmE,GAAAye,EAAAze,GACAtE,KAAAG,KAAA+B,SAAA6gB,EAAA7gB,SACAlC,KAAAG,KAAAsD,MAAAsf,EAAAtf,KACA,IAAA+f,IAAA,CACA,QAAAhf,KAAAue,GAAAre,MACA,UAAAqe,EAAAre,MAAAF,KACAgf,GAAA,EAGAxjB,MAAAijB,cAAAO,EACAxjB,KAAA+iB,eAGAU,WAAA,cAAAjgB,GAAAxD,IACA,IAAAA,KAAAG,KAAAgC,WAAAnC,KAAAG,KAAA2iB,UAAA,CACA9iB,KAAAijB,eACAjjB,KAAAG,KAAAuE,MAAApD,KAAA,SAEAtB,KAAAG,KAAAuE,MAAApD,KAAA,OACA,IAAAoiB,IACApf,GAAAtE,KAAAG,KAAAmE,GAEAtE,MAAAG,KAAA+B,WAAAlC,KAAA+iB,YAAA7gB,UAAA,KAAAlC,KAAAG,KAAA+B,WACAwhB,EAAA,SAAA1jB,KAAAG,KAAA+B,UAEAlC,KAAAG,KAAAsD,QAAAzD,KAAA+iB,YAAAtf,OAAA,KAAAzD,KAAAG,KAAAsD,QACAigB,EAAA,MAAA1jB,KAAAG,KAAAsD,OAEA,KAAAzD,KAAAG,KAAAgC,WACAuhB,EAAA,SAAA1jB,KAAAG,KAAAgC,UAEAnC,KAAAG,KAAAuE,MAAA1G,SAAAgC,KAAA+iB,YAAAre,MAAA1G,SACA0lB,EAAA,MAAA1jB,KAAAG,KAAAuE,OAEQE,EAAA,EACRlH,QAAA,cAAAsC,KAAAC,OAAAC,MAAAY,YAAA4iB,GACA3iB,KAAA,SAAAR,GACAiD,EAAArD,MACAmE,IAAA,EACApC,SAAA,GACAuB,MAAA,GACAtB,SAAA,GACA2gB,UAAA,GACApe,UAEAlB,EAAAyf,eAAA,EACAzf,EAAAwf,cAAA,EACAxf,EAAAmf,QAAA,EACAnf,EAAA8f,eAEAliB,MAAA,SAAAjD,GACAqF,EAAA+N,cACA/N,EAAAnD,YAAAlC,GACAqF,EAAA5D,OAAA,QAGAI,MAAAH,aAAA,yBACAG,KAAAJ,OAAA,GAGA0jB,WAAA,cAAA3f,GAAA3D,IACM4E,GAAA,EACNlH,QAAA,eAAAsC,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAoD,EAAAkf,MAAAtiB,EAAAzC,IACA,QAAAqC,KAAAwD,GAAAkf,MAAA,CACA,GAAAW,IAAA,CACA,QAAAhf,KAAAb,GAAAkf,MAAA1iB,GAAAuE,MACA,UAAAf,EAAAkf,MAAA1iB,GAAAuE,MAAAF,KACAgf,GAAA,EAIA7f,GAAAkf,MAAA1iB,GAAA,KADAqjB,EACA,QAEA,OAGA7f,EAAA4N,WAAA,WAAA5N,EAAAkf,MAAA7kB,OACA2F,EAAA4N,WAAA,iBAEAnQ,MAAA,SAAAjD,GACAwF,EAAA4N,cACA5N,EAAAtD,YAAAlC,GACAwF,EAAA/D,OAAA,KAIA2f,uBAnIA,SAmIAjb,GACAtE,KAAAqK,OAAA/F,EACAtE,KAAAsd,iBAAA,GAGAqG,WAAA,cAAA/X,GAAA5L,KACAqK,EAAArK,KAAAqK,MACMzF,GAAA,EACNlH,QAAA,yBAAA2M,EAAArK,KAAAC,OAAAC,MAAAY,aACAC,KAAA,SAAAR,GACAqL,EAAA0R,iBAAA,EACA1R,EAAA0X,eAEAliB,MAAA,SAAAjD,GACAyN,EAAAvL,YAAAlC,GACAyN,EAAAhM,OAAA,QxBorJM,SAAUzC,EAAQC,EAAqBC,GAE7C,YyB5nKAD,GAAA,GACA+B,KAAA,MAEArB,KAHA,WAIA,OACAmE,QAAA,WzB6oKM,SAAU9E,EAAQC,EAAqBC,GAE7C,YACAiL,QAAOsb,eAAexmB,EAAqB,cAAgBwU,OAAO,GAC7C,IAAIiS,GAA8DxmB,EAAoB,KAClFymB,EAAsEzmB,EAAoBG,EAAEqmB,GAC5FjO,EAAqEvY,EAAoB,IACzFwY,EAA6ExY,EAAoBG,EAAEoY,GACnGmO,EAAiD1mB,EAAoB,KAErE2mB,GADyD3mB,EAAoBG,EAAEumB,GAC3C1mB,EAAoB,KACxD4mB,EAA2C5mB,EAAoB,KAC/D6mB,EAAiD7mB,EAAoB,KAErE8mB,GADyD9mB,EAAoBG,EAAE0mB,GACvC7mB,EAAoB,MAC5D+mB,EAAuC/mB,EAAoB,KAC3DgnB,EAAqChnB,EAAoB,GACzDinB,EAAyCjnB,EAAoB,KAC7DknB,EAAqDlnB,EAAoB,KACzEmnB,EAAyCnnB,EAAoB,KAC7DonB,EAAiDpnB,EAAoBG,EAAEgnB,GACvEE,EAA8DrnB,EAAoB,KAElFsnB,GADsEtnB,EAAoBG,EAAEknB,GACGrnB,EAAoB,MAEnHunB,GADuGvnB,EAAoBG,EAAEmnB,GACtFtnB,EAAoB,KAC3DwnB,EAA+CxnB,EAAoBG,EAAEonB,GACrEE,EAAyCznB,EAAoB,G0B9pKtFkB,KAAMwmB,IAAI,sBAAsBhkB,KAAK,SAAAR,GAuHnC,QAASF,GAAalC,GACfA,EAAMmC,eAAe,YAGnBnC,EAAMoC,SAASzC,KAAKwC,eAAe,OAGtCpC,QAAQ8mB,IAAI7mB,EAAMoC,SAASzC,KAAK0C,KAFhCtC,QAAQ8mB,IAAI7mB,EAAMoC,SAASzC,MAH7BI,QAAQ8mB,IAAI7mB,EAAMsC,SAUtB,QAASG,KAAU,GAAAC,GAAAb,IACe,QAA5BilB,IAAM/kB,MAAMY,aACdokB,IACGxnB,QAAQ,SAAU,eAAgBunB,IAAM/kB,MAAMY,aAC9CC,KAAK,SAAAR,GACJ0kB,IAAMtkB,OAAO,mBAAoB,MAC7BK,OAAOC,cACTD,OAAOC,aAAaC,QAAQ,cAAe,MAEZ,OAA7B+jB,IAAM/kB,MAAMiB,cACd+jB,IACGxnB,QAAQ,SAAU,6BAA8BunB,IAAM/kB,MAAMiB,cAC5DJ,KAAK,SAAAR,GACJ0kB,IAAMtkB,OAAO,oBAAqB,MAC9BK,OAAOC,cACTD,OAAOC,aAAaC,QAAQ,eAAgB,QAG/CE,MAAM,SAAAjD,GACLkC,EAAYlC,OAInBiD,MAAM,SAAAjD,GACL0C,EAAKR,YAAYlC,KAGvB8mB,IAAMtkB,OAAO,WAAY,MACzBskB,IAAMtkB,OAAO,WAAY,MAErBK,OAAOC,eACTD,OAAOC,aAAaC,QAAQ,OAAQ,MACpCF,OAAOC,aAAaC,QAAQ,OAAQ,MACpCF,OAAOC,aAAaC,QAAQ,UAAW,MACvCF,OAAOC,aAAaC,QAAQ,WAAY,OAE1Cc,EAAOV,KAAK,UAnKd,GAHAjD,IAAOC,UAAYiC,EAASzC,KAAKqnB,QACjC9mB,IAAOM,WAAa4B,EAASzC,KAAKa,WAClCN,IAAOO,QAAU2B,EAASzC,KAAKc,QAC3BoC,OAAOC,aAAc,CACvB,GAAItC,GAAauF,KAAKC,MAAMnD,OAAOC,aAAawW,QAAQ,eACpD7Y,EAAUsF,KAAKC,MAAMnD,OAAOC,aAAawW,QAAQ,WAClC,QAAf9Y,MACwBV,KAAtBI,IAAOM,WACTqC,OAAOC,aAAaC,QAAQ,aAAc2U,IAAexX,IAAOM,aAEhEqC,OAAOC,aAAaC,QAAQ,aAAc2U,IAAe,2BAElDlX,IAAeN,IAAOM,aAC/BqC,OAAOC,aAAamkB,QACpBC,SAASC,QAAO,IAEF,OAAZ1mB,MACqBX,KAAnBI,IAAOO,QACToC,OAAOC,aAAaC,QAAQ,UAAW2U,IAAexX,IAAOM,aAE7DqC,OAAOC,aAAaC,QAAQ,UAAW2U,IAAe,2BAE/CjX,IAAYP,IAAOO,UAC5BoC,OAAOC,aAAamkB,QACpBC,SAASC,QAAO,IAIpBC,UAAIC,IAAIC,KAGRF,UAAIG,OAAO,QAASC,KACpBJ,UAAIG,OAAO,SAAUE,KACrBL,UAAIG,OAAO,aAAc1T,KACzBuT,UAAIG,OAAO,YAAaG,KAExBN,UAAIC,IAAIM,IAGR,IAAI9jB,GAAS,GAAI8jB,MACfC,OAAQA,IACRtM,KAAM,UACNuM,qBAAsB,SACtBC,eAAgB,SAAUC,EAAIC,EAAMC,GAClC,MAAOA,KAAmBC,EAAG,EAAGC,EAAG,KA8DvC,IAzDAtkB,EAAOukB,WAAW,SAACL,EAAIC,EAAMK,IAEzBN,EAAGO,QAAQC,KAAK,SAAAC,GAAA,MAAUA,GAAOC,KAAKC,gBACpC7kB,EAAO8kB,IAAI7mB,OAAOC,MAAMY,aAAuD,SAAxCkB,EAAO8kB,IAAI7mB,OAAOC,MAAMY,YASvC,UAAjBolB,EAAGU,KAAKpiB,KACoB,UAAjCxC,EAAO8kB,IAAI7mB,OAAOC,MAAMsE,KAC1BgiB,IAEAA,GACEvI,KAAM,IACN8I,OAASC,SAAUd,EAAGpP,YAI1B0P,KAfAxlB,OAAO9C,QAAQ8mB,IAAI,qBACnBwB,GACEvI,KAAM,SACN8I,OAASC,SAAUd,EAAGpP,eAgB5B8H,eAAKqG,IAAOjjB,GAEZzD,IAAM0oB,aAAa1mB,SAASilB,IAAI,KAAM,SAACrnB,GACrC,GAAIA,EAAME,OAAOD,MAAQC,IAAOC,UAAY,gBAC1C0C,OAAOC,aAAamkB,QACpBH,IAAMtkB,OAAO,WAAY,MACzBskB,IAAMtkB,OAAO,WAAY,MACzBskB,IAAMtkB,OAAO,mBAAoB,MACjCskB,IAAMtkB,OAAO,oBAAqB,MAClCqB,EAAOV,KAAK,cAEZ,IAAInD,EAAME,QAAUF,EAAMoC,UAAsC,MAA1BpC,EAAMoC,SAAS2mB,QAAkB/oB,EAAME,OAAOD,MAAQC,IAAOC,UAAY,cAE7G,MADAC,KAAMC,SAASC,QAAQC,OAAvB,cAAiDumB,IAAM/kB,MAAMiB,aACtD5C,KAAQZ,OAAQ,MAAOS,IAAKC,IAAOC,UAAY,gBAAiBR,KAAM,OAC1EiD,KAAK,SAAAR,GAMJ,MALA0kB,KAAMtkB,OAAO,mBAAoB,UAAYJ,EAASzC,KAAKiG,cACvD/C,OAAOC,cACTD,OAAOC,aAAaC,QAAQ,cAAe,UAAYX,EAASzC,KAAKiG,cAEvE5F,EAAME,OAAOI,QAAb,cAAwC,UAAY8B,EAASzC,KAAKiG,aAC3DxF,IAAMb,QAAQS,EAAME,UAE5B+C,MAAM,SAAAjD,GACLkC,EAAYlC,GACZyC,KAIR,OAAOkjB,GAAA5c,EAAQigB,OAAOhpB,KAGpB6C,OAAOC,aAAc,CACvB,GAAImmB,GAAkBpmB,OAAOC,aAAawW,QAAQ,SAAW,OACzD4P,EAAYnjB,KAAKC,MAAMijB,EAEvBC,IAAapC,IAAM/kB,MAAMC,OAASknB,IACpCpC,IAAMtkB,OAAO,WAAY0mB,GACzBpC,IAAMtkB,OAAO,mBAAoBK,OAAOC,aAAawW,QAAQ,gBAC7DwN,IAAMtkB,OAAO,oBAAqBK,OAAOC,aAAawW,QAAQ,iBAC9DwN,IAAMtkB,OAAO,WAAYK,OAAOC,aAAawW,QAAQ,SACrDwN,IAAMtkB,OAAO,SAAUgK,SAAS3J,OAAOC,aAAawW,QAAQ,aAuDhE,GAAI8N,YACFlX,GAAI,QACJrM,OAAQA,EACRijB,MAAOA,IACPqC,OAAQ,SAAAC,GAAA,MAAKA,GAAEC,W1ByrKV,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUrqB,EAAQC,EAAqBC,GAE7C,Y2B56KA,IAAAoqB,GAAApqB,EAAA,KAAAqqB,EAAArqB,EAAA,KAAAsqB,EAAAtqB,EAAA,KAAAuqB,EAAAvqB,EAAA,KAAAwqB,EAAAxqB,EAAA,KAAAyqB,EAAAzqB,EAAA,KAAA0qB,EAAA1qB,EAAA,KASM0oB,IAEF9H,KAAM,IACN+J,UAAWC,IACXC,WAEIjK,KAAM,yBACNkK,MAAO,GACPH,UAAWI,IACXjpB,KAAM,uBACNynB,MACE5d,YAAa,6BACb6d,cAAc,EACdriB,KAAM,UAIRyZ,KAAM,iBACNkK,MAAO,GACPH,UAAWK,IACXlpB,KAAM,iBACNynB,MACE5d,YAAa,2BACb6d,cAAc,EACdriB,KAAM,UAIRyZ,KAAM,iBACNkK,MAAO,GACPH,UAAWM,IACXnpB,KAAM,iBACNynB,MACE5d,YAAa,iBACb6d,cAAc,EACdriB,KAAM,UAIRyZ,KAAM,iBACNkK,MAAO,GACPH,UAAWO,IACXppB,KAAM,iBACNynB,MACE5d,YAAa,6BACb6d,cAAc,EACdriB,KAAM,aAMZyZ,KAAM,SACN+J,UAAWQ,IACX5B,MACEpiB,KAAM,UAIRyZ,KAAM,IACN+J,UAAWS,KAIA1C,Q3B+6KT,SAAU5oB,EAAQC,EAAqBC,GAE7C,Y4B1/KA,SAAAqrB,GAAAC,GACEtrB,EAAQ,KADV,GAAAurB,GAAAvrB,EAAA,IAAAwrB,EAAAxrB,EAAA,KAGAyrB,EAAyBzrB,EAAQ,GASjC0rB,EAAAL,EAKAM,EAAAF,EACEF,EAAA,EACAC,EAAA,GATF,EAWAE,EAPA,KAEA,KAUe3rB,GAAA,EAAA4rB,EAAiB,S5BmgL1B,SAAU7rB,EAAQ8rB,KAKf,CAEH,SAAU9rB,EAAQC,EAAqBC,GAE7C,Y6BtiLA,SAAAqrB,GAAAC,GACEtrB,EAAQ,KADV,GAAA6rB,GAAA7rB,EAAA,IAAA8rB,EAAA9rB,EAAA,KAGAyrB,EAAyBzrB,EAAQ,GASjC0rB,EAAAL,EAKAM,EAAAF,EACEI,EAAA,EACAC,EAAA,GATF,EAWAJ,EAPA,KAEA,KAUe3rB,GAAA,EAAA4rB,EAAiB,S7B+iL1B,SAAU7rB,EAAQ8rB,KAMlB,SAAU9rB,EAAQC,EAAqBC,GAE7C,Y8BjlLA,SAAAqrB,GAAAC,GACEtrB,EAAQ,KADV,GAAA+rB,GAAA/rB,EAAA,IAAAgsB,EAAAhsB,EAAA,KAGAyrB,EAAyBzrB,EAAQ,GASjC0rB,EAAAL,EAKAM,EAAAF,EACEM,EAAA,EACAC,EAAA,GATF,EAWAN,EAPA,KAEA,KAUe3rB,GAAA,EAAA4rB,EAAiB,S9B0lL1B,SAAU7rB,EAAQ8rB,KAMlB,SAAU9rB,EAAQC,EAAqBC,GAE7C,Y+B5nLA,IAAAiqB,GAAA,WAA0B,GAAAgC,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,MAAgBE,YAAA,iBAA2BF,EAAA,MAAWE,YAAA,WAAqBL,EAAAM,GAAA,cAAAN,EAAAM,GAAA,KAAAH,EAAA,eAAqDE,YAAA,WAAAE,OAA8BC,IAAA,KAAA5D,GAAA,4BAA0CuD,EAAA,KAAAA,EAAA,KAAkBE,YAAA,2BAAqCL,EAAAM,GAAA,KAAAH,EAAA,QAAyBE,YAAA,SAAmBL,EAAAM,GAAA,+BAAAN,EAAAM,GAAA,KAAAH,EAAA,MAA6DE,YAAA,WAAqBL,EAAAM,GAAA,eAAAN,EAAAM,GAAA,KAAAH,EAAA,eAAsDE,YAAA,WAAAE,OAA8BC,IAAA,KAAA5D,GAAA,qBAAmCuD,EAAA,KAAAA,EAAA,KAAkBE,YAAA,oBAA8BL,EAAAM,GAAA,KAAAH,EAAA,QAAyBE,YAAA,SAAmBL,EAAAM,GAAA,wBAAAN,EAAAM,GAAA,KAAAH,EAAA,MAAsDE,YAAA,WAAqBL,EAAAM,GAAA,WAAAN,EAAAM,GAAA,KAAAH,EAAA,eAAkDE,YAAA,WAAAE,OAA8BC,IAAA,KAAA5D,GAAA,qBAAmCuD,EAAA,KAAAA,EAAA,KAAkBE,YAAA,gBAA0BL,EAAAM,GAAA,KAAAH,EAAA,QAAyBE,YAAA,SAAmBL,EAAAM,GAAA,wBAAAN,EAAAM,GAAA,eAAAN,EAAArpB,OAAAC,MAAAsE,KAAAilB,EAAA,MAA0FE,YAAA,WAAqBL,EAAAM,GAAA,0BAAAN,EAAAS,KAAAT,EAAAM,GAAA,eAAAN,EAAArpB,OAAAC,MAAAsE,KAAAilB,EAAA,eAA8GE,YAAA,WAAAE,OAA8BC,IAAA,KAAA5D,GAAA,qBAAmCuD,EAAA,KAAAA,EAAA,KAAkBE,YAAA,gBAA0BL,EAAAM,GAAA,KAAAH,EAAA,QAAyBE,YAAA,SAAmBL,EAAAM,GAAA,wBAAAN,EAAAS,MAAA,IACrzCC,KACAC,GAAiB3C,SAAA0C,kBACF5sB,GAAA,K/BioLT,SAAUD,EAAQC,EAAqBC,GAE7C,YgCtoLA,IAAAiqB,GAAA,WAA0B,GAAAgC,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,SAAmBE,YAAA,iBAA2BF,EAAA,WAAgBE,YAAA,YAAsBF,EAAA,0BAC7KO,KACAC,GAAiB3C,SAAA0C,kBACF5sB,GAAA,KhC0oLN,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUD,EAAQC,EAAqBC,GAE7C,YiCnqLA,IAAAiqB,GAAA,WAA0B,GAAAgC,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,OAAiBS,OAAA,UAAAZ,EAAA7pB,WAA+BgqB,EAAA,WAAgBI,OAAOM,YAAA,GAAAhd,KAAA,SAAgCid,OAAQxY,MAAA0X,EAAA,MAAA3f,SAAA,SAAA0gB,GAA2Cf,EAAA1pB,MAAAyqB,GAAcC,WAAA,WAAqBhB,EAAAM,GAAA,SAAAN,EAAAiB,GAAAjB,EAAAzpB,cAAA,UAAAypB,EAAAM,GAAA,KAAAH,EAAA,UAA8EE,YAAA,gBAA0BF,EAAA,OAAYE,YAAA,2BAAAE,OAA8CrlB,KAAA,gBAAqB8kB,EAAAkB,GAAA,GAAAlB,EAAAM,GAAA,KAAAH,EAAA,OAAkCE,YAAA,iBAA2BF,EAAA,KAAAH,EAAAM,GAAA,gBAAAN,EAAAM,GAAA,KAAAN,EAAAiB,GAAAjB,EAAA1qB,SAAA,KAAA6qB,EAAA,KAAAH,EAAAM,GAAA,SAAAN,EAAAM,GAAA,KAAAN,EAAAiB,GAAAjB,EAAA3qB,YAAA,cAAA2qB,EAAAM,GAAA,KAAAH,EAAA,UAAwKE,YAAA,YAAAE,OAA+BY,0BAAA,EAAAC,WAAA,MAA8CjB,EAAA,UAAeI,OAAOvU,KAAA,YAAA9K,MAAA,QAAAmgB,aAAA,SAAwDrV,KAAA,cAAkBmU,EAAA,YAAAA,EAAA,UAAAH,EAAAM,GAAA,wBAAAN,EAAAM,GAAA,eAAAN,EAAAiB,GAAAjB,EAAAvpB,aAAA,kBAAAupB,EAAAM,GAAA,KAAAH,EAAA,UAAAA,EAAA,kBAAAA,EAAA,SAAuLI,OAAOe,KAAA,IAAUC,IAAKC,MAAA,SAAAC,GAAyB,MAAAzB,GAAA1oB,aAAsB0oB,EAAAM,GAAA,8BAAAN,EAAAM,GAAA,KAAAH,EAAA,eAAAH,EAAAM,GAAA,KAAAH,EAAA,OAA2FE,YAAA,oBAA8BF,EAAA,mBAAAH,EAAAM,GAAA,KAAAH,EAAA,YAAmDI,OAAO5d,OAAA,OAAAzB,MAAA,aAAmCif,EAAA,YAAiBI,OAAOmB,iBAAA,GAAAC,IAAA,GAAAC,KAAA,MAAwCzB,EAAA,UAAeI,OAAOsB,iBAAA,GAAAC,cAAA,GAAAC,KAAA,MAAgD/B,EAAAM,GAAA,6BAAAH,EAAA,KAA8CI,OAAOyB,KAAA,kDAAuDhC,EAAAM,GAAA,kBAAAN,EAAAM,GAAA,4BACniDI,GAAA,WAAoC,GAAAV,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,KAAeE,YAAA,iBAAAE,OAAoCyB,KAAA,eAAoBC,cAAA,YAAA/mB,KAAA,YAA6CilB,EAAA,QAAaE,YAAA,YAAsBL,EAAAM,GAAA,2BAC1PK,GAAiB3C,SAAA0C,kBACF5sB,GAAA,KjCwqLT,SAAUD,EAAQC,EAAqBC,GAE7C,YkC7qLA,SAAAqrB,GAAAC,GACEtrB,EAAQ,KADV,GAAAmuB,GAAAnuB,EAAA,IAAAouB,EAAApuB,EAAA,KAGAyrB,EAAyBzrB,EAAQ,GASjC0rB,EAAAL,EAKAM,EAAAF,EACE0C,EAAA,EACAC,EAAA,GATF,EAWA1C,EAPA,kBAEA,KAUe3rB,GAAA,EAAA4rB,EAAiB,SlCsrL1B,SAAU7rB,EAAQ8rB,KAMlB,SAAU9rB,EAAQC,EAAqBC,GAE7C,YmCxtLA,IAAAiqB,GAAA,WAA0B,GAAAgC,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,OAAiBI,OAAOvlB,GAAA,WAAcmlB,EAAA,YAAiBI,OAAOoB,IAAA,GAAAD,iBAAA,MAA8BvB,EAAA,YAAiBI,OAAO6B,WAAA,GAAAtd,MAAA,QAA+Bgc,OAAQxY,MAAA0X,EAAA,UAAA3f,SAAA,SAAA0gB,GAA+Cf,EAAA5mB,UAAA2nB,GAAkBC,WAAA,eAAyBb,EAAA,UAAAA,EAAA,gBAAAA,EAAA,QAA6CE,YAAA,aAAuBL,EAAAM,GAAA,4BAAAN,EAAAM,GAAA,KAAAH,EAAA,eAAAA,EAAA,QAA8EoB,IAAIc,OAAA,SAAAZ,GAAkD,MAAxBA,GAAAa,iBAAwBtC,EAAA/lB,WAAAwnB,OAAgCtB,EAAA,OAAYE,YAAA,gBAA0BF,EAAA,QAAaE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,iBAAyBL,EAAAM,GAAA,KAAAH,EAAA,SAA4BoC,aAAa1sB,KAAA,QAAA2sB,QAAA,UAAAla,MAAA0X,EAAA,cAAAgB,WAAA,kBAAoFX,YAAA,eAAAE,OAAoC1qB,KAAA,gBAAA4sB,YAAA,gBAAA5e,KAAA,QAAmE6e,UAAWpa,MAAA0X,EAAA,eAA4BuB,IAAKoB,MAAA,SAAAlB,GAAyBA,EAAAmB,OAAAC,YAAsC7C,EAAAlnB,cAAA2oB,EAAAmB,OAAAta,aAAwC0X,EAAAM,GAAA,KAAAH,EAAA,OAA0BE,YAAA,gBAA0BF,EAAA,QAAaE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,qBAA6BL,EAAAM,GAAA,KAAAH,EAAA,SAA4BoC,aAAa1sB,KAAA,QAAA2sB,QAAA,UAAAla,MAAA0X,EAAA,WAAAgB,WAAA,eAA8EX,YAAA,eAAAE,OAAoC1qB,KAAA,aAAA4sB,YAAA,QAAA5e,KAAA,QAAwD6e,UAAWpa,MAAA0X,EAAA,YAAyBuB,IAAKoB,MAAA,SAAAlB,GAAyBA,EAAAmB,OAAAC,YAAsC7C,EAAAjnB,WAAA0oB,EAAAmB,OAAAta,aAAqC0X,EAAAM,GAAA,KAAAH,EAAA,OAA0BE,YAAA,gBAA0BF,EAAA,QAAaE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,iBAAyBL,EAAAM,GAAA,KAAAH,EAAA,SAA4BoC,aAAa1sB,KAAA,QAAA2sB,QAAA,UAAAla,MAAA0X,EAAA,cAAAgB,WAAA,kBAAoFX,YAAA,eAAAE,OAAoC1qB,KAAA,gBAAA4sB,YAAA,WAAA5e,KAAA,YAAkE6e,UAAWpa,MAAA0X,EAAA,eAA4BuB,IAAKoB,MAAA,SAAAlB,GAAyBA,EAAAmB,OAAAC,YAAsC7C,EAAAhnB,cAAAyoB,EAAAmB,OAAAta,aAAwC0X,EAAAM,GAAA,KAAAH,EAAA,OAA0BE,YAAA,gBAA0BF,EAAA,QAAaE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,iBAAyBL,EAAAM,GAAA,KAAAH,EAAA,SAA4BoC,aAAa1sB,KAAA,QAAA2sB,QAAA,UAAAla,MAAA0X,EAAA,eAAAgB,WAAA,mBAAsFX,YAAA,eAAAE,OAAoC1qB,KAAA,iBAAA4sB,YAAA,kBAAA5e,KAAA,YAA0E6e,UAAWpa,MAAA0X,EAAA,gBAA6BuB,IAAKoB,MAAA,SAAAlB,GAAyBA,EAAAmB,OAAAC,YAAsC7C,EAAA/mB,eAAAwoB,EAAAmB,OAAAta,aAAyC0X,EAAAM,GAAA,8DAAAH,EAAA,KAAAH,EAAAM,GAAA,4BAAAN,EAAAM,GAAA,KAAAH,EAAA,MAAAH,EAAAM,GAAA,mHAAAH,EAAA,cAAoRI,OAAOuC,KAAA,GAAAjtB,KAAA,QAAAyS,MAAA0X,EAAA3mB,MAAA2B,GAAA,WAAyDglB,EAAAM,GAAA,KAAAH,EAAA,SAA0BI,OAAOrf,MAAA,OAAA6hB,MAAA,IAA0BxB,IAAKC,MAAAxB,EAAAzmB,wBAAkCymB,EAAAM,GAAA,uBAAAN,EAAAM,GAAA,KAAAH,EAAA,MAAAH,EAAAM,GAAA,KAAAH,EAAA,WAA+EI,OAAOM,YAAA,GAAAhd,KAAA,SAAgCid,OAAQxY,MAAA0X,EAAA,WAAA3f,SAAA,SAAA0gB,GAAgDf,EAAA9mB,WAAA6nB,GAAmBC,WAAA,gBAA0BhB,EAAAM,GAAA,mBAAAN,EAAAiB,GAAAjB,EAAAzpB,cAAA,oBAAAypB,EAAAM,GAAA,KAAAH,EAAA,SAAiGI,OAAOrf,MAAA,OAAA6hB,MAAA,GAAAC,QAAA,GAAAC,MAAA,IAAkD1B,IAAKC,MAAA,SAAAC,GAAyBzB,EAAA5mB,WAAA,MAAsB4mB,EAAAM,GAAA,2CAAAN,EAAAM,GAAA,KAAAH,EAAA,SAA4EI,OAAOrf,MAAA,UAAA2C,KAAA,YAAmCmc,EAAAM,GAAA,8DAAAN,EAAAM,GAAA,KAAAH,EAAA,OAA6FE,YAAA,0BAAoCF,EAAA,QAAaoB,IAAIc,OAAA,SAAAZ,GAAkD,MAAxBA,GAAAa,iBAAwBtC,EAAA5lB,WAAAqnB,OAAgCzB,EAAAM,GAAA,yCAAAH,EAAA,OAA4DE,YAAA,gBAA0BL,EAAAkB,GAAA,GAAAlB,EAAAM,GAAA,KAAAH,EAAA,SAAoCoC,aAAa1sB,KAAA,QAAA2sB,QAAA,UAAAla,MAAA0X,EAAA,SAAAgB,WAAA,aAA0EX,YAAA,eAAAE,OAAoC1qB,KAAA,WAAA4sB,YAAA,WAAA5e,KAAA,QAAyD6e,UAAWpa,MAAA0X,EAAA,UAAuBuB,IAAKoB,MAAA,SAAAlB,GAAyBA,EAAAmB,OAAAC,YAAsC7C,EAAApnB,SAAA6oB,EAAAmB,OAAAta,aAAmC0X,EAAAM,GAAA,KAAAH,EAAA,OAA0BE,YAAA,gBAA0BL,EAAAkB,GAAA,GAAAlB,EAAAM,GAAA,KAAAH,EAAA,SAAoCoC,aAAa1sB,KAAA,QAAA2sB,QAAA,UAAAla,MAAA0X,EAAA,SAAAgB,WAAA,aAA0EX,YAAA,eAAAE,OAAoC1qB,KAAA,WAAA4sB,YAAA,WAAA5e,KAAA,YAA6D6e,UAAWpa,MAAA0X,EAAA,UAAuBuB,IAAKoB,MAAA,SAAAlB,GAAyBA,EAAAmB,OAAAC,YAAsC7C,EAAAnnB,SAAA4oB,EAAAmB,OAAAta,aAAmC0X,EAAAM,GAAA,KAAAH,EAAA,WAA8BI,OAAOM,YAAA,GAAAhd,KAAA,SAAgCid,OAAQxY,MAAA0X,EAAA,MAAA3f,SAAA,SAAA0gB,GAA2Cf,EAAA1pB,MAAAyqB,GAAcC,WAAA,WAAqBhB,EAAAM,GAAA,aAAAN,EAAAiB,GAAAjB,EAAAzpB,cAAA,cAAAypB,EAAAM,GAAA,KAAAH,EAAA,WAAuFI,OAAOM,YAAA,GAAAhd,KAAA,QAA+Bid,OAAQxY,MAAA0X,EAAA,QAAA3f,SAAA,SAAA0gB,GAA6Cf,EAAA7mB,QAAA4nB,GAAgBC,WAAA,aAAuBhB,EAAAM,GAAA,oDAAAN,EAAAM,GAAA,KAAAH,EAAA,SAAqFI,OAAOrf,MAAA,QAAeqgB,IAAKC,MAAAxB,EAAA1mB,gBAA0B0mB,EAAAM,GAAA,cAAAN,EAAAM,GAAA,KAAAH,EAAA,SAA+CI,OAAOrf,MAAA,UAAA2C,KAAA,YAAmCmc,EAAAM,GAAA,wCAC3mKI,GAAA,WAAoC,GAAAV,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,QAAkBE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,sBAAiC,WAAc,GAAAL,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,QAAkBE,YAAA,sBAAgCF,EAAA,KAAUE,YAAA,mBACzUM,GAAiB3C,SAAA0C,kBACF5sB,GAAA,KnC6tLT,SAAUD,EAAQC,EAAqBC,GAE7C,YoCluLA,SAAAqrB,GAAAC,GACEtrB,EAAQ,KADV,GAAAmvB,GAAAnvB,EAAA,IAAAovB,EAAApvB,EAAA,KAGAyrB,EAAyBzrB,EAAQ,GASjC0rB,EAAAL,EAKAM,EAAAF,EACE0D,EAAA,EACAC,EAAA,GATF,EAWA1D,EAPA,KAEA,KAUe3rB,GAAA,EAAA4rB,EAAiB,SpC2uL1B,SAAU7rB,EAAQ8rB,KAMlB,SAAU9rB,EAAQC,EAAqBC,GAE7C,YqC7wLA,IAAAiqB,GAAA,WAA0B,GAAAgC,GAAAtpB,KAAaupB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,CAAwB,OAAAE,GAAA,OAAiBI,OAAOvlB,GAAA,cAAiBmlB,EAAA,OAAYE,YAAA,0BAAoCF,EAAA,MAAAH,EAAAM,GAAA,mBAAAN,EAAAM,GAAA,KAAAH,EAAA,MAAAH,EAAAM,GAAA,8BAAAN,EAAAM,GAAA,KAAAH,EAAA,eAA6HE,YAAA,mBAAAE,OAAsC3D,GAAA,OAAUoD,EAAAM,GAAA,0BAC/VI,KACAC,GAAiB3C,SAAA0C,kBACF5sB,GAAA,KrCkxLT,SAAUD,EAAQC,EAAqBC,GAE7C,YsCvxLA,IAAAqvB,GAAArvB,EAAA,IAAAsvB,EAAAtvB,EAAA,KAAAyrB,EAAyBzrB,EAAQ,GAcjC2rB,EAAAF,EACE4D,EAAA,EACAC,EAAA,GATF,EAEA,KAEA,KAEA,KAUevvB,GAAA,EAAA4rB,EAAiB,StCgyL1B,SAAU7rB,EAAQC,EAAqBC,GAE7C,YuCzzLA,SAAAqrB,GAAAC,GACEtrB,EAAQ,KADV,GAAAuvB,GAAAvvB,EAAA,IAAAwvB,EAAAxvB,EAAA,KAGAyrB,EAAyBzrB,EAAQ,GASjC0rB,EAAAL,EAKAM,EAAAF,EACE8D,EAAA,EACAC,EAAA,GATF,EAWA9D,EAPA,KAEA,KAUe3rB,GAAA,EAAA4rB,EAAiB,SvCk0L1B,SAAU7rB,EAAQ8rB,KAMlB,SAAU9rB,EAAQC,EAAqBC,GAE7C,YwCp2LA,IAAAyvB,GAAAzvB,EAAA,IAAA0vB,EAAA1vB,EAAA,KAAAyrB,EAAyBzrB,EAAQ,GAcjC2rB,EAAAF,EACEgE,EAAA,EACAC,EAAA,GATF,EAEA,KAEA,KAEA,KAUe3vB,GAAA,EAAA4rB,EAAiB,SxC62L1B,SAAU7rB,EAAQ8rB,EAAS5rB,GyCpoLjC,QAAA2vB,GAAAC,GACA,MAAA5vB,GAAA6vB,EAAAD,IAEA,QAAAC,GAAAD,GACA,GAAA3oB,GAAA6oB,EAAAF,EACA,MAAA3oB,EAAA,GACA,SAAA8oB,OAAA,uBAAAH,EAAA,KACA,OAAA3oB,GAvQA,GAAA6oB,IACAE,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,OAAA,GACAC,UAAA,GACAC,OAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,aAAA,GACAC,UAAA,GACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,gBAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,UAAA,IACAC,aAAA,IACAC,OAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,IACAC,aAAA,IACAC,UAAA,IACAC,OAAA,IACAC,UAAA,I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E,SAAA5rB,iBAEhBlR,EAAA/c,UAAAm4B,gBAAA,SAAAN,OACAz6D,KAAAy6D,EAAAn0B,KACAvkC,KAAA06E,SAAA1rB,aAAA0J,EAAAn0B,MAGAqZ,GACClC,EAAApL,QACDrnB,GAAAqnB,QAAAsN,EACAA,EAAA/c,UAAAyyB,0BAAA+mB,EAAA/pC,QACAsN,EAAA/c,UAAA85C,aAAAl9B,EAAAnN,SAgEA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEA,SAAAnzC,EAAA8rB,EAAA5rB,GA0NA,QAAAi+E,GAAAC,EAAAC,EAAAC,GACA,GAAAl0E,EACA,KAAAA,EAAA,EAAeA,EAAAg0E,EAAAv9E,OAAmCuJ,IAClD,IAAAi0E,EAAAD,EAAAh0E,GAAA23C,cAAArI,WAAA4kC,IAAA5kC,WAAA,MACA,QAGA,UAEA,QAAA6kC,GAAAH,EAAAE,GACA,GACAl0E,GACAo0E,EACAC,EACAC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","file":"static/js/app.607bb86363643317145e.js","sourcesContent":["webpackJsonp([1],[\n/* 0 */,\n/* 1 */,\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_axios__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__config__ = __webpack_require__(31);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n request: function request(method, uri, token) {\n var data = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n if (!method) {\n console.error('API function call requires method argument');\n return;\n }\n\n if (!uri) {\n console.error('API function call requires uri argument');\n return;\n }\n\n var url = __WEBPACK_IMPORTED_MODULE_1__config__[\"a\" /* default */].serverURI + uri;\n if (token !== null) {\n __WEBPACK_IMPORTED_MODULE_0_axios___default.a.defaults.headers.common['Authorization'] = token;\n }\n return __WEBPACK_IMPORTED_MODULE_0_axios___default()({ method: method, url: url, data: data });\n }\n});\n\n/***/ }),\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */,\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n serverURI: '',\n apiVersion: '',\n version: '',\n fixedLayout: false,\n hideLogoOnMobile: false\n});\n\n/***/ }),\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__config__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__dash_BaseSidebar_vue__ = __webpack_require__(252);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hideseek__ = __webpack_require__(258);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_hideseek___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_hideseek__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__api__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'TheDash',\n\n components: {\n BaseSidebar: __WEBPACK_IMPORTED_MODULE_1__dash_BaseSidebar_vue__[\"a\" /* default */]\n },\n\n data: function data() {\n return {\n year: new Date().getFullYear(),\n classes: {\n fixed_layout: __WEBPACK_IMPORTED_MODULE_0__config__[\"a\" /* default */].fixedLayout,\n hide_logo: __WEBPACK_IMPORTED_MODULE_0__config__[\"a\" /* default */].hideLogoOnMobile\n },\n alert: false,\n errorMessage: ''\n };\n },\n\n computed: {\n displayName: function displayName() {\n return this.$store.state.user;\n },\n version: function version() {\n return __WEBPACK_IMPORTED_MODULE_0__config__[\"a\" /* default */].version;\n },\n apiVersion: function apiVersion() {\n return __WEBPACK_IMPORTED_MODULE_0__config__[\"a\" /* default */].apiVersion;\n }\n },\n\n methods: {\n handleError: function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n this.errorMessage = error.message;\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n this.errorMessage = error.response.data;\n } else {\n this.errorMessage = error.response.data.msg;\n }\n }\n this.alert = true;\n },\n\n changeloading: function changeloading() {\n this.$store.commit('TOGGLE_SEARCHING');\n },\n\n\n logout: function logout() {\n var _this = this;\n\n if (this.$store.state.accessToken !== null) {\n __WEBPACK_IMPORTED_MODULE_3__api__[\"a\" /* default */].request('delete', '/user/logout', this.$store.state.accessToken).then(function (response) {\n _this.$store.commit('SET_ACCESS_TOKEN', null);\n\n if (window.localStorage) {\n window.localStorage.setItem('accessToken', null);\n }\n if (_this.$store.state.refreshToken !== null) {\n __WEBPACK_IMPORTED_MODULE_3__api__[\"a\" /* default */].request('delete', '/user/logout/refresh_token', _this.$store.state.refreshToken).then(function (response) {\n _this.$store.commit('SET_REFRESH_TOKEN', null);\n if (window.localStorage) {\n window.localStorage.setItem('refreshToken', null);\n }\n }).catch(function (error) {\n _this.handleError(error);\n });\n }\n }).catch(function (error) {\n _this.handleError(error);\n });\n }\n this.$store.commit('SET_USER', null);\n this.$store.commit('SET_ROLE', null);\n\n if (window.localStorage) {\n window.localStorage.setItem('user', null);\n window.localStorage.setItem('role', null);\n window.localStorage.setItem('watches', null);\n window.localStorage.setItem('watchIds', null);\n }\n this.$router.push('/login');\n }\n }\n});\n\n/***/ }),\n/* 49 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__BaseSidebarMenu_vue__ = __webpack_require__(254);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'BaseSidebar',\n\n components: { BaseSidebarMenu: __WEBPACK_IMPORTED_MODULE_0__BaseSidebarMenu_vue__[\"a\" /* default */] },\n\n mounted: function mounted() {\n window.jQuery('[data-toggle=\"hideseek\"]').off().hideseek();\n }\n});\n\n/***/ }),\n/* 50 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'BaseSidebarMenu'\n});\n\n/***/ }),\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__api__ = __webpack_require__(2);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'Login',\n\n data: function data(router) {\n return {\n section: 'Login',\n username: '',\n password: '',\n modalUsername: '',\n modalEmail: '',\n modalPassword: '',\n modalPassword2: '',\n alert: false,\n modalAlert: false,\n created: false,\n errorMessage: '',\n showModal: false,\n entry: ''\n };\n },\n\n\n methods: {\n handleError: function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n this.errorMessage = error.message;\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n this.errorMessage = error.response.data;\n } else {\n this.errorMessage = error.response.data.msg;\n }\n }\n },\n\n requestEntry: function requestEntry() {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_1__api__[\"a\" /* default */].request('get', '/user/authorized_keys_entry', this.$store.state.accessToken).then(function (response) {\n _this.entry = response.data;\n _this.showModal = true;\n }).catch(function (error) {\n _this.handleError(error);\n _this.modalAlert = true;\n });\n },\n copyEntryToClipboard: function copyEntryToClipboard() {\n var entryInput = document.querySelector('#entry');\n entryInput.setAttribute('type', 'text');\n entryInput.select();\n try {\n if (document.execCommand('copy')) {\n alert('Authorized keys entry is in your clipboard');\n } else {\n alert('Something went wrong, try again');\n }\n } catch (e) {\n alert('Unable to copy');\n }\n window.getSelection().removeAllRanges();\n },\n createUser: function createUser() {\n var _this2 = this;\n\n if (this.modalPassword === this.modalPassword2) {\n var modalUsername = this.modalUsername,\n modalEmail = this.modalEmail,\n modalPassword = this.modalPassword;\n\n __WEBPACK_IMPORTED_MODULE_1__api__[\"a\" /* default */].request('post', '/user/ssh_signup', this.$store.state.accessToken, { 'username': modalUsername, 'email': modalEmail, 'password': modalPassword }).then(function (response) {\n _this2.showModal = false;\n _this2.created = true;\n }).catch(function (error) {\n _this2.handleError(error);\n _this2.modalAlert = true;\n });\n } else {\n this.errorMessage = 'Passwords do not match';\n this.modalAlert = true;\n }\n },\n checkCreds: function checkCreds() {\n var _this3 = this;\n\n var username = this.username,\n password = this.password;\n\n\n this.toggleLoading();\n this.resetResponse();\n this.$store.commit('TOGGLE_LOADING');\n /* Making API call to authenticate a user */\n __WEBPACK_IMPORTED_MODULE_1__api__[\"a\" /* default */].request('post', '/user/login', this.$store.state.accessToken, { 'username': username, 'password': password }).then(function (response) {\n _this3.toggleLoading();\n\n var data = response.data;\n /* Checking if error object was returned from the server */\n if (data.error) {\n var errorName = data.error.name;\n if (errorName) {\n _this3.response = errorName === 'InvalidCredentialsError' ? 'Username/Password incorrect. Please try again.' : errorName;\n } else {\n _this3.response = data.error;\n }\n\n return;\n }\n /* Setting user in the state and caching record to the localStorage */\n if (username) {\n var accessToken = 'Bearer ' + data.access_token;\n var refreshToken = 'Bearer ' + data.refresh_token;\n var object = JSON.parse(atob(data.access_token.split('.')[1]));\n var id = object.identity;\n var role = object.user_claims.roles.length === 2 ? 'admin' : 'user';\n _this3.$store.commit('SET_USER', username);\n _this3.$store.commit('SET_ROLE', role);\n _this3.$store.commit('SET_ID', id);\n _this3.$store.commit('SET_ACCESS_TOKEN', accessToken);\n _this3.$store.commit('SET_REFRESH_TOKEN', refreshToken);\n\n if (window.localStorage) {\n window.localStorage.setItem('user', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_json_stringify___default()(username));\n window.localStorage.setItem('accessToken', accessToken);\n window.localStorage.setItem('refreshToken', refreshToken);\n window.localStorage.setItem('role', role);\n window.localStorage.setItem('userId', id);\n }\n _this3.$router.push('/');\n }\n }).catch(function (error) {\n _this3.handleError(error);\n _this3.alert = true;\n });\n },\n toggleLoading: function toggleLoading() {\n this.loading = this.loading === '' ? 'loading' : '';\n },\n resetResponse: function resetResponse() {\n this.response = '';\n }\n }\n});\n\n/***/ }),\n/* 58 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'NotFound'\n});\n\n/***/ }),\n/* 59 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__reserve_resources_FullCalendar_vue__ = __webpack_require__(285);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__reserve_resources_MySchedule_vue__ = __webpack_require__(295);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n FullCalendar: __WEBPACK_IMPORTED_MODULE_2__reserve_resources_FullCalendar_vue__[\"a\" /* default */],\n MySchedule: __WEBPACK_IMPORTED_MODULE_3__reserve_resources_MySchedule_vue__[\"a\" /* default */]\n },\n\n data: function data() {\n return {\n nodes: [],\n parsedNodes: [],\n alert: false,\n snackbar: false,\n errorMessage: '',\n updateCalendar: false,\n selectedResources: [],\n nodeCheckbox: false,\n resourceTypeCheckbox: false,\n resourceCheckbox: false\n };\n },\n mounted: function mounted() {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/nodes/metrics', this.$store.state.accessToken).then(function (response) {\n _this.nodes = response.data;\n _this.parseData();\n }).catch(function (error) {\n _this.handleError(error);\n });\n },\n\n\n methods: {\n handleError: function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n this.showSnackbar(error.message);\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n this.showSnackbar(error.response.data);\n } else {\n this.showSnackbar(error.response.data.msg);\n }\n }\n },\n\n showSnackbar: function showSnackbar(message) {\n this.errorMessage = message;\n this.snackbar = true;\n },\n\n\n loadResources: function loadResources(resources) {\n this.selectedResources = [];\n for (var id in resources) {\n if (resources[id].selected) {\n var obj = {\n nodeName: resources[id].nodeName,\n name: resources[id].resourceName,\n uuid: id,\n index: resources[id].resourceIndex\n };\n this.selectedResources.push(obj);\n }\n }\n this.updateCalendar = !this.updateCalendar;\n },\n\n toggle: function toggle(node) {\n node.open = !node.open;\n },\n\n parseData: function parseData() {\n var node, resourceType, resources, resourceTypes, tempResource, tempResourceType, tempNode, orderedResources;\n for (var nodeName in this.nodes) {\n resourceTypes = [];\n node = this.nodes[nodeName];\n for (var resourceTypeName in node) {\n resources = [];\n resourceType = node[resourceTypeName];\n for (var resourceUUID in resourceType) {\n tempResource = {\n nodeName: nodeName,\n resourceUUID: resourceUUID,\n resourceName: resourceType[resourceUUID].name,\n resourceIndex: resourceType[resourceUUID].index,\n metrics: resourceType[resourceUUID].metrics\n };\n tempResource.metrics['checked'] = true;\n resources.push(tempResource);\n }\n orderedResources = __WEBPACK_IMPORTED_MODULE_1_lodash___default.a.orderBy(resources, 'resourceIndex');\n tempResourceType = {\n name: resourceTypeName,\n checked: true,\n open: false,\n resources: orderedResources\n };\n resourceTypes.push(tempResourceType);\n }\n tempNode = {\n nodeName: nodeName,\n checked: true,\n open: false,\n resourceTypes: resourceTypes\n };\n this.parsedNodes.push(tempNode);\n }\n this.loadCalendar();\n },\n loadCalendar: function loadCalendar() {\n var node, resourceType, resource, obj;\n this.selectedResources = [];\n for (var i = 0; i < this.parsedNodes.length; i++) {\n node = this.parsedNodes[i];\n for (var j = 0; j < node.resourceTypes.length; j++) {\n resourceType = node.resourceTypes[j];\n for (var k = 0; k < resourceType.resources.length; k++) {\n resource = resourceType.resources[k];\n if (resource.metrics.checked) {\n obj = {\n nodeName: resource.nodeName,\n name: resource.resourceName,\n uuid: resource.resourceUUID,\n index: resource.resourceIndex\n };\n this.selectedResources.push(obj);\n }\n }\n }\n }\n this.updateCalendar = !this.updateCalendar;\n }\n }\n});\n\n/***/ }),\n/* 60 */,\n/* 61 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__FullCalendarReserve_vue__ = __webpack_require__(287);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__FullCalendarInfo_vue__ = __webpack_require__(290);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_jquery__ = __webpack_require__(191);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_jquery___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_jquery__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_moment__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n__webpack_require__(293);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n FullCalendarReserve: __WEBPACK_IMPORTED_MODULE_0__FullCalendarReserve_vue__[\"a\" /* default */],\n FullCalendarInfo: __WEBPACK_IMPORTED_MODULE_1__FullCalendarInfo_vue__[\"a\" /* default */]\n },\n\n props: {\n nodes: Object,\n selectedResources: Array,\n updateCalendar: Boolean\n },\n\n watch: {\n updateCalendar: function updateCalendar() {\n this.calendar.fullCalendar('refetchEvents');\n }\n },\n\n data: function data() {\n return {\n calendar: null,\n showModalReserve: false,\n showModalInfo: false,\n reservation: {\n title: '',\n description: '',\n resourceId: '',\n start: new Date(),\n end: new Date()\n },\n reservationId: -1,\n startDate: null,\n endDate: null,\n resourcesCheckboxes: [],\n refreshTasks: false\n };\n },\n\n\n methods: {\n handleError: function handleError(error) {\n this.$emit('handleError', error);\n },\n\n getEvents: function getEvents(start, end, callback) {\n var _this = this;\n\n var resourcesString = '';\n if (this.selectedResources.length > 0) {\n resourcesString = this.selectedResources[0].uuid;\n for (var i = 1; i < this.selectedResources.length; i++) {\n resourcesString += ',' + this.selectedResources[i].uuid;\n }\n }\n var self = this;\n __WEBPACK_IMPORTED_MODULE_2__api__[\"a\" /* default */].request('get', '/reservations?resources_ids=' + resourcesString + '&start=' + start.toISOString() + '&end=' + end.toISOString(), this.$store.state.accessToken).then(function (response) {\n if (self.reservationId !== -1) {\n for (var reservation in response.data) {\n if (response.data[reservation].id === self.reservationId) {\n self.reservation = response.data[reservation];\n self.reservation.start = __WEBPACK_IMPORTED_MODULE_4_moment___default()(self.reservation.start);\n self.reservation.end = __WEBPACK_IMPORTED_MODULE_4_moment___default()(self.reservation.end);\n }\n }\n self.reservationId = -1;\n }\n callback(response.data);\n }).catch(function (error) {\n _this.$emit('handleError', error);\n });\n var obj;\n this.resourcesCheckboxes = [];\n for (i = 0; i < this.selectedResources.length; i++) {\n obj = {\n nodeName: this.selectedResources[i].nodeName,\n name: this.selectedResources[i].name,\n uuid: this.selectedResources[i].uuid,\n index: this.selectedResources[i].index,\n checked: false,\n disabled: false\n };\n this.resourcesCheckboxes[i] = obj;\n }\n this.addResourcesHeader();\n },\n\n addResourcesHeader: function addResourcesHeader() {\n var dayStart = __WEBPACK_IMPORTED_MODULE_5_lodash___default.a.cloneDeep(this.calendar.fullCalendar('getView').start);\n for (var i = 0; i < 7; i++) {\n for (var j = 0; j < this.selectedResources.length; j++) {\n var tempReservation = {\n title: 'GPU' + this.selectedResources[j].index,\n description: this.selectedResources[j].nodeName,\n start: dayStart,\n allDay: true,\n resourceId: this.selectedResources[j].uuid,\n userId: this.$store.state.id\n };\n this.calendar.fullCalendar('renderEvent', tempReservation);\n }\n if (dayStart) dayStart = dayStart.add(1, 'days');\n }\n },\n\n setColor: function setColor(resourceIndex) {\n var color = '#123456';\n var step = resourceIndex * 123456;\n var colorToInt = parseInt(color.substr(1), 16);\n var nstep = parseInt(step);\n if (!isNaN(colorToInt) && !isNaN(nstep)) {\n colorToInt += nstep;\n var ncolor = colorToInt.toString(16);\n ncolor = '#' + new Array(7 - ncolor.length).join(0) + ncolor;\n if (/^#[0-9a-f]{6}$/i.test(ncolor)) {\n return ncolor;\n }\n }\n return color;\n },\n\n updateReservation: function updateReservation(reservation, newTime, newTitle, newDescription) {\n var _this2 = this;\n\n var toUpdate = {};\n if (reservation.start.toISOString() !== newTime[0].toISOString()) {\n toUpdate['start'] = newTime[0].toISOString();\n }\n if (reservation.end.toISOString() !== newTime[1].toISOString()) {\n toUpdate['end'] = newTime[1].toISOString();\n }\n if (reservation.title !== newTitle && newTitle !== '') {\n toUpdate['title'] = newTitle;\n }\n if (reservation.description !== newDescription && newDescription !== '') {\n toUpdate['description'] = newDescription;\n }\n var empty = true;\n for (var key in toUpdate) {\n if (toUpdate.hasOwnProperty(key)) {\n empty = false;\n }\n }\n if (!empty) {\n __WEBPACK_IMPORTED_MODULE_2__api__[\"a\" /* default */].request('put', '/reservations/' + reservation.id, this.$store.state.accessToken, toUpdate).then(function (response) {\n _this2.calendar.fullCalendar('refetchEvents');\n _this2.showModalInfo = false;\n }).catch(function (error) {\n _this2.$emit('handleError', error);\n });\n }\n },\n\n cancelReservation: function cancelReservation(reservation) {\n var _this3 = this;\n\n __WEBPACK_IMPORTED_MODULE_2__api__[\"a\" /* default */].request('delete', '/reservations/' + reservation.id.toString(), this.$store.state.accessToken).then(function (response) {\n _this3.calendar.fullCalendar('refetchEvents');\n _this3.showModalInfo = false;\n }).catch(function (error) {\n _this3.$emit('handleError', error);\n });\n },\n\n addReservation: function addReservation(reservation) {\n var _this4 = this;\n\n __WEBPACK_IMPORTED_MODULE_2__api__[\"a\" /* default */].request('post', '/reservations', this.$store.state.accessToken, reservation).then(function (response) {\n _this4.calendar.fullCalendar('refetchEvents');\n _this4.showModalReserve = false;\n }).catch(function (error) {\n _this4.$emit('handleError', error);\n });\n }\n },\n\n mounted: function mounted() {\n var self = this;\n this.calendar = __WEBPACK_IMPORTED_MODULE_3_jquery___default()(self.$el);\n __WEBPACK_IMPORTED_MODULE_3_jquery___default()(window).resize(function () {\n self.calendar.fullCalendar('rerenderEvents');\n });\n this.calendar.fullCalendar({\n allDaySlot: true,\n allDayText: '',\n height: 'auto',\n selectable: true,\n selectOverlap: true,\n slotEventOverlap: false,\n editable: false,\n nowIndicator: true,\n firstDay: 1,\n timezone: 'local',\n defaultView: 'agendaWeek',\n header: {\n left: 'prev,next, today, agendaWeek, week2',\n center: 'title',\n right: ''\n },\n views: {\n week: {\n columnHeaderFormat: 'ddd D/M',\n buttonText: 'One week jump'\n },\n week2: {\n type: 'agendaWeek',\n duration: { days: 7 },\n buttonText: 'One day jump',\n dateIncrement: { days: 1 },\n columnHeaderFormat: 'ddd D/M'\n }\n },\n events: function events(start, end, timezone, callback) {\n self.getEvents(start, end, callback);\n },\n eventRender: function eventRender(event, element) {\n var _this5 = this;\n\n element.find('.fc-title').append('
' + event.description);\n if (!event.allDay) {\n __WEBPACK_IMPORTED_MODULE_2__api__[\"a\" /* default */].request('get', '/users/' + event.userId, self.$store.state.accessToken).then(function (response) {\n element.find('.fc-title').prepend(response.data.username.bold().big().italics() + '
');\n }).catch(function (error) {\n _this5.$emit('handleError', error);\n });\n }\n },\n eventAfterRender: function eventAfterRender(event, element, view) {\n var resourceIndex;\n for (var i = 0; i < self.selectedResources.length; i++) {\n if (self.selectedResources[i].uuid === event.resourceId) {\n resourceIndex = i + 1;\n }\n }\n var hoursWidth = 42;\n var scrollWidth = 16;\n var width = view.el[0].clientWidth;\n var dayWidth = (width - scrollWidth - hoursWidth) / 7;\n var eventSlotWidth = dayWidth / self.selectedResources.length - 1;\n var eventWidth = Math.floor(eventSlotWidth - 1).toString() + 'px';\n __WEBPACK_IMPORTED_MODULE_3_jquery___default()(element).css('width', eventWidth);\n if (resourceIndex !== 1) {\n var margin = (Math.floor((resourceIndex - 1) * eventSlotWidth) + 1).toString() + 'px';\n __WEBPACK_IMPORTED_MODULE_3_jquery___default()(element).css('margin-left', margin);\n }\n if (event.allDay) {\n if (resourceIndex - 1) {\n __WEBPACK_IMPORTED_MODULE_3_jquery___default()(element).css('margin-top', '-36px');\n }\n __WEBPACK_IMPORTED_MODULE_3_jquery___default()(element).css('height', 17 * 2);\n }\n var c = self.setColor(resourceIndex);\n if (event.color !== c) {\n event.color = c;\n self.calendar.fullCalendar('updateEvent', event);\n }\n },\n\n select: function select(startDate, endDate) {\n if (!startDate._ambigTime) {\n for (var i = 0; i < self.selectedResources.length; i++) {\n self.resourcesCheckboxes[i].checked = false;\n self.resourcesCheckboxes[i].disabled = false;\n }\n var events = self.calendar.fullCalendar('clientEvents');\n var id;\n for (i = 0; i < events.length; i++) {\n if (!events[i].allDay) {\n if (events[i].end > startDate && events[i].start < endDate) {\n for (var j = 0; j < self.selectedResources.length; j++) {\n if (self.selectedResources[j].uuid === events[i].resourceId) {\n id = j;\n }\n }\n self.resourcesCheckboxes[id].disabled = true;\n }\n }\n }\n self.startDate = startDate.toDate();\n self.endDate = endDate.toDate();\n self.showModalReserve = true;\n }\n },\n\n eventClick: function eventClick(calEvent, jsEvent, view) {\n if ((calEvent.userId === self.$store.state.id || self.$store.state.role === 'admin') && !calEvent.allDay) {\n self.reservationId = calEvent.id;\n self.calendar.fullCalendar('refetchEvents');\n self.refreshTasks = !self.refreshTasks;\n self.showModalInfo = true;\n }\n },\n viewRender: function viewRender(view, element) {\n self.calendar.fullCalendar('refetchEvents');\n }\n });\n }\n});\n\n/***/ }),\n/* 62 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_moment__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'FullCalendarReserve',\n\n props: {\n showModal: Boolean,\n startDate: Date,\n endDate: Date,\n resourcesCheckboxes: Array,\n numberOfResources: Number,\n addReservation: Function\n\n },\n\n watch: {\n startDate: function startDate() {\n if (this.startTime !== null) {\n this.newStartDate = __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.startDate).format('YYYY-MM-DD');\n this.newStartTime = __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.startDate).format('HH:mm');\n } else {\n this.newStartDate = '';\n this.newStartTime = '';\n }\n },\n endDate: function endDate() {\n if (this.endTime !== null) {\n this.newEndDate = __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.endDate).format('YYYY-MM-DD');\n this.newEndTime = __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.endDate).format('HH:mm');\n } else {\n this.newEndDate = '';\n this.newEndTime = '';\n }\n }\n },\n\n data: function data() {\n return {\n startTimeMenu: false,\n startDateMenu: false,\n endTimeMenu: false,\n endDateMenu: false,\n newStartDate: '',\n newStartTime: '',\n newEndDate: '',\n newEndTime: '',\n showInfo: false,\n reservationTitle: '',\n reservationDescription: ''\n };\n },\n\n\n methods: {\n close: function close() {\n this.showInfo = false;\n this.$emit('close');\n },\n\n anyChecked: function anyChecked() {\n var anyChecked = false;\n for (var checkbox in this.resourcesCheckboxes) {\n if (this.resourcesCheckboxes[checkbox].checked) {\n anyChecked = true;\n break;\n }\n }\n return anyChecked;\n },\n\n reservation: function reservation() {\n var tempReservation;\n if (this.anyChecked()) {\n for (var i = 0; i < this.numberOfResources; i++) {\n if (this.resourcesCheckboxes[i].checked) {\n tempReservation = {\n title: this.reservationTitle,\n description: this.reservationDescription,\n start: __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.newStartDate + 'T' + this.newStartTime).toISOString(),\n end: __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.newEndDate + 'T' + this.newEndTime).toISOString(),\n resourceId: this.resourcesCheckboxes[i].uuid,\n userId: parseInt(this.$store.state.id)\n };\n this.addReservation(tempReservation);\n }\n }\n } else {\n this.showInfo = true;\n }\n }\n }\n});\n\n/***/ }),\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */,\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */,\n/* 133 */,\n/* 134 */,\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_moment__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'FullCalendarInfo',\n\n props: {\n showModal: Boolean,\n reservation: Object,\n cancel: Function,\n update: Function,\n refreshTasks: Boolean,\n nodes: Object\n },\n\n computed: {\n gpuUtilAvg: function gpuUtilAvg() {\n if (this.reservation.gpuUtilAvg === null) {\n return 'Reservation is not completed yet, no data';\n } else if (this.reservation.gpuUtilAvg === -1) {\n return 'This GPU does not support NVIDIA-SMI';\n } else {\n return this.reservation.gpuUtilAvg + '%';\n }\n },\n memUtilAvg: function memUtilAvg() {\n if (this.reservation.memUtilAvg === null) {\n return 'Reservation is not completed yet, no data';\n } else if (this.reservation.memUtilAvg === -1) {\n return 'This GPU does not support NVIDIA-SMI';\n } else {\n return this.reservation.memUtilAvg + '%';\n }\n },\n reservationTitle: function reservationTitle() {\n return this.reservation.title;\n },\n reservationDescription: function reservationDescription() {\n return this.reservation.description;\n },\n reservationStart: function reservationStart() {\n return this.reservation.start;\n },\n reservationEnd: function reservationEnd() {\n return this.reservation.end;\n }\n },\n\n watch: {\n refreshTasks: function refreshTasks() {\n this.getTasks();\n },\n reservationTitle: function reservationTitle() {\n this.newTitle = this.reservationTitle;\n },\n reservationDescription: function reservationDescription() {\n this.newDescription = this.reservationDescription;\n },\n reservationStart: function reservationStart() {\n if (this.reservationStart !== null) {\n this.newStartDate = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.reservationStart).format('YYYY-MM-DD');\n this.newStartTime = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.reservationStart).format('HH:mm');\n } else {\n this.newStartDate = '';\n this.newStartTime = '';\n }\n },\n reservationEnd: function reservationEnd() {\n if (this.reservationEnd !== null) {\n this.newEndDate = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.reservationEnd).format('YYYY-MM-DD');\n this.newEndTime = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.reservationEnd).format('HH:mm');\n } else {\n this.newEndDate = '';\n this.newEndTime = '';\n }\n }\n },\n\n data: function data() {\n return {\n tasksCard: false,\n cancelCard: false,\n updateCard: false,\n newTitle: '',\n newDescription: '',\n startTimeMenu: false,\n startDateMenu: false,\n endTimeMenu: false,\n endDateMenu: false,\n newStartDate: '',\n newStartTime: '',\n newEndDate: '',\n newEndTime: '',\n pagination: {\n sortBy: 'name'\n },\n tasks: [],\n selected: [],\n selectedIndex: 0,\n headers: [{ text: 'ID', value: 'id' }, { text: 'Command', value: 'command' }, { text: 'Spawn at', value: 'spawnAt' }, { text: 'Terminate at', value: 'terminateAt' }],\n tableKey: 0,\n actionFlag: false,\n showAlert: false\n };\n },\n\n\n methods: {\n prettyDate: function prettyDate(date) {\n if (date !== null) {\n return __WEBPACK_IMPORTED_MODULE_1_moment___default()(date).format('dddd, MMMM Do, HH:mm');\n } else {\n return null;\n }\n },\n\n\n getTasks: function getTasks() {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks?userId=' + this.$store.state.id + '&syncAll=false', this.$store.state.accessToken).then(function (response) {\n _this.tasks = response.data.tasks;\n }).catch(function (error) {\n _this.$emit('handleError', error);\n });\n },\n\n checkActionFlag: function checkActionFlag() {\n if (this.actionFlag === false) {\n this.actionFlag = true;\n this.showAlert = true;\n this.scheduleTasks();\n }\n },\n\n scheduleTasks: function scheduleTasks() {\n var _this2 = this;\n\n var id;\n id = this.selected[this.selectedIndex].id;\n var newTask = this.adjustHostAndCommand();\n newTask['spawnAt'] = this.reservation.start;\n newTask['terminateAt'] = this.reservation.end;\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('put', '/tasks/' + id, this.$store.state.accessToken, newTask).then(function (response) {\n _this2.getTask(id);\n }).catch(function (error) {\n _this2.$emit('handleError', error);\n _this2.getTask(id);\n });\n },\n\n adjustHostAndCommand: function adjustHostAndCommand() {\n for (var nodeName in this.nodes) {\n for (var gpuUUID in this.nodes[nodeName].GPU) {\n if (gpuUUID === this.reservation.resourceId) {\n return {\n hostname: nodeName,\n command: this.setCommand(this.nodes[nodeName].GPU[gpuUUID].index)\n };\n }\n }\n }\n return {};\n },\n\n setCommand: function setCommand(index) {\n var command = this.selected[this.selectedIndex].command;\n var splitCommand = command.split(' ');\n splitCommand[0] = 'CUDA_VISIBLE_DEVICES=' + index;\n return splitCommand.join(' ');\n },\n\n getTask: function getTask(id) {\n var _this3 = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks/' + id, this.$store.state.accessToken).then(function (response) {\n _this3.updateTask(id, response.data.task);\n _this3.selectedIndex++;\n if (_this3.selectedIndex < _this3.selected.length) {\n _this3.scheduleTasks();\n } else {\n _this3.selectedIndex = 0;\n _this3.actionFlag = false;\n _this3.showAlert = false;\n }\n }).catch(function (error) {\n _this3.$emit('handleError', error);\n _this3.selectedIndex++;\n if (_this3.selectedIndex < _this3.selected.length) {\n _this3.scheduleTasks();\n } else {\n _this3.selectedIndex = 0;\n _this3.actionFlag = false;\n _this3.showAlert = false;\n }\n });\n },\n\n updateTask: function updateTask(id, newData) {\n for (var index in this.tasks) {\n if (this.tasks[index].id === id) {\n if (newData !== null) {\n this.tasks[index] = newData;\n } else {\n this.tasks.splice(index, 1);\n }\n }\n }\n this.tableKey++;\n },\n\n toggleAll: function toggleAll() {\n if (this.selected.length) this.selected = [];else this.selected = this.tasks.slice();\n },\n changeSort: function changeSort(column) {\n if (this.pagination.sortBy === column) {\n this.pagination.descending = !this.pagination.descending;\n } else {\n this.pagination.sortBy = column;\n this.pagination.descending = false;\n }\n },\n\n\n close: function close() {\n this.$emit('close');\n },\n\n cancelReservation: function cancelReservation() {\n this.cancel(this.reservation);\n },\n\n updateReservation: function updateReservation() {\n var newTime = [__WEBPACK_IMPORTED_MODULE_1_moment___default()(this.newStartDate + 'T' + this.newStartTime), __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.newEndDate + 'T' + this.newEndTime)];\n this.update(this.reservation, newTime, this.newTitle, this.newDescription);\n }\n }\n});\n\n/***/ }),\n/* 191 */,\n/* 192 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_moment__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__api__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n data: function data() {\n return {\n tableContent: {\n resources: {},\n header: [],\n hours: [],\n tableKey: 0\n },\n scheduleStart: '',\n scheduleEnd: '',\n resourcesIds: [],\n startMoment: {},\n tableKey: 0,\n picker: new Date().toISOString().substr(0, 10),\n menu: false,\n landscape: false,\n reactive: false,\n range: 7\n };\n },\n\n\n props: {\n parsedNodes: Array\n },\n\n watch: {\n parsedNodes: function parsedNodes() {\n this.fillTable();\n }\n },\n\n methods: {\n loadResources: function loadResources() {\n this.$emit('loadResources', this.tableContent.resources);\n },\n\n changeSchedule: function changeSchedule() {\n var start = __WEBPACK_IMPORTED_MODULE_0_moment___default()(this.picker + 'T00:00:00.000Z').add(this.adjustTimezone(), 'hours');\n this.startMoment = start;\n this.scheduleStart = start.toISOString();\n this.scheduleEnd = __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(this.range, 'days').toISOString();\n var header = [];\n header.push({ value: start.format('dddd, MMMM Do YYYY'), id: 1 });\n for (var i = 1; i < this.range; i++) {\n header.push({ value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(i, 'days').format('dddd, MMMM Do YYYY'), id: i + 1 });\n }\n var hours = [];\n for (var headerName in header) {\n for (i = 0; i < 24; i++) {\n hours.push({ value: i + ':00', id: headerName + ' hour ' + i });\n }\n }\n this.tableContent.header = header;\n this.tableContent.hours = hours;\n this.fillTable();\n },\n\n toggle: function toggle(resource) {\n resource.selected = !resource.selected;\n this.loadResources();\n this.forceRerenderTable();\n },\n\n fillTable: function fillTable() {\n this.resourceIds = [];\n this.tableContent.resources = {};\n for (var nodeIndex in this.parsedNodes) {\n var node = this.parsedNodes[nodeIndex];\n for (var resourceTypeIndex in node.resourceTypes) {\n var resourceType = node.resourceTypes[resourceTypeIndex];\n for (var resourceIndex in resourceType.resources) {\n var resource = resourceType.resources[resourceIndex];\n resource.name = resource.nodeName + ' GPU' + resourceIndex;\n resource['selected'] = false;\n this.resourcesIds.push(resource.resourceUUID);\n var slots = [];\n for (var i = 0; i < 48 * this.range; i++) {\n slots.push({ value: '', id: 'slot ' + i, reserved: false, userReservation: false });\n }\n resource['slots'] = slots;\n this.tableContent.resources[resource.resourceUUID] = resource;\n }\n }\n }\n this.getReservations();\n },\n\n getReservations: function getReservations() {\n var _this = this;\n\n var resourcesString = '';\n for (var i in this.resourcesIds) {\n resourcesString += this.resourcesIds[i] + ',';\n }\n resourcesString = resourcesString.slice(0, -1);\n __WEBPACK_IMPORTED_MODULE_1__api__[\"a\" /* default */].request('get', '/reservations?resources_ids=' + resourcesString + '&start=' + this.scheduleStart + '&end=' + this.scheduleEnd, this.$store.state.accessToken).then(function (response) {\n _this.parseData(response.data);\n }).catch(function (error) {\n _this.$emit('handleError', error);\n });\n },\n\n parseData: function parseData(data) {\n for (var i in data) {\n var start = __WEBPACK_IMPORTED_MODULE_0_moment___default()(data[i].start);\n var dayDifferenceStart = this.startMoment.diff(start, 'days');\n var hoursDifferenceStart = this.startMoment.diff(start, 'hours') % 24;\n var minutesDifferenceStart = this.startMoment.diff(start, 'minutes') % 60;\n if (minutesDifferenceStart !== 0) minutesDifferenceStart = 1;\n var end = __WEBPACK_IMPORTED_MODULE_0_moment___default()(data[i].end);\n var dayDifferenceEnd = this.startMoment.diff(end, 'days');\n var hoursDifferenceEnd = this.startMoment.diff(end, 'hours') % 24;\n var minutesDifferenceEnd = this.startMoment.diff(end, 'minutes') % 60;\n if (minutesDifferenceEnd !== 0) minutesDifferenceEnd = 1;\n var startSlot = -dayDifferenceStart * 48 - hoursDifferenceStart * 2 + minutesDifferenceStart;\n var endSlot = -dayDifferenceEnd * 48 - hoursDifferenceEnd * 2 + minutesDifferenceEnd;\n if (startSlot < 0) startSlot = 0;\n if (endSlot > 48 * this.range) endSlot = 48 * this.range;\n for (var slot = startSlot; slot < endSlot; slot++) {\n if (parseInt(this.$store.state.id) === parseInt(data[i].userId)) {\n this.tableContent.resources[data[i].resourceId].slots[slot].userReservation = true;\n } else {\n this.tableContent.resources[data[i].resourceId].slots[slot].reserved = true;\n }\n }\n this.forceRerenderTable();\n }\n },\n\n forceRerenderTable: function forceRerenderTable() {\n this.tableKey += 1;\n },\n\n adjustTimezone: function adjustTimezone() {\n var d = new Date();\n var v = d.getTimezoneOffset(); // in minutes for example GMT+1 = -60\n return v / 60;\n }\n },\n\n mounted: function mounted() {\n var start = __WEBPACK_IMPORTED_MODULE_0_moment___default()(new Date().toISOString()).add(this.adjustTimezone(), 'hours');\n this.startMoment = start;\n this.scheduleStart = start.toISOString();\n this.scheduleEnd = __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(7, 'days').toISOString();\n var header = [{ value: start.format('dddd, MMMM Do YYYY'), id: 1 }, { value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(1, 'days').format('dddd, MMMM Do YYYY'), id: 2 }, { value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(2, 'days').format('dddd, MMMM Do YYYY'), id: 3 }, { value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(3, 'days').format('dddd, MMMM Do YYYY'), id: 4 }, { value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(4, 'days').format('dddd, MMMM Do YYYY'), id: 5 }, { value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(5, 'days').format('dddd, MMMM Do YYYY'), id: 6 }, { value: __WEBPACK_IMPORTED_MODULE_0_moment___default()(start).add(6, 'days').format('dddd, MMMM Do YYYY'), id: 7 }];\n var hours = [];\n for (var headerName in header) {\n for (var i = 0; i < 24; i++) {\n hours.push({ value: i + ':00', id: headerName + ' hour ' + i });\n }\n }\n this.tableContent = {\n resources: {},\n header: header,\n hours: hours\n };\n }\n});\n\n/***/ }),\n/* 193 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__nodes_overview_WatchGenerator_vue__ = __webpack_require__(300);\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n WatchGenerator: __WEBPACK_IMPORTED_MODULE_0__nodes_overview_WatchGenerator_vue__[\"a\" /* default */]\n }\n});\n\n/***/ }),\n/* 194 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__ = __webpack_require__(302);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__WatchBox_vue__ = __webpack_require__(306);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash__);\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n WatchBox: __WEBPACK_IMPORTED_MODULE_2__WatchBox_vue__[\"a\" /* default */]\n },\n\n data: function data() {\n return {\n watches: [],\n chartDatasets: {},\n time: 5000,\n chartLength: 25,\n space: 2,\n interval: null,\n alert: false,\n errorMessage: '',\n updateChart: false,\n resourcesIndexes: {},\n watchIds: 3\n };\n },\n created: function created() {\n this.loadData();\n var self = this;\n this.interval = setInterval(function () {\n if (self.$route.fullPath !== '/nodes_overview') {\n clearInterval(self.interval);\n }\n self.changeData();\n }, this.time);\n },\n\n\n methods: {\n handleError: function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n this.errorMessage = error.message;\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n this.errorMessage = error.response.data;\n } else {\n this.errorMessage = error.response.data.msg;\n }\n }\n this.alert = true;\n },\n\n saveWatches: function saveWatches() {\n window.localStorage.setItem('watches', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(this.watches));\n window.localStorage.setItem('watchIds', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(this.watchIds));\n },\n changeDefaultNode: function changeDefaultNode(id, name) {\n for (var index in this.watches) {\n if (this.watches[index].id === id) {\n this.watches[index].defaultNode = name;\n }\n }\n this.saveWatches();\n },\n changeDefaultResourceType: function changeDefaultResourceType(id, name) {\n for (var index in this.watches) {\n if (this.watches[index].id === id) {\n this.watches[index].defaultResourceType = name;\n }\n }\n this.saveWatches();\n },\n changeDefaultMetric: function changeDefaultMetric(id, name) {\n for (var index in this.watches) {\n if (this.watches[index].id === id) {\n this.watches[index].defaultMetric = name;\n }\n }\n this.saveWatches();\n },\n deleteWatch: function deleteWatch(id) {\n for (var index in this.watches) {\n if (this.watches[index].id === id) {\n this.watches.splice(index, 1);\n }\n }\n this.saveWatches();\n },\n\n setColor: function setColor(node) {\n var color = '#123456';\n var step = node * 123456;\n var colorToInt = parseInt(color.substr(1), 16);\n var nstep = parseInt(step);\n if (!isNaN(colorToInt) && !isNaN(nstep)) {\n colorToInt += nstep;\n var ncolor = colorToInt.toString(16);\n ncolor = '#' + new Array(7 - ncolor.length).join(0) + ncolor;\n if (/^#[0-9a-f]{6}$/i.test(ncolor)) {\n return ncolor;\n }\n }\n return color;\n },\n\n loadData: function loadData() {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_3__api__[\"a\" /* default */].request('get', '/nodes/metrics', this.$store.state.accessToken).then(function (response) {\n if (JSON.parse(window.localStorage.getItem('watches')) === null) {\n _this.watches = [{\n id: 0,\n defaultNode: '',\n defaultResourceType: '',\n defaultMetric: 'gpu_util'\n }, {\n id: 1,\n defaultNode: '',\n defaultResourceType: '',\n defaultMetric: 'mem_used'\n }, {\n id: 2,\n defaultNode: '',\n defaultResourceType: '',\n defaultMetric: 'processes'\n }];\n } else {\n _this.watches = JSON.parse(window.localStorage.getItem('watches'));\n _this.watchIds = JSON.parse(window.localStorage.getItem('watchIds'));\n }\n _this.parseData(response.data);\n }).catch(function (error) {\n _this.handleError(error);\n });\n },\n\n isVisible: function isVisible(metric, metricName) {\n if (metric.value === null) {\n return false;\n } else {\n if (metricName === 'mem_total') return false;\n return true;\n }\n },\n\n parseData: function parseData(apiResponse) {\n var node, resourceType, metrics, resourceTypes, uniqueMetricNames;\n uniqueMetricNames = [];\n for (var nodeName in apiResponse) {\n resourceTypes = {};\n node = apiResponse[nodeName];\n if (node !== null) {\n for (var resourceTypeName in node) {\n uniqueMetricNames = [];\n resourceType = node[resourceTypeName];\n if (resourceType !== null) {\n metrics = this.findMetrics(resourceType);\n for (var metricName in metrics) {\n uniqueMetricNames.push(metricName);\n }\n resourceTypes[resourceTypeName] = {\n metrics: metrics,\n uniqueMetricNames: uniqueMetricNames\n };\n }\n }\n }\n this.chartDatasets[nodeName] = resourceTypes;\n }\n },\n\n findMetrics: function findMetrics(resourceType) {\n var resource, metric, tempMetrics, uniqueMetrics;\n tempMetrics = {};\n uniqueMetrics = {};\n for (var resourceUUID in resourceType) {\n if (resourceType[resourceUUID] !== null) {\n this.resourcesIndexes[resourceUUID] = resourceType[resourceUUID].index;\n resource = resourceType[resourceUUID];\n for (var metricName in resource.metrics) {\n if (isNaN(resource.metrics[metricName])) {\n metric = resource.metrics[metricName];\n metric['visible'] = this.isVisible(resource.metrics[metricName], metricName);\n } else {\n metric = {\n value: resource.metrics[metricName],\n unit: '',\n visible: this.isVisible(resource.metrics[metricName], metricName)\n };\n }\n if (uniqueMetrics.hasOwnProperty(metricName)) {\n if (uniqueMetrics[metricName].visible === false) {\n uniqueMetrics[metricName] = metric;\n }\n } else {\n uniqueMetrics[metricName] = metric;\n }\n }\n }\n }\n for (var uniqueMetricName in uniqueMetrics) {\n if (uniqueMetrics[uniqueMetricName].visible === true) {\n tempMetrics[uniqueMetricName] = this.createMetric(resourceType, uniqueMetricName);\n }\n }\n return tempMetrics;\n },\n\n createMetric: function createMetric(resourceType, metricName) {\n var labels, totalMemory, value, unit, datasets, orderedDatasets;\n labels = [];\n for (var i = (this.chartLength - 1) * this.time / 1000; i >= 0; i -= this.time / 1000) {\n if (i % ((this.space + 1) * this.time / 1000) === 0) {\n labels.push(i);\n } else {\n labels.push('');\n }\n }\n datasets = [];\n for (var resourceUUID in resourceType) {\n if (resourceType[resourceUUID].metrics[metricName] !== null && this.isVisible(resourceType[resourceUUID].metrics[metricName], metricName)) {\n value = isNaN(resourceType[resourceUUID].metrics[metricName]) ? resourceType[resourceUUID].metrics[metricName].value : resourceType[resourceUUID].metrics[metricName];\n unit = isNaN(resourceType[resourceUUID].metrics[metricName]) ? resourceType[resourceUUID].metrics[metricName].unit : '';\n totalMemory = resourceType[resourceUUID].metrics['mem_total'].value;\n datasets.push(this.createDataset(resourceUUID, 'GPU' + resourceType[resourceUUID].index, this.setColor(resourceType[resourceUUID].index + 1), value));\n }\n }\n orderedDatasets = __WEBPACK_IMPORTED_MODULE_4_lodash___default.a.orderBy(datasets, 'label');\n var obj = {\n metricName: metricName,\n data: {\n labels: labels,\n datasets: orderedDatasets\n },\n options: this.createOptions(totalMemory, metricName, unit)\n };\n return obj;\n },\n\n createDataset: function createDataset(uuid, label, color, data) {\n var defaultData = [];\n for (var i = 0; i < this.chartLength - 1; i++) {\n defaultData.push(0);\n }\n if (data !== null) {\n defaultData.push(data);\n } else {\n defaultData.push(-1);\n }\n var obj = {\n uuid: uuid,\n label: label,\n fill: true,\n borderColor: color,\n pointBackgroundColor: color,\n backgroundColor: 'rgba(0, 0, 0, 0)',\n data: defaultData\n };\n return obj;\n },\n\n createOptions: function createOptions(totalMemory, metricName, unit) {\n var obj = {\n responsive: true,\n maintainAspectRatio: false,\n legend: {\n position: 'bottom',\n display: true\n },\n tooltips: {\n mode: 'label',\n xPadding: 10,\n yPadding: 10,\n bodySpacing: 10\n },\n scales: {\n xAxes: [{\n scaleLabel: {\n display: true,\n labelString: 'seconds ago'\n }\n }],\n yAxes: [{\n id: 'y-axis-1',\n type: 'linear',\n position: 'left',\n scaleLabel: {\n display: true,\n labelString: ''\n }\n }]\n }\n };\n obj['scales']['yAxes'][0]['scaleLabel']['labelString'] = unit;\n if (metricName === 'mem_util' || metricName === 'gpu_util' || metricName === 'fan_speed') {\n obj['scales']['yAxes'][0]['ticks'] = {\n suggestedMin: 0,\n max: 100\n };\n }\n if (metricName === 'mem_used' || metricName === 'mem_free') {\n obj['scales']['yAxes'][0]['ticks'] = {\n suggestedMin: 0,\n suggestedMax: totalMemory\n };\n }\n return obj;\n },\n\n changeData: function changeData() {\n var node, counter;\n counter = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_object_keys___default()(this.chartDatasets).length;\n for (var nodeName in this.chartDatasets) {\n counter--;\n node = this.chartDatasets[nodeName];\n this.apiRequest(node, nodeName, counter);\n }\n },\n\n apiRequest: function apiRequest(node, nodeName, counter) {\n var _this2 = this;\n\n var metric, resourceType, value;\n var data = [];\n __WEBPACK_IMPORTED_MODULE_3__api__[\"a\" /* default */].request('get', '/nodes/' + nodeName + '/gpu/metrics', this.$store.state.accessToken).then(function (response) {\n data = response.data;\n for (var resourceTypeName in node) {\n resourceType = node[resourceTypeName];\n for (var metricName in resourceType.metrics) {\n metric = resourceType.metrics[metricName];\n for (var i = 0; i < metric.data.datasets.length; i++) {\n value = isNaN(data[metric.data.datasets[i].uuid][metric.metricName]) ? data[metric.data.datasets[i].uuid][metric.metricName].value : data[metric.data.datasets[i].uuid][metric.metricName];\n metric.data.datasets[i].data.shift();\n metric.data.datasets[i].data.push(value);\n }\n }\n }\n if (!counter) {\n _this2.updateChart = !_this2.updateChart;\n }\n }).catch(function (error) {\n _this2.handleError(error);\n });\n },\n\n addWatch: function addWatch() {\n this.watches.push({\n id: this.watchIds,\n defaultNode: '',\n defaultResourceType: '',\n defaultMetric: ''\n });\n this.watchIds++;\n this.saveWatches();\n }\n }\n});\n\n/***/ }),\n/* 195 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__LineChart_vue__ = __webpack_require__(308);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__api__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n LineChart: __WEBPACK_IMPORTED_MODULE_0__LineChart_vue__[\"a\" /* default */]\n },\n\n props: {\n defaultNode: String,\n defaultResourceType: String,\n defaultMetric: String,\n resourcesIndexes: Object,\n chartDatasets: Object,\n updateChart: Boolean,\n time: Number\n },\n\n data: function data() {\n return {\n selectedNode: '',\n nodes: [],\n selectedResourceType: '',\n resourceTypes: [],\n selectedMetric: '',\n metrics: [],\n rerenderChart: false,\n metricData: null,\n metricOptions: null,\n showProcesses: false,\n interval: null,\n headers: [{ text: 'GPU index', value: 'index' }, { text: 'owner', value: 'owner' }, { text: 'pid', value: 'pid' }, { text: 'command', value: 'command' }],\n processes: [],\n alert: false,\n errorMessage: ''\n };\n },\n\n\n methods: {\n sendDefaultNode: function sendDefaultNode(newDefault) {\n this.$emit('changeDefaultNode', newDefault);\n },\n sendDefaultResourceType: function sendDefaultResourceType(newDefault) {\n this.$emit('changeDefaultResourceType', newDefault);\n },\n sendDefaultMetric: function sendDefaultMetric(newDefault) {\n this.$emit('changeDefaultMetric', newDefault);\n },\n removeMe: function removeMe() {\n this.$emit('deleteWatch');\n },\n\n loadData: function loadData() {\n return this.chartDatasets[this.selectedNode][this.selectedResourceType].metrics[this.selectedMetric].data;\n },\n\n loadOptions: function loadOptions() {\n return this.chartDatasets[this.selectedNode][this.selectedResourceType].metrics[this.selectedMetric].options;\n },\n\n fillNodes: function fillNodes() {\n this.nodes = [];\n var nodes = this.chartDatasets;\n for (var nodeName in nodes) {\n this.nodes.push(nodeName);\n }\n if (this.defaultNode === '') {\n this.selectedNode = this.nodes[0];\n } else {\n this.selectedNode = this.defaultNode;\n }\n this.fillResourceTypes();\n },\n\n fillResourceTypes: function fillResourceTypes() {\n this.resourceTypes = [];\n var resourceTypes = this.chartDatasets[this.selectedNode];\n for (var resourceTypeName in resourceTypes) {\n this.resourceTypes.push(resourceTypeName);\n }\n if (this.defaultResourceType === '') {\n this.selectedResourceType = this.resourceTypes[0];\n } else {\n this.selectedResourceType = this.defaultResourceType;\n }\n this.fillMetrics();\n },\n\n fillMetrics: function fillMetrics() {\n this.metrics = [];\n var metrics = this.chartDatasets[this.selectedNode][this.selectedResourceType].uniqueMetricNames;\n for (var metricIndex in metrics) {\n this.metrics.push(metrics[metricIndex]);\n }\n this.metrics.push('processes');\n if (this.defaultMetric === '') {\n var metric = this.metrics[0];\n for (metricIndex in this.metrics) {\n var metricName = this.metrics[metricIndex];\n if (metricName === 'gpu_util') {\n metric = metricName;\n break;\n } else if (metricName === 'mem_used') {\n metric = metricName;\n }\n }\n this.selectedMetric = metric;\n } else {\n this.selectedMetric = this.defaultMetric;\n }\n },\n\n checkProcesses: function checkProcesses() {\n var _this = this;\n\n var data, processes, tempProcess;\n processes = [];\n __WEBPACK_IMPORTED_MODULE_1__api__[\"a\" /* default */].request('get', '/nodes/' + this.selectedNode + '/gpu/processes', this.$store.state.accessToken).then(function (response) {\n data = response.data;\n for (var resourceUUID in data) {\n if (data[resourceUUID] !== null) {\n for (var i = 0; i < data[resourceUUID].length; i++) {\n tempProcess = data[resourceUUID][i];\n tempProcess['index'] = _this.resourcesIndexes[resourceUUID];\n tempProcess['uuid'] = resourceUUID;\n processes.push(tempProcess);\n }\n }\n }\n _this.processes = processes;\n }).catch(function (error) {\n if (!error.hasOwnProperty('response')) {\n _this.errorMessage = error.message;\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n _this.errorMessage = error.response.data;\n } else {\n _this.errorMessage = error.response.data.msg;\n }\n }\n _this.alert = true;\n });\n }\n },\n\n watch: {\n selectedNode: function selectedNode() {\n this.sendDefaultNode(this.selectedNode);\n this.fillResourceTypes();\n },\n selectedResourceType: function selectedResourceType() {\n this.sendDefaultResourceType(this.selectedResourceType);\n this.fillMetrics();\n },\n selectedMetric: function selectedMetric() {\n this.sendDefaultMetric(this.selectedMetric);\n if (this.selectedMetric === 'processes') {\n this.checkProcesses();\n var self = this;\n this.interval = setInterval(function () {\n if (self.$route.fullPath !== '/nodes_overview') {\n clearInterval(self.interval);\n }\n self.checkProcesses();\n }, this.time);\n this.showProcesses = true;\n } else {\n this.showProcesses = false;\n this.metricData = this.loadData();\n this.metricOptions = this.loadOptions();\n this.rerenderChart = !this.rerenderChart;\n if (this.interval !== null) {\n clearInterval(this.interval);\n }\n }\n }\n },\n\n created: function created() {\n this.fillNodes();\n }\n});\n\n/***/ }),\n/* 196 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_chartjs__ = __webpack_require__(309);\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n extends: __WEBPACK_IMPORTED_MODULE_0_vue_chartjs__[\"a\" /* Line */],\n props: {\n chartData: Object,\n options: Object,\n rerenderChart: Boolean,\n updateChart: Boolean\n },\n\n watch: {\n rerenderChart: function rerenderChart() {\n this.$data._chart.destroy();\n this.renderChart(this.chartData, this.options);\n },\n updateChart: function updateChart() {\n this.$data._chart.update();\n }\n },\n\n mounted: function mounted() {\n // this.chartData is created in the mixin.\n // If you want to pass options please create a local options object\n this.renderChart(this.chartData, this.options);\n }\n});\n\n/***/ }),\n/* 197 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_moment__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__tasks_overview_TaskCreate_vue__ = __webpack_require__(318);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__tasks_overview_TaskEdit_vue__ = __webpack_require__(327);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__tasks_overview_TaskSchedule_vue__ = __webpack_require__(330);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__tasks_overview_TaskLog_vue__ = __webpack_require__(333);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n TaskCreate: __WEBPACK_IMPORTED_MODULE_2__tasks_overview_TaskCreate_vue__[\"a\" /* default */],\n TaskEdit: __WEBPACK_IMPORTED_MODULE_3__tasks_overview_TaskEdit_vue__[\"a\" /* default */],\n TaskSchedule: __WEBPACK_IMPORTED_MODULE_4__tasks_overview_TaskSchedule_vue__[\"a\" /* default */],\n TaskLog: __WEBPACK_IMPORTED_MODULE_5__tasks_overview_TaskLog_vue__[\"a\" /* default */]\n },\n data: function data() {\n return {\n pagination: {\n sortBy: 'name'\n },\n selected: [],\n headers: [{ text: 'ID', value: 'id' }, { text: 'Hostname', value: 'hostname' }, { text: 'Command', value: 'command' }, { text: 'Pid', value: 'pid' }, { text: 'Status', value: 'status' }, { text: 'Spawn at', value: 'spawnAt' }, { text: 'Terminate at', value: 'terminateAt' }, { text: 'Actions', value: 'id', sortable: false }],\n tasks: [],\n hostnames: [],\n hosts: {},\n showModalCreate: false,\n showModalEdit: false,\n showModalSchedule: false,\n showModalHowItWorks: false,\n showModalRemove: false,\n showModalLog: false,\n taskId: -1,\n newHostname: '',\n newCommand: '',\n newSpawnTime: '',\n newTerminateTime: '',\n tableKey: 0,\n interval: null,\n time: 60000,\n initialSyncFlag: false,\n snackbar: false,\n snackbarError: false,\n errorMessage: '',\n selectedIndex: 0,\n actionFlag: false,\n multipleFlag: false,\n logs: [],\n path: '',\n actionType: '',\n gracefully: null\n };\n },\n\n\n watch: {\n initialSyncFlag: function initialSyncFlag() {\n this.getTasks(true);\n }\n },\n\n created: function created() {\n var self = this;\n this.interval = setInterval(function () {\n if (self.$route.fullPath !== '/tasks_overview') {\n clearInterval(self.interval);\n }\n self.getTasks(true);\n }, this.time);\n },\n mounted: function mounted() {\n this.getHosts();\n this.getTasks(false);\n },\n\n\n methods: {\n handleError: function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n this.showError(error.message);\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n this.showError(error.response.data);\n } else {\n this.showError(error.response.data.msg);\n }\n }\n },\n\n showError: function showError(message) {\n this.errorMessage = message;\n this.snackbarError = true;\n },\n prettyDate: function prettyDate(date) {\n if (date !== null) {\n return __WEBPACK_IMPORTED_MODULE_1_moment___default()(date).format('dddd, MMMM Do, HH:mm');\n } else {\n return null;\n }\n },\n changeActionFlag: function changeActionFlag(bool) {\n this.actionFlag = bool;\n },\n changeSnackbar: function changeSnackbar(bool) {\n this.snackbar = bool;\n },\n toggleAll: function toggleAll() {\n if (this.selected.length) this.selected = [];else this.selected = this.tasks.slice();\n },\n changeSort: function changeSort(column) {\n if (this.pagination.sortBy === column) {\n this.pagination.descending = !this.pagination.descending;\n } else {\n this.pagination.sortBy = column;\n this.pagination.descending = false;\n }\n },\n\n\n getHosts: function getHosts() {\n var _this = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/nodes/hostnames', this.$store.state.accessToken).then(function (response) {\n _this.hostnames = response.data;\n });\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/nodes/metrics', this.$store.state.accessToken).then(function (response) {\n _this.convertHostsInfo(response.data);\n });\n },\n\n convertHostsInfo: function convertHostsInfo(hostsInfo) {\n var hosts = {};\n for (var hostname in hostsInfo) {\n var host = hostsInfo[hostname];\n var resources = ['CPU'];\n for (var gpuUUID in host.GPU) {\n resources.push('GPU' + host.GPU[gpuUUID].index);\n }\n hosts[hostname] = { resources: resources };\n }\n this.hosts = hosts;\n },\n\n getTasks: function getTasks(sync) {\n var _this2 = this;\n\n if (!this.actionFlag) {\n this.snackbar = true;\n this.actionFlag = true;\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks?userId=' + this.$store.state.id + '&syncAll=' + sync, this.$store.state.accessToken).then(function (response) {\n _this2.snackbar = false;\n _this2.actionFlag = false;\n _this2.tasks = response.data.tasks;\n if (!sync) {\n _this2.initialSyncFlag = !_this2.initialSyncFlag;\n }\n }).catch(function (error) {\n _this2.handleError(error);\n _this2.snackbar = false;\n _this2.actionFlag = false;\n });\n }\n },\n\n spawnTasks: function spawnTasks(id) {\n this.actionType = 'spawn';\n this.prepareActionLoop(id);\n },\n\n terminateTasks: function terminateTasks(id, gracefully) {\n this.gracefully = gracefully;\n this.actionType = 'terminate';\n this.prepareActionLoop(id);\n },\n\n prepareActionLoop: function prepareActionLoop(id, actionType) {\n if (id !== null) {\n this.multipleFlag = false;\n this.taskId = id;\n } else {\n this.multipleFlag = true;\n }\n if (!this.actionFlag) {\n if (!this.multipleFlag) {\n this.actionFlag = true;\n this.snackbar = true;\n this.actionLoop();\n } else if (this.selected.length) {\n this.actionFlag = true;\n this.snackbar = true;\n this.actionLoop();\n }\n }\n },\n\n actionLoop: function actionLoop() {\n var _this3 = this;\n\n var id;\n if (this.multipleFlag) {\n id = this.selected[this.selectedIndex].id;\n } else {\n id = this.taskId;\n }\n var actionPath;\n switch (this.actionType) {\n case 'spawn':\n actionPath = '/tasks/' + id + '/spawn';break;\n case 'terminate':\n actionPath = '/tasks/' + id + '/terminate?gracefully=' + this.gracefully;break;\n }\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', actionPath, this.$store.state.accessToken).then(function (response) {\n _this3.getTaskLoop(id);\n }).catch(function (error) {\n _this3.handleError(error);\n _this3.getTaskLoop(id);\n });\n },\n\n getTaskLoop: function getTaskLoop(id, actionType) {\n var _this4 = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks/' + id, this.$store.state.accessToken).then(function (response) {\n _this4.updateTask(id, response.data.task);\n _this4.resumeLoop();\n }).catch(function (error) {\n _this4.handleError(error);\n _this4.resumeLoop();\n });\n },\n\n resumeLoop: function resumeLoop() {\n if (this.multipleFlag) {\n this.selectedIndex++;\n if (this.selectedIndex < this.selected.length) {\n switch (this.actionType) {\n case 'spawn':\n this.actionLoop();break;\n case 'terminate':\n this.actionLoop();break;\n }\n } else {\n this.selectedIndex = 0;\n this.snackbar = false;\n this.actionFlag = false;\n }\n } else {\n this.snackbar = false;\n this.actionFlag = false;\n }\n },\n\n scheduleTasks: function scheduleTasks(task) {\n if (task != null) {\n this.multipleFlag = false;\n this.taskId = task.id;\n this.newSpawnTime = task.spawnAt;\n this.newTerminateTime = task.terminateAt;\n } else {\n this.multipleFlag = true;\n }\n if (!this.multipleFlag) {\n this.showModalSchedule = true;\n } else if (this.selected.length) {\n this.showModalSchedule = true;\n }\n },\n\n editTask: function editTask(task) {\n this.taskId = task.id;\n this.newHostname = task.hostname;\n this.newCommand = task.command;\n this.showModalEdit = true;\n },\n\n getTask: function getTask(id) {\n var _this5 = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks/' + id, this.$store.state.accessToken).then(function (response) {\n _this5.updateTask(id, response.data.task);\n _this5.snackbar = false;\n _this5.actionFlag = false;\n }).catch(function (error) {\n _this5.handleError(error);\n _this5.snackbar = false;\n _this5.actionFlag = false;\n });\n },\n\n updateTask: function updateTask(id, newData) {\n for (var index in this.tasks) {\n if (this.tasks[index].id === id) {\n if (newData !== null) {\n this.tasks[index] = newData;\n } else {\n this.tasks.splice(index, 1);\n }\n }\n }\n this.tableKey++;\n },\n\n showConfirmationDialog: function showConfirmationDialog(id) {\n this.taskId = id;\n this.showModalRemove = true;\n },\n\n\n removeTask: function removeTask() {\n var _this6 = this;\n\n var id = this.taskId;\n if (!this.actionFlag) {\n this.snackbar = true;\n this.actionFlag = true;\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('delete', '/tasks/' + id, this.$store.state.accessToken).then(function (response) {\n _this6.showModalRemove = false;\n _this6.snackbar = false;\n _this6.actionFlag = false;\n _this6.updateTask(id, null);\n }).catch(function (error) {\n _this6.handleError(error);\n _this6.snackbar = false;\n _this6.actionFlag = false;\n });\n }\n },\n\n getLog: function getLog(id) {\n var _this7 = this;\n\n if (!this.actionFlag) {\n this.snackbar = true;\n this.actionFlag = true;\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks/' + id + '/log', this.$store.state.accessToken).then(function (response) {\n _this7.logs = response.data.stdout_lines;\n _this7.path = response.data.path;\n _this7.showModalLog = true;\n _this7.snackbar = false;\n _this7.actionFlag = false;\n }).catch(function (error) {\n _this7.handleError(error);\n _this7.snackbar = false;\n _this7.actionFlag = false;\n });\n }\n }\n }\n});\n\n/***/ }),\n/* 198 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__TaskLine_vue__ = __webpack_require__(320);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n TaskLine: __WEBPACK_IMPORTED_MODULE_1__TaskLine_vue__[\"a\" /* default */]\n },\n\n props: {\n showModal: Boolean,\n hostnames: Array,\n hosts: Object,\n actionFlag: Boolean\n },\n\n data: function data() {\n return {\n newParameter: '',\n linesIds: 1,\n lines: [{\n id: 0,\n host: '',\n resource: '',\n command: '',\n parameters: [],\n parameterIds: 0\n }]\n };\n },\n\n\n methods: {\n close: function close() {\n this.$emit('close');\n },\n\n addTasks: function addTasks() {\n var _this = this;\n\n for (var lineIndex in this.lines) {\n var line = this.lines[lineIndex];\n var command = this.convertResource(line.resource) + ' ' + line.command;\n for (var parameterIndex in line.parameters) {\n var parameter = line.parameters[parameterIndex];\n command += ' ' + parameter.parameter + ' ' + parameter.value;\n }\n var task = {\n userId: this.$store.state.id,\n hostname: line.host,\n command: command\n };\n if (!this.actionFlag) {\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('post', '/tasks', this.$store.state.accessToken, task).then(function (response) {\n _this.close();\n _this.$emit('getTasks', false);\n });\n }\n }\n },\n\n addParameter: function addParameter() {\n for (var line in this.lines) {\n var parameter = {\n id: this.lines[line].parameterIds,\n parameter: this.newParameter,\n value: ''\n };\n this.lines[line].parameterIds++;\n this.lines[line].parameters.push(parameter);\n }\n },\n\n copyLine: function copyLine() {\n if (this.lines.length === 0) {\n this.addLine();\n } else {\n var lineToCopy = this.lines[this.lines.length - 1];\n var parametersToCopy = lineToCopy.parameters;\n var newParameters = [];\n for (var index in parametersToCopy) {\n var parameterToCopy = parametersToCopy[index];\n var newParameter = {\n id: index,\n parameter: parameterToCopy.parameter,\n value: parameterToCopy.value\n };\n newParameters.push(newParameter);\n }\n var line = {\n id: this.linesIds,\n host: lineToCopy.host,\n resource: lineToCopy.resource,\n command: lineToCopy.command,\n parameters: newParameters\n };\n this.linesIds++;\n this.lines.push(line);\n }\n },\n\n addLine: function addLine() {\n var line = {\n id: this.linesIds,\n host: '',\n resource: '',\n command: '',\n parameters: []\n };\n this.linesIds++;\n this.lines.push(line);\n },\n\n changeLine: function changeLine(id, host, resource, command, parameters) {\n for (var index in this.lines) {\n if (this.lines[index].id === id) {\n this.lines[index].host = host;\n this.lines[index].resource = resource;\n this.lines[index].command = command;\n this.lines[index].parameters = parameters;\n }\n }\n },\n\n deleteLine: function deleteLine(id) {\n for (var index in this.lines) {\n if (this.lines[index].id === id) {\n this.lines.splice(index, 1);\n }\n }\n },\n\n convertResource: function convertResource(resource) {\n if (resource !== '' && resource !== null) {\n if (resource === 'CPU') {\n return 'CUDA_VISIBLE_DEVICES=';\n } else {\n return 'CUDA_VISIBLE_DEVICES=' + resource[3];\n }\n } else {\n return '';\n }\n }\n }\n});\n\n/***/ }),\n/* 199 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__TaskLineParameter_vue__ = __webpack_require__(322);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n TaskLineParameter: __WEBPACK_IMPORTED_MODULE_0__TaskLineParameter_vue__[\"a\" /* default */]\n },\n\n props: {\n hostnames: Array,\n hosts: Object,\n host: String,\n resource: String,\n command: String,\n parameters: Array\n },\n\n data: function data() {\n return {\n newHost: '',\n newResource: '',\n newCommand: '',\n newParameters: [{\n id: 0,\n parameter: '',\n value: ''\n }],\n showModal: false\n };\n },\n created: function created() {\n this.newHost = this.host;\n this.newResource = this.resource;\n this.newCommand = this.command;\n this.newParameters = this.parameters;\n this.parameterIds = this.parameters.length;\n },\n\n\n computed: {\n hostResources: function hostResources() {\n if (this.newHost !== '') {\n return this.hosts[this.newHost].resources;\n } else {\n return [];\n }\n },\n taskPreview: function taskPreview() {\n var parameters = '';\n for (var index in this.parameters) {\n parameters += this.parameters[index].parameter + this.parameters[index].value + ' ';\n }\n return this.host + ' ' + this.convertResource(this.resource) + ' ' + this.command + ' ' + parameters;\n }\n },\n\n watch: {\n newHost: function newHost() {\n this.newResource = this.hosts[this.newHost].resources[0];\n this.updateLine();\n },\n newResource: function newResource() {\n this.updateLine();\n },\n newCommand: function newCommand() {\n this.updateLine();\n },\n newParameters: function newParameters() {\n this.updateLine();\n }\n },\n\n methods: {\n convertResource: function convertResource(resource) {\n if (resource !== '' && resource !== null) {\n if (resource === 'CPU') {\n return 'CUDA_VISIBLE_DEVICES=';\n } else {\n return 'CUDA_VISIBLE_DEVICES=' + resource[3];\n }\n } else {\n return '';\n }\n },\n\n\n changeParameter: function changeParameter(id, parameter, value) {\n for (var index in this.parameters) {\n if (this.parameters[index].id === id) {\n this.parameters[index].parameter = parameter;\n this.parameters[index].value = value;\n }\n }\n },\n\n deleteParameter: function deleteParameter(id) {\n for (var index in this.parameters) {\n if (this.parameters[index].id === id) {\n this.parameters.splice(index, 1);\n }\n }\n },\n\n updateLine: function updateLine() {\n this.$emit('changeLine', this.newHost, this.newResource, this.newCommand, this.newParameters);\n },\n\n removeMe: function removeMe() {\n this.$emit('deleteLine');\n }\n }\n});\n\n/***/ }),\n/* 200 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n props: {\n parameter: String,\n value: String\n },\n\n data: function data() {\n return {\n newParameter: '',\n newValue: ''\n };\n },\n created: function created() {\n this.newParameter = this.parameter;\n this.newValue = this.value;\n },\n\n\n watch: {\n newParameter: function newParameter() {\n this.$emit('changeParameter', this.newParameter, this.newValue);\n },\n newValue: function newValue() {\n this.$emit('changeParameter', this.newParameter, this.newValue);\n }\n },\n\n methods: {\n removeMe: function removeMe() {\n this.$emit('deleteParameter');\n }\n }\n});\n\n/***/ }),\n/* 201 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n props: {\n showModal: Boolean,\n taskId: Number,\n hostname: String,\n command: String,\n actionFlag: Boolean\n },\n\n data: function data() {\n return {\n newHost: '',\n newCommand: ''\n };\n },\n\n\n watch: {\n hostname: function hostname() {\n this.newHost = this.hostname;\n },\n command: function command() {\n this.newCommand = this.command;\n }\n },\n\n methods: {\n changeTask: function changeTask() {\n var _this = this;\n\n var newTask = {\n hostname: this.newHost,\n command: this.newCommand\n };\n if (!this.actionFlag) {\n this.$emit('changeActionFlag', true);\n this.$emit('changeSnackbar', true);\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('put', '/tasks/' + this.taskId, this.$store.state.accessToken, newTask).then(function (response) {\n _this.close();\n _this.$emit('getTask', _this.taskId, true);\n });\n }\n },\n\n close: function close() {\n this.$emit('close');\n }\n }\n});\n\n/***/ }),\n/* 202 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_moment__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n props: {\n showModal: Boolean,\n taskId: Number,\n spawnTime: String,\n terminateTime: String,\n actionFlag: Boolean,\n multipleFlag: Boolean,\n selected: Array\n },\n\n data: function data() {\n return {\n spawnTimeMenu: false,\n spawnDateMenu: false,\n terminateTimeMenu: false,\n terminateDateMenu: false,\n spawn: false,\n terminate: false,\n newSpawnDate: '',\n newSpawnTime: '',\n newTerminateDate: '',\n newTerminateTime: '',\n selectedIndex: 0\n };\n },\n\n\n watch: {\n spawnTime: function spawnTime() {\n if (this.spawnTime !== null) {\n this.newSpawnDate = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.spawnTime).format('YYYY-MM-DD');\n this.newSpawnTime = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.spawnTime).format('HH:mm');\n } else {\n this.newSpawnDate = '';\n this.newSpawnTime = '';\n }\n },\n terminateTime: function terminateTime() {\n if (this.terminateTime !== null) {\n this.newTerminateDate = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.terminateTime).format('YYYY-MM-DD');\n this.newTerminateTime = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.terminateTime).format('HH:mm');\n } else {\n this.newTerminateDate = '';\n this.newTerminateTime = '';\n }\n }\n },\n\n methods: {\n actionSave: function actionSave() {\n this.$refs.menu.save(this.newSpawnTime);\n },\n\n checkActionFlag: function checkActionFlag() {\n if (this.actionFlag === false) {\n this.$emit('changeActionFlag', true);\n this.$emit('changeSnackbar', true);\n this.scheduleTasks();\n }\n },\n\n scheduleTasks: function scheduleTasks() {\n var _this = this;\n\n var newTask = {};\n if (this.newSpawnTime !== '' && this.newSpawnTime !== null && this.newSpawnTime !== undefined) {\n newTask['spawnAt'] = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.newSpawnDate + 'T' + this.newSpawnTime).toISOString();\n }\n if (this.newTerminateTime !== '' && this.newTerminateTime !== null && this.newTerminateTime !== undefined) {\n newTask['terminateAt'] = __WEBPACK_IMPORTED_MODULE_1_moment___default()(this.newTerminateDate + 'T' + this.newTerminateTime).toISOString();\n }\n if (!this.spawn) {\n newTask['spawnAt'] = null;\n }\n if (!this.terminate) {\n newTask['terminateAt'] = null;\n }\n var id;\n if (this.multipleFlag) {\n id = this.selected[this.selectedIndex].id;\n } else {\n id = this.taskId;\n }\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('put', '/tasks/' + id, this.$store.state.accessToken, newTask).then(function (response) {\n _this.close();\n _this.getTask(id);\n }).catch(function (error) {\n _this.$emit('handleError', error);\n _this.close();\n _this.getTask(id);\n });\n },\n\n getTask: function getTask(id) {\n var _this2 = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/tasks/' + id, this.$store.state.accessToken).then(function (response) {\n _this2.$emit('updateTask', id, response.data.task);\n if (_this2.multipleFlag) {\n _this2.selectedIndex++;\n if (_this2.selectedIndex < _this2.selected.length) {\n _this2.scheduleTasks();\n } else {\n _this2.selectedIndex = 0;\n _this2.$emit('changeActionFlag', false);\n _this2.$emit('changeSnackbar', false);\n }\n } else {\n _this2.$emit('changeActionFlag', false);\n _this2.$emit('changeSnackbar', false);\n }\n }).catch(function (error) {\n _this2.$emit('handleError', error);\n if (_this2.multipleFlag) {\n _this2.selectedIndex++;\n if (_this2.selectedIndex < _this2.selected.length) {\n _this2.scheduleTasks();\n } else {\n _this2.selectedIndex = 0;\n _this2.$emit('changeActionFlag', false);\n _this2.$emit('changeSnackbar', false);\n }\n } else {\n _this2.$emit('changeActionFlag', false);\n _this2.$emit('changeSnackbar', false);\n }\n });\n },\n\n close: function close() {\n this.$emit('close');\n }\n }\n});\n\n/***/ }),\n/* 203 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n props: {\n showModal: Boolean,\n lines: Array,\n path: String\n },\n\n methods: {\n close: function close() {\n this.$emit('close');\n }\n }\n});\n\n/***/ }),\n/* 204 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_moment___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_moment__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n data: function data() {\n return {\n dialog: false,\n search: '',\n pagination: {},\n selected: [],\n headers: [{ text: 'User id', value: 'id' }, { text: 'Username', value: 'username' }, { text: 'Email', value: 'email' }, { text: 'Created at', value: 'createdAt' }, { text: 'Role', value: 'role' }, { text: 'Actions', value: 'id' }],\n users: [],\n user: {\n id: -1,\n username: '',\n email: '',\n password: '',\n password2: '',\n roles: []\n },\n currentUser: {},\n time: 1000,\n alert: false,\n errorMessage: '',\n userCheckbox: false,\n adminCheckbox: false,\n modalUsername: '',\n modalEmail: '',\n modalPassword: '',\n modalPassword2: '',\n modalAlert: false,\n showModalRemove: false,\n userId: -1,\n created: false,\n showModal: false\n };\n },\n\n\n computed: {\n pages: function pages() {\n if (this.pagination.rowsPerPage == null || this.pagination.totalItems == null) return 0;\n\n return Math.ceil(this.pagination.totalItems / this.pagination.rowsPerPage);\n }\n },\n\n mounted: function mounted() {\n this.checkUsers();\n },\n\n\n methods: {\n prettyDate: function prettyDate(date) {\n if (date !== null) {\n return __WEBPACK_IMPORTED_MODULE_1_moment___default()(date).format('dddd, MMMM Do, HH:mm');\n } else {\n return null;\n }\n },\n\n\n handleError: function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n this.errorMessage = error.message;\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n this.errorMessage = error.response.data;\n } else {\n this.errorMessage = error.response.data.msg;\n }\n }\n },\n\n createUser: function createUser() {\n var _this = this;\n\n if (this.modalPassword === this.modalPassword2) {\n var modalUsername = this.modalUsername,\n modalEmail = this.modalEmail,\n modalPassword = this.modalPassword;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('post', '/user/create', this.$store.state.accessToken, { 'username': modalUsername, 'email': modalEmail, 'password': modalPassword }).then(function (response) {\n _this.showModal = false;\n _this.created = true;\n _this.checkUsers();\n }).catch(function (error) {\n _this.handleError(error);\n _this.modalAlert = true;\n });\n } else {\n this.errorMessage = 'Passwords do not match';\n this.modalAlert = true;\n }\n },\n\n\n editUser: function editUser(currentUser) {\n this.dialog = true;\n this.user.id = currentUser.id;\n this.user.username = currentUser.username;\n this.user.email = currentUser.email;\n var admin = false;\n for (var role in currentUser.roles) {\n if (currentUser.roles[role] === 'admin') {\n admin = true;\n }\n }\n this.adminCheckbox = admin;\n this.currentUser = currentUser;\n },\n\n updateUser: function updateUser() {\n var _this2 = this;\n\n if (this.user.password === this.user.password2) {\n if (this.adminCheckbox) {\n this.user.roles.push('admin');\n }\n this.user.roles.push('user');\n var updatedUser = {\n id: this.user.id\n };\n if (this.user.username !== this.currentUser.username && this.user.username !== '') {\n updatedUser['username'] = this.user.username;\n }\n if (this.user.email !== this.currentUser.email && this.user.email !== '') {\n updatedUser['email'] = this.user.email;\n }\n if (this.user.password !== '') {\n updatedUser['password'] = this.user.password;\n }\n if (this.user.roles.length !== this.currentUser.roles.length) {\n updatedUser['roles'] = this.user.roles;\n }\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('put', '/user', this.$store.state.accessToken, updatedUser).then(function (response) {\n _this2.user = {\n id: -1,\n username: '',\n email: '',\n password: '',\n password2: '',\n roles: []\n };\n _this2.adminCheckbox = false;\n _this2.userCheckbox = false;\n _this2.dialog = false;\n _this2.checkUsers();\n }).catch(function (error) {\n _this2.pagination = {};\n _this2.handleError(error);\n _this2.alert = true;\n });\n } else {\n this.errorMessage = 'Passwords do not match';\n this.alert = true;\n }\n },\n checkUsers: function checkUsers() {\n var _this3 = this;\n\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('get', '/users', this.$store.state.accessToken).then(function (response) {\n _this3.users = response.data;\n for (var user in _this3.users) {\n var admin = false;\n for (var role in _this3.users[user].roles) {\n if (_this3.users[user].roles[role] === 'admin') {\n admin = true;\n }\n }\n if (admin) {\n _this3.users[user]['role'] = 'admin';\n } else {\n _this3.users[user]['role'] = 'user';\n }\n }\n _this3.pagination['totalItems'] = _this3.users.length;\n _this3.pagination['rowsPerPage'] = 30;\n }).catch(function (error) {\n _this3.pagination = {};\n _this3.handleError(error);\n _this3.alert = true;\n });\n },\n\n showConfirmationDialog: function showConfirmationDialog(id) {\n this.userId = id;\n this.showModalRemove = true;\n },\n\n\n removeUser: function removeUser() {\n var _this4 = this;\n\n var userId = this.userId;\n __WEBPACK_IMPORTED_MODULE_0__api__[\"a\" /* default */].request('delete', '/user/delete/' + userId, this.$store.state.accessToken).then(function (response) {\n _this4.showModalRemove = false;\n _this4.checkUsers();\n }).catch(function (error) {\n _this4.handleError(error);\n _this4.alert = true;\n });\n }\n }\n});\n\n/***/ }),\n/* 205 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'App',\n\n data: function data() {\n return {\n section: 'Head'\n };\n }\n});\n\n/***/ }),\n/* 206 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__ = __webpack_require__(207);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_es6_promise_auto__ = __webpack_require__(242);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_es6_promise_auto___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_es6_promise_auto__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_vue_router__ = __webpack_require__(246);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vuex_router_sync__ = __webpack_require__(247);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_vuex_router_sync___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_vuex_router_sync__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__routes__ = __webpack_require__(248);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__store__ = __webpack_require__(340);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__api__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__filters__ = __webpack_require__(345);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_App_vue__ = __webpack_require__(346);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_vuetify__ = __webpack_require__(348);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_vuetify___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_vuetify__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_vuetify_dist_vuetify_min_css__ = __webpack_require__(349);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_vuetify_dist_vuetify_min_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_vuetify_dist_vuetify_min_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_material_design_icons_iconfont_dist_material_design_icons_css__ = __webpack_require__(350);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_material_design_icons_iconfont_dist_material_design_icons_css___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_material_design_icons_iconfont_dist_material_design_icons_css__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_axios__ = __webpack_require__(51);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_axios___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_axios__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__config__ = __webpack_require__(31);\n\n\n// Import ES6 Promise\n\n\n// Import System requirements\n\n\n\n\n\n\n\n\n// Import Helpers for filters\n\n\n// Import Views - Top level\n\n\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_14_axios___default.a.get('static/config.json').then(function (response) {\n __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].serverURI = response.data.apiPath;\n __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].apiVersion = response.data.apiVersion;\n __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].version = response.data.version;\n if (window.localStorage) {\n var apiVersion = JSON.parse(window.localStorage.getItem('apiVersion'));\n var version = JSON.parse(window.localStorage.getItem('version'));\n if (apiVersion === null) {\n if (__WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].apiVersion !== undefined) {\n window.localStorage.setItem('apiVersion', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(__WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].apiVersion));\n } else {\n window.localStorage.setItem('apiVersion', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()('no data in config file'));\n }\n } else if (apiVersion !== __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].apiVersion) {\n window.localStorage.clear();\n location.reload(true);\n }\n if (version === null) {\n if (__WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].version !== undefined) {\n window.localStorage.setItem('version', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()(__WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].apiVersion));\n } else {\n window.localStorage.setItem('version', __WEBPACK_IMPORTED_MODULE_1_babel_runtime_core_js_json_stringify___default()('no data in config file'));\n }\n } else if (version !== __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].version) {\n window.localStorage.clear();\n location.reload(true);\n }\n }\n\n __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_11_vuetify___default.a);\n\n // Import Install and register helper items\n __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"].filter('count', __WEBPACK_IMPORTED_MODULE_9__filters__[\"a\" /* count */]);\n __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"].filter('domain', __WEBPACK_IMPORTED_MODULE_9__filters__[\"b\" /* domain */]);\n __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"].filter('prettyDate', __WEBPACK_IMPORTED_MODULE_9__filters__[\"d\" /* prettyDate */]);\n __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"].filter('pluralize', __WEBPACK_IMPORTED_MODULE_9__filters__[\"c\" /* pluralize */]);\n\n __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_4_vue_router__[\"a\" /* default */]);\n\n // Routing logic\n var router = new __WEBPACK_IMPORTED_MODULE_4_vue_router__[\"a\" /* default */]({\n routes: __WEBPACK_IMPORTED_MODULE_6__routes__[\"a\" /* default */],\n mode: 'history',\n linkExactActiveClass: 'active',\n scrollBehavior: function scrollBehavior(to, from, savedPosition) {\n return savedPosition || { x: 0, y: 0 };\n }\n });\n\n // Some middleware to help us ensure the user is authenticated.\n router.beforeEach(function (to, from, next) {\n if (to.matched.some(function (record) {\n return record.meta.requiresAuth;\n }) && (!router.app.$store.state.accessToken || router.app.$store.state.accessToken === 'null')) {\n // this route requires auth, check if logged in\n // if not, redirect to login page.\n window.console.log('Not authenticated');\n next({\n path: '/login',\n query: { redirect: to.fullPath }\n });\n } else if (to.meta.role === 'admin') {\n if (router.app.$store.state.role === 'admin') {\n next();\n } else {\n next({\n path: '/',\n query: { redirect: to.fullPath }\n });\n }\n } else {\n next();\n }\n });\n\n Object(__WEBPACK_IMPORTED_MODULE_5_vuex_router_sync__[\"sync\"])(__WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */], router);\n\n __WEBPACK_IMPORTED_MODULE_14_axios___default.a.interceptors.response.use(null, function (error) {\n if (error.config.url === __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].serverURI + '/user/refresh') {\n window.localStorage.clear();\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_USER', null);\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ROLE', null);\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ACCESS_TOKEN', null);\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_REFRESH_TOKEN', null);\n router.push('/login');\n } else {\n if (error.config && error.response && error.response.status === 401 && error.config.url !== __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].serverURI + '/user/login') {\n __WEBPACK_IMPORTED_MODULE_14_axios___default.a.defaults.headers.common['Authorization'] = __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].state.refreshToken;\n return __WEBPACK_IMPORTED_MODULE_14_axios___default()({ method: 'get', url: __WEBPACK_IMPORTED_MODULE_15__config__[\"a\" /* default */].serverURI + '/user/refresh', data: null }).then(function (response) {\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ACCESS_TOKEN', 'Bearer ' + response.data.access_token);\n if (window.localStorage) {\n window.localStorage.setItem('accessToken', 'Bearer ' + response.data.access_token);\n }\n error.config.headers['Authorization'] = 'Bearer ' + response.data.access_token;\n return __WEBPACK_IMPORTED_MODULE_14_axios___default.a.request(error.config);\n }).catch(function (error) {\n handleError(error);\n logout();\n });\n }\n }\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_core_js_promise___default.a.reject(error);\n });\n // Check local storage to handle refreshes\n if (window.localStorage) {\n var localUserString = window.localStorage.getItem('user') || 'null';\n var localUser = JSON.parse(localUserString);\n\n if (localUser && __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].state.user !== localUser) {\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_USER', localUser);\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ACCESS_TOKEN', window.localStorage.getItem('accessToken'));\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_REFRESH_TOKEN', window.localStorage.getItem('refreshToken'));\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ROLE', window.localStorage.getItem('role'));\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ID', parseInt(window.localStorage.getItem('userId')));\n }\n }\n function handleError(error) {\n if (!error.hasOwnProperty('response')) {\n console.log(error.message);\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n console.log(error.response.data);\n } else {\n console.log(error.response.data.msg);\n }\n }\n }\n\n function logout() {\n var _this = this;\n\n if (__WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].state.accessToken !== null) {\n __WEBPACK_IMPORTED_MODULE_8__api__[\"a\" /* default */].request('delete', '/user/logout', __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].state.accessToken).then(function (response) {\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ACCESS_TOKEN', null);\n if (window.localStorage) {\n window.localStorage.setItem('accessToken', null);\n }\n if (__WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].state.refreshToken !== null) {\n __WEBPACK_IMPORTED_MODULE_8__api__[\"a\" /* default */].request('delete', '/user/logout/refresh_token', __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].state.refreshToken).then(function (response) {\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_REFRESH_TOKEN', null);\n if (window.localStorage) {\n window.localStorage.setItem('refreshToken', null);\n }\n }).catch(function (error) {\n handleError(error);\n });\n }\n }).catch(function (error) {\n _this.handleError(error);\n });\n }\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_USER', null);\n __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */].commit('SET_ROLE', null);\n\n if (window.localStorage) {\n window.localStorage.setItem('user', null);\n window.localStorage.setItem('role', null);\n window.localStorage.setItem('watches', null);\n window.localStorage.setItem('watchIds', null);\n }\n router.push('/login');\n }\n // Start out app!\n // eslint-disable-next-line no-new\n new __WEBPACK_IMPORTED_MODULE_3_vue__[\"default\"]({\n el: '#root',\n router: router,\n store: __WEBPACK_IMPORTED_MODULE_7__store__[\"a\" /* default */],\n render: function render(h) {\n return h(__WEBPACK_IMPORTED_MODULE_10__components_App_vue__[\"a\" /* default */]);\n }\n });\n});\n\n/***/ }),\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */,\n/* 218 */,\n/* 219 */,\n/* 220 */,\n/* 221 */,\n/* 222 */,\n/* 223 */,\n/* 224 */,\n/* 225 */,\n/* 226 */,\n/* 227 */,\n/* 228 */,\n/* 229 */,\n/* 230 */,\n/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */,\n/* 235 */,\n/* 236 */,\n/* 237 */,\n/* 238 */,\n/* 239 */,\n/* 240 */,\n/* 241 */,\n/* 242 */,\n/* 243 */,\n/* 244 */,\n/* 245 */,\n/* 246 */,\n/* 247 */,\n/* 248 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__components_TheDash_vue__ = __webpack_require__(249);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_TheLogin_vue__ = __webpack_require__(278);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_404_vue__ = __webpack_require__(281);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_views_ReservationsOverview_vue__ = __webpack_require__(284);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_views_NodesOverview_vue__ = __webpack_require__(299);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_views_TasksOverview_vue__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_views_UsersOverview_vue__ = __webpack_require__(337);\n\n\n\n// Import Views - Dash\n\n\n\n\n// Routes\nvar routes = [{\n path: '/',\n component: __WEBPACK_IMPORTED_MODULE_0__components_TheDash_vue__[\"a\" /* default */],\n children: [{\n path: '/reservations_overview',\n alias: '',\n component: __WEBPACK_IMPORTED_MODULE_3__components_views_ReservationsOverview_vue__[\"a\" /* default */],\n name: 'Reservation Overview',\n meta: {\n description: 'Calendar with reservations',\n requiresAuth: true,\n role: 'user'\n }\n }, {\n path: 'nodes_overview',\n alias: '',\n component: __WEBPACK_IMPORTED_MODULE_4__components_views_NodesOverview_vue__[\"a\" /* default */],\n name: 'Nodes overview',\n meta: {\n description: 'Informations about nodes',\n requiresAuth: true,\n role: 'user'\n }\n }, {\n path: 'tasks_overview',\n alias: '',\n component: __WEBPACK_IMPORTED_MODULE_5__components_views_TasksOverview_vue__[\"a\" /* default */],\n name: 'Tasks overview',\n meta: {\n description: 'Tasks overview',\n requiresAuth: true,\n role: 'user'\n }\n }, {\n path: 'users_overview',\n alias: '',\n component: __WEBPACK_IMPORTED_MODULE_6__components_views_UsersOverview_vue__[\"a\" /* default */],\n name: 'Users overview',\n meta: {\n description: 'Table users view for admin',\n requiresAuth: true,\n role: 'admin'\n }\n }]\n}, {\n path: '/login',\n component: __WEBPACK_IMPORTED_MODULE_1__components_TheLogin_vue__[\"a\" /* default */],\n meta: {\n role: 'user'\n }\n}, {\n path: '*',\n component: __WEBPACK_IMPORTED_MODULE_2__components_404_vue__[\"a\" /* default */]\n}];\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (routes);\n\n/***/ }),\n/* 249 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TheDash_vue__ = __webpack_require__(48);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ece43d6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TheDash_vue__ = __webpack_require__(277);\nfunction injectStyle (ssrContext) {\n __webpack_require__(250)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TheDash_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2ece43d6_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TheDash_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 250 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 251 */,\n/* 252 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_BaseSidebar_vue__ = __webpack_require__(49);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_8c8911fe_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_BaseSidebar_vue__ = __webpack_require__(257);\nfunction injectStyle (ssrContext) {\n __webpack_require__(253)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_BaseSidebar_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_8c8911fe_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_BaseSidebar_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 253 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 254 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_BaseSidebarMenu_vue__ = __webpack_require__(50);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1ff073b3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_BaseSidebarMenu_vue__ = __webpack_require__(256);\nfunction injectStyle (ssrContext) {\n __webpack_require__(255)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_BaseSidebarMenu_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1ff073b3_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_BaseSidebarMenu_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 255 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 256 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"sidebar-menu\"},[_c('li',{staticClass:\"header\"},[_vm._v(\"SCHEDULE\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/reservations_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-calendar-check-o\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Reservations Overview\")])])]),_vm._v(\" \"),_c('li',{staticClass:\"header\"},[_vm._v(\"RESOURCES\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/nodes_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-bar-chart\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Nodes Overview\")])])]),_vm._v(\" \"),_c('li',{staticClass:\"header\"},[_vm._v(\"TASKS\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/tasks_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-tasks\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Tasks Overview\")])])]),_vm._v(\" \"),(_vm.$store.state.role === 'admin')?_c('li',{staticClass:\"header\"},[_vm._v(\"\\n ADMIN ZONE\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.$store.state.role === 'admin')?_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/users_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-users\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Users Overview\")])])]):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 257 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('aside',{staticClass:\"main-sidebar\"},[_c('section',{staticClass:\"sidebar\"},[_c('BaseSidebarMenu')],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 258 */,\n/* 259 */,\n/* 260 */,\n/* 261 */,\n/* 262 */,\n/* 263 */,\n/* 264 */,\n/* 265 */,\n/* 266 */,\n/* 267 */,\n/* 268 */,\n/* 269 */,\n/* 270 */,\n/* 271 */,\n/* 272 */,\n/* 273 */,\n/* 274 */,\n/* 275 */,\n/* 276 */,\n/* 277 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['wrapper', _vm.classes]},[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('header',{staticClass:\"main-header\"},[_c('nav',{staticClass:\"navbar navbar-static-top\",attrs:{\"role\":\"navigation\"}},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"version_info\"},[_c('b',[_vm._v(\"TensorHive\")]),_vm._v(\" v\"+_vm._s(_vm.version)+\" \"),_c('b',[_vm._v(\"API\")]),_vm._v(\" v\"+_vm._s(_vm.apiVersion)+\"\\n \")]),_vm._v(\" \"),_c('v-menu',{staticClass:\"user_chip\",attrs:{\"close-on-content-click\":false,\"offset-y\":\"\"}},[_c('v-chip',{attrs:{\"slot\":\"activator\",\"color\":\"green\",\"text-color\":\"white\"},slot:\"activator\"},[_c('v-avatar',[_c('v-icon',[_vm._v(\"account_circle\")])],1),_vm._v(\"\\n \"+_vm._s(_vm.displayName)+\"\\n \")],1),_vm._v(\" \"),_c('v-card',[_c('v-card-actions',[_c('v-btn',{attrs:{\"flat\":\"\"},on:{\"click\":function($event){return _vm.logout()}}},[_vm._v(\"Logout\")])],1)],1)],1)],1)]),_vm._v(\" \"),_c('BaseSidebar'),_vm._v(\" \"),_c('div',{staticClass:\"content-wrapper\"},[_c('router-view')],1),_vm._v(\" \"),_c('v-footer',{attrs:{\"height\":\"auto\",\"color\":\"#222d32\"}},[_c('v-layout',{attrs:{\"justify-center\":\"\",\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"text-xs-center\":\"\",\"white--text\":\"\",\"xs12\":\"\"}},[_vm._v(\"\\n Found a bug? (\"),_c('a',{attrs:{\"href\":\"https://github.com/roscisz/TensorHive/issues\"}},[_vm._v(\"Report issue\")]),_vm._v(\")\\n \")])],1)],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"sidebar-toggle\",attrs:{\"href\":\"javascript:;\",\"data-toggle\":\"offcanvas\",\"role\":\"button\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Toggle navigation\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 278 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TheLogin_vue__ = __webpack_require__(57);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_78d7a2a0_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TheLogin_vue__ = __webpack_require__(280);\nfunction injectStyle (ssrContext) {\n __webpack_require__(279)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-78d7a2a0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TheLogin_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_78d7a2a0_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TheLogin_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 279 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 280 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"login\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"50vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Register new account\")])]),_vm._v(\" \"),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser($event)}}},[_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-user\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalUsername),expression:\"modalUsername\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalUsername\",\"placeholder\":\"UNIX username\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalUsername)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalUsername=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalEmail),expression:\"modalEmail\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalEmail\",\"placeholder\":\"Email\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalEmail)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalEmail=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword),expression:\"modalPassword\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword2),expression:\"modalPassword2\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword2\",\"placeholder\":\"Repeat password\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword2=$event.target.value}}})]),_vm._v(\"\\n Please copy the key below and paste it into \"),_c('b',[_vm._v(\"~/.ssh/authorized_keys\")]),_vm._v(\".\"),_c('br'),_vm._v(\"It will allow TensorHive to confirm you identity and access machines with provided UNIX username.\\n \"),_c('v-textarea',{attrs:{\"solo\":\"\",\"name\":\"entry\",\"value\":_vm.entry,\"id\":\"entry\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\"},on:{\"click\":_vm.copyEntryToClipboard}},[_vm._v(\"Copy to clipboard\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.modalAlert),callback:function ($$v) {_vm.modalAlert=$$v},expression:\"modalAlert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModal=false}}},[_vm._v(\"\\n Go back\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\"\\n Register\\n \")])],1)])],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"text-center col-sm-12\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.checkCreds($event)}}},[_vm._v(\"\\n Login to your account\\n \"),_c('div',{staticClass:\"input-group\"},[_vm._m(0),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.username),expression:\"username\"}],staticClass:\"form-control\",attrs:{\"name\":\"username\",\"placeholder\":\"Username\",\"type\":\"text\"},domProps:{\"value\":(_vm.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.username=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_vm._m(1),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"form-control\",attrs:{\"name\":\"password\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}})]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"info\"},model:{value:(_vm.created),callback:function ($$v) {_vm.created=$$v},expression:\"created\"}},[_vm._v(\"\\n Account successfully created\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\"},on:{\"click\":_vm.requestEntry}},[_vm._v(\"Register\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\"\\n Login\\n \")])],1)])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 281 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_404_vue__ = __webpack_require__(58);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_209d35e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_404_vue__ = __webpack_require__(283);\nfunction injectStyle (ssrContext) {\n __webpack_require__(282)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_404_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_209d35e8_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_404_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 282 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 283 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"notFound\"}},[_c('div',{staticClass:\"text-center col-sm-12\"},[_c('h1',[_vm._v(\"You are lost.\")]),_vm._v(\" \"),_c('h4',[_vm._v(\"This page doesn't exist.\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"vertical-5p lead\",attrs:{\"to\":\"/\"}},[_vm._v(\"Take me home.\")])],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 284 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ReservationsOverview_vue__ = __webpack_require__(59);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f2a7601_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_ReservationsOverview_vue__ = __webpack_require__(298);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ReservationsOverview_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4f2a7601_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_ReservationsOverview_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 285 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendar_vue__ = __webpack_require__(61);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_74cfb89e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendar_vue__ = __webpack_require__(294);\nfunction injectStyle (ssrContext) {\n __webpack_require__(286)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendar_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_74cfb89e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendar_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 286 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 287 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendarReserve_vue__ = __webpack_require__(62);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18b777fb_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendarReserve_vue__ = __webpack_require__(289);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendarReserve_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18b777fb_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendarReserve_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 288 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar map = {\n\t\"./af\": 63,\n\t\"./af.js\": 63,\n\t\"./ar\": 64,\n\t\"./ar-dz\": 65,\n\t\"./ar-dz.js\": 65,\n\t\"./ar-kw\": 66,\n\t\"./ar-kw.js\": 66,\n\t\"./ar-ly\": 67,\n\t\"./ar-ly.js\": 67,\n\t\"./ar-ma\": 68,\n\t\"./ar-ma.js\": 68,\n\t\"./ar-sa\": 69,\n\t\"./ar-sa.js\": 69,\n\t\"./ar-tn\": 70,\n\t\"./ar-tn.js\": 70,\n\t\"./ar.js\": 64,\n\t\"./az\": 71,\n\t\"./az.js\": 71,\n\t\"./be\": 72,\n\t\"./be.js\": 72,\n\t\"./bg\": 73,\n\t\"./bg.js\": 73,\n\t\"./bm\": 74,\n\t\"./bm.js\": 74,\n\t\"./bn\": 75,\n\t\"./bn.js\": 75,\n\t\"./bo\": 76,\n\t\"./bo.js\": 76,\n\t\"./br\": 77,\n\t\"./br.js\": 77,\n\t\"./bs\": 78,\n\t\"./bs.js\": 78,\n\t\"./ca\": 79,\n\t\"./ca.js\": 79,\n\t\"./cs\": 80,\n\t\"./cs.js\": 80,\n\t\"./cv\": 81,\n\t\"./cv.js\": 81,\n\t\"./cy\": 82,\n\t\"./cy.js\": 82,\n\t\"./da\": 83,\n\t\"./da.js\": 83,\n\t\"./de\": 84,\n\t\"./de-at\": 85,\n\t\"./de-at.js\": 85,\n\t\"./de-ch\": 86,\n\t\"./de-ch.js\": 86,\n\t\"./de.js\": 84,\n\t\"./dv\": 87,\n\t\"./dv.js\": 87,\n\t\"./el\": 88,\n\t\"./el.js\": 88,\n\t\"./en-SG\": 89,\n\t\"./en-SG.js\": 89,\n\t\"./en-au\": 90,\n\t\"./en-au.js\": 90,\n\t\"./en-ca\": 91,\n\t\"./en-ca.js\": 91,\n\t\"./en-gb\": 92,\n\t\"./en-gb.js\": 92,\n\t\"./en-ie\": 93,\n\t\"./en-ie.js\": 93,\n\t\"./en-il\": 94,\n\t\"./en-il.js\": 94,\n\t\"./en-nz\": 95,\n\t\"./en-nz.js\": 95,\n\t\"./eo\": 96,\n\t\"./eo.js\": 96,\n\t\"./es\": 97,\n\t\"./es-do\": 98,\n\t\"./es-do.js\": 98,\n\t\"./es-us\": 99,\n\t\"./es-us.js\": 99,\n\t\"./es.js\": 97,\n\t\"./et\": 100,\n\t\"./et.js\": 100,\n\t\"./eu\": 101,\n\t\"./eu.js\": 101,\n\t\"./fa\": 102,\n\t\"./fa.js\": 102,\n\t\"./fi\": 103,\n\t\"./fi.js\": 103,\n\t\"./fo\": 104,\n\t\"./fo.js\": 104,\n\t\"./fr\": 105,\n\t\"./fr-ca\": 106,\n\t\"./fr-ca.js\": 106,\n\t\"./fr-ch\": 107,\n\t\"./fr-ch.js\": 107,\n\t\"./fr.js\": 105,\n\t\"./fy\": 108,\n\t\"./fy.js\": 108,\n\t\"./ga\": 109,\n\t\"./ga.js\": 109,\n\t\"./gd\": 110,\n\t\"./gd.js\": 110,\n\t\"./gl\": 111,\n\t\"./gl.js\": 111,\n\t\"./gom-latn\": 112,\n\t\"./gom-latn.js\": 112,\n\t\"./gu\": 113,\n\t\"./gu.js\": 113,\n\t\"./he\": 114,\n\t\"./he.js\": 114,\n\t\"./hi\": 115,\n\t\"./hi.js\": 115,\n\t\"./hr\": 116,\n\t\"./hr.js\": 116,\n\t\"./hu\": 117,\n\t\"./hu.js\": 117,\n\t\"./hy-am\": 118,\n\t\"./hy-am.js\": 118,\n\t\"./id\": 119,\n\t\"./id.js\": 119,\n\t\"./is\": 120,\n\t\"./is.js\": 120,\n\t\"./it\": 121,\n\t\"./it-ch\": 122,\n\t\"./it-ch.js\": 122,\n\t\"./it.js\": 121,\n\t\"./ja\": 123,\n\t\"./ja.js\": 123,\n\t\"./jv\": 124,\n\t\"./jv.js\": 124,\n\t\"./ka\": 125,\n\t\"./ka.js\": 125,\n\t\"./kk\": 126,\n\t\"./kk.js\": 126,\n\t\"./km\": 127,\n\t\"./km.js\": 127,\n\t\"./kn\": 128,\n\t\"./kn.js\": 128,\n\t\"./ko\": 129,\n\t\"./ko.js\": 129,\n\t\"./ku\": 130,\n\t\"./ku.js\": 130,\n\t\"./ky\": 131,\n\t\"./ky.js\": 131,\n\t\"./lb\": 132,\n\t\"./lb.js\": 132,\n\t\"./lo\": 133,\n\t\"./lo.js\": 133,\n\t\"./lt\": 134,\n\t\"./lt.js\": 134,\n\t\"./lv\": 135,\n\t\"./lv.js\": 135,\n\t\"./me\": 136,\n\t\"./me.js\": 136,\n\t\"./mi\": 137,\n\t\"./mi.js\": 137,\n\t\"./mk\": 138,\n\t\"./mk.js\": 138,\n\t\"./ml\": 139,\n\t\"./ml.js\": 139,\n\t\"./mn\": 140,\n\t\"./mn.js\": 140,\n\t\"./mr\": 141,\n\t\"./mr.js\": 141,\n\t\"./ms\": 142,\n\t\"./ms-my\": 143,\n\t\"./ms-my.js\": 143,\n\t\"./ms.js\": 142,\n\t\"./mt\": 144,\n\t\"./mt.js\": 144,\n\t\"./my\": 145,\n\t\"./my.js\": 145,\n\t\"./nb\": 146,\n\t\"./nb.js\": 146,\n\t\"./ne\": 147,\n\t\"./ne.js\": 147,\n\t\"./nl\": 148,\n\t\"./nl-be\": 149,\n\t\"./nl-be.js\": 149,\n\t\"./nl.js\": 148,\n\t\"./nn\": 150,\n\t\"./nn.js\": 150,\n\t\"./pa-in\": 151,\n\t\"./pa-in.js\": 151,\n\t\"./pl\": 152,\n\t\"./pl.js\": 152,\n\t\"./pt\": 153,\n\t\"./pt-br\": 154,\n\t\"./pt-br.js\": 154,\n\t\"./pt.js\": 153,\n\t\"./ro\": 155,\n\t\"./ro.js\": 155,\n\t\"./ru\": 156,\n\t\"./ru.js\": 156,\n\t\"./sd\": 157,\n\t\"./sd.js\": 157,\n\t\"./se\": 158,\n\t\"./se.js\": 158,\n\t\"./si\": 159,\n\t\"./si.js\": 159,\n\t\"./sk\": 160,\n\t\"./sk.js\": 160,\n\t\"./sl\": 161,\n\t\"./sl.js\": 161,\n\t\"./sq\": 162,\n\t\"./sq.js\": 162,\n\t\"./sr\": 163,\n\t\"./sr-cyrl\": 164,\n\t\"./sr-cyrl.js\": 164,\n\t\"./sr.js\": 163,\n\t\"./ss\": 165,\n\t\"./ss.js\": 165,\n\t\"./sv\": 166,\n\t\"./sv.js\": 166,\n\t\"./sw\": 167,\n\t\"./sw.js\": 167,\n\t\"./ta\": 168,\n\t\"./ta.js\": 168,\n\t\"./te\": 169,\n\t\"./te.js\": 169,\n\t\"./tet\": 170,\n\t\"./tet.js\": 170,\n\t\"./tg\": 171,\n\t\"./tg.js\": 171,\n\t\"./th\": 172,\n\t\"./th.js\": 172,\n\t\"./tl-ph\": 173,\n\t\"./tl-ph.js\": 173,\n\t\"./tlh\": 174,\n\t\"./tlh.js\": 174,\n\t\"./tr\": 175,\n\t\"./tr.js\": 175,\n\t\"./tzl\": 176,\n\t\"./tzl.js\": 176,\n\t\"./tzm\": 177,\n\t\"./tzm-latn\": 178,\n\t\"./tzm-latn.js\": 178,\n\t\"./tzm.js\": 177,\n\t\"./ug-cn\": 179,\n\t\"./ug-cn.js\": 179,\n\t\"./uk\": 180,\n\t\"./uk.js\": 180,\n\t\"./ur\": 181,\n\t\"./ur.js\": 181,\n\t\"./uz\": 182,\n\t\"./uz-latn\": 183,\n\t\"./uz-latn.js\": 183,\n\t\"./uz.js\": 182,\n\t\"./vi\": 184,\n\t\"./vi.js\": 184,\n\t\"./x-pseudo\": 185,\n\t\"./x-pseudo.js\": 185,\n\t\"./yo\": 186,\n\t\"./yo.js\": 186,\n\t\"./zh-cn\": 187,\n\t\"./zh-cn.js\": 187,\n\t\"./zh-hk\": 188,\n\t\"./zh-hk.js\": 188,\n\t\"./zh-tw\": 189,\n\t\"./zh-tw.js\": 189\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 288;\n\n/***/ }),\n/* 289 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"50vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Which resources do you want to reserve?\")])]),_vm._v(\" \"),_c('v-card-text',[_vm._l((_vm.resourcesCheckboxes),function(checkbox){return _c('div',{key:checkbox.uuid,staticClass:\"row\"},[_c('v-checkbox',{attrs:{\"label\":((checkbox.nodeName) + \" GPU\" + (checkbox.index) + \" \" + (checkbox.name)),\"disabled\":checkbox.disabled},model:{value:(checkbox.checked),callback:function ($$v) {_vm.$set(checkbox, \"checked\", $$v)},expression:\"checkbox.checked\"}})],1)}),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}},on))]}}]),model:{value:(_vm.startDateMenu),callback:function ($$v) {_vm.startDateMenu=$$v},expression:\"startDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.startDateMenu = false}},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"startMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newStartTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newStartTime=$event},\"update:return-value\":function($event){_vm.newStartTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},on))]}}]),model:{value:(_vm.startTimeMenu),callback:function ($$v) {_vm.startTimeMenu=$$v},expression:\"startTimeMenu\"}},[_vm._v(\" \"),(_vm.startTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.startMenu.save(_vm.newStartTime)}},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}},on))]}}]),model:{value:(_vm.endDateMenu),callback:function ($$v) {_vm.endDateMenu=$$v},expression:\"endDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.endDateMenu = false}},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"endMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newEndTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newEndTime=$event},\"update:return-value\":function($event){_vm.newEndTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},on))]}}]),model:{value:(_vm.endTimeMenu),callback:function ($$v) {_vm.endTimeMenu=$$v},expression:\"endTimeMenu\"}},[_vm._v(\" \"),(_vm.endTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.endMenu.save(_vm.newEndTime)}},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Title\"},model:{value:(_vm.reservationTitle),callback:function ($$v) {_vm.reservationTitle=$$v},expression:\"reservationTitle\"}}),_vm._v(\" \"),_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Description\"},model:{value:(_vm.reservationDescription),callback:function ($$v) {_vm.reservationDescription=$$v},expression:\"reservationDescription\"}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showInfo===true),expression:\"showInfo===true\"}],staticClass:\"text-red\"},[_c('p',{staticClass:\"vertical-5p lead\"},[_vm._v(\"You need to choose at least one resource to reserve\")])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer text-right\"},[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.reservation()}}},[_vm._v(\"\\n Reserve\\n \")])],1)],2)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 290 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendarInfo_vue__ = __webpack_require__(190);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_396e82ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendarInfo_vue__ = __webpack_require__(292);\nfunction injectStyle (ssrContext) {\n __webpack_require__(291)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_FullCalendarInfo_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_396e82ff_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_FullCalendarInfo_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 291 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 292 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"width\":\"50vw\",\"persistent\":\"\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-text',[_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"flat\":\"\",\"icon\":\"\",\"color\":\"black\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Title:\")]),_vm._v(\" \"+_vm._s(_vm.reservation.title)+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Title\"},model:{value:(_vm.newTitle),callback:function ($$v) {_vm.newTitle=$$v},expression:\"newTitle\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Description:\")]),_vm._v(\" \"+_vm._s(_vm.reservation.description)+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Description\"},model:{value:(_vm.newDescription),callback:function ($$v) {_vm.newDescription=$$v},expression:\"newDescription\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Average GPU utilization:\")]),_vm._v(\" \"+_vm._s(_vm.gpuUtilAvg)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Average GPU memory utilization:\")]),_vm._v(\" \"+_vm._s(_vm.memUtilAvg)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Start:\")]),_vm._v(\" \"+_vm._s(_vm.prettyDate(_vm.reservation.start))+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}},on))]}}],null,false,710299969),model:{value:(_vm.startDateMenu),callback:function ($$v) {_vm.startDateMenu=$$v},expression:\"startDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.startDateMenu = false}},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"startMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newStartTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newStartTime=$event},\"update:return-value\":function($event){_vm.newStartTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},on))]}}],null,false,4222293411),model:{value:(_vm.startTimeMenu),callback:function ($$v) {_vm.startTimeMenu=$$v},expression:\"startTimeMenu\"}},[_vm._v(\" \"),(_vm.startTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.startMenu.save(_vm.newStartTime)}},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}}):_vm._e()],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"End:\")]),_vm._v(\" \"+_vm._s(_vm.prettyDate(_vm.reservation.end))+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}},on))]}}],null,false,3230088161),model:{value:(_vm.endDateMenu),callback:function ($$v) {_vm.endDateMenu=$$v},expression:\"endDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.endDateMenu = false}},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"endMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newEndTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newEndTime=$event},\"update:return-value\":function($event){_vm.newEndTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},on))]}}],null,false,2362500227),model:{value:(_vm.endTimeMenu),callback:function ($$v) {_vm.endTimeMenu=$$v},expression:\"endTimeMenu\"}},[_vm._v(\" \"),(_vm.endTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.endMenu.save(_vm.newEndTime)}},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}}):_vm._e()],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"GPU UUID:\")]),_vm._v(\" \"+_vm._s(_vm.reservation.resourceId)+\"\\n \")]),_vm._v(\" \"),(_vm.tasksCard)?_c('v-card-text',[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"warning\"},model:{value:(_vm.showAlert),callback:function ($$v) {_vm.showAlert=$$v},expression:\"showAlert\"}},[_vm._v(\"\\n Synchronization in progress. Task assign is disabled now.\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.tasksCard)?_c('v-data-table',{key:_vm.tableKey,staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.tasks,\"pagination\":_vm.pagination,\"loading\":_vm.actionFlag,\"select-all\":\"\",\"item-key\":\"id\"},on:{\"update:pagination\":function($event){_vm.pagination=$event}},scopedSlots:_vm._u([{key:\"headers\",fn:function(props){return [_c('tr',[_c('th',[_c('v-checkbox',{attrs:{\"input-value\":props.all,\"indeterminate\":props.indeterminate,\"primary\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleAll($event)}}})],1),_vm._v(\" \"),_vm._l((props.headers),function(header){return _c('th',{key:header.text,class:['column sortable', _vm.pagination.descending ? 'desc' : 'asc', header.value === _vm.pagination.sortBy ? 'active' : ''],on:{\"click\":function($event){return _vm.changeSort(header.value)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"arrow_upward\")]),_vm._v(\"\\n \"+_vm._s(header.text)+\"\\n \")],1)})],2)]}},{key:\"items\",fn:function(props){return [_c('tr',{attrs:{\"active\":props.selected},on:{\"click\":function($event){props.selected = !props.selected}}},[_c('td',[_c('v-checkbox',{attrs:{\"input-value\":props.selected,\"primary\":\"\",\"hide-details\":\"\"}})],1),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.id))]),_vm._v(\" \"),_c('td',{staticClass:\"task-command\"},[_vm._v(_vm._s(props.item.command))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.spawnAt)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.terminateAt)))])])]}}],null,false,4156683076),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},[_vm._v(\" \"),_c('v-progress-linear',{attrs:{\"indeterminate\":true},scopedSlots:_vm._u([{key:\"progress\",fn:function(){return undefined},proxy:true}],null,false,63074868)})],1):_vm._e(),_vm._v(\" \"),(_vm.tasksCard)?_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"info\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){return _vm.checkActionFlag()}}},[_vm._v(\"\\n Assign selected\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-card-text',{staticClass:\"container\"},[_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"yellow\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.tasksCard=!_vm.tasksCard; _vm.cancelCard=false; _vm.updateCard=false}}},[_vm._v(\"\\n Schedule task(s) for this reservation\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"error\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.cancelCard=!_vm.cancelCard; _vm.tasksCard=false; _vm.updateCard=false}}},[_vm._v(\"\\n Cancel reservation\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"info\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.updateCard=!_vm.updateCard; _vm.tasksCard=false, _vm.cancelCard=false}}},[_vm._v(\"\\n Edit reservation\\n \")])],1),_vm._v(\" \"),(_vm.cancelCard)?_c('v-card-text',[_vm._v(\"\\n Do you want to cancel selected reservation?\\n \"),_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.cancelCard=false}}},[_vm._v(\"\\n No\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.cancelReservation()}}},[_vm._v(\"\\n Yes\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.updateCard=false}}},[_vm._v(\"\\n Back\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.updateReservation()}}},[_vm._v(\"\\n Update\\n \")])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 293 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/*!\r\n * FullCalendar v3.9.0\r\n * Docs & License: https://fullcalendar.io/\r\n * (c) 2018 Adam Shaw\r\n */\r\n(function webpackUniversalModuleDefinition(root, factory) {\r\n\tif(true)\r\n\t\tmodule.exports = factory(__webpack_require__(0), __webpack_require__(191));\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine([\"moment\", \"jquery\"], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"FullCalendar\"] = factory(require(\"moment\"), require(\"jquery\"));\r\n\telse\r\n\t\troot[\"FullCalendar\"] = factory(root[\"moment\"], root[\"jQuery\"]);\r\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId]) {\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n/******/ \t\t}\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\ti: moduleId,\r\n/******/ \t\t\tl: false,\r\n/******/ \t\t\texports: {}\r\n/******/ \t\t};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.l = true;\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n/******/\r\n/******/\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n/******/\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n/******/\r\n/******/ \t// define getter function for harmony exports\r\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\r\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\r\n/******/ \t\t\tObject.defineProperty(exports, name, {\r\n/******/ \t\t\t\tconfigurable: false,\r\n/******/ \t\t\t\tenumerable: true,\r\n/******/ \t\t\t\tget: getter\r\n/******/ \t\t\t});\r\n/******/ \t\t}\r\n/******/ \t};\r\n/******/\r\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\r\n/******/ \t__webpack_require__.n = function(module) {\r\n/******/ \t\tvar getter = module && module.__esModule ?\r\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\r\n/******/ \t\t\tfunction getModuleExports() { return module; };\r\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\r\n/******/ \t\treturn getter;\r\n/******/ \t};\r\n/******/\r\n/******/ \t// Object.prototype.hasOwnProperty.call\r\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\r\n/******/\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n/******/\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(__webpack_require__.s = 236);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports) {\r\n\r\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\r\n\r\n/***/ }),\r\n/* 1 */,\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n/*\r\nderived from:\r\nhttps://github.com/Microsoft/tslib/blob/v1.6.0/tslib.js\r\n\r\nonly include the helpers we need, to keep down filesize\r\n*/\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b)\r\n if (b.hasOwnProperty(p))\r\n d[p] = b[p]; };\r\nexports.__extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports) {\r\n\r\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\r\n\r\n/***/ }),\r\n/* 4 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\n/* FullCalendar-specific DOM Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\r\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\r\nfunction compensateScroll(rowEls, scrollbarWidths) {\r\n if (scrollbarWidths.left) {\r\n rowEls.css({\r\n 'border-left-width': 1,\r\n 'margin-left': scrollbarWidths.left - 1\r\n });\r\n }\r\n if (scrollbarWidths.right) {\r\n rowEls.css({\r\n 'border-right-width': 1,\r\n 'margin-right': scrollbarWidths.right - 1\r\n });\r\n }\r\n}\r\nexports.compensateScroll = compensateScroll;\r\n// Undoes compensateScroll and restores all borders/margins\r\nfunction uncompensateScroll(rowEls) {\r\n rowEls.css({\r\n 'margin-left': '',\r\n 'margin-right': '',\r\n 'border-left-width': '',\r\n 'border-right-width': ''\r\n });\r\n}\r\nexports.uncompensateScroll = uncompensateScroll;\r\n// Make the mouse cursor express that an event is not allowed in the current area\r\nfunction disableCursor() {\r\n $('body').addClass('fc-not-allowed');\r\n}\r\nexports.disableCursor = disableCursor;\r\n// Returns the mouse cursor to its original look\r\nfunction enableCursor() {\r\n $('body').removeClass('fc-not-allowed');\r\n}\r\nexports.enableCursor = enableCursor;\r\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\r\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\r\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\r\n// reduces the available height.\r\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\r\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\r\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\r\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\r\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\r\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\r\n var flexOffsets = []; // amount of vertical space it takes up\r\n var flexHeights = []; // actual css height\r\n var usedHeight = 0;\r\n undistributeHeight(els); // give all elements their natural height\r\n // find elements that are below the recommended height (expandable).\r\n // important to query for heights in a single first pass (to avoid reflow oscillation).\r\n els.each(function (i, el) {\r\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = $(el).outerHeight(true);\r\n if (naturalOffset < minOffset) {\r\n flexEls.push(el);\r\n flexOffsets.push(naturalOffset);\r\n flexHeights.push($(el).height());\r\n }\r\n else {\r\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\r\n usedHeight += naturalOffset;\r\n }\r\n });\r\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\r\n if (shouldRedistribute) {\r\n availableHeight -= usedHeight;\r\n minOffset1 = Math.floor(availableHeight / flexEls.length);\r\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\r\n }\r\n // assign heights to all expandable elements\r\n $(flexEls).each(function (i, el) {\r\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = flexOffsets[i];\r\n var naturalHeight = flexHeights[i];\r\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\r\n if (naturalOffset < minOffset) {\r\n $(el).height(newHeight);\r\n }\r\n });\r\n}\r\nexports.distributeHeight = distributeHeight;\r\n// Undoes distrubuteHeight, restoring all els to their natural height\r\nfunction undistributeHeight(els) {\r\n els.height('');\r\n}\r\nexports.undistributeHeight = undistributeHeight;\r\n// Given `els`, a jQuery set of cells, find the cell with the largest natural width and set the widths of all the\r\n// cells to be that width.\r\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\r\nfunction matchCellWidths(els) {\r\n var maxInnerWidth = 0;\r\n els.find('> *').each(function (i, innerEl) {\r\n var innerWidth = $(innerEl).outerWidth();\r\n if (innerWidth > maxInnerWidth) {\r\n maxInnerWidth = innerWidth;\r\n }\r\n });\r\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\r\n els.width(maxInnerWidth);\r\n return maxInnerWidth;\r\n}\r\nexports.matchCellWidths = matchCellWidths;\r\n// Given one element that resides inside another,\r\n// Subtracts the height of the inner element from the outer element.\r\nfunction subtractInnerElHeight(outerEl, innerEl) {\r\n var both = outerEl.add(innerEl);\r\n var diff;\r\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\r\n both.css({\r\n position: 'relative',\r\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\r\n });\r\n diff = outerEl.outerHeight() - innerEl.outerHeight(); // grab the dimensions\r\n both.css({ position: '', left: '' }); // undo hack\r\n return diff;\r\n}\r\nexports.subtractInnerElHeight = subtractInnerElHeight;\r\n/* Element Geom Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// borrowed from https://github.com/jquery/jquery-ui/blob/1.11.0/ui/core.js#L51\r\nfunction getScrollParent(el) {\r\n var position = el.css('position');\r\n var scrollParent = el.parents().filter(function () {\r\n var parent = $(this);\r\n return (/(auto|scroll)/).test(parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x'));\r\n }).eq(0);\r\n return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent;\r\n}\r\nexports.getScrollParent = getScrollParent;\r\n// Queries the outer bounding area of a jQuery element.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getOuterRect(el, origin) {\r\n var offset = el.offset();\r\n var left = offset.left - (origin ? origin.left : 0);\r\n var top = offset.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.outerWidth(),\r\n top: top,\r\n bottom: top + el.outerHeight()\r\n };\r\n}\r\nexports.getOuterRect = getOuterRect;\r\n// Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\n// WARNING: given element can't have borders\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getClientRect(el, origin) {\r\n var offset = el.offset();\r\n var scrollbarWidths = getScrollbarWidths(el);\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left - (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el[0].clientWidth,\r\n top: top,\r\n bottom: top + el[0].clientHeight // clientHeight includes padding but NOT scrollbars\r\n };\r\n}\r\nexports.getClientRect = getClientRect;\r\n// Queries the area within the margin/border/padding of a jQuery element. Assumed not to have scrollbars.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getContentRect(el, origin) {\r\n var offset = el.offset(); // just outside of border, margin not included\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left') -\r\n (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top') -\r\n (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.width(),\r\n top: top,\r\n bottom: top + el.height()\r\n };\r\n}\r\nexports.getContentRect = getContentRect;\r\n// Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element.\r\n// WARNING: given element can't have borders (which will cause offsetWidth/offsetHeight to be larger).\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getScrollbarWidths(el) {\r\n var leftRightWidth = el[0].offsetWidth - el[0].clientWidth;\r\n var bottomWidth = el[0].offsetHeight - el[0].clientHeight;\r\n var widths;\r\n leftRightWidth = sanitizeScrollbarWidth(leftRightWidth);\r\n bottomWidth = sanitizeScrollbarWidth(bottomWidth);\r\n widths = { left: 0, right: 0, top: 0, bottom: bottomWidth };\r\n if (getIsLeftRtlScrollbars() && el.css('direction') === 'rtl') {\r\n widths.left = leftRightWidth;\r\n }\r\n else {\r\n widths.right = leftRightWidth;\r\n }\r\n return widths;\r\n}\r\nexports.getScrollbarWidths = getScrollbarWidths;\r\n// The scrollbar width computations in getScrollbarWidths are sometimes flawed when it comes to\r\n// retina displays, rounding, and IE11. Massage them into a usable value.\r\nfunction sanitizeScrollbarWidth(width) {\r\n width = Math.max(0, width); // no negatives\r\n width = Math.round(width);\r\n return width;\r\n}\r\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\r\nvar _isLeftRtlScrollbars = null;\r\nfunction getIsLeftRtlScrollbars() {\r\n if (_isLeftRtlScrollbars === null) {\r\n _isLeftRtlScrollbars = computeIsLeftRtlScrollbars();\r\n }\r\n return _isLeftRtlScrollbars;\r\n}\r\nfunction computeIsLeftRtlScrollbars() {\r\n var el = $('
')\r\n .css({\r\n position: 'absolute',\r\n top: -1000,\r\n left: 0,\r\n border: 0,\r\n padding: 0,\r\n overflow: 'scroll',\r\n direction: 'rtl'\r\n })\r\n .appendTo('body');\r\n var innerEl = el.children();\r\n var res = innerEl.offset().left > el.offset().left; // is the inner div shifted to accommodate a left scrollbar?\r\n el.remove();\r\n return res;\r\n}\r\n// Retrieves a jQuery element's computed CSS value as a floating-point number.\r\n// If the queried value is non-numeric (ex: IE can return \"medium\" for border width), will just return zero.\r\nfunction getCssFloat(el, prop) {\r\n return parseFloat(el.css(prop)) || 0;\r\n}\r\n/* Mouse / Touch Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\r\nfunction isPrimaryMouseButton(ev) {\r\n return ev.which === 1 && !ev.ctrlKey;\r\n}\r\nexports.isPrimaryMouseButton = isPrimaryMouseButton;\r\nfunction getEvX(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageX;\r\n }\r\n return ev.pageX;\r\n}\r\nexports.getEvX = getEvX;\r\nfunction getEvY(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageY;\r\n }\r\n return ev.pageY;\r\n}\r\nexports.getEvY = getEvY;\r\nfunction getEvIsTouch(ev) {\r\n return /^touch/.test(ev.type);\r\n}\r\nexports.getEvIsTouch = getEvIsTouch;\r\nfunction preventSelection(el) {\r\n el.addClass('fc-unselectable')\r\n .on('selectstart', preventDefault);\r\n}\r\nexports.preventSelection = preventSelection;\r\nfunction allowSelection(el) {\r\n el.removeClass('fc-unselectable')\r\n .off('selectstart', preventDefault);\r\n}\r\nexports.allowSelection = allowSelection;\r\n// Stops a mouse/touch event from doing it's native browser action\r\nfunction preventDefault(ev) {\r\n ev.preventDefault();\r\n}\r\nexports.preventDefault = preventDefault;\r\n/* General Geometry Utils\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\r\nfunction intersectRects(rect1, rect2) {\r\n var res = {\r\n left: Math.max(rect1.left, rect2.left),\r\n right: Math.min(rect1.right, rect2.right),\r\n top: Math.max(rect1.top, rect2.top),\r\n bottom: Math.min(rect1.bottom, rect2.bottom)\r\n };\r\n if (res.left < res.right && res.top < res.bottom) {\r\n return res;\r\n }\r\n return false;\r\n}\r\nexports.intersectRects = intersectRects;\r\n// Returns a new point that will have been moved to reside within the given rectangle\r\nfunction constrainPoint(point, rect) {\r\n return {\r\n left: Math.min(Math.max(point.left, rect.left), rect.right),\r\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\r\n };\r\n}\r\nexports.constrainPoint = constrainPoint;\r\n// Returns a point that is the center of the given rectangle\r\nfunction getRectCenter(rect) {\r\n return {\r\n left: (rect.left + rect.right) / 2,\r\n top: (rect.top + rect.bottom) / 2\r\n };\r\n}\r\nexports.getRectCenter = getRectCenter;\r\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\r\nfunction diffPoints(point1, point2) {\r\n return {\r\n left: point1.left - point2.left,\r\n top: point1.top - point2.top\r\n };\r\n}\r\nexports.diffPoints = diffPoints;\r\n/* Object Ordering by Field\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction parseFieldSpecs(input) {\r\n var specs = [];\r\n var tokens = [];\r\n var i;\r\n var token;\r\n if (typeof input === 'string') {\r\n tokens = input.split(/\\s*,\\s*/);\r\n }\r\n else if (typeof input === 'function') {\r\n tokens = [input];\r\n }\r\n else if ($.isArray(input)) {\r\n tokens = input;\r\n }\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n if (typeof token === 'string') {\r\n specs.push(token.charAt(0) === '-' ?\r\n { field: token.substring(1), order: -1 } :\r\n { field: token, order: 1 });\r\n }\r\n else if (typeof token === 'function') {\r\n specs.push({ func: token });\r\n }\r\n }\r\n return specs;\r\n}\r\nexports.parseFieldSpecs = parseFieldSpecs;\r\nfunction compareByFieldSpecs(obj1, obj2, fieldSpecs, obj1fallback, obj2fallback) {\r\n var i;\r\n var cmp;\r\n for (i = 0; i < fieldSpecs.length; i++) {\r\n cmp = compareByFieldSpec(obj1, obj2, fieldSpecs[i], obj1fallback, obj2fallback);\r\n if (cmp) {\r\n return cmp;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.compareByFieldSpecs = compareByFieldSpecs;\r\nfunction compareByFieldSpec(obj1, obj2, fieldSpec, obj1fallback, obj2fallback) {\r\n if (fieldSpec.func) {\r\n return fieldSpec.func(obj1, obj2);\r\n }\r\n var val1 = obj1[fieldSpec.field];\r\n var val2 = obj2[fieldSpec.field];\r\n if (val1 == null && obj1fallback) {\r\n val1 = obj1fallback[fieldSpec.field];\r\n }\r\n if (val2 == null && obj2fallback) {\r\n val2 = obj2fallback[fieldSpec.field];\r\n }\r\n return flexibleCompare(val1, val2) * (fieldSpec.order || 1);\r\n}\r\nexports.compareByFieldSpec = compareByFieldSpec;\r\nfunction flexibleCompare(a, b) {\r\n if (!a && !b) {\r\n return 0;\r\n }\r\n if (b == null) {\r\n return -1;\r\n }\r\n if (a == null) {\r\n return 1;\r\n }\r\n if ($.type(a) === 'string' || $.type(b) === 'string') {\r\n return String(a).localeCompare(String(b));\r\n }\r\n return a - b;\r\n}\r\nexports.flexibleCompare = flexibleCompare;\r\n/* Date Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nexports.dayIDs = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\nexports.unitsDesc = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; // descending\r\n// Diffs the two moments into a Duration where full-days are recorded first, then the remaining time.\r\n// Moments will have their timezones normalized.\r\nfunction diffDayTime(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'),\r\n ms: a.time() - b.time() // time-of-day from day start. disregards timezone\r\n });\r\n}\r\nexports.diffDayTime = diffDayTime;\r\n// Diffs the two moments via their start-of-day (regardless of timezone). Produces whole-day durations.\r\nfunction diffDay(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days')\r\n });\r\n}\r\nexports.diffDay = diffDay;\r\n// Diffs two moments, producing a duration, made of a whole-unit-increment of the given unit. Uses rounding.\r\nfunction diffByUnit(a, b, unit) {\r\n return moment.duration(Math.round(a.diff(b, unit, true)), // returnFloat=true\r\n unit);\r\n}\r\nexports.diffByUnit = diffByUnit;\r\n// Computes the unit name of the largest whole-unit period of time.\r\n// For example, 48 hours will be \"days\" whereas 49 hours will be \"hours\".\r\n// Accepts start/end, a range object, or an original duration object.\r\nfunction computeGreatestUnit(start, end) {\r\n var i;\r\n var unit;\r\n var val;\r\n for (i = 0; i < exports.unitsDesc.length; i++) {\r\n unit = exports.unitsDesc[i];\r\n val = computeRangeAs(unit, start, end);\r\n if (val >= 1 && isInt(val)) {\r\n break;\r\n }\r\n }\r\n return unit; // will be \"milliseconds\" if nothing else matches\r\n}\r\nexports.computeGreatestUnit = computeGreatestUnit;\r\n// like computeGreatestUnit, but has special abilities to interpret the source input for clues\r\nfunction computeDurationGreatestUnit(duration, durationInput) {\r\n var unit = computeGreatestUnit(duration);\r\n // prevent days:7 from being interpreted as a week\r\n if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) {\r\n unit = 'day';\r\n }\r\n return unit;\r\n}\r\nexports.computeDurationGreatestUnit = computeDurationGreatestUnit;\r\n// Computes the number of units (like \"hours\") in the given range.\r\n// Range can be a {start,end} object, separate start/end args, or a Duration.\r\n// Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling\r\n// of month-diffing logic (which tends to vary from version to version).\r\nfunction computeRangeAs(unit, start, end) {\r\n if (end != null) {\r\n return end.diff(start, unit, true);\r\n }\r\n else if (moment.isDuration(start)) {\r\n return start.as(unit);\r\n }\r\n else {\r\n return start.end.diff(start.start, unit, true);\r\n }\r\n}\r\n// Intelligently divides a range (specified by a start/end params) by a duration\r\nfunction divideRangeByDuration(start, end, dur) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return (end - start) / dur;\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return end.diff(start, 'months', true) / months;\r\n }\r\n return end.diff(start, 'days', true) / dur.asDays();\r\n}\r\nexports.divideRangeByDuration = divideRangeByDuration;\r\n// Intelligently divides one duration by another\r\nfunction divideDurationByDuration(dur1, dur2) {\r\n var months1;\r\n var months2;\r\n if (durationHasTime(dur1) || durationHasTime(dur2)) {\r\n return dur1 / dur2;\r\n }\r\n months1 = dur1.asMonths();\r\n months2 = dur2.asMonths();\r\n if (Math.abs(months1) >= 1 && isInt(months1) &&\r\n Math.abs(months2) >= 1 && isInt(months2)) {\r\n return months1 / months2;\r\n }\r\n return dur1.asDays() / dur2.asDays();\r\n}\r\nexports.divideDurationByDuration = divideDurationByDuration;\r\n// Intelligently multiplies a duration by a number\r\nfunction multiplyDuration(dur, n) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return moment.duration(dur * n);\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return moment.duration({ months: months * n });\r\n }\r\n return moment.duration({ days: dur.asDays() * n });\r\n}\r\nexports.multiplyDuration = multiplyDuration;\r\n// Returns a boolean about whether the given duration has any time parts (hours/minutes/seconds/ms)\r\nfunction durationHasTime(dur) {\r\n return Boolean(dur.hours() || dur.minutes() || dur.seconds() || dur.milliseconds());\r\n}\r\nexports.durationHasTime = durationHasTime;\r\nfunction isNativeDate(input) {\r\n return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date;\r\n}\r\nexports.isNativeDate = isNativeDate;\r\n// Returns a boolean about whether the given input is a time string, like \"06:40:00\" or \"06:00\"\r\nfunction isTimeString(str) {\r\n return typeof str === 'string' &&\r\n /^\\d+\\:\\d+(?:\\:\\d+\\.?(?:\\d{3})?)?$/.test(str);\r\n}\r\nexports.isTimeString = isTimeString;\r\n/* Logging and Debug\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction log() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.log) {\r\n return console.log.apply(console, args);\r\n }\r\n}\r\nexports.log = log;\r\nfunction warn() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.warn) {\r\n return console.warn.apply(console, args);\r\n }\r\n else {\r\n return log.apply(null, args);\r\n }\r\n}\r\nexports.warn = warn;\r\n/* General Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar hasOwnPropMethod = {}.hasOwnProperty;\r\n// Merges an array of objects into a single object.\r\n// The second argument allows for an array of property names who's object values will be merged together.\r\nfunction mergeProps(propObjs, complexProps) {\r\n var dest = {};\r\n var i;\r\n var name;\r\n var complexObjs;\r\n var j;\r\n var val;\r\n var props;\r\n if (complexProps) {\r\n for (i = 0; i < complexProps.length; i++) {\r\n name = complexProps[i];\r\n complexObjs = [];\r\n // collect the trailing object values, stopping when a non-object is discovered\r\n for (j = propObjs.length - 1; j >= 0; j--) {\r\n val = propObjs[j][name];\r\n if (typeof val === 'object') {\r\n complexObjs.unshift(val);\r\n }\r\n else if (val !== undefined) {\r\n dest[name] = val; // if there were no objects, this value will be used\r\n break;\r\n }\r\n }\r\n // if the trailing values were objects, use the merged value\r\n if (complexObjs.length) {\r\n dest[name] = mergeProps(complexObjs);\r\n }\r\n }\r\n }\r\n // copy values into the destination, going from last to first\r\n for (i = propObjs.length - 1; i >= 0; i--) {\r\n props = propObjs[i];\r\n for (name in props) {\r\n if (!(name in dest)) {\r\n dest[name] = props[name];\r\n }\r\n }\r\n }\r\n return dest;\r\n}\r\nexports.mergeProps = mergeProps;\r\nfunction copyOwnProps(src, dest) {\r\n for (var name_1 in src) {\r\n if (hasOwnProp(src, name_1)) {\r\n dest[name_1] = src[name_1];\r\n }\r\n }\r\n}\r\nexports.copyOwnProps = copyOwnProps;\r\nfunction hasOwnProp(obj, name) {\r\n return hasOwnPropMethod.call(obj, name);\r\n}\r\nexports.hasOwnProp = hasOwnProp;\r\nfunction applyAll(functions, thisObj, args) {\r\n if ($.isFunction(functions)) {\r\n functions = [functions];\r\n }\r\n if (functions) {\r\n var i = void 0;\r\n var ret = void 0;\r\n for (i = 0; i < functions.length; i++) {\r\n ret = functions[i].apply(thisObj, args) || ret;\r\n }\r\n return ret;\r\n }\r\n}\r\nexports.applyAll = applyAll;\r\nfunction removeMatching(array, testFunc) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (testFunc(array[i])) {\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeMatching = removeMatching;\r\nfunction removeExact(array, exactVal) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (array[i] === exactVal) {\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeExact = removeExact;\r\nfunction isArraysEqual(a0, a1) {\r\n var len = a0.length;\r\n var i;\r\n if (len == null || len !== a1.length) {\r\n return false;\r\n }\r\n for (i = 0; i < len; i++) {\r\n if (a0[i] !== a1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexports.isArraysEqual = isArraysEqual;\r\nfunction firstDefined() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n if (args[i] !== undefined) {\r\n return args[i];\r\n }\r\n }\r\n}\r\nexports.firstDefined = firstDefined;\r\nfunction htmlEscape(s) {\r\n return (s + '').replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/'/g, ''')\r\n .replace(/\"/g, '"')\r\n .replace(/\\n/g, '
');\r\n}\r\nexports.htmlEscape = htmlEscape;\r\nfunction stripHtmlEntities(text) {\r\n return text.replace(/&.*?;/g, '');\r\n}\r\nexports.stripHtmlEntities = stripHtmlEntities;\r\n// Given a hash of CSS properties, returns a string of CSS.\r\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\r\nfunction cssToStr(cssProps) {\r\n var statements = [];\r\n $.each(cssProps, function (name, val) {\r\n if (val != null) {\r\n statements.push(name + ':' + val);\r\n }\r\n });\r\n return statements.join(';');\r\n}\r\nexports.cssToStr = cssToStr;\r\n// Given an object hash of HTML attribute names to values,\r\n// generates a string that can be injected between < > in HTML\r\nfunction attrsToStr(attrs) {\r\n var parts = [];\r\n $.each(attrs, function (name, val) {\r\n if (val != null) {\r\n parts.push(name + '=\"' + htmlEscape(val) + '\"');\r\n }\r\n });\r\n return parts.join(' ');\r\n}\r\nexports.attrsToStr = attrsToStr;\r\nfunction capitaliseFirstLetter(str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\nexports.capitaliseFirstLetter = capitaliseFirstLetter;\r\nfunction compareNumbers(a, b) {\r\n return a - b;\r\n}\r\nexports.compareNumbers = compareNumbers;\r\nfunction isInt(n) {\r\n return n % 1 === 0;\r\n}\r\nexports.isInt = isInt;\r\n// Returns a method bound to the given object context.\r\n// Just like one of the jQuery.proxy signatures, but without the undesired behavior of treating the same method with\r\n// different contexts as identical when binding/unbinding events.\r\nfunction proxy(obj, methodName) {\r\n var method = obj[methodName];\r\n return function () {\r\n return method.apply(obj, arguments);\r\n };\r\n}\r\nexports.proxy = proxy;\r\n// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\r\nfunction debounce(func, wait, immediate) {\r\n if (immediate === void 0) { immediate = false; }\r\n var timeout;\r\n var args;\r\n var context;\r\n var timestamp;\r\n var result;\r\n var later = function () {\r\n var last = +new Date() - timestamp;\r\n if (last < wait) {\r\n timeout = setTimeout(later, wait - last);\r\n }\r\n else {\r\n timeout = null;\r\n if (!immediate) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n }\r\n };\r\n return function () {\r\n context = this;\r\n args = arguments;\r\n timestamp = +new Date();\r\n var callNow = immediate && !timeout;\r\n if (!timeout) {\r\n timeout = setTimeout(later, wait);\r\n }\r\n if (callNow) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n return result;\r\n };\r\n}\r\nexports.debounce = debounce;\r\n\r\n\r\n/***/ }),\r\n/* 5 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar UnzonedRange = /** @class */ (function () {\r\n function UnzonedRange(startInput, endInput) {\r\n // TODO: move these into footprint.\r\n // Especially, doesn't make sense for null startMs/endMs.\r\n this.isStart = true;\r\n this.isEnd = true;\r\n if (moment.isMoment(startInput)) {\r\n startInput = startInput.clone().stripZone();\r\n }\r\n if (moment.isMoment(endInput)) {\r\n endInput = endInput.clone().stripZone();\r\n }\r\n if (startInput) {\r\n this.startMs = startInput.valueOf();\r\n }\r\n if (endInput) {\r\n this.endMs = endInput.valueOf();\r\n }\r\n }\r\n /*\r\n SIDEEFFECT: will mutate eventRanges.\r\n Will return a new array result.\r\n Only works for non-open-ended ranges.\r\n */\r\n UnzonedRange.invertRanges = function (ranges, constraintRange) {\r\n var invertedRanges = [];\r\n var startMs = constraintRange.startMs; // the end of the previous range. the start of the new range\r\n var i;\r\n var dateRange;\r\n // ranges need to be in order. required for our date-walking algorithm\r\n ranges.sort(compareUnzonedRanges);\r\n for (i = 0; i < ranges.length; i++) {\r\n dateRange = ranges[i];\r\n // add the span of time before the event (if there is any)\r\n if (dateRange.startMs > startMs) {\r\n invertedRanges.push(new UnzonedRange(startMs, dateRange.startMs));\r\n }\r\n if (dateRange.endMs > startMs) {\r\n startMs = dateRange.endMs;\r\n }\r\n }\r\n // add the span of time after the last event (if there is any)\r\n if (startMs < constraintRange.endMs) {\r\n invertedRanges.push(new UnzonedRange(startMs, constraintRange.endMs));\r\n }\r\n return invertedRanges;\r\n };\r\n UnzonedRange.prototype.intersect = function (otherRange) {\r\n var startMs = this.startMs;\r\n var endMs = this.endMs;\r\n var newRange = null;\r\n if (otherRange.startMs != null) {\r\n if (startMs == null) {\r\n startMs = otherRange.startMs;\r\n }\r\n else {\r\n startMs = Math.max(startMs, otherRange.startMs);\r\n }\r\n }\r\n if (otherRange.endMs != null) {\r\n if (endMs == null) {\r\n endMs = otherRange.endMs;\r\n }\r\n else {\r\n endMs = Math.min(endMs, otherRange.endMs);\r\n }\r\n }\r\n if (startMs == null || endMs == null || startMs < endMs) {\r\n newRange = new UnzonedRange(startMs, endMs);\r\n newRange.isStart = this.isStart && startMs === this.startMs;\r\n newRange.isEnd = this.isEnd && endMs === this.endMs;\r\n }\r\n return newRange;\r\n };\r\n UnzonedRange.prototype.intersectsWith = function (otherRange) {\r\n return (this.endMs == null || otherRange.startMs == null || this.endMs > otherRange.startMs) &&\r\n (this.startMs == null || otherRange.endMs == null || this.startMs < otherRange.endMs);\r\n };\r\n UnzonedRange.prototype.containsRange = function (innerRange) {\r\n return (this.startMs == null || (innerRange.startMs != null && innerRange.startMs >= this.startMs)) &&\r\n (this.endMs == null || (innerRange.endMs != null && innerRange.endMs <= this.endMs));\r\n };\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n UnzonedRange.prototype.containsDate = function (date) {\r\n var ms = date.valueOf();\r\n return (this.startMs == null || ms >= this.startMs) &&\r\n (this.endMs == null || ms < this.endMs);\r\n };\r\n // If the given date is not within the given range, move it inside.\r\n // (If it's past the end, make it one millisecond before the end).\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n // Returns a MS-time.\r\n UnzonedRange.prototype.constrainDate = function (date) {\r\n var ms = date.valueOf();\r\n if (this.startMs != null && ms < this.startMs) {\r\n ms = this.startMs;\r\n }\r\n if (this.endMs != null && ms >= this.endMs) {\r\n ms = this.endMs - 1;\r\n }\r\n return ms;\r\n };\r\n UnzonedRange.prototype.equals = function (otherRange) {\r\n return this.startMs === otherRange.startMs && this.endMs === otherRange.endMs;\r\n };\r\n UnzonedRange.prototype.clone = function () {\r\n var range = new UnzonedRange(this.startMs, this.endMs);\r\n range.isStart = this.isStart;\r\n range.isEnd = this.isEnd;\r\n return range;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getStart = function () {\r\n if (this.startMs != null) {\r\n return moment_ext_1.default.utc(this.startMs).stripZone();\r\n }\r\n return null;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getEnd = function () {\r\n if (this.endMs != null) {\r\n return moment_ext_1.default.utc(this.endMs).stripZone();\r\n }\r\n return null;\r\n };\r\n UnzonedRange.prototype.as = function (unit) {\r\n return moment.utc(this.endMs).diff(moment.utc(this.startMs), unit, true);\r\n };\r\n return UnzonedRange;\r\n}());\r\nexports.default = UnzonedRange;\r\n/*\r\nOnly works for non-open-ended ranges.\r\n*/\r\nfunction compareUnzonedRanges(range1, range2) {\r\n return range1.startMs - range2.startMs; // earlier ranges go first\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 6 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(208);\r\nvar Class_1 = __webpack_require__(33);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar EventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventSource, _super);\r\n // can we do away with calendar? at least for the abstract?\r\n // useful for buildEventDef\r\n function EventSource(calendar) {\r\n var _this = _super.call(this) || this;\r\n _this.calendar = calendar;\r\n _this.className = [];\r\n _this.uid = String(EventSource.uuid++);\r\n return _this;\r\n }\r\n /*\r\n rawInput can be any data type!\r\n */\r\n EventSource.parse = function (rawInput, calendar) {\r\n var source = new this(calendar);\r\n if (typeof rawInput === 'object') {\r\n if (source.applyProps(rawInput)) {\r\n return source;\r\n }\r\n }\r\n return false;\r\n };\r\n EventSource.normalizeId = function (id) {\r\n if (id) {\r\n return String(id);\r\n }\r\n return null;\r\n };\r\n EventSource.prototype.fetch = function (start, end, timezone) {\r\n // subclasses must implement. must return a promise.\r\n };\r\n EventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n // optional for subclasses to implement\r\n };\r\n EventSource.prototype.removeAllEventDefs = function () {\r\n // optional for subclasses to implement\r\n };\r\n /*\r\n For compairing/matching\r\n */\r\n EventSource.prototype.getPrimitive = function (otherSource) {\r\n // subclasses must implement\r\n };\r\n EventSource.prototype.parseEventDefs = function (rawEventDefs) {\r\n var i;\r\n var eventDef;\r\n var eventDefs = [];\r\n for (i = 0; i < rawEventDefs.length; i++) {\r\n eventDef = this.parseEventDef(rawEventDefs[i]);\r\n if (eventDef) {\r\n eventDefs.push(eventDef);\r\n }\r\n }\r\n return eventDefs;\r\n };\r\n EventSource.prototype.parseEventDef = function (rawInput) {\r\n var calendarTransform = this.calendar.opt('eventDataTransform');\r\n var sourceTransform = this.eventDataTransform;\r\n if (calendarTransform) {\r\n rawInput = calendarTransform(rawInput, this.calendar);\r\n }\r\n if (sourceTransform) {\r\n rawInput = sourceTransform(rawInput, this.calendar);\r\n }\r\n return EventDefParser_1.default.parse(rawInput, this);\r\n };\r\n EventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventSource.normalizeId(rawProps.id);\r\n }\r\n // TODO: converge with EventDef\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n else if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventSource.uuid = 0;\r\n EventSource.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventSource.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventSource;\r\n}(Class_1.default));\r\nexports.default = EventSource;\r\nParsableModelMixin_1.default.mixInto(EventSource);\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nEventSource.defineStandardProps({\r\n // manually process...\r\n id: false,\r\n className: false,\r\n // automatically transfer...\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n rendering: true,\r\n overlap: true,\r\n constraint: true,\r\n allDayDefault: true,\r\n eventDataTransform: true\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 7 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/*\r\nUtility methods for easily listening to events on another object,\r\nand more importantly, easily unlistening from them.\r\n\r\nUSAGE:\r\n import { default as ListenerMixin, ListenerInterface } from './ListenerMixin'\r\nin class:\r\n listenTo: ListenerInterface['listenTo']\r\n stopListeningTo: ListenerInterface['stopListeningTo']\r\nafter class:\r\n ListenerMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar guid = 0;\r\nvar ListenerMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListenerMixin, _super);\r\n function ListenerMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Given an `other` object that has on/off methods, bind the given `callback` to an event by the given name.\r\n The `callback` will be called with the `this` context of the object that .listenTo is being called on.\r\n Can be called:\r\n .listenTo(other, eventName, callback)\r\n OR\r\n .listenTo(other, {\r\n eventName1: callback1,\r\n eventName2: callback2\r\n })\r\n */\r\n ListenerMixin.prototype.listenTo = function (other, arg, callback) {\r\n if (typeof arg === 'object') {\r\n for (var eventName in arg) {\r\n if (arg.hasOwnProperty(eventName)) {\r\n this.listenTo(other, eventName, arg[eventName]);\r\n }\r\n }\r\n }\r\n else if (typeof arg === 'string') {\r\n other.on(arg + '.' + this.getListenerNamespace(), // use event namespacing to identify this object\r\n $.proxy(callback, this) // always use `this` context\r\n // the usually-undesired jQuery guid behavior doesn't matter,\r\n // because we always unbind via namespace\r\n );\r\n }\r\n };\r\n /*\r\n Causes the current object to stop listening to events on the `other` object.\r\n `eventName` is optional. If omitted, will stop listening to ALL events on `other`.\r\n */\r\n ListenerMixin.prototype.stopListeningTo = function (other, eventName) {\r\n other.off((eventName || '') + '.' + this.getListenerNamespace());\r\n };\r\n /*\r\n Returns a string, unique to this object, to be used for event namespacing\r\n */\r\n ListenerMixin.prototype.getListenerNamespace = function () {\r\n if (this.listenerId == null) {\r\n this.listenerId = guid++;\r\n }\r\n return '_listener' + this.listenerId;\r\n };\r\n return ListenerMixin;\r\n}(Mixin_1.default));\r\nexports.default = ListenerMixin;\r\n\r\n\r\n/***/ }),\r\n/* 8 */,\r\n/* 9 */,\r\n/* 10 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ambigDateOfMonthRegex = /^\\s*\\d{4}-\\d\\d$/;\r\nvar ambigTimeOrZoneRegex = /^\\s*\\d{4}-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?)?$/;\r\nvar newMomentProto = moment.fn; // where we will attach our new methods\r\nexports.newMomentProto = newMomentProto;\r\nvar oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods\r\nexports.oldMomentProto = oldMomentProto;\r\n// tell momentjs to transfer these properties upon clone\r\nvar momentProperties = moment.momentProperties;\r\nmomentProperties.push('_fullCalendar');\r\nmomentProperties.push('_ambigTime');\r\nmomentProperties.push('_ambigZone');\r\n/*\r\nCall this if you want Moment's original format method to be used\r\n*/\r\nfunction oldMomentFormat(mom, formatStr) {\r\n return oldMomentProto.format.call(mom, formatStr); // oldMomentProto defined in moment-ext.js\r\n}\r\nexports.oldMomentFormat = oldMomentFormat;\r\n// Creating\r\n// -------------------------------------------------------------------------------------------------\r\n// Creates a new moment, similar to the vanilla moment(...) constructor, but with\r\n// extra features (ambiguous time, enhanced formatting). When given an existing moment,\r\n// it will function as a clone (and retain the zone of the moment). Anything else will\r\n// result in a moment in the local zone.\r\nvar momentExt = function () {\r\n return makeMoment(arguments);\r\n};\r\nexports.default = momentExt;\r\n// Sames as momentExt, but forces the resulting moment to be in the UTC timezone.\r\nmomentExt.utc = function () {\r\n var mom = makeMoment(arguments, true);\r\n // Force it into UTC because makeMoment doesn't guarantee it\r\n // (if given a pre-existing moment for example)\r\n if (mom.hasTime()) {\r\n mom.utc();\r\n }\r\n return mom;\r\n};\r\n// Same as momentExt, but when given an ISO8601 string, the timezone offset is preserved.\r\n// ISO8601 strings with no timezone offset will become ambiguously zoned.\r\nmomentExt.parseZone = function () {\r\n return makeMoment(arguments, true, true);\r\n};\r\n// Builds an enhanced moment from args. When given an existing moment, it clones. When given a\r\n// native Date, or called with no arguments (the current time), the resulting moment will be local.\r\n// Anything else needs to be \"parsed\" (a string or an array), and will be affected by:\r\n// parseAsUTC - if there is no zone information, should we parse the input in UTC?\r\n// parseZone - if there is zone information, should we force the zone of the moment?\r\nfunction makeMoment(args, parseAsUTC, parseZone) {\r\n if (parseAsUTC === void 0) { parseAsUTC = false; }\r\n if (parseZone === void 0) { parseZone = false; }\r\n var input = args[0];\r\n var isSingleString = args.length === 1 && typeof input === 'string';\r\n var isAmbigTime;\r\n var isAmbigZone;\r\n var ambigMatch;\r\n var mom;\r\n if (moment.isMoment(input) || util_1.isNativeDate(input) || input === undefined) {\r\n mom = moment.apply(null, args);\r\n }\r\n else {\r\n isAmbigTime = false;\r\n isAmbigZone = false;\r\n if (isSingleString) {\r\n if (ambigDateOfMonthRegex.test(input)) {\r\n // accept strings like '2014-05', but convert to the first of the month\r\n input += '-01';\r\n args = [input]; // for when we pass it on to moment's constructor\r\n isAmbigTime = true;\r\n isAmbigZone = true;\r\n }\r\n else if ((ambigMatch = ambigTimeOrZoneRegex.exec(input))) {\r\n isAmbigTime = !ambigMatch[5]; // no time part?\r\n isAmbigZone = true;\r\n }\r\n }\r\n else if ($.isArray(input)) {\r\n // arrays have no timezone information, so assume ambiguous zone\r\n isAmbigZone = true;\r\n }\r\n // otherwise, probably a string with a format\r\n if (parseAsUTC || isAmbigTime) {\r\n mom = moment.utc.apply(moment, args);\r\n }\r\n else {\r\n mom = moment.apply(null, args);\r\n }\r\n if (isAmbigTime) {\r\n mom._ambigTime = true;\r\n mom._ambigZone = true; // ambiguous time always means ambiguous zone\r\n }\r\n else if (parseZone) {\r\n if (isAmbigZone) {\r\n mom._ambigZone = true;\r\n }\r\n else if (isSingleString) {\r\n mom.utcOffset(input); // if not a valid zone, will assign UTC\r\n }\r\n }\r\n }\r\n mom._fullCalendar = true; // flag for extended functionality\r\n return mom;\r\n}\r\n// Week Number\r\n// -------------------------------------------------------------------------------------------------\r\n// Returns the week number, considering the locale's custom week number calcuation\r\n// `weeks` is an alias for `week`\r\nnewMomentProto.week = newMomentProto.weeks = function (input) {\r\n var weekCalc = this._locale._fullCalendar_weekCalc;\r\n if (input == null && typeof weekCalc === 'function') {\r\n return weekCalc(this);\r\n }\r\n else if (weekCalc === 'ISO') {\r\n return oldMomentProto.isoWeek.apply(this, arguments); // ISO getter/setter\r\n }\r\n return oldMomentProto.week.apply(this, arguments); // local getter/setter\r\n};\r\n// Time-of-day\r\n// -------------------------------------------------------------------------------------------------\r\n// GETTER\r\n// Returns a Duration with the hours/minutes/seconds/ms values of the moment.\r\n// If the moment has an ambiguous time, a duration of 00:00 will be returned.\r\n//\r\n// SETTER\r\n// You can supply a Duration, a Moment, or a Duration-like argument.\r\n// When setting the time, and the moment has an ambiguous time, it then becomes unambiguous.\r\nnewMomentProto.time = function (time) {\r\n // Fallback to the original method (if there is one) if this moment wasn't created via FullCalendar.\r\n // `time` is a generic enough method name where this precaution is necessary to avoid collisions w/ other plugins.\r\n if (!this._fullCalendar) {\r\n return oldMomentProto.time.apply(this, arguments);\r\n }\r\n if (time == null) {\r\n return moment.duration({\r\n hours: this.hours(),\r\n minutes: this.minutes(),\r\n seconds: this.seconds(),\r\n milliseconds: this.milliseconds()\r\n });\r\n }\r\n else {\r\n this._ambigTime = false; // mark that the moment now has a time\r\n if (!moment.isDuration(time) && !moment.isMoment(time)) {\r\n time = moment.duration(time);\r\n }\r\n // The day value should cause overflow (so 24 hours becomes 00:00:00 of next day).\r\n // Only for Duration times, not Moment times.\r\n var dayHours = 0;\r\n if (moment.isDuration(time)) {\r\n dayHours = Math.floor(time.asDays()) * 24;\r\n }\r\n // We need to set the individual fields.\r\n // Can't use startOf('day') then add duration. In case of DST at start of day.\r\n return this.hours(dayHours + time.hours())\r\n .minutes(time.minutes())\r\n .seconds(time.seconds())\r\n .milliseconds(time.milliseconds());\r\n }\r\n};\r\n// Converts the moment to UTC, stripping out its time-of-day and timezone offset,\r\n// but preserving its YMD. A moment with a stripped time will display no time\r\n// nor timezone offset when .format() is called.\r\nnewMomentProto.stripTime = function () {\r\n if (!this._ambigTime) {\r\n this.utc(true); // keepLocalTime=true (for keeping *date* value)\r\n // set time to zero\r\n this.set({\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n ms: 0\r\n });\r\n // Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears all ambig flags.\r\n this._ambigTime = true;\r\n this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns if the moment has a non-ambiguous time (boolean)\r\nnewMomentProto.hasTime = function () {\r\n return !this._ambigTime;\r\n};\r\n// Timezone\r\n// -------------------------------------------------------------------------------------------------\r\n// Converts the moment to UTC, stripping out its timezone offset, but preserving its\r\n// YMD and time-of-day. A moment with a stripped timezone offset will display no\r\n// timezone offset when .format() is called.\r\nnewMomentProto.stripZone = function () {\r\n var wasAmbigTime;\r\n if (!this._ambigZone) {\r\n wasAmbigTime = this._ambigTime;\r\n this.utc(true); // keepLocalTime=true (for keeping date and time values)\r\n // the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore\r\n this._ambigTime = wasAmbigTime || false;\r\n // Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears the ambig flags.\r\n this._ambigZone = true;\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns of the moment has a non-ambiguous timezone offset (boolean)\r\nnewMomentProto.hasZone = function () {\r\n return !this._ambigZone;\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.local = function (keepLocalTime) {\r\n // for when converting from ambiguously-zoned to local,\r\n // keep the time values when converting from UTC -> local\r\n oldMomentProto.local.call(this, this._ambigZone || keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this; // for chaining\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.utc = function (keepLocalTime) {\r\n oldMomentProto.utc.call(this, keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this;\r\n};\r\n// implicitly marks a zone (will probably get called upon .utc() and .local())\r\nnewMomentProto.utcOffset = function (tzo) {\r\n if (tzo != null) {\r\n // these assignments needs to happen before the original zone method is called.\r\n // I forget why, something to do with a browser crash.\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n }\r\n return oldMomentProto.utcOffset.apply(this, arguments);\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 11 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/*\r\nUSAGE:\r\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\r\nin class:\r\n on: EmitterInterface['on']\r\n one: EmitterInterface['one']\r\n off: EmitterInterface['off']\r\n trigger: EmitterInterface['trigger']\r\n triggerWith: EmitterInterface['triggerWith']\r\n hasHandlers: EmitterInterface['hasHandlers']\r\nafter class:\r\n EmitterMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar EmitterMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(EmitterMixin, _super);\r\n function EmitterMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // jQuery-ification via $(this) allows a non-DOM object to have\r\n // the same event handling capabilities (including namespaces).\r\n EmitterMixin.prototype.on = function (types, handler) {\r\n $(this).on(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.one = function (types, handler) {\r\n $(this).one(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype._prepareIntercept = function (handler) {\r\n // handlers are always called with an \"event\" object as their first param.\r\n // sneak the `this` context and arguments into the extra parameter object\r\n // and forward them on to the original handler.\r\n var intercept = function (ev, extra) {\r\n return handler.apply(extra.context || this, extra.args || []);\r\n };\r\n // mimick jQuery's internal \"proxy\" system (risky, I know)\r\n // causing all functions with the same .guid to appear to be the same.\r\n // https://github.com/jquery/jquery/blob/2.2.4/src/core.js#L448\r\n // this is needed for calling .off with the original non-intercept handler.\r\n if (!handler.guid) {\r\n handler.guid = $.guid++;\r\n }\r\n intercept.guid = handler.guid;\r\n return intercept;\r\n };\r\n EmitterMixin.prototype.off = function (types, handler) {\r\n $(this).off(types, handler);\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.trigger = function (types) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // pass in \"extra\" info to the intercept\r\n $(this).triggerHandler(types, { args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.triggerWith = function (types, context, args) {\r\n // `triggerHandler` is less reliant on the DOM compared to `trigger`.\r\n // pass in \"extra\" info to the intercept.\r\n $(this).triggerHandler(types, { context: context, args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.hasHandlers = function (type) {\r\n var hash = $._data(this, 'events'); // http://blog.jquery.com/2012/08/09/jquery-1-8-released/\r\n return hash && hash[type] && hash[type].length > 0;\r\n };\r\n return EmitterMixin;\r\n}(Mixin_1.default));\r\nexports.default = EmitterMixin;\r\n\r\n\r\n/***/ }),\r\n/* 12 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar ComponentFootprint = /** @class */ (function () {\r\n function ComponentFootprint(unzonedRange, isAllDay) {\r\n this.isAllDay = false; // component can choose to ignore this\r\n this.unzonedRange = unzonedRange;\r\n this.isAllDay = isAllDay;\r\n }\r\n /*\r\n Only works for non-open-ended ranges.\r\n */\r\n ComponentFootprint.prototype.toLegacy = function (calendar) {\r\n return {\r\n start: calendar.msToMoment(this.unzonedRange.startMs, this.isAllDay),\r\n end: calendar.msToMoment(this.unzonedRange.endMs, this.isAllDay)\r\n };\r\n };\r\n return ComponentFootprint;\r\n}());\r\nexports.default = ComponentFootprint;\r\n\r\n\r\n/***/ }),\r\n/* 13 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventInstance_1 = __webpack_require__(209);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar SingleEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(SingleEventDef, _super);\r\n function SingleEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Will receive start/end params, but will be ignored.\r\n */\r\n SingleEventDef.prototype.buildInstances = function () {\r\n return [this.buildInstance()];\r\n };\r\n SingleEventDef.prototype.buildInstance = function () {\r\n return new EventInstance_1.default(this, // definition\r\n this.dateProfile);\r\n };\r\n SingleEventDef.prototype.isAllDay = function () {\r\n return this.dateProfile.isAllDay();\r\n };\r\n SingleEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n def.dateProfile = this.dateProfile;\r\n return def;\r\n };\r\n SingleEventDef.prototype.rezone = function () {\r\n var calendar = this.source.calendar;\r\n var dateProfile = this.dateProfile;\r\n this.dateProfile = new EventDateProfile_1.default(calendar.moment(dateProfile.start), dateProfile.end ? calendar.moment(dateProfile.end) : null, calendar);\r\n };\r\n /*\r\n NOTE: if super-method fails, should still attempt to apply\r\n */\r\n SingleEventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n var dateProfile = EventDateProfile_1.default.parse(rawProps, this.source); // returns null on failure\r\n if (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n // make sure `date` shows up in the legacy event objects as-is\r\n if (rawProps.date != null) {\r\n this.miscProps.date = rawProps.date;\r\n }\r\n return superSuccess;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n return SingleEventDef;\r\n}(EventDef_1.default));\r\nexports.default = SingleEventDef;\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nSingleEventDef.defineStandardProps({\r\n start: false,\r\n date: false,\r\n end: false,\r\n allDay: false\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 14 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Mixin = /** @class */ (function () {\r\n function Mixin() {\r\n }\r\n Mixin.mixInto = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n if (!destClass.prototype[name]) {\r\n destClass.prototype[name] = _this.prototype[name];\r\n }\r\n });\r\n };\r\n /*\r\n will override existing methods\r\n TODO: remove! not used anymore\r\n */\r\n Mixin.mixOver = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n destClass.prototype[name] = _this.prototype[name];\r\n });\r\n };\r\n return Mixin;\r\n}());\r\nexports.default = Mixin;\r\n\r\n\r\n/***/ }),\r\n/* 15 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Interaction = /** @class */ (function () {\r\n function Interaction(component) {\r\n this.view = component._getView();\r\n this.component = component;\r\n }\r\n Interaction.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n Interaction.prototype.end = function () {\r\n // subclasses can implement\r\n };\r\n return Interaction;\r\n}());\r\nexports.default = Interaction;\r\n\r\n\r\n/***/ }),\r\n/* 16 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.version = '3.9.0';\r\n// When introducing internal API incompatibilities (where fullcalendar plugins would break),\r\n// the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0)\r\n// and the below integer should be incremented.\r\nexports.internalApiVersion = 12;\r\nvar util_1 = __webpack_require__(4);\r\nexports.applyAll = util_1.applyAll;\r\nexports.debounce = util_1.debounce;\r\nexports.isInt = util_1.isInt;\r\nexports.htmlEscape = util_1.htmlEscape;\r\nexports.cssToStr = util_1.cssToStr;\r\nexports.proxy = util_1.proxy;\r\nexports.capitaliseFirstLetter = util_1.capitaliseFirstLetter;\r\nexports.getOuterRect = util_1.getOuterRect;\r\nexports.getClientRect = util_1.getClientRect;\r\nexports.getContentRect = util_1.getContentRect;\r\nexports.getScrollbarWidths = util_1.getScrollbarWidths;\r\nexports.preventDefault = util_1.preventDefault;\r\nexports.parseFieldSpecs = util_1.parseFieldSpecs;\r\nexports.compareByFieldSpecs = util_1.compareByFieldSpecs;\r\nexports.compareByFieldSpec = util_1.compareByFieldSpec;\r\nexports.flexibleCompare = util_1.flexibleCompare;\r\nexports.computeGreatestUnit = util_1.computeGreatestUnit;\r\nexports.divideRangeByDuration = util_1.divideRangeByDuration;\r\nexports.divideDurationByDuration = util_1.divideDurationByDuration;\r\nexports.multiplyDuration = util_1.multiplyDuration;\r\nexports.durationHasTime = util_1.durationHasTime;\r\nexports.log = util_1.log;\r\nexports.warn = util_1.warn;\r\nexports.removeExact = util_1.removeExact;\r\nexports.intersectRects = util_1.intersectRects;\r\nvar date_formatting_1 = __webpack_require__(47);\r\nexports.formatDate = date_formatting_1.formatDate;\r\nexports.formatRange = date_formatting_1.formatRange;\r\nexports.queryMostGranularFormatUnit = date_formatting_1.queryMostGranularFormatUnit;\r\nvar locale_1 = __webpack_require__(31);\r\nexports.datepickerLocale = locale_1.datepickerLocale;\r\nexports.locale = locale_1.locale;\r\nvar moment_ext_1 = __webpack_require__(10);\r\nexports.moment = moment_ext_1.default;\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nexports.EmitterMixin = EmitterMixin_1.default;\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexports.ListenerMixin = ListenerMixin_1.default;\r\nvar Model_1 = __webpack_require__(48);\r\nexports.Model = Model_1.default;\r\nvar Constraints_1 = __webpack_require__(207);\r\nexports.Constraints = Constraints_1.default;\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nexports.UnzonedRange = UnzonedRange_1.default;\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nexports.ComponentFootprint = ComponentFootprint_1.default;\r\nvar BusinessHourGenerator_1 = __webpack_require__(212);\r\nexports.BusinessHourGenerator = BusinessHourGenerator_1.default;\r\nvar EventDef_1 = __webpack_require__(34);\r\nexports.EventDef = EventDef_1.default;\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nexports.EventDefMutation = EventDefMutation_1.default;\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nexports.EventSourceParser = EventSourceParser_1.default;\r\nvar EventSource_1 = __webpack_require__(6);\r\nexports.EventSource = EventSource_1.default;\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nexports.defineThemeSystem = ThemeRegistry_1.defineThemeSystem;\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nexports.EventInstanceGroup = EventInstanceGroup_1.default;\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nexports.ArrayEventSource = ArrayEventSource_1.default;\r\nvar FuncEventSource_1 = __webpack_require__(215);\r\nexports.FuncEventSource = FuncEventSource_1.default;\r\nvar JsonFeedEventSource_1 = __webpack_require__(216);\r\nexports.JsonFeedEventSource = JsonFeedEventSource_1.default;\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nexports.EventFootprint = EventFootprint_1.default;\r\nvar Class_1 = __webpack_require__(33);\r\nexports.Class = Class_1.default;\r\nvar Mixin_1 = __webpack_require__(14);\r\nexports.Mixin = Mixin_1.default;\r\nvar CoordCache_1 = __webpack_require__(53);\r\nexports.CoordCache = CoordCache_1.default;\r\nvar DragListener_1 = __webpack_require__(54);\r\nexports.DragListener = DragListener_1.default;\r\nvar Promise_1 = __webpack_require__(20);\r\nexports.Promise = Promise_1.default;\r\nvar TaskQueue_1 = __webpack_require__(217);\r\nexports.TaskQueue = TaskQueue_1.default;\r\nvar RenderQueue_1 = __webpack_require__(218);\r\nexports.RenderQueue = RenderQueue_1.default;\r\nvar Scroller_1 = __webpack_require__(39);\r\nexports.Scroller = Scroller_1.default;\r\nvar Theme_1 = __webpack_require__(19);\r\nexports.Theme = Theme_1.default;\r\nvar DateComponent_1 = __webpack_require__(219);\r\nexports.DateComponent = DateComponent_1.default;\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nexports.InteractiveDateComponent = InteractiveDateComponent_1.default;\r\nvar Calendar_1 = __webpack_require__(220);\r\nexports.Calendar = Calendar_1.default;\r\nvar View_1 = __webpack_require__(41);\r\nexports.View = View_1.default;\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nexports.defineView = ViewRegistry_1.defineView;\r\nexports.getViewConfig = ViewRegistry_1.getViewConfig;\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nexports.DayTableMixin = DayTableMixin_1.default;\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nexports.BusinessHourRenderer = BusinessHourRenderer_1.default;\r\nvar EventRenderer_1 = __webpack_require__(42);\r\nexports.EventRenderer = EventRenderer_1.default;\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nexports.FillRenderer = FillRenderer_1.default;\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nexports.HelperRenderer = HelperRenderer_1.default;\r\nvar ExternalDropping_1 = __webpack_require__(222);\r\nexports.ExternalDropping = ExternalDropping_1.default;\r\nvar EventResizing_1 = __webpack_require__(223);\r\nexports.EventResizing = EventResizing_1.default;\r\nvar EventPointing_1 = __webpack_require__(59);\r\nexports.EventPointing = EventPointing_1.default;\r\nvar EventDragging_1 = __webpack_require__(224);\r\nexports.EventDragging = EventDragging_1.default;\r\nvar DateSelecting_1 = __webpack_require__(225);\r\nexports.DateSelecting = DateSelecting_1.default;\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nexports.StandardInteractionsMixin = StandardInteractionsMixin_1.default;\r\nvar AgendaView_1 = __webpack_require__(226);\r\nexports.AgendaView = AgendaView_1.default;\r\nvar TimeGrid_1 = __webpack_require__(227);\r\nexports.TimeGrid = TimeGrid_1.default;\r\nvar DayGrid_1 = __webpack_require__(61);\r\nexports.DayGrid = DayGrid_1.default;\r\nvar BasicView_1 = __webpack_require__(62);\r\nexports.BasicView = BasicView_1.default;\r\nvar MonthView_1 = __webpack_require__(229);\r\nexports.MonthView = MonthView_1.default;\r\nvar ListView_1 = __webpack_require__(230);\r\nexports.ListView = ListView_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 17 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar EventDateProfile = /** @class */ (function () {\r\n function EventDateProfile(start, end, calendar) {\r\n this.start = start;\r\n this.end = end || null;\r\n this.unzonedRange = this.buildUnzonedRange(calendar);\r\n }\r\n /*\r\n Needs an EventSource object\r\n */\r\n EventDateProfile.parse = function (rawProps, source) {\r\n var startInput = rawProps.start || rawProps.date;\r\n var endInput = rawProps.end;\r\n if (!startInput) {\r\n return false;\r\n }\r\n var calendar = source.calendar;\r\n var start = calendar.moment(startInput);\r\n var end = endInput ? calendar.moment(endInput) : null;\r\n var forcedAllDay = rawProps.allDay;\r\n var forceEventDuration = calendar.opt('forceEventDuration');\r\n if (!start.isValid()) {\r\n return false;\r\n }\r\n if (end && (!end.isValid() || !end.isAfter(start))) {\r\n end = null;\r\n }\r\n if (forcedAllDay == null) {\r\n forcedAllDay = source.allDayDefault;\r\n if (forcedAllDay == null) {\r\n forcedAllDay = calendar.opt('allDayDefault');\r\n }\r\n }\r\n if (forcedAllDay === true) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else if (forcedAllDay === false) {\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n if (!end && forceEventDuration) {\r\n end = calendar.getDefaultEventEnd(!start.hasTime(), start);\r\n }\r\n return new EventDateProfile(start, end, calendar);\r\n };\r\n EventDateProfile.isStandardProp = function (propName) {\r\n return propName === 'start' || propName === 'date' || propName === 'end' || propName === 'allDay';\r\n };\r\n EventDateProfile.prototype.isAllDay = function () {\r\n return !(this.start.hasTime() || (this.end && this.end.hasTime()));\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.buildUnzonedRange = function (calendar) {\r\n var startMs = this.start.clone().stripZone().valueOf();\r\n var endMs = this.getEnd(calendar).stripZone().valueOf();\r\n return new UnzonedRange_1.default(startMs, endMs);\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.getEnd = function (calendar) {\r\n return this.end ?\r\n this.end.clone() :\r\n // derive the end from the start and allDay. compute allDay if necessary\r\n calendar.getDefaultEventEnd(this.isAllDay(), this.start);\r\n };\r\n return EventDateProfile;\r\n}());\r\nexports.default = EventDateProfile;\r\n\r\n\r\n/***/ }),\r\n/* 18 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar util_1 = __webpack_require__(35);\r\nvar EventRange_1 = __webpack_require__(211);\r\n/*\r\nIt's expected that there will be at least one EventInstance,\r\nOR that an explicitEventDef is assigned.\r\n*/\r\nvar EventInstanceGroup = /** @class */ (function () {\r\n function EventInstanceGroup(eventInstances) {\r\n this.eventInstances = eventInstances || [];\r\n }\r\n EventInstanceGroup.prototype.getAllEventRanges = function (constraintRange) {\r\n if (constraintRange) {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.eventInstances.map(util_1.eventInstanceToEventRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceRenderRanges = function (constraintRange) {\r\n if (this.isInverse()) {\r\n return this.sliceInverseRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceNormalRenderRanges = function (constraintRange) {\r\n var eventInstances = this.eventInstances;\r\n var i;\r\n var eventInstance;\r\n var slicedRange;\r\n var slicedEventRanges = [];\r\n for (i = 0; i < eventInstances.length; i++) {\r\n eventInstance = eventInstances[i];\r\n slicedRange = eventInstance.dateProfile.unzonedRange.intersect(constraintRange);\r\n if (slicedRange) {\r\n slicedEventRanges.push(new EventRange_1.default(slicedRange, eventInstance.def, eventInstance));\r\n }\r\n }\r\n return slicedEventRanges;\r\n };\r\n EventInstanceGroup.prototype.sliceInverseRenderRanges = function (constraintRange) {\r\n var unzonedRanges = this.eventInstances.map(util_1.eventInstanceToUnzonedRange);\r\n var ownerDef = this.getEventDef();\r\n unzonedRanges = UnzonedRange_1.default.invertRanges(unzonedRanges, constraintRange);\r\n return unzonedRanges.map(function (unzonedRange) {\r\n return new EventRange_1.default(unzonedRange, ownerDef); // don't give an EventInstance\r\n });\r\n };\r\n EventInstanceGroup.prototype.isInverse = function () {\r\n return this.getEventDef().hasInverseRendering();\r\n };\r\n EventInstanceGroup.prototype.getEventDef = function () {\r\n return this.explicitEventDef || this.eventInstances[0].def;\r\n };\r\n return EventInstanceGroup;\r\n}());\r\nexports.default = EventInstanceGroup;\r\n\r\n\r\n/***/ }),\r\n/* 19 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar Theme = /** @class */ (function () {\r\n function Theme(optionsManager) {\r\n this.optionsManager = optionsManager;\r\n this.processIconOverride();\r\n }\r\n Theme.prototype.processIconOverride = function () {\r\n if (this.iconOverrideOption) {\r\n this.setIconOverride(this.optionsManager.get(this.iconOverrideOption));\r\n }\r\n };\r\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\r\n var iconClassesCopy;\r\n var buttonName;\r\n if ($.isPlainObject(iconOverrideHash)) {\r\n iconClassesCopy = $.extend({}, this.iconClasses);\r\n for (buttonName in iconOverrideHash) {\r\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\r\n }\r\n this.iconClasses = iconClassesCopy;\r\n }\r\n else if (iconOverrideHash === false) {\r\n this.iconClasses = {};\r\n }\r\n };\r\n Theme.prototype.applyIconOverridePrefix = function (className) {\r\n var prefix = this.iconOverridePrefix;\r\n if (prefix && className.indexOf(prefix) !== 0) {\r\n className = prefix + className;\r\n }\r\n return className;\r\n };\r\n Theme.prototype.getClass = function (key) {\r\n return this.classes[key] || '';\r\n };\r\n Theme.prototype.getIconClass = function (buttonName) {\r\n var className = this.iconClasses[buttonName];\r\n if (className) {\r\n return this.baseIconClass + ' ' + className;\r\n }\r\n return '';\r\n };\r\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\r\n var className;\r\n if (this.iconOverrideCustomButtonOption) {\r\n className = customButtonProps[this.iconOverrideCustomButtonOption];\r\n if (className) {\r\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\r\n }\r\n }\r\n return '';\r\n };\r\n return Theme;\r\n}());\r\nexports.default = Theme;\r\nTheme.prototype.classes = {};\r\nTheme.prototype.iconClasses = {};\r\nTheme.prototype.baseIconClass = '';\r\nTheme.prototype.iconOverridePrefix = '';\r\n\r\n\r\n/***/ }),\r\n/* 20 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar PromiseStub = {\r\n construct: function (executor) {\r\n var deferred = $.Deferred();\r\n var promise = deferred.promise();\r\n if (typeof executor === 'function') {\r\n executor(function (val) {\r\n deferred.resolve(val);\r\n attachImmediatelyResolvingThen(promise, val);\r\n }, function () {\r\n deferred.reject();\r\n attachImmediatelyRejectingThen(promise);\r\n });\r\n }\r\n return promise;\r\n },\r\n resolve: function (val) {\r\n var deferred = $.Deferred().resolve(val);\r\n var promise = deferred.promise();\r\n attachImmediatelyResolvingThen(promise, val);\r\n return promise;\r\n },\r\n reject: function () {\r\n var deferred = $.Deferred().reject();\r\n var promise = deferred.promise();\r\n attachImmediatelyRejectingThen(promise);\r\n return promise;\r\n }\r\n};\r\nexports.default = PromiseStub;\r\nfunction attachImmediatelyResolvingThen(promise, val) {\r\n promise.then = function (onResolve) {\r\n if (typeof onResolve === 'function') {\r\n return PromiseStub.resolve(onResolve(val));\r\n }\r\n return promise;\r\n };\r\n}\r\nfunction attachImmediatelyRejectingThen(promise) {\r\n promise.then = function (onResolve, onReject) {\r\n if (typeof onReject === 'function') {\r\n onReject();\r\n }\r\n return promise;\r\n };\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 21 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(16);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexportHooks.touchMouseIgnoreWait = 500;\r\nvar globalEmitter = null;\r\nvar neededCount = 0;\r\n/*\r\nListens to document and window-level user-interaction events, like touch events and mouse events,\r\nand fires these events as-is to whoever is observing a GlobalEmitter.\r\nBest when used as a singleton via GlobalEmitter.get()\r\n\r\nNormalizes mouse/touch events. For examples:\r\n- ignores the the simulated mouse events that happen after a quick tap: mousemove+mousedown+mouseup+click\r\n- compensates for various buggy scenarios where a touchend does not fire\r\n*/\r\nvar GlobalEmitter = /** @class */ (function () {\r\n function GlobalEmitter() {\r\n this.isTouching = false;\r\n this.mouseIgnoreDepth = 0;\r\n }\r\n // gets the singleton\r\n GlobalEmitter.get = function () {\r\n if (!globalEmitter) {\r\n globalEmitter = new GlobalEmitter();\r\n globalEmitter.bind();\r\n }\r\n return globalEmitter;\r\n };\r\n // called when an object knows it will need a GlobalEmitter in the near future.\r\n GlobalEmitter.needed = function () {\r\n GlobalEmitter.get(); // ensures globalEmitter\r\n neededCount++;\r\n };\r\n // called when the object that originally called needed() doesn't need a GlobalEmitter anymore.\r\n GlobalEmitter.unneeded = function () {\r\n neededCount--;\r\n if (!neededCount) {\r\n globalEmitter.unbind();\r\n globalEmitter = null;\r\n }\r\n };\r\n GlobalEmitter.prototype.bind = function () {\r\n var _this = this;\r\n this.listenTo($(document), {\r\n touchstart: this.handleTouchStart,\r\n touchcancel: this.handleTouchCancel,\r\n touchend: this.handleTouchEnd,\r\n mousedown: this.handleMouseDown,\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.handleMouseUp,\r\n click: this.handleClick,\r\n selectstart: this.handleSelectStart,\r\n contextmenu: this.handleContextMenu\r\n });\r\n // because we need to call preventDefault\r\n // because https://www.chromestatus.com/features/5093566007214080\r\n // TODO: investigate performance because this is a global handler\r\n window.addEventListener('touchmove', this.handleTouchMoveProxy = function (ev) {\r\n _this.handleTouchMove($.Event(ev));\r\n }, { passive: false } // allows preventDefault()\r\n );\r\n // attach a handler to get called when ANY scroll action happens on the page.\r\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\r\n // http://stackoverflow.com/a/32954565/96342\r\n window.addEventListener('scroll', this.handleScrollProxy = function (ev) {\r\n _this.handleScroll($.Event(ev));\r\n }, true // useCapture\r\n );\r\n };\r\n GlobalEmitter.prototype.unbind = function () {\r\n this.stopListeningTo($(document));\r\n window.removeEventListener('touchmove', this.handleTouchMoveProxy);\r\n window.removeEventListener('scroll', this.handleScrollProxy, true // useCapture\r\n );\r\n };\r\n // Touch Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleTouchStart = function (ev) {\r\n // if a previous touch interaction never ended with a touchend, then implicitly end it,\r\n // but since a new touch interaction is about to begin, don't start the mouse ignore period.\r\n this.stopTouch(ev, true); // skipMouseIgnore=true\r\n this.isTouching = true;\r\n this.trigger('touchstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleTouchMove = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchmove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchCancel = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchcancel', ev);\r\n // Have touchcancel fire an artificial touchend. That way, handlers won't need to listen to both.\r\n // If touchend fires later, it won't have any effect b/c isTouching will be false.\r\n this.stopTouch(ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchEnd = function (ev) {\r\n this.stopTouch(ev);\r\n };\r\n // Mouse Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleMouseDown = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousedown', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseMove = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousemove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseUp = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mouseup', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleClick = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('click', ev);\r\n }\r\n };\r\n // Misc Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleSelectStart = function (ev) {\r\n this.trigger('selectstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleContextMenu = function (ev) {\r\n this.trigger('contextmenu', ev);\r\n };\r\n GlobalEmitter.prototype.handleScroll = function (ev) {\r\n this.trigger('scroll', ev);\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.stopTouch = function (ev, skipMouseIgnore) {\r\n if (skipMouseIgnore === void 0) { skipMouseIgnore = false; }\r\n if (this.isTouching) {\r\n this.isTouching = false;\r\n this.trigger('touchend', ev);\r\n if (!skipMouseIgnore) {\r\n this.startTouchMouseIgnore();\r\n }\r\n }\r\n };\r\n GlobalEmitter.prototype.startTouchMouseIgnore = function () {\r\n var _this = this;\r\n var wait = exportHooks.touchMouseIgnoreWait;\r\n if (wait) {\r\n this.mouseIgnoreDepth++;\r\n setTimeout(function () {\r\n _this.mouseIgnoreDepth--;\r\n }, wait);\r\n }\r\n };\r\n GlobalEmitter.prototype.shouldIgnoreMouse = function () {\r\n return this.isTouching || Boolean(this.mouseIgnoreDepth);\r\n };\r\n return GlobalEmitter;\r\n}());\r\nexports.default = GlobalEmitter;\r\nListenerMixin_1.default.mixInto(GlobalEmitter);\r\nEmitterMixin_1.default.mixInto(GlobalEmitter);\r\n\r\n\r\n/***/ }),\r\n/* 22 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar exportHooks = __webpack_require__(16);\r\nexports.viewHash = {};\r\nexportHooks.views = exports.viewHash;\r\nfunction defineView(viewName, viewConfig) {\r\n exports.viewHash[viewName] = viewConfig;\r\n}\r\nexports.defineView = defineView;\r\nfunction getViewConfig(viewName) {\r\n return exports.viewHash[viewName];\r\n}\r\nexports.getViewConfig = getViewConfig;\r\n\r\n\r\n/***/ }),\r\n/* 23 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar DragListener_1 = __webpack_require__(54);\r\n/* Tracks mouse movements over a component and raises events about which hit the mouse is over.\r\n------------------------------------------------------------------------------------------------------------------------\r\noptions:\r\n- subjectEl\r\n- subjectCenter\r\n*/\r\nvar HitDragListener = /** @class */ (function (_super) {\r\n tslib_1.__extends(HitDragListener, _super);\r\n function HitDragListener(component, options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.component = component;\r\n return _this;\r\n }\r\n // Called when drag listening starts (but a real drag has not necessarily began).\r\n // ev might be undefined if dragging was started manually.\r\n HitDragListener.prototype.handleInteractionStart = function (ev) {\r\n var subjectEl = this.subjectEl;\r\n var subjectRect;\r\n var origPoint;\r\n var point;\r\n this.component.hitsNeeded();\r\n this.computeScrollBounds(); // for autoscroll\r\n if (ev) {\r\n origPoint = { left: util_1.getEvX(ev), top: util_1.getEvY(ev) };\r\n point = origPoint;\r\n // constrain the point to bounds of the element being dragged\r\n if (subjectEl) {\r\n subjectRect = util_1.getOuterRect(subjectEl); // used for centering as well\r\n point = util_1.constrainPoint(point, subjectRect);\r\n }\r\n this.origHit = this.queryHit(point.left, point.top);\r\n // treat the center of the subject as the collision point?\r\n if (subjectEl && this.options.subjectCenter) {\r\n // only consider the area the subject overlaps the hit. best for large subjects.\r\n // TODO: skip this if hit didn't supply left/right/top/bottom\r\n if (this.origHit) {\r\n subjectRect = util_1.intersectRects(this.origHit, subjectRect) ||\r\n subjectRect; // in case there is no intersection\r\n }\r\n point = util_1.getRectCenter(subjectRect);\r\n }\r\n this.coordAdjust = util_1.diffPoints(point, origPoint); // point - origPoint\r\n }\r\n else {\r\n this.origHit = null;\r\n this.coordAdjust = null;\r\n }\r\n // call the super-method. do it after origHit has been computed\r\n _super.prototype.handleInteractionStart.call(this, ev);\r\n };\r\n // Called when the actual drag has started\r\n HitDragListener.prototype.handleDragStart = function (ev) {\r\n var hit;\r\n _super.prototype.handleDragStart.call(this, ev);\r\n // might be different from this.origHit if the min-distance is large\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n // report the initial hit the mouse is over\r\n // especially important if no min-distance and drag starts immediately\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n };\r\n // Called when the drag moves\r\n HitDragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n var hit;\r\n _super.prototype.handleDrag.call(this, dx, dy, ev);\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n if (!isHitsEqual(hit, this.hit)) {\r\n if (this.hit) {\r\n this.handleHitOut();\r\n }\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n }\r\n };\r\n // Called when dragging has been stopped\r\n HitDragListener.prototype.handleDragEnd = function (ev) {\r\n this.handleHitDone();\r\n _super.prototype.handleDragEnd.call(this, ev);\r\n };\r\n // Called when a the mouse has just moved over a new hit\r\n HitDragListener.prototype.handleHitOver = function (hit) {\r\n var isOrig = isHitsEqual(hit, this.origHit);\r\n this.hit = hit;\r\n this.trigger('hitOver', this.hit, isOrig, this.origHit);\r\n };\r\n // Called when the mouse has just moved out of a hit\r\n HitDragListener.prototype.handleHitOut = function () {\r\n if (this.hit) {\r\n this.trigger('hitOut', this.hit);\r\n this.handleHitDone();\r\n this.hit = null;\r\n }\r\n };\r\n // Called after a hitOut. Also called before a dragStop\r\n HitDragListener.prototype.handleHitDone = function () {\r\n if (this.hit) {\r\n this.trigger('hitDone', this.hit);\r\n }\r\n };\r\n // Called when the interaction ends, whether there was a real drag or not\r\n HitDragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n _super.prototype.handleInteractionEnd.call(this, ev, isCancelled);\r\n this.origHit = null;\r\n this.hit = null;\r\n this.component.hitsNotNeeded();\r\n };\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n HitDragListener.prototype.handleScrollEnd = function () {\r\n _super.prototype.handleScrollEnd.call(this);\r\n // hits' absolute positions will be in new places after a user's scroll.\r\n // HACK for recomputing.\r\n if (this.isDragging) {\r\n this.component.releaseHits();\r\n this.component.prepareHits();\r\n }\r\n };\r\n // Gets the hit underneath the coordinates for the given mouse event\r\n HitDragListener.prototype.queryHit = function (left, top) {\r\n if (this.coordAdjust) {\r\n left += this.coordAdjust.left;\r\n top += this.coordAdjust.top;\r\n }\r\n return this.component.queryHit(left, top);\r\n };\r\n return HitDragListener;\r\n}(DragListener_1.default));\r\nexports.default = HitDragListener;\r\n// Returns `true` if the hits are identically equal. `false` otherwise. Must be from the same component.\r\n// Two null values will be considered equal, as two \"out of the component\" states are the same.\r\nfunction isHitsEqual(hit0, hit1) {\r\n if (!hit0 && !hit1) {\r\n return true;\r\n }\r\n if (hit0 && hit1) {\r\n return hit0.component === hit1.component &&\r\n isHitPropsWithin(hit0, hit1) &&\r\n isHitPropsWithin(hit1, hit0); // ensures all props are identical\r\n }\r\n return false;\r\n}\r\n// Returns true if all of subHit's non-standard properties are within superHit\r\nfunction isHitPropsWithin(subHit, superHit) {\r\n for (var propName in subHit) {\r\n if (!/^(component|left|right|top|bottom)$/.test(propName)) {\r\n if (subHit[propName] !== superHit[propName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 24 */,\r\n/* 25 */,\r\n/* 26 */,\r\n/* 27 */,\r\n/* 28 */,\r\n/* 29 */,\r\n/* 30 */,\r\n/* 31 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(16);\r\nvar options_1 = __webpack_require__(32);\r\nvar util_1 = __webpack_require__(4);\r\nexports.localeOptionHash = {};\r\nexportHooks.locales = exports.localeOptionHash;\r\n// NOTE: can't guarantee any of these computations will run because not every locale has datepicker\r\n// configs, so make sure there are English fallbacks for these in the defaults file.\r\nvar dpComputableOptions = {\r\n buttonText: function (dpOptions) {\r\n return {\r\n // the translations sometimes wrongly contain HTML entities\r\n prev: util_1.stripHtmlEntities(dpOptions.prevText),\r\n next: util_1.stripHtmlEntities(dpOptions.nextText),\r\n today: util_1.stripHtmlEntities(dpOptions.currentText)\r\n };\r\n },\r\n // Produces format strings like \"MMMM YYYY\" -> \"September 2014\"\r\n monthYearFormat: function (dpOptions) {\r\n return dpOptions.showMonthAfterYear ?\r\n 'YYYY[' + dpOptions.yearSuffix + '] MMMM' :\r\n 'MMMM YYYY[' + dpOptions.yearSuffix + ']';\r\n }\r\n};\r\nvar momComputableOptions = {\r\n // Produces format strings like \"ddd M/D\" -> \"Fri 9/15\"\r\n dayOfMonthFormat: function (momOptions, fcOptions) {\r\n var format = momOptions.longDateFormat('l'); // for the format like \"M/D/YYYY\"\r\n // strip the year off the edge, as well as other misc non-whitespace chars\r\n format = format.replace(/^Y+[^\\w\\s]*|[^\\w\\s]*Y+$/g, '');\r\n if (fcOptions.isRTL) {\r\n format += ' ddd'; // for RTL, add day-of-week to end\r\n }\r\n else {\r\n format = 'ddd ' + format; // for LTR, add day-of-week to beginning\r\n }\r\n return format;\r\n },\r\n // Produces format strings like \"h:mma\" -> \"6:00pm\"\r\n mediumTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)a\" -> \"6pm\" / \"6:30pm\"\r\n smallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)t\" -> \"6p\" / \"6:30p\"\r\n extraSmallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"ha\" / \"H\" -> \"6pm\" / \"18\"\r\n hourFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '')\r\n .replace(/(\\Wmm)$/, '') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h:mm\" -> \"6:30\" (with no AM/PM)\r\n noMeridiemTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, ''); // remove trailing AM/PM\r\n }\r\n};\r\n// options that should be computed off live calendar options (considers override options)\r\n// TODO: best place for this? related to locale?\r\n// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it\r\nvar instanceComputableOptions = {\r\n // Produces format strings for results like \"Mo 16\"\r\n smallDayDateFormat: function (options) {\r\n return options.isRTL ?\r\n 'D dd' :\r\n 'dd D';\r\n },\r\n // Produces format strings for results like \"Wk 5\"\r\n weekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[ ' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ' ]w';\r\n },\r\n // Produces format strings for results like \"Wk5\"\r\n smallWeekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ']w';\r\n }\r\n};\r\n// TODO: make these computable properties in optionsManager\r\nfunction populateInstanceComputableOptions(options) {\r\n $.each(instanceComputableOptions, function (name, func) {\r\n if (options[name] == null) {\r\n options[name] = func(options);\r\n }\r\n });\r\n}\r\nexports.populateInstanceComputableOptions = populateInstanceComputableOptions;\r\n// Initialize jQuery UI datepicker translations while using some of the translations\r\n// Will set this as the default locales for datepicker.\r\nfunction datepickerLocale(localeCode, dpLocaleCode, dpOptions) {\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n var fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // transfer some simple options from datepicker to fc\r\n fcOptions.isRTL = dpOptions.isRTL;\r\n fcOptions.weekNumberTitle = dpOptions.weekHeader;\r\n // compute some more complex options from datepicker\r\n $.each(dpComputableOptions, function (name, func) {\r\n fcOptions[name] = func(dpOptions);\r\n });\r\n var jqDatePicker = $.datepicker;\r\n // is jQuery UI Datepicker is on the page?\r\n if (jqDatePicker) {\r\n // Register the locale data.\r\n // FullCalendar and MomentJS use locale codes like \"pt-br\" but Datepicker\r\n // does it like \"pt-BR\" or if it doesn't have the locale, maybe just \"pt\".\r\n // Make an alias so the locale can be referenced either way.\r\n jqDatePicker.regional[dpLocaleCode] =\r\n jqDatePicker.regional[localeCode] = // alias\r\n dpOptions;\r\n // Alias 'en' to the default locale data. Do this every time.\r\n jqDatePicker.regional.en = jqDatePicker.regional[''];\r\n // Set as Datepicker's global defaults.\r\n jqDatePicker.setDefaults(dpOptions);\r\n }\r\n}\r\nexports.datepickerLocale = datepickerLocale;\r\n// Sets FullCalendar-specific translations. Will set the locales as the global default.\r\nfunction locale(localeCode, newFcOptions) {\r\n var fcOptions;\r\n var momOptions;\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // provided new options for this locales? merge them in\r\n if (newFcOptions) {\r\n fcOptions = exports.localeOptionHash[localeCode] = options_1.mergeOptions([fcOptions, newFcOptions]);\r\n }\r\n // compute locale options that weren't defined.\r\n // always do this. newFcOptions can be undefined when initializing from i18n file,\r\n // so no way to tell if this is an initialization or a default-setting.\r\n momOptions = getMomentLocaleData(localeCode); // will fall back to en\r\n $.each(momComputableOptions, function (name, func) {\r\n if (fcOptions[name] == null) {\r\n fcOptions[name] = (func)(momOptions, fcOptions);\r\n }\r\n });\r\n // set it as the default locale for FullCalendar\r\n options_1.globalDefaults.locale = localeCode;\r\n}\r\nexports.locale = locale;\r\n// Returns moment's internal locale data. If doesn't exist, returns English.\r\nfunction getMomentLocaleData(localeCode) {\r\n return moment.localeData(localeCode) || moment.localeData('en');\r\n}\r\nexports.getMomentLocaleData = getMomentLocaleData;\r\n// Initialize English by forcing computation of moment-derived options.\r\n// Also, sets it as the default.\r\nlocale('en', options_1.englishDefaults);\r\n\r\n\r\n/***/ }),\r\n/* 32 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nexports.globalDefaults = {\r\n titleRangeSeparator: ' \\u2013 ',\r\n monthYearFormat: 'MMMM YYYY',\r\n defaultTimedEventDuration: '02:00:00',\r\n defaultAllDayEventDuration: { days: 1 },\r\n forceEventDuration: false,\r\n nextDayThreshold: '09:00:00',\r\n // display\r\n columnHeader: true,\r\n defaultView: 'month',\r\n aspectRatio: 1.35,\r\n header: {\r\n left: 'title',\r\n center: '',\r\n right: 'today prev,next'\r\n },\r\n weekends: true,\r\n weekNumbers: false,\r\n weekNumberTitle: 'W',\r\n weekNumberCalculation: 'local',\r\n // editable: false,\r\n // nowIndicator: false,\r\n scrollTime: '06:00:00',\r\n minTime: '00:00:00',\r\n maxTime: '24:00:00',\r\n showNonCurrentDates: true,\r\n // event ajax\r\n lazyFetching: true,\r\n startParam: 'start',\r\n endParam: 'end',\r\n timezoneParam: 'timezone',\r\n timezone: false,\r\n // allDayDefault: undefined,\r\n // locale\r\n locale: null,\r\n isRTL: false,\r\n buttonText: {\r\n prev: 'prev',\r\n next: 'next',\r\n prevYear: 'prev year',\r\n nextYear: 'next year',\r\n year: 'year',\r\n today: 'today',\r\n month: 'month',\r\n week: 'week',\r\n day: 'day'\r\n },\r\n // buttonIcons: null,\r\n allDayText: 'all-day',\r\n // allows setting a min-height to the event segment to prevent short events overlapping each other\r\n agendaEventMinHeight: 0,\r\n // jquery-ui theming\r\n theme: false,\r\n // themeButtonIcons: null,\r\n // eventResizableFromStart: false,\r\n dragOpacity: .75,\r\n dragRevertDuration: 500,\r\n dragScroll: true,\r\n // selectable: false,\r\n unselectAuto: true,\r\n // selectMinDistance: 0,\r\n dropAccept: '*',\r\n eventOrder: 'title',\r\n // eventRenderWait: null,\r\n eventLimit: false,\r\n eventLimitText: 'more',\r\n eventLimitClick: 'popover',\r\n dayPopoverFormat: 'LL',\r\n handleWindowResize: true,\r\n windowResizeDelay: 100,\r\n longPressDelay: 1000\r\n};\r\nexports.englishDefaults = {\r\n dayPopoverFormat: 'dddd, MMMM D'\r\n};\r\nexports.rtlDefaults = {\r\n header: {\r\n left: 'next,prev today',\r\n center: '',\r\n right: 'title'\r\n },\r\n buttonIcons: {\r\n prev: 'right-single-arrow',\r\n next: 'left-single-arrow',\r\n prevYear: 'right-double-arrow',\r\n nextYear: 'left-double-arrow'\r\n },\r\n themeButtonIcons: {\r\n prev: 'circle-triangle-e',\r\n next: 'circle-triangle-w',\r\n nextYear: 'seek-prev',\r\n prevYear: 'seek-next'\r\n }\r\n};\r\nvar complexOptions = [\r\n 'header',\r\n 'footer',\r\n 'buttonText',\r\n 'buttonIcons',\r\n 'themeButtonIcons'\r\n];\r\n// Merges an array of option objects into a single object\r\nfunction mergeOptions(optionObjs) {\r\n return util_1.mergeProps(optionObjs, complexOptions);\r\n}\r\nexports.mergeOptions = mergeOptions;\r\n\r\n\r\n/***/ }),\r\n/* 33 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\n// Class that all other classes will inherit from\r\nvar Class = /** @class */ (function () {\r\n function Class() {\r\n }\r\n // Called on a class to create a subclass.\r\n // LIMITATION: cannot provide a constructor!\r\n Class.extend = function (members) {\r\n var SubClass = /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return SubClass;\r\n }(this));\r\n util_1.copyOwnProps(members, SubClass.prototype);\r\n return SubClass;\r\n };\r\n // Adds new member variables/methods to the class's prototype.\r\n // Can be called with another class, or a plain object hash containing new members.\r\n Class.mixin = function (members) {\r\n util_1.copyOwnProps(members, this.prototype);\r\n };\r\n return Class;\r\n}());\r\nexports.default = Class;\r\n\r\n\r\n/***/ }),\r\n/* 34 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(208);\r\nvar EventDef = /** @class */ (function () {\r\n function EventDef(source) {\r\n this.source = source;\r\n this.className = [];\r\n this.miscProps = {};\r\n }\r\n EventDef.parse = function (rawInput, source) {\r\n var def = new this(source);\r\n if (def.applyProps(rawInput)) {\r\n return def;\r\n }\r\n return false;\r\n };\r\n EventDef.normalizeId = function (id) {\r\n return String(id);\r\n };\r\n EventDef.generateId = function () {\r\n return '_fc' + (EventDef.uuid++);\r\n };\r\n EventDef.prototype.clone = function () {\r\n var copy = new this.constructor(this.source);\r\n copy.id = this.id;\r\n copy.rawId = this.rawId;\r\n copy.uid = this.uid; // not really unique anymore :(\r\n EventDef.copyVerbatimStandardProps(this, copy);\r\n copy.className = this.className.slice(); // copy\r\n copy.miscProps = $.extend({}, this.miscProps);\r\n return copy;\r\n };\r\n EventDef.prototype.hasInverseRendering = function () {\r\n return this.getRendering() === 'inverse-background';\r\n };\r\n EventDef.prototype.hasBgRendering = function () {\r\n var rendering = this.getRendering();\r\n return rendering === 'inverse-background' || rendering === 'background';\r\n };\r\n EventDef.prototype.getRendering = function () {\r\n if (this.rendering != null) {\r\n return this.rendering;\r\n }\r\n return this.source.rendering;\r\n };\r\n EventDef.prototype.getConstraint = function () {\r\n if (this.constraint != null) {\r\n return this.constraint;\r\n }\r\n if (this.source.constraint != null) {\r\n return this.source.constraint;\r\n }\r\n return this.source.calendar.opt('eventConstraint'); // what about View option?\r\n };\r\n EventDef.prototype.getOverlap = function () {\r\n if (this.overlap != null) {\r\n return this.overlap;\r\n }\r\n if (this.source.overlap != null) {\r\n return this.source.overlap;\r\n }\r\n return this.source.calendar.opt('eventOverlap'); // what about View option?\r\n };\r\n EventDef.prototype.isStartExplicitlyEditable = function () {\r\n if (this.startEditable != null) {\r\n return this.startEditable;\r\n }\r\n return this.source.startEditable;\r\n };\r\n EventDef.prototype.isDurationExplicitlyEditable = function () {\r\n if (this.durationEditable != null) {\r\n return this.durationEditable;\r\n }\r\n return this.source.durationEditable;\r\n };\r\n EventDef.prototype.isExplicitlyEditable = function () {\r\n if (this.editable != null) {\r\n return this.editable;\r\n }\r\n return this.source.editable;\r\n };\r\n EventDef.prototype.toLegacy = function () {\r\n var obj = $.extend({}, this.miscProps);\r\n obj._id = this.uid;\r\n obj.source = this.source;\r\n obj.className = this.className.slice(); // copy\r\n obj.allDay = this.isAllDay();\r\n if (this.rawId != null) {\r\n obj.id = this.rawId;\r\n }\r\n EventDef.copyVerbatimStandardProps(this, obj);\r\n return obj;\r\n };\r\n EventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventDef.normalizeId((this.rawId = rawProps.id));\r\n }\r\n else {\r\n this.id = EventDef.generateId();\r\n }\r\n if (rawProps._id != null) {\r\n this.uid = String(rawProps._id);\r\n }\r\n else {\r\n this.uid = EventDef.generateId();\r\n }\r\n // TODO: converge with EventSource\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventDef.prototype.applyMiscProps = function (rawProps) {\r\n $.extend(this.miscProps, rawProps);\r\n };\r\n EventDef.uuid = 0;\r\n EventDef.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventDef.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventDef;\r\n}());\r\nexports.default = EventDef;\r\nParsableModelMixin_1.default.mixInto(EventDef);\r\nEventDef.defineStandardProps({\r\n // not automatically assigned (`false`)\r\n _id: false,\r\n id: false,\r\n className: false,\r\n source: false,\r\n // automatically assigned (`true`)\r\n title: true,\r\n url: true,\r\n rendering: true,\r\n constraint: true,\r\n overlap: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 35 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange_1 = __webpack_require__(211);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nfunction eventDefsToEventInstances(eventDefs, unzonedRange) {\r\n var eventInstances = [];\r\n var i;\r\n for (i = 0; i < eventDefs.length; i++) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventDefs[i].buildInstances(unzonedRange));\r\n }\r\n return eventInstances;\r\n}\r\nexports.eventDefsToEventInstances = eventDefsToEventInstances;\r\nfunction eventInstanceToEventRange(eventInstance) {\r\n return new EventRange_1.default(eventInstance.dateProfile.unzonedRange, eventInstance.def, eventInstance);\r\n}\r\nexports.eventInstanceToEventRange = eventInstanceToEventRange;\r\nfunction eventRangeToEventFootprint(eventRange) {\r\n return new EventFootprint_1.default(new ComponentFootprint_1.default(eventRange.unzonedRange, eventRange.eventDef.isAllDay()), eventRange.eventDef, eventRange.eventInstance // might not exist\r\n );\r\n}\r\nexports.eventRangeToEventFootprint = eventRangeToEventFootprint;\r\nfunction eventInstanceToUnzonedRange(eventInstance) {\r\n return eventInstance.dateProfile.unzonedRange;\r\n}\r\nexports.eventInstanceToUnzonedRange = eventInstanceToUnzonedRange;\r\nfunction eventFootprintToComponentFootprint(eventFootprint) {\r\n return eventFootprint.componentFootprint;\r\n}\r\nexports.eventFootprintToComponentFootprint = eventFootprintToComponentFootprint;\r\n\r\n\r\n/***/ }),\r\n/* 36 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventFootprint = /** @class */ (function () {\r\n function EventFootprint(componentFootprint, eventDef, eventInstance) {\r\n this.componentFootprint = componentFootprint;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n EventFootprint.prototype.getEventLegacy = function () {\r\n return (this.eventInstance || this.eventDef).toLegacy();\r\n };\r\n return EventFootprint;\r\n}());\r\nexports.default = EventFootprint;\r\n\r\n\r\n/***/ }),\r\n/* 37 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventDefMutation = /** @class */ (function () {\r\n function EventDefMutation() {\r\n }\r\n EventDefMutation.createFromRawProps = function (eventInstance, rawProps, largeUnit) {\r\n var eventDef = eventInstance.def;\r\n var dateProps = {};\r\n var standardProps = {};\r\n var miscProps = {};\r\n var verbatimStandardProps = {};\r\n var eventDefId = null;\r\n var className = null;\r\n var propName;\r\n var dateProfile;\r\n var dateMutation;\r\n var defMutation;\r\n for (propName in rawProps) {\r\n if (EventDateProfile_1.default.isStandardProp(propName)) {\r\n dateProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.isStandardProp(propName)) {\r\n standardProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.miscProps[propName] !== rawProps[propName]) {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n dateProfile = EventDateProfile_1.default.parse(dateProps, eventDef.source);\r\n if (dateProfile) {\r\n dateMutation = EventDefDateMutation_1.default.createFromDiff(eventInstance.dateProfile, dateProfile, largeUnit);\r\n }\r\n if (standardProps.id !== eventDef.id) {\r\n eventDefId = standardProps.id; // only apply if there's a change\r\n }\r\n if (!util_1.isArraysEqual(standardProps.className, eventDef.className)) {\r\n className = standardProps.className; // only apply if there's a change\r\n }\r\n EventDef_1.default.copyVerbatimStandardProps(standardProps, // src\r\n verbatimStandardProps // dest\r\n );\r\n defMutation = new EventDefMutation();\r\n defMutation.eventDefId = eventDefId;\r\n defMutation.className = className;\r\n defMutation.verbatimStandardProps = verbatimStandardProps;\r\n defMutation.miscProps = miscProps;\r\n if (dateMutation) {\r\n defMutation.dateMutation = dateMutation;\r\n }\r\n return defMutation;\r\n };\r\n /*\r\n eventDef assumed to be a SingleEventDef.\r\n returns an undo function.\r\n */\r\n EventDefMutation.prototype.mutateSingle = function (eventDef) {\r\n var origDateProfile;\r\n if (this.dateMutation) {\r\n origDateProfile = eventDef.dateProfile;\r\n eventDef.dateProfile = this.dateMutation.buildNewDateProfile(origDateProfile, eventDef.source.calendar);\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.eventDefId != null) {\r\n eventDef.id = EventDef_1.default.normalizeId((eventDef.rawId = this.eventDefId));\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.className) {\r\n eventDef.className = this.className;\r\n }\r\n // can't undo\r\n if (this.verbatimStandardProps) {\r\n SingleEventDef_1.default.copyVerbatimStandardProps(this.verbatimStandardProps, // src\r\n eventDef // dest\r\n );\r\n }\r\n // can't undo\r\n if (this.miscProps) {\r\n eventDef.applyMiscProps(this.miscProps);\r\n }\r\n if (origDateProfile) {\r\n return function () {\r\n eventDef.dateProfile = origDateProfile;\r\n };\r\n }\r\n else {\r\n return function () { };\r\n }\r\n };\r\n EventDefMutation.prototype.setDateMutation = function (dateMutation) {\r\n if (dateMutation && !dateMutation.isEmpty()) {\r\n this.dateMutation = dateMutation;\r\n }\r\n else {\r\n this.dateMutation = null;\r\n }\r\n };\r\n EventDefMutation.prototype.isEmpty = function () {\r\n return !this.dateMutation;\r\n };\r\n return EventDefMutation;\r\n}());\r\nexports.default = EventDefMutation;\r\n\r\n\r\n/***/ }),\r\n/* 38 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n sourceClasses: [],\r\n registerClass: function (EventSourceClass) {\r\n this.sourceClasses.unshift(EventSourceClass); // give highest priority\r\n },\r\n parse: function (rawInput, calendar) {\r\n var sourceClasses = this.sourceClasses;\r\n var i;\r\n var eventSource;\r\n for (i = 0; i < sourceClasses.length; i++) {\r\n eventSource = sourceClasses[i].parse(rawInput, calendar);\r\n if (eventSource) {\r\n return eventSource;\r\n }\r\n }\r\n }\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 39 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Class_1 = __webpack_require__(33);\r\n/*\r\nEmbodies a div that has potential scrollbars\r\n*/\r\nvar Scroller = /** @class */ (function (_super) {\r\n tslib_1.__extends(Scroller, _super);\r\n function Scroller(options) {\r\n var _this = _super.call(this) || this;\r\n options = options || {};\r\n _this.overflowX = options.overflowX || options.overflow || 'auto';\r\n _this.overflowY = options.overflowY || options.overflow || 'auto';\r\n return _this;\r\n }\r\n Scroller.prototype.render = function () {\r\n this.el = this.renderEl();\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.renderEl = function () {\r\n return (this.scrollEl = $('
'));\r\n };\r\n // sets to natural height, unlocks overflow\r\n Scroller.prototype.clear = function () {\r\n this.setHeight('auto');\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.destroy = function () {\r\n this.el.remove();\r\n };\r\n // Overflow\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.applyOverflow = function () {\r\n this.scrollEl.css({\r\n 'overflow-x': this.overflowX,\r\n 'overflow-y': this.overflowY\r\n });\r\n };\r\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\r\n // Useful for preserving scrollbar widths regardless of future resizes.\r\n // Can pass in scrollbarWidths for optimization.\r\n Scroller.prototype.lockOverflow = function (scrollbarWidths) {\r\n var overflowX = this.overflowX;\r\n var overflowY = this.overflowY;\r\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\r\n if (overflowX === 'auto') {\r\n overflowX = (scrollbarWidths.top || scrollbarWidths.bottom || // horizontal scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth) ? 'scroll' : 'hidden';\r\n }\r\n if (overflowY === 'auto') {\r\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // vertical scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight) ? 'scroll' : 'hidden';\r\n }\r\n this.scrollEl.css({ 'overflow-x': overflowX, 'overflow-y': overflowY });\r\n };\r\n // Getters / Setters\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.setHeight = function (height) {\r\n this.scrollEl.height(height);\r\n };\r\n Scroller.prototype.getScrollTop = function () {\r\n return this.scrollEl.scrollTop();\r\n };\r\n Scroller.prototype.setScrollTop = function (top) {\r\n this.scrollEl.scrollTop(top);\r\n };\r\n Scroller.prototype.getClientWidth = function () {\r\n return this.scrollEl[0].clientWidth;\r\n };\r\n Scroller.prototype.getClientHeight = function () {\r\n return this.scrollEl[0].clientHeight;\r\n };\r\n Scroller.prototype.getScrollbarWidths = function () {\r\n return util_1.getScrollbarWidths(this.scrollEl);\r\n };\r\n return Scroller;\r\n}(Class_1.default));\r\nexports.default = Scroller;\r\n\r\n\r\n/***/ }),\r\n/* 40 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar DateComponent_1 = __webpack_require__(219);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar InteractiveDateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(InteractiveDateComponent, _super);\r\n function InteractiveDateComponent(_view, _options) {\r\n var _this = _super.call(this, _view, _options) || this;\r\n // self-config, overridable by subclasses\r\n _this.segSelector = '.fc-event-container > *'; // what constitutes an event element?\r\n if (_this.dateSelectingClass) {\r\n _this.dateClicking = new _this.dateClickingClass(_this);\r\n }\r\n if (_this.dateSelectingClass) {\r\n _this.dateSelecting = new _this.dateSelectingClass(_this);\r\n }\r\n if (_this.eventPointingClass) {\r\n _this.eventPointing = new _this.eventPointingClass(_this);\r\n }\r\n if (_this.eventDraggingClass && _this.eventPointing) {\r\n _this.eventDragging = new _this.eventDraggingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.eventResizingClass && _this.eventPointing) {\r\n _this.eventResizing = new _this.eventResizingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.externalDroppingClass) {\r\n _this.externalDropping = new _this.externalDroppingClass(_this);\r\n }\r\n return _this;\r\n }\r\n // Sets the container element that the view should render inside of, does global DOM-related initializations,\r\n // and renders all the non-date-related content inside.\r\n InteractiveDateComponent.prototype.setElement = function (el) {\r\n _super.prototype.setElement.call(this, el);\r\n if (this.dateClicking) {\r\n this.dateClicking.bindToEl(el);\r\n }\r\n if (this.dateSelecting) {\r\n this.dateSelecting.bindToEl(el);\r\n }\r\n this.bindAllSegHandlersToEl(el);\r\n };\r\n InteractiveDateComponent.prototype.removeElement = function () {\r\n this.endInteractions();\r\n _super.prototype.removeElement.call(this);\r\n };\r\n InteractiveDateComponent.prototype.executeEventUnrender = function () {\r\n this.endInteractions();\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n InteractiveDateComponent.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.bindToDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.unbindFromDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.bindDateHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n // attach a handler to the grid's root element.\r\n // jQuery will take care of unregistering them when removeElement gets called.\r\n this.el.on(name, function (ev) {\r\n if (!$(ev.target).is(_this.segSelector + ':not(.fc-helper),' + // directly on an event element\r\n _this.segSelector + ':not(.fc-helper) *,' + // within an event element\r\n '.fc-more,' + // a \"more..\" link\r\n 'a[data-goto]' // a clickable nav link\r\n )) {\r\n return handler.call(_this, ev);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindAllSegHandlersToEl = function (el) {\r\n [\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (eventInteraction) {\r\n if (eventInteraction) {\r\n eventInteraction.bindToEl(el);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindSegHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n el.on(name, this.segSelector, function (ev) {\r\n var segEl = $(ev.currentTarget);\r\n if (!segEl.is('.fc-helper')) {\r\n var seg = segEl.data('fc-seg'); // grab segment data. put there by View::renderEventsPayload\r\n if (seg && !_this.shouldIgnoreEventPointing()) {\r\n return handler.call(_this, seg, ev); // context will be the Grid\r\n }\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreMouse = function () {\r\n // HACK\r\n // This will still work even though bindDateHandlerToEl doesn't use GlobalEmitter.\r\n return GlobalEmitter_1.default.get().shouldIgnoreMouse();\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreTouch = function () {\r\n var view = this._getView();\r\n // On iOS (and Android?) when a new selection is initiated overtop another selection,\r\n // the touchend never fires because the elements gets removed mid-touch-interaction (my theory).\r\n // HACK: simply don't allow this to happen.\r\n // ALSO: prevent selection when an *event* is already raised.\r\n return view.isSelected || view.selectedEvent;\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreEventPointing = function () {\r\n // only call the handlers if there is not a drag/resize in progress\r\n return (this.eventDragging && this.eventDragging.isDragging) ||\r\n (this.eventResizing && this.eventResizing.isResizing);\r\n };\r\n InteractiveDateComponent.prototype.canStartSelection = function (seg, ev) {\r\n return util_1.getEvIsTouch(ev) &&\r\n !this.canStartResize(seg, ev) &&\r\n (this.isEventDefDraggable(seg.footprint.eventDef) ||\r\n this.isEventDefResizable(seg.footprint.eventDef));\r\n };\r\n InteractiveDateComponent.prototype.canStartDrag = function (seg, ev) {\r\n return !this.canStartResize(seg, ev) &&\r\n this.isEventDefDraggable(seg.footprint.eventDef);\r\n };\r\n InteractiveDateComponent.prototype.canStartResize = function (seg, ev) {\r\n var view = this._getView();\r\n var eventDef = seg.footprint.eventDef;\r\n return (!util_1.getEvIsTouch(ev) || view.isEventDefSelected(eventDef)) &&\r\n this.isEventDefResizable(eventDef) &&\r\n $(ev.target).is('.fc-resizer');\r\n };\r\n // Kills all in-progress dragging.\r\n // Useful for when public API methods that result in re-rendering are invoked during a drag.\r\n // Also useful for when touch devices misbehave and don't fire their touchend.\r\n InteractiveDateComponent.prototype.endInteractions = function () {\r\n [\r\n this.dateClicking,\r\n this.dateSelecting,\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (interaction) {\r\n if (interaction) {\r\n interaction.end();\r\n }\r\n });\r\n };\r\n // Event Drag-n-Drop\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be dragged by the user\r\n InteractiveDateComponent.prototype.isEventDefDraggable = function (eventDef) {\r\n return this.isEventDefStartEditable(eventDef);\r\n };\r\n InteractiveDateComponent.prototype.isEventDefStartEditable = function (eventDef) {\r\n var isEditable = eventDef.isStartExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('eventStartEditable');\r\n if (isEditable == null) {\r\n isEditable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isEditable;\r\n };\r\n InteractiveDateComponent.prototype.isEventDefGenerallyEditable = function (eventDef) {\r\n var isEditable = eventDef.isExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('editable');\r\n }\r\n return isEditable;\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be resized from its starting edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromStart = function (eventDef) {\r\n return this.opt('eventResizableFromStart') && this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized from its ending edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromEnd = function (eventDef) {\r\n return this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized by the user at all\r\n InteractiveDateComponent.prototype.isEventDefResizable = function (eventDef) {\r\n var isResizable = eventDef.isDurationExplicitlyEditable();\r\n if (isResizable == null) {\r\n isResizable = this.opt('eventDurationEditable');\r\n if (isResizable == null) {\r\n isResizable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isResizable;\r\n };\r\n // Event Mutation / Constraints\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Diffs the two dates, returning a duration, based on granularity of the grid\r\n // TODO: port isTimeScale into this system?\r\n InteractiveDateComponent.prototype.diffDates = function (a, b) {\r\n if (this.largeUnit) {\r\n return util_1.diffByUnit(a, b, this.largeUnit);\r\n }\r\n else {\r\n return util_1.diffDayTime(a, b);\r\n }\r\n };\r\n // is it allowed, in relation to the view's validRange?\r\n // NOTE: very similar to isExternalInstanceGroupAllowed\r\n InteractiveDateComponent.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // TODO: just use getAllEventRanges directly\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n return view.calendar.constraints.isEventInstanceGroupAllowed(eventInstanceGroup);\r\n };\r\n // NOTE: very similar to isEventInstanceGroupAllowed\r\n // when it's a completely anonymous external drag, no event.\r\n InteractiveDateComponent.prototype.isExternalInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // treat it as a selection\r\n // TODO: pass in eventInstanceGroup instead\r\n // because we don't want calendar's constraint system to depend on a component's\r\n // determination of footprints.\r\n if (!view.calendar.constraints.isSelectionFootprintAllowed(eventFootprints[i].componentFootprint)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return InteractiveDateComponent;\r\n}(DateComponent_1.default));\r\nexports.default = InteractiveDateComponent;\r\n\r\n\r\n/***/ }),\r\n/* 41 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar RenderQueue_1 = __webpack_require__(218);\r\nvar DateProfileGenerator_1 = __webpack_require__(221);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/* An abstract class from which other views inherit from\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar View = /** @class */ (function (_super) {\r\n tslib_1.__extends(View, _super);\r\n function View(calendar, viewSpec) {\r\n var _this = _super.call(this, null, viewSpec.options) || this;\r\n _this.batchRenderDepth = 0;\r\n _this.isSelected = false; // boolean whether a range of time is user-selected or not\r\n _this.calendar = calendar;\r\n _this.viewSpec = viewSpec;\r\n // shortcuts\r\n _this.type = viewSpec.type;\r\n // .name is deprecated\r\n _this.name = _this.type;\r\n _this.initRenderQueue();\r\n _this.initHiddenDays();\r\n _this.dateProfileGenerator = new _this.dateProfileGeneratorClass(_this);\r\n _this.bindBaseRenderHandlers();\r\n _this.eventOrderSpecs = util_1.parseFieldSpecs(_this.opt('eventOrder'));\r\n // legacy\r\n if (_this['initialize']) {\r\n _this['initialize']();\r\n }\r\n return _this;\r\n }\r\n View.prototype._getView = function () {\r\n return this;\r\n };\r\n // Retrieves an option with the given name\r\n View.prototype.opt = function (name) {\r\n return this.options[name];\r\n };\r\n /* Render Queue\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.initRenderQueue = function () {\r\n this.renderQueue = new RenderQueue_1.default({\r\n event: this.opt('eventRenderWait')\r\n });\r\n this.renderQueue.on('start', this.onRenderQueueStart.bind(this));\r\n this.renderQueue.on('stop', this.onRenderQueueStop.bind(this));\r\n this.on('before:change', this.startBatchRender);\r\n this.on('change', this.stopBatchRender);\r\n };\r\n View.prototype.onRenderQueueStart = function () {\r\n this.calendar.freezeContentHeight();\r\n this.addScroll(this.queryScroll());\r\n };\r\n View.prototype.onRenderQueueStop = function () {\r\n if (this.calendar.updateViewSize()) {\r\n this.popScroll();\r\n }\r\n this.calendar.thawContentHeight();\r\n };\r\n View.prototype.startBatchRender = function () {\r\n if (!(this.batchRenderDepth++)) {\r\n this.renderQueue.pause();\r\n }\r\n };\r\n View.prototype.stopBatchRender = function () {\r\n if (!(--this.batchRenderDepth)) {\r\n this.renderQueue.resume();\r\n }\r\n };\r\n View.prototype.requestRender = function (func, namespace, actionType) {\r\n this.renderQueue.queue(func, namespace, actionType);\r\n };\r\n // given func will auto-bind to `this`\r\n View.prototype.whenSizeUpdated = function (func) {\r\n if (this.renderQueue.isRunning) {\r\n this.renderQueue.one('stop', func.bind(this));\r\n }\r\n else {\r\n func.call(this);\r\n }\r\n };\r\n /* Title and Date Formatting\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes what the title at the top of the calendar should be for this view\r\n View.prototype.computeTitle = function (dateProfile) {\r\n var unzonedRange;\r\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\r\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\r\n unzonedRange = dateProfile.currentUnzonedRange;\r\n }\r\n else {\r\n unzonedRange = dateProfile.activeUnzonedRange;\r\n }\r\n return this.formatRange({\r\n start: this.calendar.msToMoment(unzonedRange.startMs, dateProfile.isRangeAllDay),\r\n end: this.calendar.msToMoment(unzonedRange.endMs, dateProfile.isRangeAllDay)\r\n }, dateProfile.isRangeAllDay, this.opt('titleFormat') || this.computeTitleFormat(dateProfile), this.opt('titleRangeSeparator'));\r\n };\r\n // Generates the format string that should be used to generate the title for the current date range.\r\n // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\r\n View.prototype.computeTitleFormat = function (dateProfile) {\r\n var currentRangeUnit = dateProfile.currentRangeUnit;\r\n if (currentRangeUnit === 'year') {\r\n return 'YYYY';\r\n }\r\n else if (currentRangeUnit === 'month') {\r\n return this.opt('monthYearFormat'); // like \"September 2014\"\r\n }\r\n else if (dateProfile.currentUnzonedRange.as('days') > 1) {\r\n return 'll'; // multi-day range. shorter, like \"Sep 9 - 10 2014\"\r\n }\r\n else {\r\n return 'LL'; // one day. longer, like \"September 9 2014\"\r\n }\r\n };\r\n // Date Setting/Unsetting\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.setDate = function (date) {\r\n var currentDateProfile = this.get('dateProfile');\r\n var newDateProfile = this.dateProfileGenerator.build(date, undefined, true); // forceToValid=true\r\n if (!currentDateProfile ||\r\n !currentDateProfile.activeUnzonedRange.equals(newDateProfile.activeUnzonedRange)) {\r\n this.set('dateProfile', newDateProfile);\r\n }\r\n };\r\n View.prototype.unsetDate = function () {\r\n this.unset('dateProfile');\r\n };\r\n // Event Data\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.fetchInitialEvents = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var forceAllDay = dateProfile.isRangeAllDay && !this.usesMinMaxTime;\r\n return calendar.requestEvents(calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, forceAllDay), calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, forceAllDay));\r\n };\r\n View.prototype.bindEventChanges = function () {\r\n this.listenTo(this.calendar, 'eventsReset', this.resetEvents); // TODO: make this a real event\r\n };\r\n View.prototype.unbindEventChanges = function () {\r\n this.stopListeningTo(this.calendar, 'eventsReset');\r\n };\r\n View.prototype.setEvents = function (eventsPayload) {\r\n this.set('currentEvents', eventsPayload);\r\n this.set('hasEvents', true);\r\n };\r\n View.prototype.unsetEvents = function () {\r\n this.unset('currentEvents');\r\n this.unset('hasEvents');\r\n };\r\n View.prototype.resetEvents = function (eventsPayload) {\r\n this.startBatchRender();\r\n this.unsetEvents();\r\n this.setEvents(eventsPayload);\r\n this.stopBatchRender();\r\n };\r\n // Date High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestDateRender = function (dateProfile) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateRender(dateProfile);\r\n }, 'date', 'init');\r\n };\r\n View.prototype.requestDateUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateUnrender();\r\n }, 'date', 'destroy');\r\n };\r\n // if dateProfile not specified, uses current\r\n View.prototype.executeDateRender = function (dateProfile) {\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n if (this['render']) {\r\n this['render'](); // TODO: deprecate\r\n }\r\n this.trigger('datesRendered');\r\n this.addScroll({ isDateInit: true });\r\n this.startNowIndicator(); // shouldn't render yet because updateSize will be called soon\r\n };\r\n View.prototype.executeDateUnrender = function () {\r\n this.unselect();\r\n this.stopNowIndicator();\r\n this.trigger('before:datesUnrendered');\r\n if (this['destroy']) {\r\n this['destroy'](); // TODO: deprecate\r\n }\r\n _super.prototype.executeDateUnrender.call(this);\r\n };\r\n // \"Base\" rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.bindBaseRenderHandlers = function () {\r\n var _this = this;\r\n this.on('datesRendered', function () {\r\n _this.whenSizeUpdated(_this.triggerViewRender);\r\n });\r\n this.on('before:datesUnrendered', function () {\r\n _this.triggerViewDestroy();\r\n });\r\n };\r\n View.prototype.triggerViewRender = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerViewDestroy = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Event High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestEventsRender = function (eventsPayload) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeEventRender(eventsPayload);\r\n _this.whenSizeUpdated(_this.triggerAfterEventsRendered);\r\n }, 'event', 'init');\r\n };\r\n View.prototype.requestEventsUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.triggerBeforeEventsDestroyed();\r\n _this.executeEventUnrender();\r\n }, 'event', 'destroy');\r\n };\r\n // Business Hour High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestBusinessHoursRender = function (businessHourGenerator) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.renderBusinessHours(businessHourGenerator);\r\n }, 'businessHours', 'init');\r\n };\r\n View.prototype.requestBusinessHoursUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.unrenderBusinessHours();\r\n }, 'businessHours', 'destroy');\r\n };\r\n // Misc view rendering utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Binds DOM handlers to elements that reside outside the view container, such as the document\r\n View.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n this.listenTo(GlobalEmitter_1.default.get(), {\r\n touchstart: this.processUnselect,\r\n mousedown: this.handleDocumentMousedown\r\n });\r\n };\r\n // Unbinds DOM handlers from elements that reside outside the view container\r\n View.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Immediately render the current time indicator and begins re-rendering it at an interval,\r\n // which is defined by this.getNowIndicatorUnit().\r\n // TODO: somehow do this for the current whole day's background too\r\n View.prototype.startNowIndicator = function () {\r\n var _this = this;\r\n var unit;\r\n var update;\r\n var delay; // ms wait value\r\n if (this.opt('nowIndicator')) {\r\n unit = this.getNowIndicatorUnit();\r\n if (unit) {\r\n update = util_1.proxy(this, 'updateNowIndicator'); // bind to `this`\r\n this.initialNowDate = this.calendar.getNow();\r\n this.initialNowQueriedMs = new Date().valueOf();\r\n // wait until the beginning of the next interval\r\n delay = this.initialNowDate.clone().startOf(unit).add(1, unit).valueOf() - this.initialNowDate.valueOf();\r\n this.nowIndicatorTimeoutID = setTimeout(function () {\r\n _this.nowIndicatorTimeoutID = null;\r\n update();\r\n delay = +moment.duration(1, unit);\r\n delay = Math.max(100, delay); // prevent too frequent\r\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\r\n }, delay);\r\n }\r\n // rendering will be initiated in updateSize\r\n }\r\n };\r\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\r\n // since the initial getNow call.\r\n View.prototype.updateNowIndicator = function () {\r\n if (this.isDatesRendered &&\r\n this.initialNowDate // activated before?\r\n ) {\r\n this.unrenderNowIndicator(); // won't unrender if unnecessary\r\n this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs) // add ms\r\n );\r\n this.isNowIndicatorRendered = true;\r\n }\r\n };\r\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\r\n // Won't cause side effects if indicator isn't rendered.\r\n View.prototype.stopNowIndicator = function () {\r\n if (this.isNowIndicatorRendered) {\r\n if (this.nowIndicatorTimeoutID) {\r\n clearTimeout(this.nowIndicatorTimeoutID);\r\n this.nowIndicatorTimeoutID = null;\r\n }\r\n if (this.nowIndicatorIntervalID) {\r\n clearInterval(this.nowIndicatorIntervalID);\r\n this.nowIndicatorIntervalID = null;\r\n }\r\n this.unrenderNowIndicator();\r\n this.isNowIndicatorRendered = false;\r\n }\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n if (this['setHeight']) {\r\n this['setHeight'](totalHeight, isAuto);\r\n }\r\n else {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n }\r\n this.updateNowIndicator();\r\n };\r\n /* Scroller\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.addScroll = function (scroll) {\r\n var queuedScroll = this.queuedScroll || (this.queuedScroll = {});\r\n $.extend(queuedScroll, scroll);\r\n };\r\n View.prototype.popScroll = function () {\r\n this.applyQueuedScroll();\r\n this.queuedScroll = null;\r\n };\r\n View.prototype.applyQueuedScroll = function () {\r\n if (this.queuedScroll) {\r\n this.applyScroll(this.queuedScroll);\r\n }\r\n };\r\n View.prototype.queryScroll = function () {\r\n var scroll = {};\r\n if (this.isDatesRendered) {\r\n $.extend(scroll, this.queryDateScroll());\r\n }\r\n return scroll;\r\n };\r\n View.prototype.applyScroll = function (scroll) {\r\n if (scroll.isDateInit && this.isDatesRendered) {\r\n $.extend(scroll, this.computeInitialDateScroll());\r\n }\r\n if (this.isDatesRendered) {\r\n this.applyDateScroll(scroll);\r\n }\r\n };\r\n View.prototype.computeInitialDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.queryDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.applyDateScroll = function (scroll) {\r\n // subclasses must implement\r\n };\r\n /* Event Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.reportEventDrop = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n var dateMutation = eventMutation.dateMutation;\r\n // update the EventInstance, for handlers\r\n if (dateMutation) {\r\n eventInstance.dateProfile = dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n }\r\n this.triggerEventDrop(eventInstance, \r\n // a drop doesn't necessarily mean a date mutation (ex: resource change)\r\n (dateMutation && dateMutation.dateDelta) || moment.duration(), undoFunc, el, ev);\r\n };\r\n // Triggers event-drop handlers that have subscribed via the API\r\n View.prototype.triggerEventDrop = function (eventInstance, dateDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventDrop', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n dateDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* External Element Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an external element, via jQuery UI, has been dropped onto the calendar.\r\n // `meta` is the parsed data that has been embedded into the dragging event.\r\n // `dropLocation` is an object that contains the new zoned start/end/allDay values for the event.\r\n View.prototype.reportExternalDrop = function (singleEventDef, isEvent, isSticky, el, ev, ui) {\r\n if (isEvent) {\r\n this.calendar.eventManager.addEventDef(singleEventDef, isSticky);\r\n }\r\n this.triggerExternalDrop(singleEventDef, isEvent, el, ev, ui);\r\n };\r\n // Triggers external-drop handlers that have subscribed via the API\r\n View.prototype.triggerExternalDrop = function (singleEventDef, isEvent, el, ev, ui) {\r\n // trigger 'drop' regardless of whether element represents an event\r\n this.publiclyTrigger('drop', {\r\n context: el[0],\r\n args: [\r\n singleEventDef.dateProfile.start.clone(),\r\n ev,\r\n ui,\r\n this\r\n ]\r\n });\r\n if (isEvent) {\r\n // signal an external event landed\r\n this.publiclyTrigger('eventReceive', {\r\n context: this,\r\n args: [\r\n singleEventDef.buildInstance().toLegacy(),\r\n this\r\n ]\r\n });\r\n }\r\n };\r\n /* Event Resizing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an event in the view has been resized to a new length\r\n View.prototype.reportEventResize = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n // update the EventInstance, for handlers\r\n eventInstance.dateProfile = eventMutation.dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n this.triggerEventResize(eventInstance, eventMutation.dateMutation.endDelta, undoFunc, el, ev);\r\n };\r\n // Triggers event-resize handlers that have subscribed via the API\r\n View.prototype.triggerEventResize = function (eventInstance, durationDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventResize', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n durationDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* Selection (time range)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Selects a date span on the view. `start` and `end` are both Moments.\r\n // `ev` is the native mouse event that begin the interaction.\r\n View.prototype.select = function (footprint, ev) {\r\n this.unselect(ev);\r\n this.renderSelectionFootprint(footprint);\r\n this.reportSelection(footprint, ev);\r\n };\r\n View.prototype.renderSelectionFootprint = function (footprint) {\r\n if (this['renderSelection']) {\r\n this['renderSelection'](footprint.toLegacy(this.calendar));\r\n }\r\n else {\r\n _super.prototype.renderSelectionFootprint.call(this, footprint);\r\n }\r\n };\r\n // Called when a new selection is made. Updates internal state and triggers handlers.\r\n View.prototype.reportSelection = function (footprint, ev) {\r\n this.isSelected = true;\r\n this.triggerSelect(footprint, ev);\r\n };\r\n // Triggers handlers to 'select'\r\n View.prototype.triggerSelect = function (footprint, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('select', {\r\n context: this,\r\n args: [\r\n dateProfile.start,\r\n dateProfile.end,\r\n ev,\r\n this\r\n ]\r\n });\r\n };\r\n // Undoes a selection. updates in the internal state and triggers handlers.\r\n // `ev` is the native mouse event that began the interaction.\r\n View.prototype.unselect = function (ev) {\r\n if (this.isSelected) {\r\n this.isSelected = false;\r\n if (this['destroySelection']) {\r\n this['destroySelection'](); // TODO: deprecate\r\n }\r\n this.unrenderSelection();\r\n this.publiclyTrigger('unselect', {\r\n context: this,\r\n args: [ev, this]\r\n });\r\n }\r\n };\r\n /* Event Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.selectEventInstance = function (eventInstance) {\r\n if (!this.selectedEventInstance ||\r\n this.selectedEventInstance !== eventInstance) {\r\n this.unselectEventInstance();\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventInstance === eventInstance &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.addClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = eventInstance;\r\n }\r\n };\r\n View.prototype.unselectEventInstance = function () {\r\n if (this.selectedEventInstance) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.el) {\r\n seg.el.removeClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = null;\r\n }\r\n };\r\n View.prototype.isEventDefSelected = function (eventDef) {\r\n // event references might change on refetchEvents(), while selectedEventInstance doesn't,\r\n // so compare IDs\r\n return this.selectedEventInstance && this.selectedEventInstance.def.id === eventDef.id;\r\n };\r\n /* Mouse / Touch Unselecting (time range & event unselection)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // TODO: move consistently to down/start or up/end?\r\n // TODO: don't kill previous selection if touch scrolling\r\n View.prototype.handleDocumentMousedown = function (ev) {\r\n if (util_1.isPrimaryMouseButton(ev)) {\r\n this.processUnselect(ev);\r\n }\r\n };\r\n View.prototype.processUnselect = function (ev) {\r\n this.processRangeUnselect(ev);\r\n this.processEventUnselect(ev);\r\n };\r\n View.prototype.processRangeUnselect = function (ev) {\r\n var ignore;\r\n // is there a time-range selection?\r\n if (this.isSelected && this.opt('unselectAuto')) {\r\n // only unselect if the clicked element is not identical to or inside of an 'unselectCancel' element\r\n ignore = this.opt('unselectCancel');\r\n if (!ignore || !$(ev.target).closest(ignore).length) {\r\n this.unselect(ev);\r\n }\r\n }\r\n };\r\n View.prototype.processEventUnselect = function (ev) {\r\n if (this.selectedEventInstance) {\r\n if (!$(ev.target).closest('.fc-selected').length) {\r\n this.unselectEventInstance();\r\n }\r\n }\r\n };\r\n /* Triggers\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.triggerBaseRendered = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerBaseUnrendered = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Triggers handlers to 'dayClick'\r\n // Span has start/end of the clicked area. Only the start is useful.\r\n View.prototype.triggerDayClick = function (footprint, dayEl, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('dayClick', {\r\n context: dayEl,\r\n args: [dateProfile.start, ev, this]\r\n });\r\n };\r\n /* Date Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // For DateComponent::getDayClasses\r\n View.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return false;\r\n };\r\n // Arguments after name will be forwarded to a hypothetical function value\r\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\r\n // Always clone your objects if you fear mutation.\r\n View.prototype.getUnzonedRangeOption = function (name) {\r\n var val = this.opt(name);\r\n if (typeof val === 'function') {\r\n val = val.apply(null, Array.prototype.slice.call(arguments, 1));\r\n }\r\n if (val) {\r\n return this.calendar.parseUnzonedRange(val);\r\n }\r\n };\r\n /* Hidden Days\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Initializes internal variables related to calculating hidden days-of-week\r\n View.prototype.initHiddenDays = function () {\r\n var hiddenDays = this.opt('hiddenDays') || []; // array of day-of-week indices that are hidden\r\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\r\n var dayCnt = 0;\r\n var i;\r\n if (this.opt('weekends') === false) {\r\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\r\n }\r\n for (i = 0; i < 7; i++) {\r\n if (!(isHiddenDayHash[i] = $.inArray(i, hiddenDays) !== -1)) {\r\n dayCnt++;\r\n }\r\n }\r\n if (!dayCnt) {\r\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\r\n }\r\n this.isHiddenDayHash = isHiddenDayHash;\r\n };\r\n // Remove days from the beginning and end of the range that are computed as hidden.\r\n // If the whole range is trimmed off, returns null\r\n View.prototype.trimHiddenDays = function (inputUnzonedRange) {\r\n var start = inputUnzonedRange.getStart();\r\n var end = inputUnzonedRange.getEnd();\r\n if (start) {\r\n start = this.skipHiddenDays(start);\r\n }\r\n if (end) {\r\n end = this.skipHiddenDays(end, -1, true);\r\n }\r\n if (start === null || end === null || start < end) {\r\n return new UnzonedRange_1.default(start, end);\r\n }\r\n return null;\r\n };\r\n // Is the current day hidden?\r\n // `day` is a day-of-week index (0-6), or a Moment\r\n View.prototype.isHiddenDay = function (day) {\r\n if (moment.isMoment(day)) {\r\n day = day.day();\r\n }\r\n return this.isHiddenDayHash[day];\r\n };\r\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\r\n // DOES NOT CONSIDER validUnzonedRange!\r\n // If the initial value of `date` is not a hidden day, don't do anything.\r\n // Pass `isExclusive` as `true` if you are dealing with an end date.\r\n // `inc` defaults to `1` (increment one day forward each time)\r\n View.prototype.skipHiddenDays = function (date, inc, isExclusive) {\r\n if (inc === void 0) { inc = 1; }\r\n if (isExclusive === void 0) { isExclusive = false; }\r\n var out = date.clone();\r\n while (this.isHiddenDayHash[(out.day() + (isExclusive ? inc : 0) + 7) % 7]) {\r\n out.add(inc, 'days');\r\n }\r\n return out;\r\n };\r\n return View;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = View;\r\nView.prototype.usesMinMaxTime = false;\r\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator_1.default;\r\nView.watch('displayingDates', ['isInDom', 'dateProfile'], function (deps) {\r\n this.requestDateRender(deps.dateProfile);\r\n}, function () {\r\n this.requestDateUnrender();\r\n});\r\nView.watch('displayingBusinessHours', ['displayingDates', 'businessHourGenerator'], function (deps) {\r\n this.requestBusinessHoursRender(deps.businessHourGenerator);\r\n}, function () {\r\n this.requestBusinessHoursUnrender();\r\n});\r\nView.watch('initialEvents', ['dateProfile'], function (deps) {\r\n return this.fetchInitialEvents(deps.dateProfile);\r\n});\r\nView.watch('bindingEvents', ['initialEvents'], function (deps) {\r\n this.setEvents(deps.initialEvents);\r\n this.bindEventChanges();\r\n}, function () {\r\n this.unbindEventChanges();\r\n this.unsetEvents();\r\n});\r\nView.watch('displayingEvents', ['displayingDates', 'hasEvents'], function () {\r\n this.requestEventsRender(this.get('currentEvents'));\r\n}, function () {\r\n this.requestEventsUnrender();\r\n});\r\nView.watch('title', ['dateProfile'], function (deps) {\r\n return (this.title = this.computeTitle(deps.dateProfile)); // assign to View for legacy reasons\r\n});\r\nView.watch('legacyDateProps', ['dateProfile'], function (deps) {\r\n var calendar = this.calendar;\r\n var dateProfile = deps.dateProfile;\r\n // DEPRECATED, but we need to keep it updated...\r\n this.start = calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.end = calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n this.intervalStart = calendar.msToMoment(dateProfile.currentUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.intervalEnd = calendar.msToMoment(dateProfile.currentUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 42 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer = /** @class */ (function () {\r\n function EventRenderer(component, fillRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n EventRenderer.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n // Updates values that rely on options and also relate to range\r\n EventRenderer.prototype.rangeUpdated = function () {\r\n var displayEventTime;\r\n var displayEventEnd;\r\n this.eventTimeFormat =\r\n this.opt('eventTimeFormat') ||\r\n this.opt('timeFormat') || // deprecated\r\n this.computeEventTimeFormat();\r\n displayEventTime = this.opt('displayEventTime');\r\n if (displayEventTime == null) {\r\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\r\n }\r\n displayEventEnd = this.opt('displayEventEnd');\r\n if (displayEventEnd == null) {\r\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\r\n }\r\n this.displayEventTime = displayEventTime;\r\n this.displayEventEnd = displayEventEnd;\r\n };\r\n EventRenderer.prototype.render = function (eventsPayload) {\r\n var dateProfile = this.component._getDateProfile();\r\n var eventDefId;\r\n var instanceGroup;\r\n var eventRanges;\r\n var bgRanges = [];\r\n var fgRanges = [];\r\n for (eventDefId in eventsPayload) {\r\n instanceGroup = eventsPayload[eventDefId];\r\n eventRanges = instanceGroup.sliceRenderRanges(dateProfile.activeUnzonedRange);\r\n if (instanceGroup.getEventDef().hasBgRendering()) {\r\n bgRanges.push.apply(bgRanges, eventRanges);\r\n }\r\n else {\r\n fgRanges.push.apply(fgRanges, eventRanges);\r\n }\r\n }\r\n this.renderBgRanges(bgRanges);\r\n this.renderFgRanges(fgRanges);\r\n };\r\n EventRenderer.prototype.unrender = function () {\r\n this.unrenderBgRanges();\r\n this.unrenderFgRanges();\r\n };\r\n EventRenderer.prototype.renderFgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n // render an `.el` on each seg\r\n // returns a subset of the segs. segs that were actually rendered\r\n segs = this.renderFgSegEls(segs);\r\n if (this.renderFgSegs(segs) !== false) {\r\n this.fgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderFgRanges = function () {\r\n this.unrenderFgSegs(this.fgSegs || []);\r\n this.fgSegs = null;\r\n };\r\n EventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n if (this.renderBgSegs(segs) !== false) {\r\n this.bgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgRanges = function () {\r\n this.unrenderBgSegs();\r\n this.bgSegs = null;\r\n };\r\n EventRenderer.prototype.getSegs = function () {\r\n return (this.bgSegs || []).concat(this.fgSegs || []);\r\n };\r\n // Renders foreground event segments onto the grid\r\n EventRenderer.prototype.renderFgSegs = function (segs) {\r\n // subclasses must implement\r\n // segs already has rendered els, and has been filtered.\r\n return false; // signal failure if not implemented\r\n };\r\n // Unrenders all currently rendered foreground segments\r\n EventRenderer.prototype.unrenderFgSegs = function (segs) {\r\n // subclasses must implement\r\n };\r\n EventRenderer.prototype.renderBgSegs = function (segs) {\r\n var _this = this;\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('bgEvent', segs, {\r\n getClasses: function (seg) {\r\n return _this.getBgClasses(seg.footprint.eventDef);\r\n },\r\n getCss: function (seg) {\r\n return {\r\n 'background-color': _this.getBgColor(seg.footprint.eventDef)\r\n };\r\n },\r\n filterEl: function (seg, el) {\r\n return _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n });\r\n }\r\n else {\r\n return false; // signal failure if no fillRenderer\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgSegs = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('bgEvent');\r\n }\r\n };\r\n // Renders and assigns an `el` property for each foreground event segment.\r\n // Only returns segments that successfully rendered.\r\n EventRenderer.prototype.renderFgSegEls = function (segs, disableResizing) {\r\n var _this = this;\r\n if (disableResizing === void 0) { disableResizing = false; }\r\n var hasEventRenderHandlers = this.view.hasPublicHandlers('eventRender');\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) {\r\n // build a large concatenation of event segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n this.beforeFgSegHtml(segs[i]);\r\n html += this.fgSegHtml(segs[i], disableResizing);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n if (hasEventRenderHandlers) {\r\n el = _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n if (el) {\r\n el.data('fc-seg', seg); // used by handlers\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n EventRenderer.prototype.beforeFgSegHtml = function (seg) {\r\n };\r\n // Generates the HTML for the default rendering of a foreground event segment. Used by renderFgSegEls()\r\n EventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n // subclasses should implement\r\n };\r\n // Generic utility for generating the HTML classNames for an event segment's element\r\n EventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable) {\r\n var classes = [\r\n 'fc-event',\r\n seg.isStart ? 'fc-start' : 'fc-not-start',\r\n seg.isEnd ? 'fc-end' : 'fc-not-end'\r\n ].concat(this.getClasses(seg.footprint.eventDef));\r\n if (isDraggable) {\r\n classes.push('fc-draggable');\r\n }\r\n if (isResizable) {\r\n classes.push('fc-resizable');\r\n }\r\n // event is currently selected? attach a className.\r\n if (this.view.isEventDefSelected(seg.footprint.eventDef)) {\r\n classes.push('fc-selected');\r\n }\r\n return classes;\r\n };\r\n // Given an event and the default element used for rendering, returns the element that should actually be used.\r\n // Basically runs events and elements through the eventRender hook.\r\n EventRenderer.prototype.filterEventRenderEl = function (eventFootprint, el) {\r\n var legacy = eventFootprint.getEventLegacy();\r\n var custom = this.view.publiclyTrigger('eventRender', {\r\n context: legacy,\r\n args: [legacy, el, this.view]\r\n });\r\n if (custom === false) {\r\n el = null;\r\n }\r\n else if (custom && custom !== true) {\r\n el = $(custom);\r\n }\r\n return el;\r\n };\r\n // Compute the text that should be displayed on an event's element.\r\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\r\n // If event times are disabled, or the event has no time, will return a blank string.\r\n // If not specified, formatStr will default to the eventTimeFormat setting,\r\n // and displayEnd will default to the displayEventEnd setting.\r\n EventRenderer.prototype.getTimeText = function (eventFootprint, formatStr, displayEnd) {\r\n return this._getTimeText(eventFootprint.eventInstance.dateProfile.start, eventFootprint.eventInstance.dateProfile.end, eventFootprint.componentFootprint.isAllDay, formatStr, displayEnd);\r\n };\r\n EventRenderer.prototype._getTimeText = function (start, end, isAllDay, formatStr, displayEnd) {\r\n if (formatStr == null) {\r\n formatStr = this.eventTimeFormat;\r\n }\r\n if (displayEnd == null) {\r\n displayEnd = this.displayEventEnd;\r\n }\r\n if (this.displayEventTime && !isAllDay) {\r\n if (displayEnd && end) {\r\n return this.view.formatRange({ start: start, end: end }, false, // allDay\r\n formatStr);\r\n }\r\n else {\r\n return start.format(formatStr);\r\n }\r\n }\r\n return '';\r\n };\r\n EventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('smallTimeFormat');\r\n };\r\n EventRenderer.prototype.computeDisplayEventTime = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.getBgClasses = function (eventDef) {\r\n var classNames = this.getClasses(eventDef);\r\n classNames.push('fc-bgevent');\r\n return classNames;\r\n };\r\n EventRenderer.prototype.getClasses = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var classNames = [];\r\n for (i = 0; i < objs.length; i++) {\r\n classNames.push.apply(// append\r\n classNames, objs[i].eventClassName || objs[i].className || []);\r\n }\r\n return classNames;\r\n };\r\n // Utility for generating event skin-related CSS properties\r\n EventRenderer.prototype.getSkinCss = function (eventDef) {\r\n return {\r\n 'background-color': this.getBgColor(eventDef),\r\n 'border-color': this.getBorderColor(eventDef),\r\n color: this.getTextColor(eventDef)\r\n };\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBgColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBackgroundColor || objs[i].eventColor ||\r\n objs[i].backgroundColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBackgroundColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBorderColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBorderColor || objs[i].eventColor ||\r\n objs[i].borderColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBorderColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getTextColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventTextColor ||\r\n objs[i].textColor;\r\n }\r\n if (!val) {\r\n val = this.opt('eventTextColor');\r\n }\r\n return val;\r\n };\r\n EventRenderer.prototype.getStylingObjs = function (eventDef) {\r\n var objs = this.getFallbackStylingObjs(eventDef);\r\n objs.unshift(eventDef);\r\n return objs;\r\n };\r\n EventRenderer.prototype.getFallbackStylingObjs = function (eventDef) {\r\n return [eventDef.source];\r\n };\r\n EventRenderer.prototype.sortEventSegs = function (segs) {\r\n segs.sort(util_1.proxy(this, 'compareEventSegs'));\r\n };\r\n // A cmp function for determining which segments should take visual priority\r\n EventRenderer.prototype.compareEventSegs = function (seg1, seg2) {\r\n var f1 = seg1.footprint;\r\n var f2 = seg2.footprint;\r\n var cf1 = f1.componentFootprint;\r\n var cf2 = f2.componentFootprint;\r\n var r1 = cf1.unzonedRange;\r\n var r2 = cf2.unzonedRange;\r\n return r1.startMs - r2.startMs || // earlier events go first\r\n (r2.endMs - r2.startMs) - (r1.endMs - r1.startMs) || // tie? longer events go first\r\n cf2.isAllDay - cf1.isAllDay || // tie? put all-day events first (booleans cast to 0/1)\r\n util_1.compareByFieldSpecs(f1.eventDef, f2.eventDef, this.view.eventOrderSpecs, f1.eventDef.miscProps, f2.eventDef.miscProps);\r\n };\r\n return EventRenderer;\r\n}());\r\nexports.default = EventRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 43 */,\r\n/* 44 */,\r\n/* 45 */,\r\n/* 46 */,\r\n/* 47 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment_ext_1 = __webpack_require__(10);\r\n// Plugin\r\n// -------------------------------------------------------------------------------------------------\r\nmoment_ext_1.newMomentProto.format = function () {\r\n if (this._fullCalendar && arguments[0]) {\r\n return formatDate(this, arguments[0]); // our extended formatting\r\n }\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) {\r\n // moment.format() doesn't ensure english, but we want to.\r\n return moment_ext_1.oldMomentFormat(englishMoment(this));\r\n }\r\n return moment_ext_1.oldMomentProto.format.apply(this, arguments);\r\n};\r\nmoment_ext_1.newMomentProto.toISOString = function () {\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) {\r\n // depending on browser, moment might not output english. ensure english.\r\n // https://github.com/moment/moment/blob/2.18.1/src/lib/moment/format.js#L22\r\n return moment_ext_1.oldMomentProto.toISOString.apply(englishMoment(this), arguments);\r\n }\r\n return moment_ext_1.oldMomentProto.toISOString.apply(this, arguments);\r\n};\r\nfunction englishMoment(mom) {\r\n if (mom.locale() !== 'en') {\r\n return mom.clone().locale('en');\r\n }\r\n return mom;\r\n}\r\n// Config\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nInserted between chunks in the fake (\"intermediate\") formatting string.\r\nImportant that it passes as whitespace (\\s) because moment often identifies non-standalone months\r\nvia a regexp with an \\s.\r\n*/\r\nvar PART_SEPARATOR = '\\u000b'; // vertical tab\r\n/*\r\nInserted as the first character of a literal-text chunk to indicate that the literal text is not actually literal text,\r\nbut rather, a \"special\" token that has custom rendering (see specialTokens map).\r\n*/\r\nvar SPECIAL_TOKEN_MARKER = '\\u001f'; // information separator 1\r\n/*\r\nInserted at the beginning and end of a span of text that must have non-zero numeric characters.\r\nHandling of these markers is done in a post-processing step at the very end of text rendering.\r\n*/\r\nvar MAYBE_MARKER = '\\u001e'; // information separator 2\r\nvar MAYBE_REGEXP = new RegExp(MAYBE_MARKER + '([^' + MAYBE_MARKER + ']*)' + MAYBE_MARKER, 'g'); // must be global\r\n/*\r\nAddition formatting tokens we want recognized\r\n*/\r\nvar specialTokens = {\r\n t: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'a').charAt(0);\r\n },\r\n T: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'A').charAt(0);\r\n }\r\n};\r\n/*\r\nThe first characters of formatting tokens for units that are 1 day or larger.\r\n`value` is for ranking relative size (lower means bigger).\r\n`unit` is a normalized unit, used for comparing moments.\r\n*/\r\nvar largeTokenMap = {\r\n Y: { value: 1, unit: 'year' },\r\n M: { value: 2, unit: 'month' },\r\n W: { value: 3, unit: 'week' },\r\n w: { value: 3, unit: 'week' },\r\n D: { value: 4, unit: 'day' },\r\n d: { value: 4, unit: 'day' } // day of week\r\n};\r\n// Single Date Formatting\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats `date` with a Moment formatting string, but allow our non-zero areas and special token\r\n*/\r\nfunction formatDate(date, formatStr) {\r\n return renderFakeFormatString(getParsedFormatString(formatStr).fakeFormatString, date);\r\n}\r\nexports.formatDate = formatDate;\r\n// Date Range Formatting\r\n// -------------------------------------------------------------------------------------------------\r\n// TODO: make it work with timezone offset\r\n/*\r\nUsing a formatting string meant for a single date, generate a range string, like\r\n\"Sep 2 - 9 2013\", that intelligently inserts a separator where the dates differ.\r\nIf the dates are the same as far as the format string is concerned, just return a single\r\nrendering of one date, without any separator.\r\n*/\r\nfunction formatRange(date1, date2, formatStr, separator, isRTL) {\r\n var localeData;\r\n date1 = moment_ext_1.default.parseZone(date1);\r\n date2 = moment_ext_1.default.parseZone(date2);\r\n localeData = date1.localeData();\r\n // Expand localized format strings, like \"LL\" -> \"MMMM D YYYY\".\r\n // BTW, this is not important for `formatDate` because it is impossible to put custom tokens\r\n // or non-zero areas in Moment's localized format strings.\r\n formatStr = localeData.longDateFormat(formatStr) || formatStr;\r\n return renderParsedFormat(getParsedFormatString(formatStr), date1, date2, separator || ' - ', isRTL);\r\n}\r\nexports.formatRange = formatRange;\r\n/*\r\nRenders a range with an already-parsed format string.\r\n*/\r\nfunction renderParsedFormat(parsedFormat, date1, date2, separator, isRTL) {\r\n var sameUnits = parsedFormat.sameUnits;\r\n var unzonedDate1 = date1.clone().stripZone(); // for same-unit comparisons\r\n var unzonedDate2 = date2.clone().stripZone(); // \"\r\n var renderedParts1 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date1);\r\n var renderedParts2 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date2);\r\n var leftI;\r\n var leftStr = '';\r\n var rightI;\r\n var rightStr = '';\r\n var middleI;\r\n var middleStr1 = '';\r\n var middleStr2 = '';\r\n var middleStr = '';\r\n // Start at the leftmost side of the formatting string and continue until you hit a token\r\n // that is not the same between dates.\r\n for (leftI = 0; leftI < sameUnits.length && (!sameUnits[leftI] || unzonedDate1.isSame(unzonedDate2, sameUnits[leftI])); leftI++) {\r\n leftStr += renderedParts1[leftI];\r\n }\r\n // Similarly, start at the rightmost side of the formatting string and move left\r\n for (rightI = sameUnits.length - 1; rightI > leftI && (!sameUnits[rightI] || unzonedDate1.isSame(unzonedDate2, sameUnits[rightI])); rightI--) {\r\n // If current chunk is on the boundary of unique date-content, and is a special-case\r\n // date-formatting postfix character, then don't consume it. Consider it unique date-content.\r\n // TODO: make configurable\r\n if (rightI - 1 === leftI && renderedParts1[rightI] === '.') {\r\n break;\r\n }\r\n rightStr = renderedParts1[rightI] + rightStr;\r\n }\r\n // The area in the middle is different for both of the dates.\r\n // Collect them distinctly so we can jam them together later.\r\n for (middleI = leftI; middleI <= rightI; middleI++) {\r\n middleStr1 += renderedParts1[middleI];\r\n middleStr2 += renderedParts2[middleI];\r\n }\r\n if (middleStr1 || middleStr2) {\r\n if (isRTL) {\r\n middleStr = middleStr2 + separator + middleStr1;\r\n }\r\n else {\r\n middleStr = middleStr1 + separator + middleStr2;\r\n }\r\n }\r\n return processMaybeMarkers(leftStr + middleStr + rightStr);\r\n}\r\n// Format String Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nvar parsedFormatStrCache = {};\r\n/*\r\nReturns a parsed format string, leveraging a cache.\r\n*/\r\nfunction getParsedFormatString(formatStr) {\r\n return parsedFormatStrCache[formatStr] ||\r\n (parsedFormatStrCache[formatStr] = parseFormatString(formatStr));\r\n}\r\n/*\r\nParses a format string into the following:\r\n- fakeFormatString: a momentJS formatting string, littered with special control characters that get post-processed.\r\n- sameUnits: for every part in fakeFormatString, if the part is a token, the value will be a unit string (like \"day\"),\r\n that indicates how similar a range's start & end must be in order to share the same formatted text.\r\n If not a token, then the value is null.\r\n Always a flat array (not nested liked \"chunks\").\r\n*/\r\nfunction parseFormatString(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n return {\r\n fakeFormatString: buildFakeFormatString(chunks),\r\n sameUnits: buildSameUnits(chunks)\r\n };\r\n}\r\n/*\r\nBreak the formatting string into an array of chunks.\r\nA 'maybe' chunk will have nested chunks.\r\n*/\r\nfunction chunkFormatString(formatStr) {\r\n var chunks = [];\r\n var match;\r\n // TODO: more descrimination\r\n // \\4 is a backreference to the first character of a multi-character set.\r\n var chunker = /\\[([^\\]]*)\\]|\\(([^\\)]*)\\)|(LTS|LT|(\\w)\\4*o?)|([^\\w\\[\\(]+)/g;\r\n while ((match = chunker.exec(formatStr))) {\r\n if (match[1]) {\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[1]));\r\n }\r\n else if (match[2]) {\r\n chunks.push({ maybe: chunkFormatString(match[2]) });\r\n }\r\n else if (match[3]) {\r\n chunks.push({ token: match[3] });\r\n }\r\n else if (match[5]) {\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[5]));\r\n }\r\n }\r\n return chunks;\r\n}\r\n/*\r\nPotentially splits a literal-text string into multiple parts. For special cases.\r\n*/\r\nfunction splitStringLiteral(s) {\r\n if (s === '. ') {\r\n return ['.', ' ']; // for locales with periods bound to the end of each year/month/date\r\n }\r\n else {\r\n return [s];\r\n }\r\n}\r\n/*\r\nGiven chunks parsed from a real format string, generate a fake (aka \"intermediate\") format string with special control\r\ncharacters that will eventually be given to moment for formatting, and then post-processed.\r\n*/\r\nfunction buildFakeFormatString(chunks) {\r\n var parts = [];\r\n var i;\r\n var chunk;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (typeof chunk === 'string') {\r\n parts.push('[' + chunk + ']');\r\n }\r\n else if (chunk.token) {\r\n if (chunk.token in specialTokens) {\r\n parts.push(SPECIAL_TOKEN_MARKER + // useful during post-processing\r\n '[' + chunk.token + ']' // preserve as literal text\r\n );\r\n }\r\n else {\r\n parts.push(chunk.token); // unprotected text implies a format string\r\n }\r\n }\r\n else if (chunk.maybe) {\r\n parts.push(MAYBE_MARKER + // useful during post-processing\r\n buildFakeFormatString(chunk.maybe) +\r\n MAYBE_MARKER);\r\n }\r\n }\r\n return parts.join(PART_SEPARATOR);\r\n}\r\n/*\r\nGiven parsed chunks from a real formatting string, generates an array of unit strings (like \"day\") that indicate\r\nin which regard two dates must be similar in order to share range formatting text.\r\nThe `chunks` can be nested (because of \"maybe\" chunks), however, the returned array will be flat.\r\n*/\r\nfunction buildSameUnits(chunks) {\r\n var units = [];\r\n var i;\r\n var chunk;\r\n var tokenInfo;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n tokenInfo = largeTokenMap[chunk.token.charAt(0)];\r\n units.push(tokenInfo ? tokenInfo.unit : 'second'); // default to a very strict same-second\r\n }\r\n else if (chunk.maybe) {\r\n units.push.apply(units, // append\r\n buildSameUnits(chunk.maybe));\r\n }\r\n else {\r\n units.push(null);\r\n }\r\n }\r\n return units;\r\n}\r\n// Rendering to text\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats a date with a fake format string, post-processes the control characters, then returns.\r\n*/\r\nfunction renderFakeFormatString(fakeFormatString, date) {\r\n return processMaybeMarkers(renderFakeFormatStringParts(fakeFormatString, date).join(''));\r\n}\r\n/*\r\nFormats a date into parts that will have been post-processed, EXCEPT for the \"maybe\" markers.\r\n*/\r\nfunction renderFakeFormatStringParts(fakeFormatString, date) {\r\n var parts = [];\r\n var fakeRender = moment_ext_1.oldMomentFormat(date, fakeFormatString);\r\n var fakeParts = fakeRender.split(PART_SEPARATOR);\r\n var i;\r\n var fakePart;\r\n for (i = 0; i < fakeParts.length; i++) {\r\n fakePart = fakeParts[i];\r\n if (fakePart.charAt(0) === SPECIAL_TOKEN_MARKER) {\r\n parts.push(\r\n // the literal string IS the token's name.\r\n // call special token's registered function.\r\n specialTokens[fakePart.substring(1)](date));\r\n }\r\n else {\r\n parts.push(fakePart);\r\n }\r\n }\r\n return parts;\r\n}\r\n/*\r\nAccepts an almost-finally-formatted string and processes the \"maybe\" control characters, returning a new string.\r\n*/\r\nfunction processMaybeMarkers(s) {\r\n return s.replace(MAYBE_REGEXP, function (m0, m1) {\r\n if (m1.match(/[1-9]/)) {\r\n return m1;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n}\r\n// Misc Utils\r\n// -------------------------------------------------------------------------------------------------\r\n/*\r\nReturns a unit string, either 'year', 'month', 'day', or null for the most granular formatting token in the string.\r\n*/\r\nfunction queryMostGranularFormatUnit(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n var i;\r\n var chunk;\r\n var candidate;\r\n var best;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n candidate = largeTokenMap[chunk.token.charAt(0)];\r\n if (candidate) {\r\n if (!best || candidate.value > best.value) {\r\n best = candidate;\r\n }\r\n }\r\n }\r\n }\r\n if (best) {\r\n return best.unit;\r\n }\r\n return null;\r\n}\r\nexports.queryMostGranularFormatUnit = queryMostGranularFormatUnit;\r\n\r\n\r\n/***/ }),\r\n/* 48 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Class_1 = __webpack_require__(33);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Model = /** @class */ (function (_super) {\r\n tslib_1.__extends(Model, _super);\r\n function Model() {\r\n var _this = _super.call(this) || this;\r\n _this._watchers = {};\r\n _this._props = {};\r\n _this.applyGlobalWatchers();\r\n _this.constructed();\r\n return _this;\r\n }\r\n Model.watch = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // subclasses should make a masked-copy of the superclass's map\r\n // TODO: write test\r\n if (!this.prototype.hasOwnProperty('_globalWatchArgs')) {\r\n this.prototype._globalWatchArgs = Object.create(this.prototype._globalWatchArgs);\r\n }\r\n this.prototype._globalWatchArgs[name] = args;\r\n };\r\n Model.prototype.constructed = function () {\r\n // useful for monkeypatching. TODO: BaseClass?\r\n };\r\n Model.prototype.applyGlobalWatchers = function () {\r\n var map = this._globalWatchArgs;\r\n var name;\r\n for (name in map) {\r\n this.watch.apply(this, [name].concat(map[name]));\r\n }\r\n };\r\n Model.prototype.has = function (name) {\r\n return name in this._props;\r\n };\r\n Model.prototype.get = function (name) {\r\n if (name === undefined) {\r\n return this._props;\r\n }\r\n return this._props[name];\r\n };\r\n Model.prototype.set = function (name, val) {\r\n var newProps;\r\n if (typeof name === 'string') {\r\n newProps = {};\r\n newProps[name] = val === undefined ? null : val;\r\n }\r\n else {\r\n newProps = name;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.reset = function (newProps) {\r\n var oldProps = this._props;\r\n var changeset = {}; // will have undefined's to signal unsets\r\n var name;\r\n for (name in oldProps) {\r\n changeset[name] = undefined;\r\n }\r\n for (name in newProps) {\r\n changeset[name] = newProps[name];\r\n }\r\n this.setProps(changeset);\r\n };\r\n Model.prototype.unset = function (name) {\r\n var newProps = {};\r\n var names;\r\n var i;\r\n if (typeof name === 'string') {\r\n names = [name];\r\n }\r\n else {\r\n names = name;\r\n }\r\n for (i = 0; i < names.length; i++) {\r\n newProps[names[i]] = undefined;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.setProps = function (newProps) {\r\n var changedProps = {};\r\n var changedCnt = 0;\r\n var name;\r\n var val;\r\n for (name in newProps) {\r\n val = newProps[name];\r\n // a change in value?\r\n // if an object, don't check equality, because might have been mutated internally.\r\n // TODO: eventually enforce immutability.\r\n if (typeof val === 'object' ||\r\n val !== this._props[name]) {\r\n changedProps[name] = val;\r\n changedCnt++;\r\n }\r\n }\r\n if (changedCnt) {\r\n this.trigger('before:batchChange', changedProps);\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n this.trigger('before:change', name, val);\r\n this.trigger('before:change:' + name, val);\r\n }\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n if (val === undefined) {\r\n delete this._props[name];\r\n }\r\n else {\r\n this._props[name] = val;\r\n }\r\n this.trigger('change:' + name, val);\r\n this.trigger('change', name, val);\r\n }\r\n this.trigger('batchChange', changedProps);\r\n }\r\n };\r\n Model.prototype.watch = function (name, depList, startFunc, stopFunc) {\r\n var _this = this;\r\n this.unwatch(name);\r\n this._watchers[name] = this._watchDeps(depList, function (deps) {\r\n var res = startFunc.call(_this, deps);\r\n if (res && res.then) {\r\n _this.unset(name); // put in an unset state while resolving\r\n res.then(function (val) {\r\n _this.set(name, val);\r\n });\r\n }\r\n else {\r\n _this.set(name, res);\r\n }\r\n }, function (deps) {\r\n _this.unset(name);\r\n if (stopFunc) {\r\n stopFunc.call(_this, deps);\r\n }\r\n });\r\n };\r\n Model.prototype.unwatch = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n delete this._watchers[name];\r\n watcher.teardown();\r\n }\r\n };\r\n Model.prototype._watchDeps = function (depList, startFunc, stopFunc) {\r\n var _this = this;\r\n var queuedChangeCnt = 0;\r\n var depCnt = depList.length;\r\n var satisfyCnt = 0;\r\n var values = {}; // what's passed as the `deps` arguments\r\n var bindTuples = []; // array of [ eventName, handlerFunc ] arrays\r\n var isCallingStop = false;\r\n var onBeforeDepChange = function (depName, val, isOptional) {\r\n queuedChangeCnt++;\r\n if (queuedChangeCnt === 1) {\r\n if (satisfyCnt === depCnt) {\r\n isCallingStop = true;\r\n stopFunc(values);\r\n isCallingStop = false;\r\n }\r\n }\r\n };\r\n var onDepChange = function (depName, val, isOptional) {\r\n if (val === undefined) {\r\n // required dependency that was previously set?\r\n if (!isOptional && values[depName] !== undefined) {\r\n satisfyCnt--;\r\n }\r\n delete values[depName];\r\n }\r\n else {\r\n // required dependency that was previously unset?\r\n if (!isOptional && values[depName] === undefined) {\r\n satisfyCnt++;\r\n }\r\n values[depName] = val;\r\n }\r\n queuedChangeCnt--;\r\n if (!queuedChangeCnt) {\r\n // now finally satisfied or satisfied all along?\r\n if (satisfyCnt === depCnt) {\r\n // if the stopFunc initiated another value change, ignore it.\r\n // it will be processed by another change event anyway.\r\n if (!isCallingStop) {\r\n startFunc(values);\r\n }\r\n }\r\n }\r\n };\r\n // intercept for .on() that remembers handlers\r\n var bind = function (eventName, handler) {\r\n _this.on(eventName, handler);\r\n bindTuples.push([eventName, handler]);\r\n };\r\n // listen to dependency changes\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') {\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n bind('before:change:' + depName, function (val) {\r\n onBeforeDepChange(depName, val, isOptional);\r\n });\r\n bind('change:' + depName, function (val) {\r\n onDepChange(depName, val, isOptional);\r\n });\r\n });\r\n // process current dependency values\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') {\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n if (_this.has(depName)) {\r\n values[depName] = _this.get(depName);\r\n satisfyCnt++;\r\n }\r\n else if (isOptional) {\r\n satisfyCnt++;\r\n }\r\n });\r\n // initially satisfied\r\n if (satisfyCnt === depCnt) {\r\n startFunc(values);\r\n }\r\n return {\r\n teardown: function () {\r\n // remove all handlers\r\n for (var i = 0; i < bindTuples.length; i++) {\r\n _this.off(bindTuples[i][0], bindTuples[i][1]);\r\n }\r\n bindTuples = null;\r\n // was satisfied, so call stopFunc\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n }\r\n },\r\n flash: function () {\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n startFunc(values);\r\n }\r\n }\r\n };\r\n };\r\n Model.prototype.flash = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n watcher.flash();\r\n }\r\n };\r\n return Model;\r\n}(Class_1.default));\r\nexports.default = Model;\r\nModel.prototype._globalWatchArgs = {}; // mutation protection in Model.watch\r\nEmitterMixin_1.default.mixInto(Model);\r\nListenerMixin_1.default.mixInto(Model);\r\n\r\n\r\n/***/ }),\r\n/* 49 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar RecurringEventDef_1 = __webpack_require__(210);\r\nexports.default = {\r\n parse: function (eventInput, source) {\r\n if (util_1.isTimeString(eventInput.start) || moment.isDuration(eventInput.start) ||\r\n util_1.isTimeString(eventInput.end) || moment.isDuration(eventInput.end)) {\r\n return RecurringEventDef_1.default.parse(eventInput, source);\r\n }\r\n else {\r\n return SingleEventDef_1.default.parse(eventInput, source);\r\n }\r\n }\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 50 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventDefDateMutation = /** @class */ (function () {\r\n function EventDefDateMutation() {\r\n this.clearEnd = false;\r\n this.forceTimed = false;\r\n this.forceAllDay = false;\r\n }\r\n EventDefDateMutation.createFromDiff = function (dateProfile0, dateProfile1, largeUnit) {\r\n var clearEnd = dateProfile0.end && !dateProfile1.end;\r\n var forceTimed = dateProfile0.isAllDay() && !dateProfile1.isAllDay();\r\n var forceAllDay = !dateProfile0.isAllDay() && dateProfile1.isAllDay();\r\n var dateDelta;\r\n var endDiff;\r\n var endDelta;\r\n var mutation;\r\n // subtracts the dates in the appropriate way, returning a duration\r\n function subtractDates(date1, date0) {\r\n if (largeUnit) {\r\n return util_1.diffByUnit(date1, date0, largeUnit); // poorly named\r\n }\r\n else if (dateProfile1.isAllDay()) {\r\n return util_1.diffDay(date1, date0); // poorly named\r\n }\r\n else {\r\n return util_1.diffDayTime(date1, date0); // poorly named\r\n }\r\n }\r\n dateDelta = subtractDates(dateProfile1.start, dateProfile0.start);\r\n if (dateProfile1.end) {\r\n // use unzonedRanges because dateProfile0.end might be null\r\n endDiff = subtractDates(dateProfile1.unzonedRange.getEnd(), dateProfile0.unzonedRange.getEnd());\r\n endDelta = endDiff.subtract(dateDelta);\r\n }\r\n mutation = new EventDefDateMutation();\r\n mutation.clearEnd = clearEnd;\r\n mutation.forceTimed = forceTimed;\r\n mutation.forceAllDay = forceAllDay;\r\n mutation.setDateDelta(dateDelta);\r\n mutation.setEndDelta(endDelta);\r\n return mutation;\r\n };\r\n /*\r\n returns an undo function.\r\n */\r\n EventDefDateMutation.prototype.buildNewDateProfile = function (eventDateProfile, calendar) {\r\n var start = eventDateProfile.start.clone();\r\n var end = null;\r\n var shouldRezone = false;\r\n if (eventDateProfile.end && !this.clearEnd) {\r\n end = eventDateProfile.end.clone();\r\n }\r\n else if (this.endDelta && !end) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n if (this.forceTimed) {\r\n shouldRezone = true;\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n else if (this.forceAllDay) {\r\n if (start.hasTime()) {\r\n start.stripTime();\r\n }\r\n if (end && end.hasTime()) {\r\n end.stripTime();\r\n }\r\n }\r\n if (this.dateDelta) {\r\n shouldRezone = true;\r\n start.add(this.dateDelta);\r\n if (end) {\r\n end.add(this.dateDelta);\r\n }\r\n }\r\n // do this before adding startDelta to start, so we can work off of start\r\n if (this.endDelta) {\r\n shouldRezone = true;\r\n end.add(this.endDelta);\r\n }\r\n if (this.startDelta) {\r\n shouldRezone = true;\r\n start.add(this.startDelta);\r\n }\r\n if (shouldRezone) {\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n }\r\n // TODO: okay to access calendar option?\r\n if (!end && calendar.opt('forceEventDuration')) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n return new EventDateProfile_1.default(start, end, calendar);\r\n };\r\n EventDefDateMutation.prototype.setDateDelta = function (dateDelta) {\r\n if (dateDelta && dateDelta.valueOf()) {\r\n this.dateDelta = dateDelta;\r\n }\r\n else {\r\n this.dateDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setStartDelta = function (startDelta) {\r\n if (startDelta && startDelta.valueOf()) {\r\n this.startDelta = startDelta;\r\n }\r\n else {\r\n this.startDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setEndDelta = function (endDelta) {\r\n if (endDelta && endDelta.valueOf()) {\r\n this.endDelta = endDelta;\r\n }\r\n else {\r\n this.endDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.isEmpty = function () {\r\n return !this.clearEnd && !this.forceTimed && !this.forceAllDay &&\r\n !this.dateDelta && !this.startDelta && !this.endDelta;\r\n };\r\n return EventDefDateMutation;\r\n}());\r\nexports.default = EventDefDateMutation;\r\n\r\n\r\n/***/ }),\r\n/* 51 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StandardTheme_1 = __webpack_require__(213);\r\nvar JqueryUiTheme_1 = __webpack_require__(214);\r\nvar themeClassHash = {};\r\nfunction defineThemeSystem(themeName, themeClass) {\r\n themeClassHash[themeName] = themeClass;\r\n}\r\nexports.defineThemeSystem = defineThemeSystem;\r\nfunction getThemeSystemClass(themeSetting) {\r\n if (!themeSetting) {\r\n return StandardTheme_1.default;\r\n }\r\n else if (themeSetting === true) {\r\n return JqueryUiTheme_1.default;\r\n }\r\n else {\r\n return themeClassHash[themeSetting];\r\n }\r\n}\r\nexports.getThemeSystemClass = getThemeSystemClass;\r\n\r\n\r\n/***/ }),\r\n/* 52 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar ArrayEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(ArrayEventSource, _super);\r\n function ArrayEventSource(calendar) {\r\n var _this = _super.call(this, calendar) || this;\r\n _this.eventDefs = []; // for if setRawEventDefs is never called\r\n return _this;\r\n }\r\n ArrayEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isArray(rawInput.events)) {\r\n rawProps = rawInput;\r\n }\r\n else if ($.isArray(rawInput)) {\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n ArrayEventSource.prototype.setRawEventDefs = function (rawEventDefs) {\r\n this.rawEventDefs = rawEventDefs;\r\n this.eventDefs = this.parseEventDefs(rawEventDefs);\r\n };\r\n ArrayEventSource.prototype.fetch = function (start, end, timezone) {\r\n var eventDefs = this.eventDefs;\r\n var i;\r\n if (this.currentTimezone != null &&\r\n this.currentTimezone !== timezone) {\r\n for (i = 0; i < eventDefs.length; i++) {\r\n if (eventDefs[i] instanceof SingleEventDef_1.default) {\r\n eventDefs[i].rezone();\r\n }\r\n }\r\n }\r\n this.currentTimezone = timezone;\r\n return Promise_1.default.resolve(eventDefs);\r\n };\r\n ArrayEventSource.prototype.addEventDef = function (eventDef) {\r\n this.eventDefs.push(eventDef);\r\n };\r\n /*\r\n eventDefId already normalized to a string\r\n */\r\n ArrayEventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n return util_1.removeMatching(this.eventDefs, function (eventDef) {\r\n return eventDef.id === eventDefId;\r\n });\r\n };\r\n ArrayEventSource.prototype.removeAllEventDefs = function () {\r\n this.eventDefs = [];\r\n };\r\n ArrayEventSource.prototype.getPrimitive = function () {\r\n return this.rawEventDefs;\r\n };\r\n ArrayEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.setRawEventDefs(rawProps.events);\r\n return superSuccess;\r\n };\r\n return ArrayEventSource;\r\n}(EventSource_1.default));\r\nexports.default = ArrayEventSource;\r\nArrayEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 53 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/*\r\nA cache for the left/right/top/bottom/width/height values for one or more elements.\r\nWorks with both offset (from topleft document) and position (from offsetParent).\r\n\r\noptions:\r\n- els\r\n- isHorizontal\r\n- isVertical\r\n*/\r\nvar CoordCache = /** @class */ (function () {\r\n function CoordCache(options) {\r\n this.isHorizontal = false; // whether to query for left/right/width\r\n this.isVertical = false; // whether to query for top/bottom/height\r\n this.els = $(options.els);\r\n this.isHorizontal = options.isHorizontal;\r\n this.isVertical = options.isVertical;\r\n this.forcedOffsetParentEl = options.offsetParent ? $(options.offsetParent) : null;\r\n }\r\n // Queries the els for coordinates and stores them.\r\n // Call this method before using and of the get* methods below.\r\n CoordCache.prototype.build = function () {\r\n var offsetParentEl = this.forcedOffsetParentEl;\r\n if (!offsetParentEl && this.els.length > 0) {\r\n offsetParentEl = this.els.eq(0).offsetParent();\r\n }\r\n this.origin = offsetParentEl ?\r\n offsetParentEl.offset() :\r\n null;\r\n this.boundingRect = this.queryBoundingRect();\r\n if (this.isHorizontal) {\r\n this.buildElHorizontals();\r\n }\r\n if (this.isVertical) {\r\n this.buildElVerticals();\r\n }\r\n };\r\n // Destroys all internal data about coordinates, freeing memory\r\n CoordCache.prototype.clear = function () {\r\n this.origin = null;\r\n this.boundingRect = null;\r\n this.lefts = null;\r\n this.rights = null;\r\n this.tops = null;\r\n this.bottoms = null;\r\n };\r\n // When called, if coord caches aren't built, builds them\r\n CoordCache.prototype.ensureBuilt = function () {\r\n if (!this.origin) {\r\n this.build();\r\n }\r\n };\r\n // Populates the left/right internal coordinate arrays\r\n CoordCache.prototype.buildElHorizontals = function () {\r\n var lefts = [];\r\n var rights = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var left = el.offset().left;\r\n var width = el.outerWidth();\r\n lefts.push(left);\r\n rights.push(left + width);\r\n });\r\n this.lefts = lefts;\r\n this.rights = rights;\r\n };\r\n // Populates the top/bottom internal coordinate arrays\r\n CoordCache.prototype.buildElVerticals = function () {\r\n var tops = [];\r\n var bottoms = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var top = el.offset().top;\r\n var height = el.outerHeight();\r\n tops.push(top);\r\n bottoms.push(top + height);\r\n });\r\n this.tops = tops;\r\n this.bottoms = bottoms;\r\n };\r\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getHorizontalIndex = function (leftOffset) {\r\n this.ensureBuilt();\r\n var lefts = this.lefts;\r\n var rights = this.rights;\r\n var len = lefts.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (leftOffset >= lefts[i] && leftOffset < rights[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getVerticalIndex = function (topOffset) {\r\n this.ensureBuilt();\r\n var tops = this.tops;\r\n var bottoms = this.bottoms;\r\n var len = tops.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (topOffset >= tops[i] && topOffset < bottoms[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Gets the left offset (from document left) of the element at the given index\r\n CoordCache.prototype.getLeftOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex];\r\n };\r\n // Gets the left position (from offsetParent left) of the element at the given index\r\n CoordCache.prototype.getLeftPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex] - this.origin.left;\r\n };\r\n // Gets the right offset (from document left) of the element at the given index.\r\n // This value is NOT relative to the document's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex];\r\n };\r\n // Gets the right position (from offsetParent left) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.origin.left;\r\n };\r\n // Gets the width of the element at the given index\r\n CoordCache.prototype.getWidth = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.lefts[leftIndex];\r\n };\r\n // Gets the top offset (from document top) of the element at the given index\r\n CoordCache.prototype.getTopOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex];\r\n };\r\n // Gets the top position (from offsetParent top) of the element at the given position\r\n CoordCache.prototype.getTopPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex] - this.origin.top;\r\n };\r\n // Gets the bottom offset (from the document top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex];\r\n };\r\n // Gets the bottom position (from the offsetParent top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.origin.top;\r\n };\r\n // Gets the height of the element at the given index\r\n CoordCache.prototype.getHeight = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.tops[topIndex];\r\n };\r\n // Bounding Rect\r\n // TODO: decouple this from CoordCache\r\n // Compute and return what the elements' bounding rectangle is, from the user's perspective.\r\n // Right now, only returns a rectangle if constrained by an overflow:scroll element.\r\n // Returns null if there are no elements\r\n CoordCache.prototype.queryBoundingRect = function () {\r\n var scrollParentEl;\r\n if (this.els.length > 0) {\r\n scrollParentEl = util_1.getScrollParent(this.els.eq(0));\r\n if (!scrollParentEl.is(document)) {\r\n return util_1.getClientRect(scrollParentEl);\r\n }\r\n }\r\n return null;\r\n };\r\n CoordCache.prototype.isPointInBounds = function (leftOffset, topOffset) {\r\n return this.isLeftInBounds(leftOffset) && this.isTopInBounds(topOffset);\r\n };\r\n CoordCache.prototype.isLeftInBounds = function (leftOffset) {\r\n return !this.boundingRect || (leftOffset >= this.boundingRect.left && leftOffset < this.boundingRect.right);\r\n };\r\n CoordCache.prototype.isTopInBounds = function (topOffset) {\r\n return !this.boundingRect || (topOffset >= this.boundingRect.top && topOffset < this.boundingRect.bottom);\r\n };\r\n return CoordCache;\r\n}());\r\nexports.default = CoordCache;\r\n\r\n\r\n/***/ }),\r\n/* 54 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\n/* Tracks a drag's mouse movement, firing various handlers\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// TODO: use Emitter\r\nvar DragListener = /** @class */ (function () {\r\n function DragListener(options) {\r\n this.isInteracting = false;\r\n this.isDistanceSurpassed = false;\r\n this.isDelayEnded = false;\r\n this.isDragging = false;\r\n this.isTouch = false;\r\n this.isGeneric = false; // initiated by 'dragstart' (jqui)\r\n this.shouldCancelTouchScroll = true;\r\n this.scrollAlwaysKills = false;\r\n this.isAutoScroll = false;\r\n // defaults\r\n this.scrollSensitivity = 30; // pixels from edge for scrolling to start\r\n this.scrollSpeed = 200; // pixels per second, at maximum speed\r\n this.scrollIntervalMs = 50; // millisecond wait between scroll increment\r\n this.options = options || {};\r\n }\r\n // Interaction (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startInteraction = function (ev, extraOptions) {\r\n if (extraOptions === void 0) { extraOptions = {}; }\r\n if (ev.type === 'mousedown') {\r\n if (GlobalEmitter_1.default.get().shouldIgnoreMouse()) {\r\n return;\r\n }\r\n else if (!util_1.isPrimaryMouseButton(ev)) {\r\n return;\r\n }\r\n else {\r\n ev.preventDefault(); // prevents native selection in most browsers\r\n }\r\n }\r\n if (!this.isInteracting) {\r\n // process options\r\n this.delay = util_1.firstDefined(extraOptions.delay, this.options.delay, 0);\r\n this.minDistance = util_1.firstDefined(extraOptions.distance, this.options.distance, 0);\r\n this.subjectEl = this.options.subjectEl;\r\n util_1.preventSelection($('body'));\r\n this.isInteracting = true;\r\n this.isTouch = util_1.getEvIsTouch(ev);\r\n this.isGeneric = ev.type === 'dragstart';\r\n this.isDelayEnded = false;\r\n this.isDistanceSurpassed = false;\r\n this.originX = util_1.getEvX(ev);\r\n this.originY = util_1.getEvY(ev);\r\n this.scrollEl = util_1.getScrollParent($(ev.target));\r\n this.bindHandlers();\r\n this.initAutoScroll();\r\n this.handleInteractionStart(ev);\r\n this.startDelay(ev);\r\n if (!this.minDistance) {\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n };\r\n DragListener.prototype.handleInteractionStart = function (ev) {\r\n this.trigger('interactionStart', ev);\r\n };\r\n DragListener.prototype.endInteraction = function (ev, isCancelled) {\r\n if (this.isInteracting) {\r\n this.endDrag(ev);\r\n if (this.delayTimeoutId) {\r\n clearTimeout(this.delayTimeoutId);\r\n this.delayTimeoutId = null;\r\n }\r\n this.destroyAutoScroll();\r\n this.unbindHandlers();\r\n this.isInteracting = false;\r\n this.handleInteractionEnd(ev, isCancelled);\r\n util_1.allowSelection($('body'));\r\n }\r\n };\r\n DragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n this.trigger('interactionEnd', ev, isCancelled || false);\r\n };\r\n // Binding To DOM\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.bindHandlers = function () {\r\n // some browsers (Safari in iOS 10) don't allow preventDefault on touch events that are bound after touchstart,\r\n // so listen to the GlobalEmitter singleton, which is always bound, instead of the document directly.\r\n var globalEmitter = GlobalEmitter_1.default.get();\r\n if (this.isGeneric) {\r\n this.listenTo($(document), {\r\n drag: this.handleMove,\r\n dragstop: this.endInteraction\r\n });\r\n }\r\n else if (this.isTouch) {\r\n this.listenTo(globalEmitter, {\r\n touchmove: this.handleTouchMove,\r\n touchend: this.endInteraction,\r\n scroll: this.handleTouchScroll\r\n });\r\n }\r\n else {\r\n this.listenTo(globalEmitter, {\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.endInteraction\r\n });\r\n }\r\n this.listenTo(globalEmitter, {\r\n selectstart: util_1.preventDefault,\r\n contextmenu: util_1.preventDefault // long taps would open menu on Chrome dev tools\r\n });\r\n };\r\n DragListener.prototype.unbindHandlers = function () {\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n this.stopListeningTo($(document)); // for isGeneric\r\n };\r\n // Drag (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // extraOptions ignored if drag already started\r\n DragListener.prototype.startDrag = function (ev, extraOptions) {\r\n this.startInteraction(ev, extraOptions); // ensure interaction began\r\n if (!this.isDragging) {\r\n this.isDragging = true;\r\n this.handleDragStart(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragStart = function (ev) {\r\n this.trigger('dragStart', ev);\r\n };\r\n DragListener.prototype.handleMove = function (ev) {\r\n var dx = util_1.getEvX(ev) - this.originX;\r\n var dy = util_1.getEvY(ev) - this.originY;\r\n var minDistance = this.minDistance;\r\n var distanceSq; // current distance from the origin, squared\r\n if (!this.isDistanceSurpassed) {\r\n distanceSq = dx * dx + dy * dy;\r\n if (distanceSq >= minDistance * minDistance) {\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n if (this.isDragging) {\r\n this.handleDrag(dx, dy, ev);\r\n }\r\n };\r\n // Called while the mouse is being moved and when we know a legitimate drag is taking place\r\n DragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n this.trigger('drag', dx, dy, ev);\r\n this.updateAutoScroll(ev); // will possibly cause scrolling\r\n };\r\n DragListener.prototype.endDrag = function (ev) {\r\n if (this.isDragging) {\r\n this.isDragging = false;\r\n this.handleDragEnd(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragEnd = function (ev) {\r\n this.trigger('dragEnd', ev);\r\n };\r\n // Delay\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startDelay = function (initialEv) {\r\n var _this = this;\r\n if (this.delay) {\r\n this.delayTimeoutId = setTimeout(function () {\r\n _this.handleDelayEnd(initialEv);\r\n }, this.delay);\r\n }\r\n else {\r\n this.handleDelayEnd(initialEv);\r\n }\r\n };\r\n DragListener.prototype.handleDelayEnd = function (initialEv) {\r\n this.isDelayEnded = true;\r\n if (this.isDistanceSurpassed) {\r\n this.startDrag(initialEv);\r\n }\r\n };\r\n // Distance\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleDistanceSurpassed = function (ev) {\r\n this.isDistanceSurpassed = true;\r\n if (this.isDelayEnded) {\r\n this.startDrag(ev);\r\n }\r\n };\r\n // Mouse / Touch\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchMove = function (ev) {\r\n // prevent inertia and touchmove-scrolling while dragging\r\n if (this.isDragging && this.shouldCancelTouchScroll) {\r\n ev.preventDefault();\r\n }\r\n this.handleMove(ev);\r\n };\r\n DragListener.prototype.handleMouseMove = function (ev) {\r\n this.handleMove(ev);\r\n };\r\n // Scrolling (unrelated to auto-scroll)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchScroll = function (ev) {\r\n // if the drag is being initiated by touch, but a scroll happens before\r\n // the drag-initiating delay is over, cancel the drag\r\n if (!this.isDragging || this.scrollAlwaysKills) {\r\n this.endInteraction(ev, true); // isCancelled=true\r\n }\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n DragListener.prototype.trigger = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (this.options[name]) {\r\n this.options[name].apply(this, args);\r\n }\r\n // makes _methods callable by event name. TODO: kill this\r\n if (this['_' + name]) {\r\n this['_' + name].apply(this, args);\r\n }\r\n };\r\n // Auto-scroll\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.initAutoScroll = function () {\r\n var scrollEl = this.scrollEl;\r\n this.isAutoScroll =\r\n this.options.scroll &&\r\n scrollEl &&\r\n !scrollEl.is(window) &&\r\n !scrollEl.is(document);\r\n if (this.isAutoScroll) {\r\n // debounce makes sure rapid calls don't happen\r\n this.listenTo(scrollEl, 'scroll', util_1.debounce(this.handleDebouncedScroll, 100));\r\n }\r\n };\r\n DragListener.prototype.destroyAutoScroll = function () {\r\n this.endAutoScroll(); // kill any animation loop\r\n // remove the scroll handler if there is a scrollEl\r\n if (this.isAutoScroll) {\r\n this.stopListeningTo(this.scrollEl, 'scroll'); // will probably get removed by unbindHandlers too :(\r\n }\r\n };\r\n // Computes and stores the bounding rectangle of scrollEl\r\n DragListener.prototype.computeScrollBounds = function () {\r\n if (this.isAutoScroll) {\r\n this.scrollBounds = util_1.getOuterRect(this.scrollEl);\r\n // TODO: use getClientRect in future. but prevents auto scrolling when on top of scrollbars\r\n }\r\n };\r\n // Called when the dragging is in progress and scrolling should be updated\r\n DragListener.prototype.updateAutoScroll = function (ev) {\r\n var sensitivity = this.scrollSensitivity;\r\n var bounds = this.scrollBounds;\r\n var topCloseness;\r\n var bottomCloseness;\r\n var leftCloseness;\r\n var rightCloseness;\r\n var topVel = 0;\r\n var leftVel = 0;\r\n if (bounds) {\r\n // compute closeness to edges. valid range is from 0.0 - 1.0\r\n topCloseness = (sensitivity - (util_1.getEvY(ev) - bounds.top)) / sensitivity;\r\n bottomCloseness = (sensitivity - (bounds.bottom - util_1.getEvY(ev))) / sensitivity;\r\n leftCloseness = (sensitivity - (util_1.getEvX(ev) - bounds.left)) / sensitivity;\r\n rightCloseness = (sensitivity - (bounds.right - util_1.getEvX(ev))) / sensitivity;\r\n // translate vertical closeness into velocity.\r\n // mouse must be completely in bounds for velocity to happen.\r\n if (topCloseness >= 0 && topCloseness <= 1) {\r\n topVel = topCloseness * this.scrollSpeed * -1; // negative. for scrolling up\r\n }\r\n else if (bottomCloseness >= 0 && bottomCloseness <= 1) {\r\n topVel = bottomCloseness * this.scrollSpeed;\r\n }\r\n // translate horizontal closeness into velocity\r\n if (leftCloseness >= 0 && leftCloseness <= 1) {\r\n leftVel = leftCloseness * this.scrollSpeed * -1; // negative. for scrolling left\r\n }\r\n else if (rightCloseness >= 0 && rightCloseness <= 1) {\r\n leftVel = rightCloseness * this.scrollSpeed;\r\n }\r\n }\r\n this.setScrollVel(topVel, leftVel);\r\n };\r\n // Sets the speed-of-scrolling for the scrollEl\r\n DragListener.prototype.setScrollVel = function (topVel, leftVel) {\r\n this.scrollTopVel = topVel;\r\n this.scrollLeftVel = leftVel;\r\n this.constrainScrollVel(); // massages into realistic values\r\n // if there is non-zero velocity, and an animation loop hasn't already started, then START\r\n if ((this.scrollTopVel || this.scrollLeftVel) && !this.scrollIntervalId) {\r\n this.scrollIntervalId = setInterval(util_1.proxy(this, 'scrollIntervalFunc'), // scope to `this`\r\n this.scrollIntervalMs);\r\n }\r\n };\r\n // Forces scrollTopVel and scrollLeftVel to be zero if scrolling has already gone all the way\r\n DragListener.prototype.constrainScrollVel = function () {\r\n var el = this.scrollEl;\r\n if (this.scrollTopVel < 0) {\r\n if (el.scrollTop() <= 0) {\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n else if (this.scrollTopVel > 0) {\r\n if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) {\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n if (this.scrollLeftVel < 0) {\r\n if (el.scrollLeft() <= 0) {\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n else if (this.scrollLeftVel > 0) {\r\n if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) {\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n };\r\n // This function gets called during every iteration of the scrolling animation loop\r\n DragListener.prototype.scrollIntervalFunc = function () {\r\n var el = this.scrollEl;\r\n var frac = this.scrollIntervalMs / 1000; // considering animation frequency, what the vel should be mult'd by\r\n // change the value of scrollEl's scroll\r\n if (this.scrollTopVel) {\r\n el.scrollTop(el.scrollTop() + this.scrollTopVel * frac);\r\n }\r\n if (this.scrollLeftVel) {\r\n el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac);\r\n }\r\n this.constrainScrollVel(); // since the scroll values changed, recompute the velocities\r\n // if scrolled all the way, which causes the vels to be zero, stop the animation loop\r\n if (!this.scrollTopVel && !this.scrollLeftVel) {\r\n this.endAutoScroll();\r\n }\r\n };\r\n // Kills any existing scrolling animation loop\r\n DragListener.prototype.endAutoScroll = function () {\r\n if (this.scrollIntervalId) {\r\n clearInterval(this.scrollIntervalId);\r\n this.scrollIntervalId = null;\r\n this.handleScrollEnd();\r\n }\r\n };\r\n // Get called when the scrollEl is scrolled (NOTE: this is delayed via debounce)\r\n DragListener.prototype.handleDebouncedScroll = function () {\r\n // recompute all coordinates, but *only* if this is *not* part of our scrolling animation\r\n if (!this.scrollIntervalId) {\r\n this.handleScrollEnd();\r\n }\r\n };\r\n DragListener.prototype.handleScrollEnd = function () {\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n };\r\n return DragListener;\r\n}());\r\nexports.default = DragListener;\r\nListenerMixin_1.default.mixInto(DragListener);\r\n\r\n\r\n/***/ }),\r\n/* 55 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(14);\r\n/*\r\nA set of rendering and date-related methods for a visual component comprised of one or more rows of day columns.\r\nPrerequisite: the object being mixed into needs to be a *Grid*\r\n*/\r\nvar DayTableMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayTableMixin, _super);\r\n function DayTableMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Populates internal variables used for date calculation and rendering\r\n DayTableMixin.prototype.updateDayTable = function () {\r\n var t = this;\r\n var view = t.view;\r\n var calendar = view.calendar;\r\n var date = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.startMs, true);\r\n var end = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.endMs, true);\r\n var dayIndex = -1;\r\n var dayIndices = [];\r\n var dayDates = [];\r\n var daysPerRow;\r\n var firstDay;\r\n var rowCnt;\r\n while (date.isBefore(end)) {\r\n if (view.isHiddenDay(date)) {\r\n dayIndices.push(dayIndex + 0.5); // mark that it's between indices\r\n }\r\n else {\r\n dayIndex++;\r\n dayIndices.push(dayIndex);\r\n dayDates.push(date.clone());\r\n }\r\n date.add(1, 'days');\r\n }\r\n if (this.breakOnWeeks) {\r\n // count columns until the day-of-week repeats\r\n firstDay = dayDates[0].day();\r\n for (daysPerRow = 1; daysPerRow < dayDates.length; daysPerRow++) {\r\n if (dayDates[daysPerRow].day() === firstDay) {\r\n break;\r\n }\r\n }\r\n rowCnt = Math.ceil(dayDates.length / daysPerRow);\r\n }\r\n else {\r\n rowCnt = 1;\r\n daysPerRow = dayDates.length;\r\n }\r\n this.dayDates = dayDates;\r\n this.dayIndices = dayIndices;\r\n this.daysPerRow = daysPerRow;\r\n this.rowCnt = rowCnt;\r\n this.updateDayTableCols();\r\n };\r\n // Computes and assigned the colCnt property and updates any options that may be computed from it\r\n DayTableMixin.prototype.updateDayTableCols = function () {\r\n this.colCnt = this.computeColCnt();\r\n this.colHeadFormat =\r\n this.opt('columnHeaderFormat') ||\r\n this.opt('columnFormat') || // deprecated\r\n this.computeColHeadFormat();\r\n };\r\n // Determines how many columns there should be in the table\r\n DayTableMixin.prototype.computeColCnt = function () {\r\n return this.daysPerRow;\r\n };\r\n // Computes the ambiguously-timed moment for the given cell\r\n DayTableMixin.prototype.getCellDate = function (row, col) {\r\n return this.dayDates[this.getCellDayIndex(row, col)].clone();\r\n };\r\n // Computes the ambiguously-timed date range for the given cell\r\n DayTableMixin.prototype.getCellRange = function (row, col) {\r\n var start = this.getCellDate(row, col);\r\n var end = start.clone().add(1, 'days');\r\n return { start: start, end: end };\r\n };\r\n // Returns the number of day cells, chronologically, from the first of the grid (0-based)\r\n DayTableMixin.prototype.getCellDayIndex = function (row, col) {\r\n return row * this.daysPerRow + this.getColDayIndex(col);\r\n };\r\n // Returns the numner of day cells, chronologically, from the first cell in *any given row*\r\n DayTableMixin.prototype.getColDayIndex = function (col) {\r\n if (this.isRTL) {\r\n return this.colCnt - 1 - col;\r\n }\r\n else {\r\n return col;\r\n }\r\n };\r\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\r\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\r\n // If before the first offset, returns a negative number.\r\n // If after the last offset, returns an offset past the last cell offset.\r\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\r\n DayTableMixin.prototype.getDateDayIndex = function (date) {\r\n var dayIndices = this.dayIndices;\r\n var dayOffset = date.diff(this.dayDates[0], 'days');\r\n if (dayOffset < 0) {\r\n return dayIndices[0] - 1;\r\n }\r\n else if (dayOffset >= dayIndices.length) {\r\n return dayIndices[dayIndices.length - 1] + 1;\r\n }\r\n else {\r\n return dayIndices[dayOffset];\r\n }\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes a default column header formatting string if `colFormat` is not explicitly defined\r\n DayTableMixin.prototype.computeColHeadFormat = function () {\r\n // if more than one week row, or if there are a lot of columns with not much space,\r\n // put just the day numbers will be in each cell\r\n if (this.rowCnt > 1 || this.colCnt > 10) {\r\n return 'ddd'; // \"Sat\"\r\n }\r\n else if (this.colCnt > 1) {\r\n return this.opt('dayOfMonthFormat'); // \"Sat 12/10\"\r\n }\r\n else {\r\n return 'dddd'; // \"Saturday\"\r\n }\r\n };\r\n /* Slicing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Slices up a date range into a segment for every week-row it intersects with\r\n DayTableMixin.prototype.sliceRangeByRow = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, rowFirst);\r\n segLast = Math.min(rangeLast, rowLast);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) {\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n // Slices up a date range into a segment for every day-cell it intersects with.\r\n // TODO: make more DRY with sliceRangeByRow somehow.\r\n DayTableMixin.prototype.sliceRangeByDay = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var i;\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n for (i = rowFirst; i <= rowLast; i++) {\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, i);\r\n segLast = Math.min(rangeLast, i);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) {\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Header Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderHeadHtml = function () {\r\n var theme = this.view.calendar.theme;\r\n return '' +\r\n '
' +\r\n '' +\r\n '' +\r\n this.renderHeadTrHtml() +\r\n '' +\r\n '
' +\r\n '
';\r\n };\r\n DayTableMixin.prototype.renderHeadIntroHtml = function () {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderHeadTrHtml = function () {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderHeadIntroHtml()) +\r\n this.renderHeadDateCellsHtml() +\r\n (this.isRTL ? this.renderHeadIntroHtml() : '') +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderHeadDateCellsHtml = function () {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(0, col);\r\n htmls.push(this.renderHeadDateCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // TODO: when internalApiVersion, accept an object for HTML attributes\r\n // (colspan should be no different)\r\n DayTableMixin.prototype.renderHeadDateCellHtml = function (date, colspan, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classNames = [\r\n 'fc-day-header',\r\n view.calendar.theme.getClass('widgetHeader')\r\n ];\r\n var innerHtml;\r\n if (typeof t.opt('columnHeaderHtml') === 'function') {\r\n innerHtml = t.opt('columnHeaderHtml')(date);\r\n }\r\n else if (typeof t.opt('columnHeaderText') === 'function') {\r\n innerHtml = util_1.htmlEscape(t.opt('columnHeaderText')(date));\r\n }\r\n else {\r\n innerHtml = util_1.htmlEscape(date.format(t.colHeadFormat));\r\n }\r\n // if only one row of days, the classNames on the header can represent the specific days beneath\r\n if (t.rowCnt === 1) {\r\n classNames = classNames.concat(\r\n // includes the day-of-week class\r\n // noThemeHighlight=true (don't highlight the header)\r\n t.getDayClasses(date, true));\r\n }\r\n else {\r\n classNames.push('fc-' + util_1.dayIDs[date.day()]); // only add the day-of-week class\r\n }\r\n return '' +\r\n ' 1 ?\r\n ' colspan=\"' + colspan + '\"' :\r\n '') +\r\n (otherAttrs ?\r\n ' ' + otherAttrs :\r\n '') +\r\n '>' +\r\n (isDateValid ?\r\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\r\n view.buildGotoAnchorHtml({ date: date, forceOff: t.rowCnt > 1 || t.colCnt === 1 }, innerHtml) :\r\n // if not valid, display text, but no link\r\n innerHtml) +\r\n '';\r\n };\r\n /* Background Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderBgTrHtml = function (row) {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderBgIntroHtml(row)) +\r\n this.renderBgCellsHtml(row) +\r\n (this.isRTL ? this.renderBgIntroHtml(row) : '') +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderBgIntroHtml = function (row) {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderBgCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderBgCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n DayTableMixin.prototype.renderBgCellHtml = function (date, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classes = t.getDayClasses(date);\r\n classes.unshift('fc-day', view.calendar.theme.getClass('widgetContent'));\r\n return '';\r\n };\r\n /* Generic\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderIntroHtml = function () {\r\n // Generates the default HTML intro for any row. User classes should override\r\n };\r\n // TODO: a generic method for dealing with , RTL, intro\r\n // when increment internalApiVersion\r\n // wrapTr (scheduler)\r\n /* Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Applies the generic \"intro\" and \"outro\" HTML to the given cells.\r\n // Intro means the leftmost cell when the calendar is LTR and the rightmost cell when RTL. Vice-versa for outro.\r\n DayTableMixin.prototype.bookendCells = function (trEl) {\r\n var introHtml = this.renderIntroHtml();\r\n if (introHtml) {\r\n if (this.isRTL) {\r\n trEl.append(introHtml);\r\n }\r\n else {\r\n trEl.prepend(introHtml);\r\n }\r\n }\r\n };\r\n return DayTableMixin;\r\n}(Mixin_1.default));\r\nexports.default = DayTableMixin;\r\n\r\n\r\n/***/ }),\r\n/* 56 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BusinessHourRenderer = /** @class */ (function () {\r\n /*\r\n component implements:\r\n - eventRangesToEventFootprints\r\n - eventFootprintsToSegs\r\n */\r\n function BusinessHourRenderer(component, fillRenderer) {\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n BusinessHourRenderer.prototype.render = function (businessHourGenerator) {\r\n var component = this.component;\r\n var unzonedRange = component._getDateProfile().activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(component.hasAllDayBusinessHours, unzonedRange);\r\n var eventFootprints = eventInstanceGroup ?\r\n component.eventRangesToEventFootprints(eventInstanceGroup.sliceRenderRanges(unzonedRange)) :\r\n [];\r\n this.renderEventFootprints(eventFootprints);\r\n };\r\n BusinessHourRenderer.prototype.renderEventFootprints = function (eventFootprints) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n this.renderSegs(segs);\r\n this.segs = segs;\r\n };\r\n BusinessHourRenderer.prototype.renderSegs = function (segs) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('businessHours', segs, {\r\n getClasses: function (seg) {\r\n return ['fc-nonbusiness', 'fc-bgevent'];\r\n }\r\n });\r\n }\r\n };\r\n BusinessHourRenderer.prototype.unrender = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('businessHours');\r\n }\r\n this.segs = null;\r\n };\r\n BusinessHourRenderer.prototype.getSegs = function () {\r\n return this.segs || [];\r\n };\r\n return BusinessHourRenderer;\r\n}());\r\nexports.default = BusinessHourRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 57 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar FillRenderer = /** @class */ (function () {\r\n function FillRenderer(component) {\r\n this.fillSegTag = 'div';\r\n this.component = component;\r\n this.elsByFill = {};\r\n }\r\n FillRenderer.prototype.renderFootprint = function (type, componentFootprint, props) {\r\n this.renderSegs(type, this.component.componentFootprintToSegs(componentFootprint), props);\r\n };\r\n FillRenderer.prototype.renderSegs = function (type, segs, props) {\r\n var els;\r\n segs = this.buildSegEls(type, segs, props); // assignes `.el` to each seg. returns successfully rendered segs\r\n els = this.attachSegEls(type, segs);\r\n if (els) {\r\n this.reportEls(type, els);\r\n }\r\n return segs;\r\n };\r\n // Unrenders a specific type of fill that is currently rendered on the grid\r\n FillRenderer.prototype.unrender = function (type) {\r\n var el = this.elsByFill[type];\r\n if (el) {\r\n el.remove();\r\n delete this.elsByFill[type];\r\n }\r\n };\r\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\r\n // Only returns segments that successfully rendered.\r\n FillRenderer.prototype.buildSegEls = function (type, segs, props) {\r\n var _this = this;\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) {\r\n // build a large concatenation of segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n html += this.buildSegHtml(type, segs[i], props);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n // allow custom filter methods per-type\r\n if (props.filterEl) {\r\n el = props.filterEl(seg, el);\r\n }\r\n if (el) {\r\n el = $(el); // allow custom filter to return raw DOM node\r\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\r\n if (el.is(_this.fillSegTag)) {\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\r\n FillRenderer.prototype.buildSegHtml = function (type, seg, props) {\r\n // custom hooks per-type\r\n var classes = props.getClasses ? props.getClasses(seg) : [];\r\n var css = util_1.cssToStr(props.getCss ? props.getCss(seg) : {});\r\n return '<' + this.fillSegTag +\r\n (classes.length ? ' class=\"' + classes.join(' ') + '\"' : '') +\r\n (css ? ' style=\"' + css + '\"' : '') +\r\n ' />';\r\n };\r\n // Should return wrapping DOM structure\r\n FillRenderer.prototype.attachSegEls = function (type, segs) {\r\n // subclasses must implement\r\n };\r\n FillRenderer.prototype.reportEls = function (type, nodes) {\r\n if (this.elsByFill[type]) {\r\n this.elsByFill[type] = this.elsByFill[type].add(nodes);\r\n }\r\n else {\r\n this.elsByFill[type] = $(nodes);\r\n }\r\n };\r\n return FillRenderer;\r\n}());\r\nexports.default = FillRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 58 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar HelperRenderer = /** @class */ (function () {\r\n function HelperRenderer(component, eventRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.eventRenderer = eventRenderer;\r\n }\r\n HelperRenderer.prototype.renderComponentFootprint = function (componentFootprint) {\r\n this.renderEventFootprints([\r\n this.fabricateEventFootprint(componentFootprint)\r\n ]);\r\n };\r\n HelperRenderer.prototype.renderEventDraggingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-dragging', isTouch ? null : this.view.opt('dragOpacity'));\r\n };\r\n HelperRenderer.prototype.renderEventResizingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-resizing');\r\n };\r\n HelperRenderer.prototype.renderEventFootprints = function (eventFootprints, sourceSeg, extraClassNames, opacity) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n var classNames = 'fc-helper ' + (extraClassNames || '');\r\n var i;\r\n // assigns each seg's el and returns a subset of segs that were rendered\r\n segs = this.eventRenderer.renderFgSegEls(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.addClass(classNames);\r\n }\r\n if (opacity != null) {\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.css('opacity', opacity);\r\n }\r\n }\r\n this.helperEls = this.renderSegs(segs, sourceSeg);\r\n };\r\n /*\r\n Must return all mock event elements\r\n */\r\n HelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n // Subclasses must implement\r\n };\r\n HelperRenderer.prototype.unrender = function () {\r\n if (this.helperEls) {\r\n this.helperEls.remove();\r\n this.helperEls = null;\r\n }\r\n };\r\n HelperRenderer.prototype.fabricateEventFootprint = function (componentFootprint) {\r\n var calendar = this.view.calendar;\r\n var eventDateProfile = calendar.footprintToDateProfile(componentFootprint);\r\n var dummyEvent = new SingleEventDef_1.default(new EventSource_1.default(calendar));\r\n var dummyInstance;\r\n dummyEvent.dateProfile = eventDateProfile;\r\n dummyInstance = dummyEvent.buildInstance();\r\n return new EventFootprint_1.default(componentFootprint, dummyEvent, dummyInstance);\r\n };\r\n return HelperRenderer;\r\n}());\r\nexports.default = HelperRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 59 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar EventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventPointing, _super);\r\n function EventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n component must implement:\r\n - publiclyTrigger\r\n */\r\n EventPointing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'click', this.handleClick.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseenter', this.handleMouseover.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseleave', this.handleMouseout.bind(this));\r\n };\r\n EventPointing.prototype.handleClick = function (seg, ev) {\r\n var res = this.component.publiclyTrigger('eventClick', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n if (res === false) {\r\n ev.preventDefault();\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused over\r\n EventPointing.prototype.handleMouseover = function (seg, ev) {\r\n if (!GlobalEmitter_1.default.get().shouldIgnoreMouse() &&\r\n !this.mousedOverSeg) {\r\n this.mousedOverSeg = seg;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.addClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseover', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused out.\r\n // Can be given no arguments, in which case it will mouseout the segment that was previously moused over.\r\n EventPointing.prototype.handleMouseout = function (seg, ev) {\r\n if (this.mousedOverSeg) {\r\n this.mousedOverSeg = null;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.removeClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseout', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev || {},\r\n this.view\r\n ]\r\n });\r\n }\r\n };\r\n EventPointing.prototype.end = function () {\r\n if (this.mousedOverSeg) {\r\n this.handleMouseout(this.mousedOverSeg);\r\n }\r\n };\r\n return EventPointing;\r\n}(Interaction_1.default));\r\nexports.default = EventPointing;\r\n\r\n\r\n/***/ }),\r\n/* 60 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar DateClicking_1 = __webpack_require__(245);\r\nvar DateSelecting_1 = __webpack_require__(225);\r\nvar EventPointing_1 = __webpack_require__(59);\r\nvar EventDragging_1 = __webpack_require__(224);\r\nvar EventResizing_1 = __webpack_require__(223);\r\nvar ExternalDropping_1 = __webpack_require__(222);\r\nvar StandardInteractionsMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardInteractionsMixin, _super);\r\n function StandardInteractionsMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardInteractionsMixin;\r\n}(Mixin_1.default));\r\nexports.default = StandardInteractionsMixin;\r\nStandardInteractionsMixin.prototype.dateClickingClass = DateClicking_1.default;\r\nStandardInteractionsMixin.prototype.dateSelectingClass = DateSelecting_1.default;\r\nStandardInteractionsMixin.prototype.eventPointingClass = EventPointing_1.default;\r\nStandardInteractionsMixin.prototype.eventDraggingClass = EventDragging_1.default;\r\nStandardInteractionsMixin.prototype.eventResizingClass = EventResizing_1.default;\r\nStandardInteractionsMixin.prototype.externalDroppingClass = ExternalDropping_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 61 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar CoordCache_1 = __webpack_require__(53);\r\nvar Popover_1 = __webpack_require__(249);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nvar DayGridEventRenderer_1 = __webpack_require__(250);\r\nvar DayGridHelperRenderer_1 = __webpack_require__(251);\r\nvar DayGridFillRenderer_1 = __webpack_require__(252);\r\n/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGrid, _super);\r\n function DayGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.cellWeekNumbersVisible = false; // display week numbers in day cell?\r\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\r\n // isRigid determines whether the individual rows should ignore the contents and be a constant height.\r\n // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient.\r\n _this.isRigid = false;\r\n _this.hasAllDayBusinessHours = true;\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n DayGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByRow(componentFootprint.unzonedRange);\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (this.isRTL) {\r\n seg.leftCol = this.daysPerRow - 1 - seg.lastRowDayIndex;\r\n seg.rightCol = this.daysPerRow - 1 - seg.firstRowDayIndex;\r\n }\r\n else {\r\n seg.leftCol = seg.firstRowDayIndex;\r\n seg.rightCol = seg.lastRowDayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderGrid();\r\n };\r\n DayGrid.prototype.unrenderDates = function () {\r\n this.removeSegPopover();\r\n };\r\n // Renders the rows and columns into the component's `this.el`, which should already be assigned.\r\n DayGrid.prototype.renderGrid = function () {\r\n var view = this.view;\r\n var rowCnt = this.rowCnt;\r\n var colCnt = this.colCnt;\r\n var html = '';\r\n var row;\r\n var col;\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n for (row = 0; row < rowCnt; row++) {\r\n html += this.renderDayRowHtml(row, this.isRigid);\r\n }\r\n this.el.html(html);\r\n this.rowEls = this.el.find('.fc-row');\r\n this.cellEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.rowCoordCache = new CoordCache_1.default({\r\n els: this.rowEls,\r\n isVertical: true\r\n });\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.cellEls.slice(0, this.colCnt),\r\n isHorizontal: true\r\n });\r\n // trigger dayRender with each cell's element\r\n for (row = 0; row < rowCnt; row++) {\r\n for (col = 0; col < colCnt; col++) {\r\n this.publiclyTrigger('dayRender', {\r\n context: view,\r\n args: [\r\n this.getCellDate(row, col),\r\n this.getCellEl(row, col),\r\n view\r\n ]\r\n });\r\n }\r\n }\r\n };\r\n // Generates the HTML for a single row, which is a div that wraps a table.\r\n // `row` is the row number.\r\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\r\n var theme = this.view.calendar.theme;\r\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\r\n if (isRigid) {\r\n classes.push('fc-rigid');\r\n }\r\n return '' +\r\n '
' +\r\n '
' +\r\n '' +\r\n this.renderBgTrHtml(row) +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n (this.getIsNumbersVisible() ?\r\n '' +\r\n this.renderNumberTrHtml(row) +\r\n '' :\r\n '') +\r\n '
' +\r\n '
' +\r\n '
';\r\n };\r\n DayGrid.prototype.getIsNumbersVisible = function () {\r\n return this.getIsDayNumbersVisible() || this.cellWeekNumbersVisible;\r\n };\r\n DayGrid.prototype.getIsDayNumbersVisible = function () {\r\n return this.rowCnt > 1;\r\n };\r\n /* Grid Number Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderNumberTrHtml = function (row) {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderNumberIntroHtml(row)) +\r\n this.renderNumberCellsHtml(row) +\r\n (this.isRTL ? this.renderNumberIntroHtml(row) : '') +\r\n '';\r\n };\r\n DayGrid.prototype.renderNumberIntroHtml = function (row) {\r\n return this.renderIntroHtml();\r\n };\r\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderNumberCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // Generates the HTML for the s of the \"number\" row in the DayGrid's content skeleton.\r\n // The number row will only exist if either day numbers or week numbers are turned on.\r\n DayGrid.prototype.renderNumberCellHtml = function (date) {\r\n var view = this.view;\r\n var html = '';\r\n var isDateValid = this.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\r\n var classes;\r\n var weekCalcFirstDoW;\r\n if (!isDayNumberVisible && !this.cellWeekNumbersVisible) {\r\n // no numbers in day cell (week number must be along the side)\r\n return ''; // will create an empty space above events :(\r\n }\r\n classes = this.getDayClasses(date);\r\n classes.unshift('fc-day-top');\r\n if (this.cellWeekNumbersVisible) {\r\n // To determine the day of week number change under ISO, we cannot\r\n // rely on moment.js methods such as firstDayOfWeek() or weekday(),\r\n // because they rely on the locale's dow (possibly overridden by\r\n // our firstDay option), which may not be Monday. We cannot change\r\n // dow, because that would affect the calendar start day as well.\r\n if (date._locale._fullCalendar_weekCalc === 'ISO') {\r\n weekCalcFirstDoW = 1; // Monday by ISO 8601 definition\r\n }\r\n else {\r\n weekCalcFirstDoW = date._locale.firstDayOfWeek();\r\n }\r\n }\r\n html += '';\r\n if (this.cellWeekNumbersVisible && (date.day() === weekCalcFirstDoW)) {\r\n html += view.buildGotoAnchorHtml({ date: date, type: 'week' }, { 'class': 'fc-week-number' }, date.format('w') // inner HTML\r\n );\r\n }\r\n if (isDayNumberVisible) {\r\n html += view.buildGotoAnchorHtml(date, { 'class': 'fc-day-number' }, date.format('D') // inner HTML\r\n );\r\n }\r\n html += '';\r\n return html;\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.rowCoordCache.build();\r\n this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\r\n };\r\n DayGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n this.rowCoordCache.clear();\r\n };\r\n DayGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n if (this.colCoordCache.isLeftInBounds(leftOffset) && this.rowCoordCache.isTopInBounds(topOffset)) {\r\n var col = this.colCoordCache.getHorizontalIndex(leftOffset);\r\n var row = this.rowCoordCache.getVerticalIndex(topOffset);\r\n if (row != null && col != null) {\r\n return this.getCellHit(row, col);\r\n }\r\n }\r\n };\r\n DayGrid.prototype.getHitFootprint = function (hit) {\r\n var range = this.getCellRange(hit.row, hit.col);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(range.start, range.end), true // all-day?\r\n );\r\n };\r\n DayGrid.prototype.getHitEl = function (hit) {\r\n return this.getCellEl(hit.row, hit.col);\r\n };\r\n /* Cell System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // FYI: the first column is the leftmost column, regardless of date\r\n DayGrid.prototype.getCellHit = function (row, col) {\r\n return {\r\n row: row,\r\n col: col,\r\n component: this,\r\n left: this.colCoordCache.getLeftOffset(col),\r\n right: this.colCoordCache.getRightOffset(col),\r\n top: this.rowCoordCache.getTopOffset(row),\r\n bottom: this.rowCoordCache.getBottomOffset(row)\r\n };\r\n };\r\n DayGrid.prototype.getCellEl = function (row, col) {\r\n return this.cellEls.eq(row * this.colCnt + col);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Unrenders all events currently rendered on the grid\r\n DayGrid.prototype.executeEventUnrender = function () {\r\n this.removeSegPopover(); // removes the \"more..\" events popover\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n // Retrieves all rendered segment objects currently rendered on the grid\r\n DayGrid.prototype.getOwnEventSegs = function () {\r\n // append the segments from the \"more...\" popover\r\n return _super.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs || []);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event or external element being dragged.\r\n // `eventLocation` has zoned start and end (optional)\r\n DayGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n // render drags from OTHER components as helpers\r\n if (eventFootprints.length && seg && seg.component !== this) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n return true; // signal helpers rendered\r\n }\r\n };\r\n // Unrenders any visual indication of a hovering event\r\n DayGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n DayGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders a visual indication of an event being resized\r\n DayGrid.prototype.unrenderEventResize = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* More+ Link Popover\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.removeSegPopover = function () {\r\n if (this.segPopover) {\r\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\r\n }\r\n };\r\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\r\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\r\n DayGrid.prototype.limitRows = function (levelLimit) {\r\n var rowStructs = this.eventRenderer.rowStructs || [];\r\n var row; // row #\r\n var rowLevelLimit;\r\n for (row = 0; row < rowStructs.length; row++) {\r\n this.unlimitRow(row);\r\n if (!levelLimit) {\r\n rowLevelLimit = false;\r\n }\r\n else if (typeof levelLimit === 'number') {\r\n rowLevelLimit = levelLimit;\r\n }\r\n else {\r\n rowLevelLimit = this.computeRowLevelLimit(row);\r\n }\r\n if (rowLevelLimit !== false) {\r\n this.limitRow(row, rowLevelLimit);\r\n }\r\n }\r\n };\r\n // Computes the number of levels a row will accomodate without going outside its bounds.\r\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\r\n // `row` is the row number.\r\n DayGrid.prototype.computeRowLevelLimit = function (row) {\r\n var rowEl = this.rowEls.eq(row); // the containing \"fake\" row div\r\n var rowHeight = rowEl.height(); // TODO: cache somehow?\r\n var trEls = this.eventRenderer.rowStructs[row].tbodyEl.children();\r\n var i;\r\n var trEl;\r\n var trHeight;\r\n function iterInnerHeights(i, childNode) {\r\n trHeight = Math.max(trHeight, $(childNode).outerHeight());\r\n }\r\n // Reveal one level at a time and stop when we find one out of bounds\r\n for (i = 0; i < trEls.length; i++) {\r\n trEl = trEls.eq(i).removeClass('fc-limited'); // reset to original state (reveal)\r\n // with rowspans>1 and IE8, trEl.outerHeight() would return the height of the largest cell,\r\n // so instead, find the tallest inner content element.\r\n trHeight = 0;\r\n trEl.find('> td > :first-child').each(iterInnerHeights);\r\n if (trEl.position().top + trHeight > rowHeight) {\r\n return i;\r\n }\r\n }\r\n return false; // should not limit at all\r\n };\r\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\r\n // `row` is the row number.\r\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\r\n DayGrid.prototype.limitRow = function (row, levelLimit) {\r\n var _this = this;\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n var moreNodes = []; // array of \"more\" links and DOM nodes\r\n var col = 0; // col #, left-to-right (not chronologically)\r\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\r\n var cellMatrix; // a matrix (by level, then column) of all jQuery elements in the row\r\n var limitedNodes; // array of temporarily hidden level and segment DOM nodes\r\n var i;\r\n var seg;\r\n var segsBelow; // array of segment objects below `seg` in the current `col`\r\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\r\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\r\n var td;\r\n var rowspan;\r\n var segMoreNodes; // array of \"more\" cells that will stand-in for the current seg's cell\r\n var j;\r\n var moreTd;\r\n var moreWrap;\r\n var moreLink;\r\n // Iterates through empty level cells and places \"more\" links inside if need be\r\n var emptyCellsUntil = function (endCol) {\r\n while (col < endCol) {\r\n segsBelow = _this.getCellSegs(row, col, levelLimit);\r\n if (segsBelow.length) {\r\n td = cellMatrix[levelLimit - 1][col];\r\n moreLink = _this.renderMoreLink(row, col, segsBelow);\r\n moreWrap = $('
').append(moreLink);\r\n td.append(moreWrap);\r\n moreNodes.push(moreWrap[0]);\r\n }\r\n col++;\r\n }\r\n };\r\n if (levelLimit && levelLimit < rowStruct.segLevels.length) {\r\n levelSegs = rowStruct.segLevels[levelLimit - 1];\r\n cellMatrix = rowStruct.cellMatrix;\r\n limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level elements past the limit\r\n .addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array\r\n // iterate though segments in the last allowable level\r\n for (i = 0; i < levelSegs.length; i++) {\r\n seg = levelSegs[i];\r\n emptyCellsUntil(seg.leftCol); // process empty cells before the segment\r\n // determine *all* segments below `seg` that occupy the same columns\r\n colSegsBelow = [];\r\n totalSegsBelow = 0;\r\n while (col <= seg.rightCol) {\r\n segsBelow = this.getCellSegs(row, col, levelLimit);\r\n colSegsBelow.push(segsBelow);\r\n totalSegsBelow += segsBelow.length;\r\n col++;\r\n }\r\n if (totalSegsBelow) {\r\n td = cellMatrix[levelLimit - 1][seg.leftCol]; // the segment's parent cell\r\n rowspan = td.attr('rowspan') || 1;\r\n segMoreNodes = [];\r\n // make a replacement for each column the segment occupies. will be one for each colspan\r\n for (j = 0; j < colSegsBelow.length; j++) {\r\n moreTd = $('').attr('rowspan', rowspan);\r\n segsBelow = colSegsBelow[j];\r\n moreLink = this.renderMoreLink(row, seg.leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\r\n );\r\n moreWrap = $('
').append(moreLink);\r\n moreTd.append(moreWrap);\r\n segMoreNodes.push(moreTd[0]);\r\n moreNodes.push(moreTd[0]);\r\n }\r\n td.addClass('fc-limited').after($(segMoreNodes)); // hide original and inject replacements\r\n limitedNodes.push(td[0]);\r\n }\r\n }\r\n emptyCellsUntil(this.colCnt); // finish off the level\r\n rowStruct.moreEls = $(moreNodes); // for easy undoing later\r\n rowStruct.limitedEls = $(limitedNodes); // for easy undoing later\r\n }\r\n };\r\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\r\n // `row` is a row number.\r\n DayGrid.prototype.unlimitRow = function (row) {\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n if (rowStruct.moreEls) {\r\n rowStruct.moreEls.remove();\r\n rowStruct.moreEls = null;\r\n }\r\n if (rowStruct.limitedEls) {\r\n rowStruct.limitedEls.removeClass('fc-limited');\r\n rowStruct.limitedEls = null;\r\n }\r\n };\r\n // Renders an element that represents hidden event element for a cell.\r\n // Responsible for attaching click handler as well.\r\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\r\n var _this = this;\r\n var view = this.view;\r\n return $('')\r\n .text(this.getMoreLinkText(hiddenSegs.length))\r\n .on('click', function (ev) {\r\n var clickOption = _this.opt('eventLimitClick');\r\n var date = _this.getCellDate(row, col);\r\n var moreEl = $(ev.currentTarget);\r\n var dayEl = _this.getCellEl(row, col);\r\n var allSegs = _this.getCellSegs(row, col);\r\n // rescope the segments to be within the cell's date\r\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\r\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\r\n if (typeof clickOption === 'function') {\r\n // the returned value can be an atomic option\r\n clickOption = _this.publiclyTrigger('eventLimitClick', {\r\n context: view,\r\n args: [\r\n {\r\n date: date.clone(),\r\n dayEl: dayEl,\r\n moreEl: moreEl,\r\n segs: reslicedAllSegs,\r\n hiddenSegs: reslicedHiddenSegs\r\n },\r\n ev,\r\n view\r\n ]\r\n });\r\n }\r\n if (clickOption === 'popover') {\r\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\r\n }\r\n else if (typeof clickOption === 'string') {\r\n view.calendar.zoomTo(date, clickOption);\r\n }\r\n });\r\n };\r\n // Reveals the popover that displays all events within a cell\r\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\r\n var _this = this;\r\n var view = this.view;\r\n var moreWrap = moreLink.parent(); // the
wrapper around the \r\n var topEl; // the element we want to match the top coordinate of\r\n var options;\r\n if (this.rowCnt === 1) {\r\n topEl = view.el; // will cause the popover to cover any sort of header\r\n }\r\n else {\r\n topEl = this.rowEls.eq(row); // will align with top of row\r\n }\r\n options = {\r\n className: 'fc-more-popover ' + view.calendar.theme.getClass('popover'),\r\n content: this.renderSegPopoverContent(row, col, segs),\r\n parentEl: view.el,\r\n top: topEl.offset().top,\r\n autoHide: true,\r\n viewportConstrain: this.opt('popoverViewportConstrain'),\r\n hide: function () {\r\n // kill everything when the popover is hidden\r\n // notify events to be removed\r\n if (_this.popoverSegs) {\r\n _this.triggerBeforeEventSegsDestroyed(_this.popoverSegs);\r\n }\r\n _this.segPopover.removeElement();\r\n _this.segPopover = null;\r\n _this.popoverSegs = null;\r\n }\r\n };\r\n // Determine horizontal coordinate.\r\n // We use the moreWrap instead of the to avoid border confusion.\r\n if (this.isRTL) {\r\n options.right = moreWrap.offset().left + moreWrap.outerWidth() + 1; // +1 to be over cell border\r\n }\r\n else {\r\n options.left = moreWrap.offset().left - 1; // -1 to be over cell border\r\n }\r\n this.segPopover = new Popover_1.default(options);\r\n this.segPopover.show();\r\n // the popover doesn't live within the grid's container element, and thus won't get the event\r\n // delegated-handlers for free. attach event-related handlers to the popover.\r\n this.bindAllSegHandlersToEl(this.segPopover.el);\r\n this.triggerAfterEventSegsRendered(segs);\r\n };\r\n // Builds the inner DOM contents of the segment popover\r\n DayGrid.prototype.renderSegPopoverContent = function (row, col, segs) {\r\n var view = this.view;\r\n var theme = view.calendar.theme;\r\n var title = this.getCellDate(row, col).format(this.opt('dayPopoverFormat'));\r\n var content = $('
' +\r\n '' +\r\n '' +\r\n util_1.htmlEscape(title) +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
');\r\n var segContainer = content.find('.fc-event-container');\r\n var i;\r\n // render each seg's `el` and only return the visible segs\r\n segs = this.eventRenderer.renderFgSegEls(segs, true); // disableResizing=true\r\n this.popoverSegs = segs;\r\n for (i = 0; i < segs.length; i++) {\r\n // because segments in the popover are not part of a grid coordinate system, provide a hint to any\r\n // grids that want to do drag-n-drop about which cell it came from\r\n this.hitsNeeded();\r\n segs[i].hit = this.getCellHit(row, col);\r\n this.hitsNotNeeded();\r\n segContainer.append(segs[i].el);\r\n }\r\n return content;\r\n };\r\n // Given the events within an array of segment objects, reslice them to be in a single day\r\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\r\n var dayStart = dayDate.clone();\r\n var dayEnd = dayStart.clone().add(1, 'days');\r\n var dayRange = new UnzonedRange_1.default(dayStart, dayEnd);\r\n var newSegs = [];\r\n var i;\r\n var seg;\r\n var slicedRange;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n slicedRange = seg.footprint.componentFootprint.unzonedRange.intersect(dayRange);\r\n if (slicedRange) {\r\n newSegs.push($.extend({}, seg, {\r\n footprint: new EventFootprint_1.default(new ComponentFootprint_1.default(slicedRange, seg.footprint.componentFootprint.isAllDay), seg.footprint.eventDef, seg.footprint.eventInstance),\r\n isStart: seg.isStart && slicedRange.isStart,\r\n isEnd: seg.isEnd && slicedRange.isEnd\r\n }));\r\n }\r\n }\r\n // force an order because eventsToSegs doesn't guarantee one\r\n // TODO: research if still needed\r\n this.eventRenderer.sortEventSegs(newSegs);\r\n return newSegs;\r\n };\r\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\r\n DayGrid.prototype.getMoreLinkText = function (num) {\r\n var opt = this.opt('eventLimitText');\r\n if (typeof opt === 'function') {\r\n return opt(num);\r\n }\r\n else {\r\n return '+' + num + ' ' + opt;\r\n }\r\n };\r\n // Returns segments within a given cell.\r\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\r\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\r\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\r\n var level = startLevel || 0;\r\n var segs = [];\r\n var seg;\r\n while (level < segMatrix.length) {\r\n seg = segMatrix[level][col];\r\n if (seg) {\r\n segs.push(seg);\r\n }\r\n level++;\r\n }\r\n return segs;\r\n };\r\n return DayGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = DayGrid;\r\nDayGrid.prototype.eventRendererClass = DayGridEventRenderer_1.default;\r\nDayGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nDayGrid.prototype.helperRendererClass = DayGridHelperRenderer_1.default;\r\nDayGrid.prototype.fillRendererClass = DayGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(DayGrid);\r\nDayTableMixin_1.default.mixInto(DayGrid);\r\n\r\n\r\n/***/ }),\r\n/* 62 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar View_1 = __webpack_require__(41);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(228);\r\nvar DayGrid_1 = __webpack_require__(61);\r\n/* An abstract class for the \"basic\" views, as well as month view. Renders one or more rows of day cells.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\r\n// It is responsible for managing width/height.\r\nvar BasicView = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicView, _super);\r\n function BasicView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.dayGrid = _this.instantiateDayGrid();\r\n _this.dayGrid.isRigid = _this.hasRigidRows();\r\n if (_this.opt('weekNumbers')) {\r\n if (_this.opt('weekNumbersWithinDays')) {\r\n _this.dayGrid.cellWeekNumbersVisible = true;\r\n _this.dayGrid.colWeekNumbersVisible = false;\r\n }\r\n else {\r\n _this.dayGrid.cellWeekNumbersVisible = false;\r\n _this.dayGrid.colWeekNumbersVisible = true;\r\n }\r\n }\r\n _this.addChild(_this.dayGrid);\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Generates the DayGrid object this view needs. Draws from this.dayGridClass\r\n BasicView.prototype.instantiateDayGrid = function () {\r\n // generate a subclass on the fly with BasicView-specific behavior\r\n // TODO: cache this subclass\r\n var subclass = makeDayGridSubclass(this.dayGridClass);\r\n return new subclass(this);\r\n };\r\n BasicView.prototype.executeDateRender = function (dateProfile) {\r\n this.dayGrid.breakOnWeeks = /year|month|week/.test(dateProfile.currentRangeUnit);\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n };\r\n BasicView.prototype.renderSkeleton = function () {\r\n var dayGridContainerEl;\r\n var dayGridEl;\r\n this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n dayGridContainerEl = this.scroller.el.addClass('fc-day-grid-container');\r\n dayGridEl = $('
').appendTo(dayGridContainerEl);\r\n this.el.find('.fc-body > tr > td').append(dayGridContainerEl);\r\n this.dayGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.dayGrid.setElement(dayGridEl);\r\n };\r\n BasicView.prototype.unrenderSkeleton = function () {\r\n this.dayGrid.removeElement();\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid component will render inside of a container defined by this HTML.\r\n BasicView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '' +\r\n (this.opt('columnHeader') ?\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
 
';\r\n };\r\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\r\n BasicView.prototype.weekNumberStyleAttr = function () {\r\n if (this.weekNumberWidth != null) {\r\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n // Determines whether each row should have a constant height\r\n BasicView.prototype.hasRigidRows = function () {\r\n var eventLimit = this.opt('eventLimit');\r\n return eventLimit && typeof eventLimit !== 'number';\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Refreshes the horizontal dimensions of the view\r\n BasicView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit = this.opt('eventLimit');\r\n var headRowEl = this.dayGrid.headContainerEl.find('.fc-row');\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n // hack to give the view some height prior to dayGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS dayGrid.\r\n if (!this.dayGrid.rowEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n if (this.dayGrid.colWeekNumbersVisible) {\r\n // Make sure all week number cells running down the side have the same width.\r\n // Record the width for cells created later.\r\n this.weekNumberWidth = util_1.matchCellWidths(this.el.find('.fc-week-number'));\r\n }\r\n // reset all heights to be natural\r\n this.scroller.clear();\r\n util_1.uncompensateScroll(headRowEl);\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n // is the event limit a constant level number?\r\n if (eventLimit && typeof eventLimit === 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\r\n }\r\n // distribute the height to the rows\r\n // (totalHeight is a \"recommended\" value if isAuto)\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.setGridHeight(scrollerHeight, isAuto);\r\n // is the event limit dynamically calculated?\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\r\n }\r\n if (!isAuto) {\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) {\r\n util_1.compensateScroll(headRowEl, scrollbarWidths);\r\n // doing the scrollbar compensation might have created text overflow which created more height. redo\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n BasicView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n // Sets the height of just the DayGrid component in this view\r\n BasicView.prototype.setGridHeight = function (height, isAuto) {\r\n if (isAuto) {\r\n util_1.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\r\n }\r\n else {\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\r\n }\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n BasicView.prototype.computeInitialDateScroll = function () {\r\n return { top: 0 };\r\n };\r\n BasicView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n BasicView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n return BasicView;\r\n}(View_1.default));\r\nexports.default = BasicView;\r\nBasicView.prototype.dateProfileGeneratorClass = BasicViewDateProfileGenerator_1.default;\r\nBasicView.prototype.dayGridClass = DayGrid_1.default;\r\n// customize the rendering behavior of BasicView's dayGrid\r\nfunction makeDayGridSubclass(SuperClass) {\r\n return /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.colWeekNumbersVisible = false; // display week numbers along the side?\r\n return _this;\r\n }\r\n // Generates the HTML that will go before the day-of week header cells\r\n SubClass.prototype.renderHeadIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '' +\r\n '' + // needed for matchCellWidths\r\n util_1.htmlEscape(this.opt('weekNumberTitle')) +\r\n '' +\r\n '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\r\n SubClass.prototype.renderNumberIntroHtml = function (row) {\r\n var view = this.view;\r\n var weekStart = this.getCellDate(row, 0);\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt === 1 }, weekStart.format('w') // inner HTML\r\n ) +\r\n '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before the day bg cells for each day-row\r\n SubClass.prototype.renderBgIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before every other type of row generated by DayGrid.\r\n // Affects helper-skeleton and highlight-skeleton rows.\r\n SubClass.prototype.renderIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n SubClass.prototype.getIsNumbersVisible = function () {\r\n return DayGrid_1.default.prototype.getIsNumbersVisible.apply(this, arguments) || this.colWeekNumbersVisible;\r\n };\r\n return SubClass;\r\n }(SuperClass));\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 63 */,\r\n/* 64 */,\r\n/* 65 */,\r\n/* 66 */,\r\n/* 67 */,\r\n/* 68 */,\r\n/* 69 */,\r\n/* 70 */,\r\n/* 71 */,\r\n/* 72 */,\r\n/* 73 */,\r\n/* 74 */,\r\n/* 75 */,\r\n/* 76 */,\r\n/* 77 */,\r\n/* 78 */,\r\n/* 79 */,\r\n/* 80 */,\r\n/* 81 */,\r\n/* 82 */,\r\n/* 83 */,\r\n/* 84 */,\r\n/* 85 */,\r\n/* 86 */,\r\n/* 87 */,\r\n/* 88 */,\r\n/* 89 */,\r\n/* 90 */,\r\n/* 91 */,\r\n/* 92 */,\r\n/* 93 */,\r\n/* 94 */,\r\n/* 95 */,\r\n/* 96 */,\r\n/* 97 */,\r\n/* 98 */,\r\n/* 99 */,\r\n/* 100 */,\r\n/* 101 */,\r\n/* 102 */,\r\n/* 103 */,\r\n/* 104 */,\r\n/* 105 */,\r\n/* 106 */,\r\n/* 107 */,\r\n/* 108 */,\r\n/* 109 */,\r\n/* 110 */,\r\n/* 111 */,\r\n/* 112 */,\r\n/* 113 */,\r\n/* 114 */,\r\n/* 115 */,\r\n/* 116 */,\r\n/* 117 */,\r\n/* 118 */,\r\n/* 119 */,\r\n/* 120 */,\r\n/* 121 */,\r\n/* 122 */,\r\n/* 123 */,\r\n/* 124 */,\r\n/* 125 */,\r\n/* 126 */,\r\n/* 127 */,\r\n/* 128 */,\r\n/* 129 */,\r\n/* 130 */,\r\n/* 131 */,\r\n/* 132 */,\r\n/* 133 */,\r\n/* 134 */,\r\n/* 135 */,\r\n/* 136 */,\r\n/* 137 */,\r\n/* 138 */,\r\n/* 139 */,\r\n/* 140 */,\r\n/* 141 */,\r\n/* 142 */,\r\n/* 143 */,\r\n/* 144 */,\r\n/* 145 */,\r\n/* 146 */,\r\n/* 147 */,\r\n/* 148 */,\r\n/* 149 */,\r\n/* 150 */,\r\n/* 151 */,\r\n/* 152 */,\r\n/* 153 */,\r\n/* 154 */,\r\n/* 155 */,\r\n/* 156 */,\r\n/* 157 */,\r\n/* 158 */,\r\n/* 159 */,\r\n/* 160 */,\r\n/* 161 */,\r\n/* 162 */,\r\n/* 163 */,\r\n/* 164 */,\r\n/* 165 */,\r\n/* 166 */,\r\n/* 167 */,\r\n/* 168 */,\r\n/* 169 */,\r\n/* 170 */,\r\n/* 171 */,\r\n/* 172 */,\r\n/* 173 */,\r\n/* 174 */,\r\n/* 175 */,\r\n/* 176 */,\r\n/* 177 */,\r\n/* 178 */,\r\n/* 179 */,\r\n/* 180 */,\r\n/* 181 */,\r\n/* 182 */,\r\n/* 183 */,\r\n/* 184 */,\r\n/* 185 */,\r\n/* 186 */,\r\n/* 187 */,\r\n/* 188 */,\r\n/* 189 */,\r\n/* 190 */,\r\n/* 191 */,\r\n/* 192 */,\r\n/* 193 */,\r\n/* 194 */,\r\n/* 195 */,\r\n/* 196 */,\r\n/* 197 */,\r\n/* 198 */,\r\n/* 199 */,\r\n/* 200 */,\r\n/* 201 */,\r\n/* 202 */,\r\n/* 203 */,\r\n/* 204 */,\r\n/* 205 */,\r\n/* 206 */,\r\n/* 207 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar util_1 = __webpack_require__(35);\r\nvar Constraints = /** @class */ (function () {\r\n function Constraints(eventManager, _calendar) {\r\n this.eventManager = eventManager;\r\n this._calendar = _calendar;\r\n }\r\n Constraints.prototype.opt = function (name) {\r\n return this._calendar.opt(name);\r\n };\r\n /*\r\n determines if eventInstanceGroup is allowed,\r\n in relation to other EVENTS and business hours.\r\n */\r\n Constraints.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var eventDef = eventInstanceGroup.getEventDef();\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n var peerEventInstances = this.getPeerEventInstances(eventDef);\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var constraintVal = eventDef.getConstraint();\r\n var overlapVal = eventDef.getOverlap();\r\n var eventAllowFunc = this.opt('eventAllow');\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!this.isFootprintAllowed(eventFootprints[i].componentFootprint, peerEventFootprints, constraintVal, overlapVal, eventFootprints[i].eventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (eventAllowFunc) {\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventAllowFunc(eventFootprints[i].componentFootprint.toLegacy(this._calendar), eventFootprints[i].getEventLegacy()) === false) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n Constraints.prototype.getPeerEventInstances = function (eventDef) {\r\n return this.eventManager.getEventInstancesWithoutId(eventDef.id);\r\n };\r\n Constraints.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n var peerEventInstances = this.eventManager.getEventInstances();\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var selectAllowFunc;\r\n if (this.isFootprintAllowed(componentFootprint, peerEventFootprints, this.opt('selectConstraint'), this.opt('selectOverlap'))) {\r\n selectAllowFunc = this.opt('selectAllow');\r\n if (selectAllowFunc) {\r\n return selectAllowFunc(componentFootprint.toLegacy(this._calendar)) !== false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.isFootprintAllowed = function (componentFootprint, peerEventFootprints, constraintVal, overlapVal, subjectEventInstance // optional\r\n ) {\r\n var constraintFootprints; // ComponentFootprint[]\r\n var overlapEventFootprints; // EventFootprint[]\r\n if (constraintVal != null) {\r\n constraintFootprints = this.constraintValToFootprints(constraintVal, componentFootprint.isAllDay);\r\n if (!this.isFootprintWithinConstraints(componentFootprint, constraintFootprints)) {\r\n return false;\r\n }\r\n }\r\n overlapEventFootprints = this.collectOverlapEventFootprints(peerEventFootprints, componentFootprint);\r\n if (overlapVal === false) {\r\n if (overlapEventFootprints.length) {\r\n return false;\r\n }\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!isOverlapsAllowedByFunc(overlapEventFootprints, overlapVal, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (subjectEventInstance) {\r\n if (!isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n // Constraint\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.isFootprintWithinConstraints = function (componentFootprint, constraintFootprints) {\r\n var i;\r\n for (i = 0; i < constraintFootprints.length; i++) {\r\n if (this.footprintContainsFootprint(constraintFootprints[i], componentFootprint)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.constraintValToFootprints = function (constraintVal, isAllDay) {\r\n var eventInstances;\r\n if (constraintVal === 'businessHours') {\r\n return this.buildCurrentBusinessFootprints(isAllDay);\r\n }\r\n else if (typeof constraintVal === 'object') {\r\n eventInstances = this.parseEventDefToInstances(constraintVal); // handles recurring events\r\n if (!eventInstances) {\r\n return this.parseFootprints(constraintVal);\r\n }\r\n else {\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n }\r\n else if (constraintVal != null) {\r\n eventInstances = this.eventManager.getEventInstancesWithId(constraintVal);\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n };\r\n // returns ComponentFootprint[]\r\n // uses current view's range\r\n Constraints.prototype.buildCurrentBusinessFootprints = function (isAllDay) {\r\n var view = this._calendar.view;\r\n var businessHourGenerator = view.get('businessHourGenerator');\r\n var unzonedRange = view.dateProfile.activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(isAllDay, unzonedRange);\r\n if (eventInstanceGroup) {\r\n return this.eventInstancesToFootprints(eventInstanceGroup.eventInstances);\r\n }\r\n else {\r\n return [];\r\n }\r\n };\r\n // conversion util\r\n Constraints.prototype.eventInstancesToFootprints = function (eventInstances) {\r\n var eventRanges = eventInstances.map(util_1.eventInstanceToEventRange);\r\n var eventFootprints = this.eventRangesToEventFootprints(eventRanges);\r\n return eventFootprints.map(util_1.eventFootprintToComponentFootprint);\r\n };\r\n // Overlap\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.collectOverlapEventFootprints = function (peerEventFootprints, targetFootprint) {\r\n var overlapEventFootprints = [];\r\n var i;\r\n for (i = 0; i < peerEventFootprints.length; i++) {\r\n if (this.footprintsIntersect(targetFootprint, peerEventFootprints[i].componentFootprint)) {\r\n overlapEventFootprints.push(peerEventFootprints[i]);\r\n }\r\n }\r\n return overlapEventFootprints;\r\n };\r\n // Conversion: eventDefs -> eventInstances -> eventRanges -> eventFootprints -> componentFootprints\r\n // ------------------------------------------------------------------------------------------------\r\n // NOTE: this might seem like repetitive code with the Grid class, however, this code is related to\r\n // constraints whereas the Grid code is related to rendering. Each approach might want to convert\r\n // eventRanges -> eventFootprints in a different way. Regardless, there are opportunities to make\r\n // this more DRY.\r\n /*\r\n Returns false on invalid input.\r\n */\r\n Constraints.prototype.parseEventDefToInstances = function (eventInput) {\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, new EventSource_1.default(this._calendar));\r\n if (!eventDef) {\r\n return false;\r\n }\r\n return eventDef.buildInstances(eventManager.currentPeriod.unzonedRange);\r\n };\r\n Constraints.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var i;\r\n var eventFootprints = [];\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// footprints\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n Constraints.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_1.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /*\r\n Parses footprints directly.\r\n Very similar to EventDateProfile::parse :(\r\n */\r\n Constraints.prototype.parseFootprints = function (rawInput) {\r\n var start;\r\n var end;\r\n if (rawInput.start) {\r\n start = this._calendar.moment(rawInput.start);\r\n if (!start.isValid()) {\r\n start = null;\r\n }\r\n }\r\n if (rawInput.end) {\r\n end = this._calendar.moment(rawInput.end);\r\n if (!end.isValid()) {\r\n end = null;\r\n }\r\n }\r\n return [\r\n new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), (start && !start.hasTime()) || (end && !end.hasTime()) // isAllDay\r\n )\r\n ];\r\n };\r\n // Footprint Utils\r\n // ----------------------------------------------------------------------------------------\r\n Constraints.prototype.footprintContainsFootprint = function (outerFootprint, innerFootprint) {\r\n return outerFootprint.unzonedRange.containsRange(innerFootprint.unzonedRange);\r\n };\r\n Constraints.prototype.footprintsIntersect = function (footprint0, footprint1) {\r\n return footprint0.unzonedRange.intersectsWith(footprint1.unzonedRange);\r\n };\r\n return Constraints;\r\n}());\r\nexports.default = Constraints;\r\n// optional subjectEventInstance\r\nfunction isOverlapsAllowedByFunc(overlapEventFootprints, overlapFunc, subjectEventInstance) {\r\n var i;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n if (!overlapFunc(overlapEventFootprints[i].eventInstance.toLegacy(), subjectEventInstance ? subjectEventInstance.toLegacy() : null)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance) {\r\n var subjectLegacyInstance = subjectEventInstance.toLegacy();\r\n var i;\r\n var overlapEventInstance;\r\n var overlapEventDef;\r\n var overlapVal;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n overlapEventInstance = overlapEventFootprints[i].eventInstance;\r\n overlapEventDef = overlapEventInstance.def;\r\n // don't need to pass in calendar, because don't want to consider global eventOverlap property,\r\n // because we already considered that earlier in the process.\r\n overlapVal = overlapEventDef.getOverlap();\r\n if (overlapVal === false) {\r\n return false;\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!overlapVal(overlapEventInstance.toLegacy(), subjectLegacyInstance)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 208 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/*\r\nUSAGE:\r\n import { default as ParsableModelMixin, ParsableModelInterface } from './ParsableModelMixin'\r\nin class:\r\n applyProps: ParsableModelInterface['applyProps']\r\n applyManualStandardProps: ParsableModelInterface['applyManualStandardProps']\r\n applyMiscProps: ParsableModelInterface['applyMiscProps']\r\n isStandardProp: ParsableModelInterface['isStandardProp']\r\n static defineStandardProps = ParsableModelMixin.defineStandardProps\r\n static copyVerbatimStandardProps = ParsableModelMixin.copyVerbatimStandardProps\r\nafter class:\r\n ParsableModelMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar ParsableModelMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ParsableModelMixin, _super);\r\n function ParsableModelMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ParsableModelMixin.defineStandardProps = function (propDefs) {\r\n var proto = this.prototype;\r\n if (!proto.hasOwnProperty('standardPropMap')) {\r\n proto.standardPropMap = Object.create(proto.standardPropMap);\r\n }\r\n util_1.copyOwnProps(propDefs, proto.standardPropMap);\r\n };\r\n ParsableModelMixin.copyVerbatimStandardProps = function (src, dest) {\r\n var map = this.prototype.standardPropMap;\r\n var propName;\r\n for (propName in map) {\r\n if (src[propName] != null && // in the src object?\r\n map[propName] === true // false means \"copy verbatim\"\r\n ) {\r\n dest[propName] = src[propName];\r\n }\r\n }\r\n };\r\n /*\r\n Returns true/false for success.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyProps = function (rawProps) {\r\n var standardPropMap = this.standardPropMap;\r\n var manualProps = {};\r\n var miscProps = {};\r\n var propName;\r\n for (propName in rawProps) {\r\n if (standardPropMap[propName] === true) {\r\n this[propName] = rawProps[propName];\r\n }\r\n else if (standardPropMap[propName] === false) {\r\n manualProps[propName] = rawProps[propName];\r\n }\r\n else {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n this.applyMiscProps(miscProps);\r\n return this.applyManualStandardProps(manualProps);\r\n };\r\n /*\r\n If subclasses override, they must call this supermethod and return the boolean response.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyManualStandardProps = function (rawProps) {\r\n return true;\r\n };\r\n /*\r\n Can be called even after initial object creation.\r\n */\r\n ParsableModelMixin.prototype.applyMiscProps = function (rawProps) {\r\n // subclasses can implement\r\n };\r\n /*\r\n TODO: why is this a method when defineStandardProps is static\r\n */\r\n ParsableModelMixin.prototype.isStandardProp = function (propName) {\r\n return propName in this.standardPropMap;\r\n };\r\n return ParsableModelMixin;\r\n}(Mixin_1.default));\r\nexports.default = ParsableModelMixin;\r\nParsableModelMixin.prototype.standardPropMap = {}; // will be cloned by defineStandardProps\r\n\r\n\r\n/***/ }),\r\n/* 209 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventInstance = /** @class */ (function () {\r\n function EventInstance(def, dateProfile) {\r\n this.def = def;\r\n this.dateProfile = dateProfile;\r\n }\r\n EventInstance.prototype.toLegacy = function () {\r\n var dateProfile = this.dateProfile;\r\n var obj = this.def.toLegacy();\r\n obj.start = dateProfile.start.clone();\r\n obj.end = dateProfile.end ? dateProfile.end.clone() : null;\r\n return obj;\r\n };\r\n return EventInstance;\r\n}());\r\nexports.default = EventInstance;\r\n\r\n\r\n/***/ }),\r\n/* 210 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventInstance_1 = __webpack_require__(209);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar RecurringEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(RecurringEventDef, _super);\r\n function RecurringEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RecurringEventDef.prototype.isAllDay = function () {\r\n return !this.startTime && !this.endTime;\r\n };\r\n RecurringEventDef.prototype.buildInstances = function (unzonedRange) {\r\n var calendar = this.source.calendar;\r\n var unzonedDate = unzonedRange.getStart();\r\n var unzonedEnd = unzonedRange.getEnd();\r\n var zonedDayStart;\r\n var instanceStart;\r\n var instanceEnd;\r\n var instances = [];\r\n while (unzonedDate.isBefore(unzonedEnd)) {\r\n // if everyday, or this particular day-of-week\r\n if (!this.dowHash || this.dowHash[unzonedDate.day()]) {\r\n zonedDayStart = calendar.applyTimezone(unzonedDate);\r\n instanceStart = zonedDayStart.clone();\r\n instanceEnd = null;\r\n if (this.startTime) {\r\n instanceStart.time(this.startTime);\r\n }\r\n else {\r\n instanceStart.stripTime();\r\n }\r\n if (this.endTime) {\r\n instanceEnd = zonedDayStart.clone().time(this.endTime);\r\n }\r\n instances.push(new EventInstance_1.default(this, // definition\r\n new EventDateProfile_1.default(instanceStart, instanceEnd, calendar)));\r\n }\r\n unzonedDate.add(1, 'days');\r\n }\r\n return instances;\r\n };\r\n RecurringEventDef.prototype.setDow = function (dowNumbers) {\r\n if (!this.dowHash) {\r\n this.dowHash = {};\r\n }\r\n for (var i = 0; i < dowNumbers.length; i++) {\r\n this.dowHash[dowNumbers[i]] = true;\r\n }\r\n };\r\n RecurringEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n if (def.startTime) {\r\n def.startTime = moment.duration(this.startTime);\r\n }\r\n if (def.endTime) {\r\n def.endTime = moment.duration(this.endTime);\r\n }\r\n if (this.dowHash) {\r\n def.dowHash = $.extend({}, this.dowHash);\r\n }\r\n return def;\r\n };\r\n return RecurringEventDef;\r\n}(EventDef_1.default));\r\nexports.default = RecurringEventDef;\r\n/*\r\nHACK to work with TypeScript mixins\r\nNOTE: if super-method fails, should still attempt to apply\r\n*/\r\nRecurringEventDef.prototype.applyProps = function (rawProps) {\r\n var superSuccess = EventDef_1.default.prototype.applyProps.call(this, rawProps);\r\n if (rawProps.start) {\r\n this.startTime = moment.duration(rawProps.start);\r\n }\r\n if (rawProps.end) {\r\n this.endTime = moment.duration(rawProps.end);\r\n }\r\n if (rawProps.dow) {\r\n this.setDow(rawProps.dow);\r\n }\r\n return superSuccess;\r\n};\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nRecurringEventDef.defineStandardProps({\r\n start: false,\r\n end: false,\r\n dow: false\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 211 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange = /** @class */ (function () {\r\n function EventRange(unzonedRange, eventDef, eventInstance) {\r\n this.unzonedRange = unzonedRange;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n return EventRange;\r\n}());\r\nexports.default = EventRange;\r\n\r\n\r\n/***/ }),\r\n/* 212 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(35);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar RecurringEventDef_1 = __webpack_require__(210);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar BUSINESS_HOUR_EVENT_DEFAULTS = {\r\n start: '09:00',\r\n end: '17:00',\r\n dow: [1, 2, 3, 4, 5],\r\n rendering: 'inverse-background'\r\n // classNames are defined in businessHoursSegClasses\r\n};\r\nvar BusinessHourGenerator = /** @class */ (function () {\r\n function BusinessHourGenerator(rawComplexDef, calendar) {\r\n this.rawComplexDef = rawComplexDef;\r\n this.calendar = calendar;\r\n }\r\n BusinessHourGenerator.prototype.buildEventInstanceGroup = function (isAllDay, unzonedRange) {\r\n var eventDefs = this.buildEventDefs(isAllDay);\r\n var eventInstanceGroup;\r\n if (eventDefs.length) {\r\n eventInstanceGroup = new EventInstanceGroup_1.default(util_1.eventDefsToEventInstances(eventDefs, unzonedRange));\r\n // so that inverse-background rendering can happen even when no eventRanges in view\r\n eventInstanceGroup.explicitEventDef = eventDefs[0];\r\n return eventInstanceGroup;\r\n }\r\n };\r\n BusinessHourGenerator.prototype.buildEventDefs = function (isAllDay) {\r\n var rawComplexDef = this.rawComplexDef;\r\n var rawDefs = [];\r\n var requireDow = false;\r\n var i;\r\n var defs = [];\r\n if (rawComplexDef === true) {\r\n rawDefs = [{}]; // will get BUSINESS_HOUR_EVENT_DEFAULTS verbatim\r\n }\r\n else if ($.isPlainObject(rawComplexDef)) {\r\n rawDefs = [rawComplexDef];\r\n }\r\n else if ($.isArray(rawComplexDef)) {\r\n rawDefs = rawComplexDef;\r\n requireDow = true; // every sub-definition NEEDS a day-of-week\r\n }\r\n for (i = 0; i < rawDefs.length; i++) {\r\n if (!requireDow || rawDefs[i].dow) {\r\n defs.push(this.buildEventDef(isAllDay, rawDefs[i]));\r\n }\r\n }\r\n return defs;\r\n };\r\n BusinessHourGenerator.prototype.buildEventDef = function (isAllDay, rawDef) {\r\n var fullRawDef = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, rawDef);\r\n if (isAllDay) {\r\n fullRawDef.start = null;\r\n fullRawDef.end = null;\r\n }\r\n return RecurringEventDef_1.default.parse(fullRawDef, new EventSource_1.default(this.calendar) // dummy source\r\n );\r\n };\r\n return BusinessHourGenerator;\r\n}());\r\nexports.default = BusinessHourGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 213 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar StandardTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardTheme, _super);\r\n function StandardTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardTheme;\r\n}(Theme_1.default));\r\nexports.default = StandardTheme;\r\nStandardTheme.prototype.classes = {\r\n widget: 'fc-unthemed',\r\n widgetHeader: 'fc-widget-header',\r\n widgetContent: 'fc-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'fc-button',\r\n cornerLeft: 'fc-corner-left',\r\n cornerRight: 'fc-corner-right',\r\n stateDefault: 'fc-state-default',\r\n stateActive: 'fc-state-active',\r\n stateDisabled: 'fc-state-disabled',\r\n stateHover: 'fc-state-hover',\r\n stateDown: 'fc-state-down',\r\n popoverHeader: 'fc-widget-header',\r\n popoverContent: 'fc-widget-content',\r\n // day grid\r\n headerRow: 'fc-widget-header',\r\n dayRow: 'fc-widget-content',\r\n // list view\r\n listView: 'fc-widget-content'\r\n};\r\nStandardTheme.prototype.baseIconClass = 'fc-icon';\r\nStandardTheme.prototype.iconClasses = {\r\n close: 'fc-icon-x',\r\n prev: 'fc-icon-left-single-arrow',\r\n next: 'fc-icon-right-single-arrow',\r\n prevYear: 'fc-icon-left-double-arrow',\r\n nextYear: 'fc-icon-right-double-arrow'\r\n};\r\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\r\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\r\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\r\n\r\n\r\n/***/ }),\r\n/* 214 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar JqueryUiTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(JqueryUiTheme, _super);\r\n function JqueryUiTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return JqueryUiTheme;\r\n}(Theme_1.default));\r\nexports.default = JqueryUiTheme;\r\nJqueryUiTheme.prototype.classes = {\r\n widget: 'ui-widget',\r\n widgetHeader: 'ui-widget-header',\r\n widgetContent: 'ui-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'ui-button',\r\n cornerLeft: 'ui-corner-left',\r\n cornerRight: 'ui-corner-right',\r\n stateDefault: 'ui-state-default',\r\n stateActive: 'ui-state-active',\r\n stateDisabled: 'ui-state-disabled',\r\n stateHover: 'ui-state-hover',\r\n stateDown: 'ui-state-down',\r\n today: 'ui-state-highlight',\r\n popoverHeader: 'ui-widget-header',\r\n popoverContent: 'ui-widget-content',\r\n // day grid\r\n headerRow: 'ui-widget-header',\r\n dayRow: 'ui-widget-content',\r\n // list view\r\n listView: 'ui-widget-content'\r\n};\r\nJqueryUiTheme.prototype.baseIconClass = 'ui-icon';\r\nJqueryUiTheme.prototype.iconClasses = {\r\n close: 'ui-icon-closethick',\r\n prev: 'ui-icon-circle-triangle-w',\r\n next: 'ui-icon-circle-triangle-e',\r\n prevYear: 'ui-icon-seek-prev',\r\n nextYear: 'ui-icon-seek-next'\r\n};\r\nJqueryUiTheme.prototype.iconOverrideOption = 'themeButtonIcons';\r\nJqueryUiTheme.prototype.iconOverrideCustomButtonOption = 'themeIcon';\r\nJqueryUiTheme.prototype.iconOverridePrefix = 'ui-icon-';\r\n\r\n\r\n/***/ }),\r\n/* 215 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar FuncEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(FuncEventSource, _super);\r\n function FuncEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FuncEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isFunction(rawInput.events)) {\r\n rawProps = rawInput;\r\n }\r\n else if ($.isFunction(rawInput)) {\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n FuncEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.func.call(_this.calendar, start.clone(), end.clone(), timezone, function (rawEventDefs) {\r\n _this.calendar.popLoading();\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n });\r\n });\r\n };\r\n FuncEventSource.prototype.getPrimitive = function () {\r\n return this.func;\r\n };\r\n FuncEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.func = rawProps.events;\r\n return superSuccess;\r\n };\r\n return FuncEventSource;\r\n}(EventSource_1.default));\r\nexports.default = FuncEventSource;\r\nFuncEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 216 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar JsonFeedEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(JsonFeedEventSource, _super);\r\n function JsonFeedEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n JsonFeedEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if (typeof rawInput.url === 'string') {\r\n rawProps = rawInput;\r\n }\r\n else if (typeof rawInput === 'string') {\r\n rawProps = { url: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n JsonFeedEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n var ajaxSettings = this.ajaxSettings;\r\n var onSuccess = ajaxSettings.success;\r\n var onError = ajaxSettings.error;\r\n var requestParams = this.buildRequestParams(start, end, timezone);\r\n // todo: eventually handle the promise's then,\r\n // don't intercept success/error\r\n // tho will be a breaking API change\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve, onReject) {\r\n $.ajax($.extend({}, // destination\r\n JsonFeedEventSource.AJAX_DEFAULTS, ajaxSettings, {\r\n url: _this.url,\r\n data: requestParams,\r\n success: function (rawEventDefs, status, xhr) {\r\n var callbackRes;\r\n _this.calendar.popLoading();\r\n if (rawEventDefs) {\r\n callbackRes = util_1.applyAll(onSuccess, _this, [rawEventDefs, status, xhr]); // redirect `this`\r\n if ($.isArray(callbackRes)) {\r\n rawEventDefs = callbackRes;\r\n }\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n }\r\n else {\r\n onReject();\r\n }\r\n },\r\n error: function (xhr, statusText, errorThrown) {\r\n _this.calendar.popLoading();\r\n util_1.applyAll(onError, _this, [xhr, statusText, errorThrown]); // redirect `this`\r\n onReject();\r\n }\r\n }));\r\n });\r\n };\r\n JsonFeedEventSource.prototype.buildRequestParams = function (start, end, timezone) {\r\n var calendar = this.calendar;\r\n var ajaxSettings = this.ajaxSettings;\r\n var startParam;\r\n var endParam;\r\n var timezoneParam;\r\n var customRequestParams;\r\n var params = {};\r\n startParam = this.startParam;\r\n if (startParam == null) {\r\n startParam = calendar.opt('startParam');\r\n }\r\n endParam = this.endParam;\r\n if (endParam == null) {\r\n endParam = calendar.opt('endParam');\r\n }\r\n timezoneParam = this.timezoneParam;\r\n if (timezoneParam == null) {\r\n timezoneParam = calendar.opt('timezoneParam');\r\n }\r\n // retrieve any outbound GET/POST $.ajax data from the options\r\n if ($.isFunction(ajaxSettings.data)) {\r\n // supplied as a function that returns a key/value object\r\n customRequestParams = ajaxSettings.data();\r\n }\r\n else {\r\n // probably supplied as a straight key/value object\r\n customRequestParams = ajaxSettings.data || {};\r\n }\r\n $.extend(params, customRequestParams);\r\n/////////////// convert to UTC\r\n// params[startParam] = start.format();\r\n// params[endParam] = end.format();\r\n params[startParam] = start.toISOString();\r\n params[endParam] = end.toISOString();\r\n if (timezone && timezone !== 'local') {\r\n params[timezoneParam] = timezone;\r\n }\r\n return params;\r\n };\r\n JsonFeedEventSource.prototype.getPrimitive = function () {\r\n return this.url;\r\n };\r\n JsonFeedEventSource.prototype.applyMiscProps = function (rawProps) {\r\n this.ajaxSettings = rawProps;\r\n };\r\n JsonFeedEventSource.AJAX_DEFAULTS = {\r\n dataType: 'json',\r\n cache: false\r\n };\r\n return JsonFeedEventSource;\r\n}(EventSource_1.default));\r\nexports.default = JsonFeedEventSource;\r\nJsonFeedEventSource.defineStandardProps({\r\n // automatically transfer (true)...\r\n url: true,\r\n startParam: true,\r\n endParam: true,\r\n timezoneParam: true\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 217 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar TaskQueue = /** @class */ (function () {\r\n function TaskQueue() {\r\n this.q = [];\r\n this.isPaused = false;\r\n this.isRunning = false;\r\n }\r\n TaskQueue.prototype.queue = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this.q.push.apply(this.q, args); // append\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.pause = function () {\r\n this.isPaused = true;\r\n };\r\n TaskQueue.prototype.resume = function () {\r\n this.isPaused = false;\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.getIsIdle = function () {\r\n return !this.isRunning && !this.isPaused;\r\n };\r\n TaskQueue.prototype.tryStart = function () {\r\n if (!this.isRunning && this.canRunNext()) {\r\n this.isRunning = true;\r\n this.trigger('start');\r\n this.runRemaining();\r\n }\r\n };\r\n TaskQueue.prototype.canRunNext = function () {\r\n return !this.isPaused && this.q.length;\r\n };\r\n TaskQueue.prototype.runRemaining = function () {\r\n var _this = this;\r\n var task;\r\n var res;\r\n do {\r\n task = this.q.shift(); // always freshly reference q. might have been reassigned.\r\n res = this.runTask(task);\r\n if (res && res.then) {\r\n res.then(function () {\r\n if (_this.canRunNext()) {\r\n _this.runRemaining();\r\n }\r\n });\r\n return; // prevent marking as stopped\r\n }\r\n } while (this.canRunNext());\r\n this.trigger('stop'); // not really a 'stop' ... more of a 'drained'\r\n this.isRunning = false;\r\n // if 'stop' handler added more tasks.... TODO: write test for this\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.runTask = function (task) {\r\n return task(); // task *is* the function, but subclasses can change the format of a task\r\n };\r\n return TaskQueue;\r\n}());\r\nexports.default = TaskQueue;\r\nEmitterMixin_1.default.mixInto(TaskQueue);\r\n\r\n\r\n/***/ }),\r\n/* 218 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar TaskQueue_1 = __webpack_require__(217);\r\nvar RenderQueue = /** @class */ (function (_super) {\r\n tslib_1.__extends(RenderQueue, _super);\r\n function RenderQueue(waitsByNamespace) {\r\n var _this = _super.call(this) || this;\r\n _this.waitsByNamespace = waitsByNamespace || {};\r\n return _this;\r\n }\r\n RenderQueue.prototype.queue = function (taskFunc, namespace, type) {\r\n var task = {\r\n func: taskFunc,\r\n namespace: namespace,\r\n type: type\r\n };\r\n var waitMs;\r\n if (namespace) {\r\n waitMs = this.waitsByNamespace[namespace];\r\n }\r\n if (this.waitNamespace) {\r\n if (namespace === this.waitNamespace && waitMs != null) {\r\n this.delayWait(waitMs);\r\n }\r\n else {\r\n this.clearWait();\r\n this.tryStart();\r\n }\r\n }\r\n if (this.compoundTask(task)) {\r\n if (!this.waitNamespace && waitMs != null) {\r\n this.startWait(namespace, waitMs);\r\n }\r\n else {\r\n this.tryStart();\r\n }\r\n }\r\n };\r\n RenderQueue.prototype.startWait = function (namespace, waitMs) {\r\n this.waitNamespace = namespace;\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.delayWait = function (waitMs) {\r\n clearTimeout(this.waitId);\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.spawnWait = function (waitMs) {\r\n var _this = this;\r\n this.waitId = setTimeout(function () {\r\n _this.waitNamespace = null;\r\n _this.tryStart();\r\n }, waitMs);\r\n };\r\n RenderQueue.prototype.clearWait = function () {\r\n if (this.waitNamespace) {\r\n clearTimeout(this.waitId);\r\n this.waitId = null;\r\n this.waitNamespace = null;\r\n }\r\n };\r\n RenderQueue.prototype.canRunNext = function () {\r\n if (!_super.prototype.canRunNext.call(this)) {\r\n return false;\r\n }\r\n // waiting for a certain namespace to stop receiving tasks?\r\n if (this.waitNamespace) {\r\n var q = this.q;\r\n // if there was a different namespace task in the meantime,\r\n // that forces all previously-waiting tasks to suddenly execute.\r\n // TODO: find a way to do this in constant time.\r\n for (var i = 0; i < q.length; i++) {\r\n if (q[i].namespace !== this.waitNamespace) {\r\n return true; // allow execution\r\n }\r\n }\r\n return false;\r\n }\r\n return true;\r\n };\r\n RenderQueue.prototype.runTask = function (task) {\r\n task.func();\r\n };\r\n RenderQueue.prototype.compoundTask = function (newTask) {\r\n var q = this.q;\r\n var shouldAppend = true;\r\n var i;\r\n var task;\r\n if (newTask.namespace && newTask.type === 'destroy') {\r\n // remove all init/add/remove ops with same namespace, regardless of order\r\n for (i = q.length - 1; i >= 0; i--) {\r\n task = q[i];\r\n switch (task.type) {\r\n case 'init':\r\n shouldAppend = false;\r\n // the latest destroy is cancelled out by not doing the init\r\n /* falls through */\r\n case 'add':\r\n /* falls through */\r\n case 'remove':\r\n q.splice(i, 1); // remove task\r\n }\r\n }\r\n }\r\n if (shouldAppend) {\r\n q.push(newTask);\r\n }\r\n return shouldAppend;\r\n };\r\n return RenderQueue;\r\n}(TaskQueue_1.default));\r\nexports.default = RenderQueue;\r\n\r\n\r\n/***/ }),\r\n/* 219 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar date_formatting_1 = __webpack_require__(47);\r\nvar Component_1 = __webpack_require__(237);\r\nvar util_2 = __webpack_require__(35);\r\nvar DateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateComponent, _super);\r\n function DateComponent(_view, _options) {\r\n var _this = _super.call(this) || this;\r\n _this.isRTL = false; // frequently accessed options\r\n _this.hitsNeededDepth = 0; // necessary because multiple callers might need the same hits\r\n _this.hasAllDayBusinessHours = false; // TODO: unify with largeUnit and isTimeScale?\r\n _this.isDatesRendered = false;\r\n // hack to set options prior to the this.opt calls\r\n if (_view) {\r\n _this['view'] = _view;\r\n }\r\n if (_options) {\r\n _this['options'] = _options;\r\n }\r\n _this.uid = String(DateComponent.guid++);\r\n _this.childrenByUid = {};\r\n _this.nextDayThreshold = moment.duration(_this.opt('nextDayThreshold'));\r\n _this.isRTL = _this.opt('isRTL');\r\n if (_this.fillRendererClass) {\r\n _this.fillRenderer = new _this.fillRendererClass(_this);\r\n }\r\n if (_this.eventRendererClass) {\r\n _this.eventRenderer = new _this.eventRendererClass(_this, _this.fillRenderer);\r\n }\r\n if (_this.helperRendererClass && _this.eventRenderer) {\r\n _this.helperRenderer = new _this.helperRendererClass(_this, _this.eventRenderer);\r\n }\r\n if (_this.businessHourRendererClass && _this.fillRenderer) {\r\n _this.businessHourRenderer = new _this.businessHourRendererClass(_this, _this.fillRenderer);\r\n }\r\n return _this;\r\n }\r\n DateComponent.prototype.addChild = function (child) {\r\n if (!this.childrenByUid[child.uid]) {\r\n this.childrenByUid[child.uid] = child;\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateComponent.prototype.removeChild = function (child) {\r\n if (this.childrenByUid[child.uid]) {\r\n delete this.childrenByUid[child.uid];\r\n return true;\r\n }\r\n return false;\r\n };\r\n // TODO: only do if isInDom?\r\n // TODO: make part of Component, along with children/batch-render system?\r\n DateComponent.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n this.callChildren('updateSize', arguments);\r\n };\r\n // Options\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.opt = function (name) {\r\n return this._getView().opt(name); // default implementation\r\n };\r\n DateComponent.prototype.publiclyTrigger = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.publiclyTrigger.apply(calendar, args);\r\n };\r\n DateComponent.prototype.hasPublicHandlers = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.hasPublicHandlers.apply(calendar, args);\r\n };\r\n // Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeDateRender = function (dateProfile) {\r\n this.dateProfile = dateProfile; // for rendering\r\n this.renderDates(dateProfile);\r\n this.isDatesRendered = true;\r\n this.callChildren('executeDateRender', arguments);\r\n };\r\n DateComponent.prototype.executeDateUnrender = function () {\r\n this.callChildren('executeDateUnrender', arguments);\r\n this.dateProfile = null;\r\n this.unrenderDates();\r\n this.isDatesRendered = false;\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.renderDates = function (dateProfile) {\r\n // subclasses should implement\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.unrenderDates = function () {\r\n // subclasses should override\r\n };\r\n // Now-Indicator\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Returns a string unit, like 'second' or 'minute' that defined how often the current time indicator\r\n // should be refreshed. If something falsy is returned, no time indicator is rendered at all.\r\n DateComponent.prototype.getNowIndicatorUnit = function () {\r\n // subclasses should implement\r\n };\r\n // Renders a current time indicator at the given datetime\r\n DateComponent.prototype.renderNowIndicator = function (date) {\r\n this.callChildren('renderNowIndicator', arguments);\r\n };\r\n // Undoes the rendering actions from renderNowIndicator\r\n DateComponent.prototype.unrenderNowIndicator = function () {\r\n this.callChildren('unrenderNowIndicator', arguments);\r\n };\r\n // Business Hours\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.renderBusinessHours = function (businessHourGenerator) {\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.render(businessHourGenerator);\r\n }\r\n this.callChildren('renderBusinessHours', arguments);\r\n };\r\n // Unrenders previously-rendered business-hours\r\n DateComponent.prototype.unrenderBusinessHours = function () {\r\n this.callChildren('unrenderBusinessHours', arguments);\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.unrender();\r\n }\r\n };\r\n // Event Displaying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeEventRender = function (eventsPayload) {\r\n if (this.eventRenderer) {\r\n this.eventRenderer.rangeUpdated(); // poorly named now\r\n this.eventRenderer.render(eventsPayload);\r\n }\r\n else if (this['renderEvents']) {\r\n this['renderEvents'](convertEventsPayloadToLegacyArray(eventsPayload));\r\n }\r\n this.callChildren('executeEventRender', arguments);\r\n };\r\n DateComponent.prototype.executeEventUnrender = function () {\r\n this.callChildren('executeEventUnrender', arguments);\r\n if (this.eventRenderer) {\r\n this.eventRenderer.unrender();\r\n }\r\n else if (this['destroyEvents']) {\r\n this['destroyEvents']();\r\n }\r\n };\r\n DateComponent.prototype.getBusinessHourSegs = function () {\r\n var segs = this.getOwnBusinessHourSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getBusinessHourSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnBusinessHourSegs = function () {\r\n if (this.businessHourRenderer) {\r\n return this.businessHourRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n DateComponent.prototype.getEventSegs = function () {\r\n var segs = this.getOwnEventSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getEventSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnEventSegs = function () {\r\n if (this.eventRenderer) {\r\n return this.eventRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n // Event Rendering Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.triggerAfterEventsRendered = function () {\r\n this.triggerAfterEventSegsRendered(this.getEventSegs());\r\n this.publiclyTrigger('eventAfterAllRender', {\r\n context: this,\r\n args: [this]\r\n });\r\n };\r\n DateComponent.prototype.triggerAfterEventSegsRendered = function (segs) {\r\n var _this = this;\r\n // an optimization, because getEventLegacy is expensive\r\n if (this.hasPublicHandlers('eventAfterRender')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) {\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventAfterRender', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n DateComponent.prototype.triggerBeforeEventsDestroyed = function () {\r\n this.triggerBeforeEventSegsDestroyed(this.getEventSegs());\r\n };\r\n DateComponent.prototype.triggerBeforeEventSegsDestroyed = function (segs) {\r\n var _this = this;\r\n if (this.hasPublicHandlers('eventDestroy')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) {\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventDestroy', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n // Event Rendering Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Hides all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.showEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', '');\r\n }\r\n });\r\n this.callChildren('showEventsWithId', arguments);\r\n };\r\n // Shows all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.hideEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', 'hidden');\r\n }\r\n });\r\n this.callChildren('hideEventsWithId', arguments);\r\n };\r\n // Drag-n-Drop Rendering (for both events and external elements)\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of a event or external-element drag over the given drop zone.\r\n // If an external-element, seg will be `null`.\r\n // Must return elements used for any mock events.\r\n DateComponent.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var renderedHelper = false;\r\n this.iterChildren(function (child) {\r\n if (child.renderDrag(eventFootprints, seg, isTouch)) {\r\n renderedHelper = true;\r\n }\r\n });\r\n return renderedHelper;\r\n };\r\n // Unrenders a visual indication of an event or external-element being dragged.\r\n DateComponent.prototype.unrenderDrag = function () {\r\n this.callChildren('unrenderDrag', arguments);\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of an event being resized.\r\n DateComponent.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.callChildren('renderEventResize', arguments);\r\n };\r\n // Unrenders a visual indication of an event being resized.\r\n DateComponent.prototype.unrenderEventResize = function () {\r\n this.callChildren('unrenderEventResize', arguments);\r\n };\r\n // Selection\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of the selection\r\n // TODO: rename to `renderSelection` after legacy is gone\r\n DateComponent.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n this.renderHighlight(componentFootprint);\r\n this.callChildren('renderSelectionFootprint', arguments);\r\n };\r\n // Unrenders a visual indication of selection\r\n DateComponent.prototype.unrenderSelection = function () {\r\n this.unrenderHighlight();\r\n this.callChildren('unrenderSelection', arguments);\r\n };\r\n // Highlight\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders an emphasis on the given date range. Given a span (unzoned start/end and other misc data)\r\n DateComponent.prototype.renderHighlight = function (componentFootprint) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderFootprint('highlight', componentFootprint, {\r\n getClasses: function () {\r\n return ['fc-highlight'];\r\n }\r\n });\r\n }\r\n this.callChildren('renderHighlight', arguments);\r\n };\r\n // Unrenders the emphasis on a date range\r\n DateComponent.prototype.unrenderHighlight = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('highlight');\r\n }\r\n this.callChildren('unrenderHighlight', arguments);\r\n };\r\n // Hit Areas\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // just because all DateComponents support this interface\r\n // doesn't mean they need to have their own internal coord system. they can defer to sub-components.\r\n DateComponent.prototype.hitsNeeded = function () {\r\n if (!(this.hitsNeededDepth++)) {\r\n this.prepareHits();\r\n }\r\n this.callChildren('hitsNeeded', arguments);\r\n };\r\n DateComponent.prototype.hitsNotNeeded = function () {\r\n if (this.hitsNeededDepth && !(--this.hitsNeededDepth)) {\r\n this.releaseHits();\r\n }\r\n this.callChildren('hitsNotNeeded', arguments);\r\n };\r\n DateComponent.prototype.prepareHits = function () {\r\n // subclasses can implement\r\n };\r\n DateComponent.prototype.releaseHits = function () {\r\n // subclasses can implement\r\n };\r\n // Given coordinates from the topleft of the document, return data about the date-related area underneath.\r\n // Can return an object with arbitrary properties (although top/right/left/bottom are encouraged).\r\n // Must have a `grid` property, a reference to this current grid. TODO: avoid this\r\n // The returned object will be processed by getHitFootprint and getHitEl.\r\n DateComponent.prototype.queryHit = function (leftOffset, topOffset) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n var hit;\r\n for (uid in childrenByUid) {\r\n hit = childrenByUid[uid].queryHit(leftOffset, topOffset);\r\n if (hit) {\r\n break;\r\n }\r\n }\r\n return hit;\r\n };\r\n DateComponent.prototype.getSafeHitFootprint = function (hit) {\r\n var footprint = this.getHitFootprint(hit);\r\n if (!this.dateProfile.activeUnzonedRange.containsRange(footprint.unzonedRange)) {\r\n return null;\r\n }\r\n return footprint;\r\n };\r\n DateComponent.prototype.getHitFootprint = function (hit) {\r\n // what about being abstract!?\r\n };\r\n // Given position-level information about a date-related area within the grid,\r\n // should return a jQuery element that best represents it. passed to dayClick callback.\r\n DateComponent.prototype.getHitEl = function (hit) {\r\n // what about being abstract!?\r\n };\r\n /* Converting eventRange -> eventFootprint\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var eventFootprints = [];\r\n var i;\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// append\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n DateComponent.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_2.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /* Converting componentFootprint/eventFootprint -> segs\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventFootprintsToSegs = function (eventFootprints) {\r\n var segs = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n segs.push.apply(segs, this.eventFootprintToSegs(eventFootprints[i]));\r\n }\r\n return segs;\r\n };\r\n // Given an event's span (unzoned start/end and other misc data), and the event itself,\r\n // slices into segments and attaches event-derived properties to them.\r\n // eventSpan - { start, end, isStart, isEnd, otherthings... }\r\n DateComponent.prototype.eventFootprintToSegs = function (eventFootprint) {\r\n var unzonedRange = eventFootprint.componentFootprint.unzonedRange;\r\n var segs;\r\n var i;\r\n var seg;\r\n segs = this.componentFootprintToSegs(eventFootprint.componentFootprint);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (!unzonedRange.isStart) {\r\n seg.isStart = false;\r\n }\r\n if (!unzonedRange.isEnd) {\r\n seg.isEnd = false;\r\n }\r\n seg.footprint = eventFootprint;\r\n // TODO: rename to seg.eventFootprint\r\n }\r\n return segs;\r\n };\r\n DateComponent.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n return [];\r\n };\r\n // Utils\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.callChildren = function (methodName, args) {\r\n this.iterChildren(function (child) {\r\n child[methodName].apply(child, args);\r\n });\r\n };\r\n DateComponent.prototype.iterChildren = function (func) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n for (uid in childrenByUid) {\r\n func(childrenByUid[uid]);\r\n }\r\n };\r\n DateComponent.prototype._getCalendar = function () {\r\n var t = this;\r\n return t.calendar || t.view.calendar;\r\n };\r\n DateComponent.prototype._getView = function () {\r\n return this.view;\r\n };\r\n DateComponent.prototype._getDateProfile = function () {\r\n return this._getView().get('dateProfile');\r\n };\r\n // Generates HTML for an anchor to another view into the calendar.\r\n // Will either generate an
tag or a non-clickable tag, depending on enabled settings.\r\n // `gotoOptions` can either be a moment input, or an object with the form:\r\n // { date, type, forceOff }\r\n // `type` is a view-type like \"day\" or \"week\". default value is \"day\".\r\n // `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\r\n DateComponent.prototype.buildGotoAnchorHtml = function (gotoOptions, attrs, innerHtml) {\r\n var date;\r\n var type;\r\n var forceOff;\r\n var finalOptions;\r\n if ($.isPlainObject(gotoOptions)) {\r\n date = gotoOptions.date;\r\n type = gotoOptions.type;\r\n forceOff = gotoOptions.forceOff;\r\n }\r\n else {\r\n date = gotoOptions; // a single moment input\r\n }\r\n date = moment_ext_1.default(date); // if a string, parse it\r\n finalOptions = {\r\n date: date.format('YYYY-MM-DD'),\r\n type: type || 'day'\r\n };\r\n if (typeof attrs === 'string') {\r\n innerHtml = attrs;\r\n attrs = null;\r\n }\r\n attrs = attrs ? ' ' + util_1.attrsToStr(attrs) : ''; // will have a leading space\r\n innerHtml = innerHtml || '';\r\n if (!forceOff && this.opt('navLinks')) {\r\n return '' +\r\n innerHtml +\r\n '';\r\n }\r\n else {\r\n return '' +\r\n innerHtml +\r\n '';\r\n }\r\n };\r\n DateComponent.prototype.getAllDayHtml = function () {\r\n return this.opt('allDayHtml') || util_1.htmlEscape(this.opt('allDayText'));\r\n };\r\n // Computes HTML classNames for a single-day element\r\n DateComponent.prototype.getDayClasses = function (date, noThemeHighlight) {\r\n var view = this._getView();\r\n var classes = [];\r\n var today;\r\n if (!this.dateProfile.activeUnzonedRange.containsDate(date)) {\r\n classes.push('fc-disabled-day'); // TODO: jQuery UI theme?\r\n }\r\n else {\r\n classes.push('fc-' + util_1.dayIDs[date.day()]);\r\n if (view.isDateInOtherMonth(date, this.dateProfile)) {\r\n classes.push('fc-other-month');\r\n }\r\n today = view.calendar.getNow();\r\n if (date.isSame(today, 'day')) {\r\n classes.push('fc-today');\r\n if (noThemeHighlight !== true) {\r\n classes.push(view.calendar.theme.getClass('today'));\r\n }\r\n }\r\n else if (date < today) {\r\n classes.push('fc-past');\r\n }\r\n else {\r\n classes.push('fc-future');\r\n }\r\n }\r\n return classes;\r\n };\r\n // Utility for formatting a range. Accepts a range object, formatting string, and optional separator.\r\n // Displays all-day ranges naturally, with an inclusive end. Takes the current isRTL into account.\r\n // The timezones of the dates within `range` will be respected.\r\n DateComponent.prototype.formatRange = function (range, isAllDay, formatStr, separator) {\r\n var end = range.end;\r\n if (isAllDay) {\r\n end = end.clone().subtract(1); // convert to inclusive. last ms of previous day\r\n }\r\n return date_formatting_1.formatRange(range.start, end, formatStr, separator, this.isRTL);\r\n };\r\n // Compute the number of the give units in the \"current\" range.\r\n // Will return a floating-point number. Won't round.\r\n DateComponent.prototype.currentRangeAs = function (unit) {\r\n return this._getDateProfile().currentUnzonedRange.as(unit);\r\n };\r\n // Returns the date range of the full days the given range visually appears to occupy.\r\n // Returns a plain object with start/end, NOT an UnzonedRange!\r\n DateComponent.prototype.computeDayRange = function (unzonedRange) {\r\n var calendar = this._getCalendar();\r\n var startDay = calendar.msToUtcMoment(unzonedRange.startMs, true); // the beginning of the day the range starts\r\n var end = calendar.msToUtcMoment(unzonedRange.endMs);\r\n var endTimeMS = +end.time(); // # of milliseconds into `endDay`\r\n var endDay = end.clone().stripTime(); // the beginning of the day the range exclusively ends\r\n // If the end time is actually inclusively part of the next day and is equal to or\r\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\r\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\r\n if (endTimeMS && endTimeMS >= this.nextDayThreshold) {\r\n endDay.add(1, 'days');\r\n }\r\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\r\n if (endDay <= startDay) {\r\n endDay = startDay.clone().add(1, 'days');\r\n }\r\n return { start: startDay, end: endDay };\r\n };\r\n // Does the given range visually appear to occupy more than one day?\r\n DateComponent.prototype.isMultiDayRange = function (unzonedRange) {\r\n var dayRange = this.computeDayRange(unzonedRange);\r\n return dayRange.end.diff(dayRange.start, 'days') > 1;\r\n };\r\n DateComponent.guid = 0; // TODO: better system for this?\r\n return DateComponent;\r\n}(Component_1.default));\r\nexports.default = DateComponent;\r\n// legacy\r\nfunction convertEventsPayloadToLegacyArray(eventsPayload) {\r\n var eventDefId;\r\n var eventInstances;\r\n var legacyEvents = [];\r\n var i;\r\n for (eventDefId in eventsPayload) {\r\n eventInstances = eventsPayload[eventDefId].eventInstances;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n legacyEvents.push(eventInstances[i].toLegacy());\r\n }\r\n }\r\n return legacyEvents;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 220 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar Iterator_1 = __webpack_require__(238);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Toolbar_1 = __webpack_require__(239);\r\nvar OptionsManager_1 = __webpack_require__(240);\r\nvar ViewSpecManager_1 = __webpack_require__(241);\r\nvar Constraints_1 = __webpack_require__(207);\r\nvar locale_1 = __webpack_require__(31);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventManager_1 = __webpack_require__(242);\r\nvar BusinessHourGenerator_1 = __webpack_require__(212);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nvar Calendar = /** @class */ (function () {\r\n function Calendar(el, overrides) {\r\n this.loadingLevel = 0; // number of simultaneous loading tasks\r\n this.ignoreUpdateViewSize = 0;\r\n this.freezeContentHeightDepth = 0;\r\n // declare the current calendar instance relies on GlobalEmitter. needed for garbage collection.\r\n // unneeded() is called in destroy.\r\n GlobalEmitter_1.default.needed();\r\n this.el = el;\r\n this.viewsByType = {};\r\n this.optionsManager = new OptionsManager_1.default(this, overrides);\r\n this.viewSpecManager = new ViewSpecManager_1.default(this.optionsManager, this);\r\n this.initMomentInternals(); // needs to happen after options hash initialized\r\n this.initCurrentDate();\r\n this.initEventManager();\r\n this.constraints = new Constraints_1.default(this.eventManager, this);\r\n this.constructed();\r\n }\r\n Calendar.prototype.constructed = function () {\r\n // useful for monkeypatching. used?\r\n };\r\n Calendar.prototype.getView = function () {\r\n return this.view;\r\n };\r\n Calendar.prototype.publiclyTrigger = function (name, triggerInfo) {\r\n var optHandler = this.opt(name);\r\n var context;\r\n var args;\r\n if ($.isPlainObject(triggerInfo)) {\r\n context = triggerInfo.context;\r\n args = triggerInfo.args;\r\n }\r\n else if ($.isArray(triggerInfo)) {\r\n args = triggerInfo;\r\n }\r\n if (context == null) {\r\n context = this.el[0]; // fallback context\r\n }\r\n if (!args) {\r\n args = [];\r\n }\r\n this.triggerWith(name, context, args); // Emitter's method\r\n if (optHandler) {\r\n return optHandler.apply(context, args);\r\n }\r\n };\r\n Calendar.prototype.hasPublicHandlers = function (name) {\r\n return this.hasHandlers(name) ||\r\n this.opt(name); // handler specified in options\r\n };\r\n // Options Public API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // public getter/setter\r\n Calendar.prototype.option = function (name, value) {\r\n var newOptionHash;\r\n if (typeof name === 'string') {\r\n if (value === undefined) {\r\n return this.optionsManager.get(name);\r\n }\r\n else {\r\n newOptionHash = {};\r\n newOptionHash[name] = value;\r\n this.optionsManager.add(newOptionHash);\r\n }\r\n }\r\n else if (typeof name === 'object') {\r\n this.optionsManager.add(name);\r\n }\r\n };\r\n // private getter\r\n Calendar.prototype.opt = function (name) {\r\n return this.optionsManager.get(name);\r\n };\r\n // View\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Given a view name for a custom view or a standard view, creates a ready-to-go View object\r\n Calendar.prototype.instantiateView = function (viewType) {\r\n var spec = this.viewSpecManager.getViewSpec(viewType);\r\n if (!spec) {\r\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\r\n }\r\n return new spec['class'](this, spec);\r\n };\r\n // Returns a boolean about whether the view is okay to instantiate at some point\r\n Calendar.prototype.isValidViewType = function (viewType) {\r\n return Boolean(this.viewSpecManager.getViewSpec(viewType));\r\n };\r\n Calendar.prototype.changeView = function (viewName, dateOrRange) {\r\n if (dateOrRange) {\r\n if (dateOrRange.start && dateOrRange.end) {\r\n this.optionsManager.recordOverrides({\r\n visibleRange: dateOrRange\r\n });\r\n }\r\n else {\r\n this.currentDate = this.moment(dateOrRange).stripZone(); // just like gotoDate\r\n }\r\n }\r\n this.renderView(viewName);\r\n };\r\n // Forces navigation to a view for the given date.\r\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\r\n Calendar.prototype.zoomTo = function (newDate, viewType) {\r\n var spec;\r\n viewType = viewType || 'day'; // day is default zoom\r\n spec = this.viewSpecManager.getViewSpec(viewType) ||\r\n this.viewSpecManager.getUnitViewSpec(viewType);\r\n this.currentDate = newDate.clone();\r\n this.renderView(spec ? spec.type : null);\r\n };\r\n // Current Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initCurrentDate = function () {\r\n var defaultDateInput = this.opt('defaultDate');\r\n // compute the initial ambig-timezone date\r\n if (defaultDateInput != null) {\r\n this.currentDate = this.moment(defaultDateInput).stripZone();\r\n }\r\n else {\r\n this.currentDate = this.getNow(); // getNow already returns unzoned\r\n }\r\n };\r\n Calendar.prototype.prev = function () {\r\n var view = this.view;\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n if (prevInfo.isValid) {\r\n this.currentDate = prevInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.next = function () {\r\n var view = this.view;\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n if (nextInfo.isValid) {\r\n this.currentDate = nextInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.prevYear = function () {\r\n this.currentDate.add(-1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.nextYear = function () {\r\n this.currentDate.add(1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.today = function () {\r\n this.currentDate = this.getNow(); // should deny like prev/next?\r\n this.renderView();\r\n };\r\n Calendar.prototype.gotoDate = function (zonedDateInput) {\r\n this.currentDate = this.moment(zonedDateInput).stripZone();\r\n this.renderView();\r\n };\r\n Calendar.prototype.incrementDate = function (delta) {\r\n this.currentDate.add(moment.duration(delta));\r\n this.renderView();\r\n };\r\n // for external API\r\n Calendar.prototype.getDate = function () {\r\n return this.applyTimezone(this.currentDate); // infuse the calendar's timezone\r\n };\r\n // Loading Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Should be called when any type of async data fetching begins\r\n Calendar.prototype.pushLoading = function () {\r\n if (!(this.loadingLevel++)) {\r\n this.publiclyTrigger('loading', [true, this.view]);\r\n }\r\n };\r\n // Should be called when any type of async data fetching completes\r\n Calendar.prototype.popLoading = function () {\r\n if (!(--this.loadingLevel)) {\r\n this.publiclyTrigger('loading', [false, this.view]);\r\n }\r\n };\r\n // High-level Rendering\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.render = function () {\r\n if (!this.contentEl) {\r\n this.initialRender();\r\n }\r\n else if (this.elementVisible()) {\r\n // mainly for the public API\r\n this.calcSize();\r\n this.updateViewSize();\r\n }\r\n };\r\n Calendar.prototype.initialRender = function () {\r\n var _this = this;\r\n var el = this.el;\r\n el.addClass('fc');\r\n // event delegation for nav links\r\n el.on('click.fc', 'a[data-goto]', function (ev) {\r\n var anchorEl = $(ev.currentTarget);\r\n var gotoOptions = anchorEl.data('goto'); // will automatically parse JSON\r\n var date = _this.moment(gotoOptions.date);\r\n var viewType = gotoOptions.type;\r\n // property like \"navLinkDayClick\". might be a string or a function\r\n var customAction = _this.view.opt('navLink' + util_1.capitaliseFirstLetter(viewType) + 'Click');\r\n if (typeof customAction === 'function') {\r\n customAction(date, ev);\r\n }\r\n else {\r\n if (typeof customAction === 'string') {\r\n viewType = customAction;\r\n }\r\n _this.zoomTo(date, viewType);\r\n }\r\n });\r\n // called immediately, and upon option change\r\n this.optionsManager.watch('settingTheme', ['?theme', '?themeSystem'], function (opts) {\r\n var themeClass = ThemeRegistry_1.getThemeSystemClass(opts.themeSystem || opts.theme);\r\n var theme = new themeClass(_this.optionsManager);\r\n var widgetClass = theme.getClass('widget');\r\n _this.theme = theme;\r\n if (widgetClass) {\r\n el.addClass(widgetClass);\r\n }\r\n }, function () {\r\n var widgetClass = _this.theme.getClass('widget');\r\n _this.theme = null;\r\n if (widgetClass) {\r\n el.removeClass(widgetClass);\r\n }\r\n });\r\n this.optionsManager.watch('settingBusinessHourGenerator', ['?businessHours'], function (deps) {\r\n _this.businessHourGenerator = new BusinessHourGenerator_1.default(deps.businessHours, _this);\r\n if (_this.view) {\r\n _this.view.set('businessHourGenerator', _this.businessHourGenerator);\r\n }\r\n }, function () {\r\n _this.businessHourGenerator = null;\r\n });\r\n // called immediately, and upon option change.\r\n // HACK: locale often affects isRTL, so we explicitly listen to that too.\r\n this.optionsManager.watch('applyingDirClasses', ['?isRTL', '?locale'], function (opts) {\r\n el.toggleClass('fc-ltr', !opts.isRTL);\r\n el.toggleClass('fc-rtl', opts.isRTL);\r\n });\r\n this.contentEl = $(\"
\").prependTo(el);\r\n this.initToolbars();\r\n this.renderHeader();\r\n this.renderFooter();\r\n this.renderView(this.opt('defaultView'));\r\n if (this.opt('handleWindowResize')) {\r\n $(window).resize(this.windowResizeProxy = util_1.debounce(// prevents rapid calls\r\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\r\n }\r\n };\r\n Calendar.prototype.destroy = function () {\r\n if (this.view) {\r\n this.clearView();\r\n }\r\n this.toolbarsManager.proxyCall('removeElement');\r\n this.contentEl.remove();\r\n this.el.removeClass('fc fc-ltr fc-rtl');\r\n // removes theme-related root className\r\n this.optionsManager.unwatch('settingTheme');\r\n this.optionsManager.unwatch('settingBusinessHourGenerator');\r\n this.el.off('.fc'); // unbind nav link handlers\r\n if (this.windowResizeProxy) {\r\n $(window).unbind('resize', this.windowResizeProxy);\r\n this.windowResizeProxy = null;\r\n }\r\n GlobalEmitter_1.default.unneeded();\r\n };\r\n Calendar.prototype.elementVisible = function () {\r\n return this.el.is(':visible');\r\n };\r\n // Render Queue\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.bindViewHandlers = function (view) {\r\n var _this = this;\r\n view.watch('titleForCalendar', ['title'], function (deps) {\r\n if (view === _this.view) {\r\n _this.setToolbarsTitle(deps.title);\r\n }\r\n });\r\n view.watch('dateProfileForCalendar', ['dateProfile'], function (deps) {\r\n if (view === _this.view) {\r\n _this.currentDate = deps.dateProfile.date; // might have been constrained by view dates\r\n _this.updateToolbarButtons(deps.dateProfile);\r\n }\r\n });\r\n };\r\n Calendar.prototype.unbindViewHandlers = function (view) {\r\n view.unwatch('titleForCalendar');\r\n view.unwatch('dateProfileForCalendar');\r\n };\r\n // View Rendering\r\n // -----------------------------------------------------------------------------------\r\n // Renders a view because of a date change, view-type change, or for the first time.\r\n // If not given a viewType, keep the current view but render different dates.\r\n // Accepts an optional scroll state to restore to.\r\n Calendar.prototype.renderView = function (viewType) {\r\n var oldView = this.view;\r\n var newView;\r\n this.freezeContentHeight();\r\n if (oldView && viewType && oldView.type !== viewType) {\r\n this.clearView();\r\n }\r\n // if viewType changed, or the view was never created, create a fresh view\r\n if (!this.view && viewType) {\r\n newView = this.view =\r\n this.viewsByType[viewType] ||\r\n (this.viewsByType[viewType] = this.instantiateView(viewType));\r\n this.bindViewHandlers(newView);\r\n newView.startBatchRender(); // so that setElement+setDate rendering are joined\r\n newView.setElement($(\"
\").appendTo(this.contentEl));\r\n this.toolbarsManager.proxyCall('activateButton', viewType);\r\n }\r\n if (this.view) {\r\n // prevent unnecessary change firing\r\n if (this.view.get('businessHourGenerator') !== this.businessHourGenerator) {\r\n this.view.set('businessHourGenerator', this.businessHourGenerator);\r\n }\r\n this.view.setDate(this.currentDate);\r\n if (newView) {\r\n newView.stopBatchRender();\r\n }\r\n }\r\n this.thawContentHeight();\r\n };\r\n // Unrenders the current view and reflects this change in the Header.\r\n // Unregsiters the `view`, but does not remove from viewByType hash.\r\n Calendar.prototype.clearView = function () {\r\n var currentView = this.view;\r\n this.toolbarsManager.proxyCall('deactivateButton', currentView.type);\r\n this.unbindViewHandlers(currentView);\r\n currentView.removeElement();\r\n currentView.unsetDate(); // so bindViewHandlers doesn't fire with old values next time\r\n this.view = null;\r\n };\r\n // Destroys the view, including the view object. Then, re-instantiates it and renders it.\r\n // Maintains the same scroll state.\r\n // TODO: maintain any other user-manipulated state.\r\n Calendar.prototype.reinitView = function () {\r\n var oldView = this.view;\r\n var scroll = oldView.queryScroll(); // wouldn't be so complicated if Calendar owned the scroll\r\n this.freezeContentHeight();\r\n this.clearView();\r\n this.calcSize();\r\n this.renderView(oldView.type); // needs the type to freshly render\r\n this.view.applyScroll(scroll);\r\n this.thawContentHeight();\r\n };\r\n // Resizing\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.getSuggestedViewHeight = function () {\r\n if (this.suggestedViewHeight == null) {\r\n this.calcSize();\r\n }\r\n return this.suggestedViewHeight;\r\n };\r\n Calendar.prototype.isHeightAuto = function () {\r\n return this.opt('contentHeight') === 'auto' || this.opt('height') === 'auto';\r\n };\r\n Calendar.prototype.updateViewSize = function (isResize) {\r\n if (isResize === void 0) { isResize = false; }\r\n var view = this.view;\r\n var scroll;\r\n if (!this.ignoreUpdateViewSize && view) {\r\n if (isResize) {\r\n this.calcSize();\r\n scroll = view.queryScroll();\r\n }\r\n this.ignoreUpdateViewSize++;\r\n view.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), isResize);\r\n this.ignoreUpdateViewSize--;\r\n if (isResize) {\r\n view.applyScroll(scroll);\r\n }\r\n return true; // signal success\r\n }\r\n };\r\n Calendar.prototype.calcSize = function () {\r\n if (this.elementVisible()) {\r\n this._calcSize();\r\n }\r\n };\r\n Calendar.prototype._calcSize = function () {\r\n var contentHeightInput = this.opt('contentHeight');\r\n var heightInput = this.opt('height');\r\n if (typeof contentHeightInput === 'number') {\r\n this.suggestedViewHeight = contentHeightInput;\r\n }\r\n else if (typeof contentHeightInput === 'function') {\r\n this.suggestedViewHeight = contentHeightInput();\r\n }\r\n else if (typeof heightInput === 'number') {\r\n this.suggestedViewHeight = heightInput - this.queryToolbarsHeight();\r\n }\r\n else if (typeof heightInput === 'function') {\r\n this.suggestedViewHeight = heightInput() - this.queryToolbarsHeight();\r\n }\r\n else if (heightInput === 'parent') {\r\n this.suggestedViewHeight = this.el.parent().height() - this.queryToolbarsHeight();\r\n }\r\n else {\r\n this.suggestedViewHeight = Math.round(this.contentEl.width() /\r\n Math.max(this.opt('aspectRatio'), .5));\r\n }\r\n };\r\n Calendar.prototype.windowResize = function (ev) {\r\n if (\r\n // the purpose: so we don't process jqui \"resize\" events that have bubbled up\r\n // cast to any because .target, which is Element, can't be compared to window for some reason.\r\n ev.target === window &&\r\n this.view &&\r\n this.view.isDatesRendered) {\r\n if (this.updateViewSize(true)) {\r\n this.publiclyTrigger('windowResize', [this.view]);\r\n }\r\n }\r\n };\r\n /* Height \"Freezing\"\r\n -----------------------------------------------------------------------------*/\r\n Calendar.prototype.freezeContentHeight = function () {\r\n if (!(this.freezeContentHeightDepth++)) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n Calendar.prototype.forceFreezeContentHeight = function () {\r\n this.contentEl.css({\r\n width: '100%',\r\n height: this.contentEl.height(),\r\n overflow: 'hidden'\r\n });\r\n };\r\n Calendar.prototype.thawContentHeight = function () {\r\n this.freezeContentHeightDepth--;\r\n // always bring back to natural height\r\n this.contentEl.css({\r\n width: '',\r\n height: '',\r\n overflow: ''\r\n });\r\n // but if there are future thaws, re-freeze\r\n if (this.freezeContentHeightDepth) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n // Toolbar\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initToolbars = function () {\r\n this.header = new Toolbar_1.default(this, this.computeHeaderOptions());\r\n this.footer = new Toolbar_1.default(this, this.computeFooterOptions());\r\n this.toolbarsManager = new Iterator_1.default([this.header, this.footer]);\r\n };\r\n Calendar.prototype.computeHeaderOptions = function () {\r\n return {\r\n extraClasses: 'fc-header-toolbar',\r\n layout: this.opt('header')\r\n };\r\n };\r\n Calendar.prototype.computeFooterOptions = function () {\r\n return {\r\n extraClasses: 'fc-footer-toolbar',\r\n layout: this.opt('footer')\r\n };\r\n };\r\n // can be called repeatedly and Header will rerender\r\n Calendar.prototype.renderHeader = function () {\r\n var header = this.header;\r\n header.setToolbarOptions(this.computeHeaderOptions());\r\n header.render();\r\n if (header.el) {\r\n this.el.prepend(header.el);\r\n }\r\n };\r\n // can be called repeatedly and Footer will rerender\r\n Calendar.prototype.renderFooter = function () {\r\n var footer = this.footer;\r\n footer.setToolbarOptions(this.computeFooterOptions());\r\n footer.render();\r\n if (footer.el) {\r\n this.el.append(footer.el);\r\n }\r\n };\r\n Calendar.prototype.setToolbarsTitle = function (title) {\r\n this.toolbarsManager.proxyCall('updateTitle', title);\r\n };\r\n Calendar.prototype.updateToolbarButtons = function (dateProfile) {\r\n var now = this.getNow();\r\n var view = this.view;\r\n var todayInfo = view.dateProfileGenerator.build(now);\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n this.toolbarsManager.proxyCall((todayInfo.isValid && !dateProfile.currentUnzonedRange.containsDate(now)) ?\r\n 'enableButton' :\r\n 'disableButton', 'today');\r\n this.toolbarsManager.proxyCall(prevInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'prev');\r\n this.toolbarsManager.proxyCall(nextInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'next');\r\n };\r\n Calendar.prototype.queryToolbarsHeight = function () {\r\n return this.toolbarsManager.items.reduce(function (accumulator, toolbar) {\r\n var toolbarHeight = toolbar.el ? toolbar.el.outerHeight(true) : 0; // includes margin\r\n return accumulator + toolbarHeight;\r\n }, 0);\r\n };\r\n // Selection\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // this public method receives start/end dates in any format, with any timezone\r\n Calendar.prototype.select = function (zonedStartInput, zonedEndInput) {\r\n this.view.select(this.buildSelectFootprint.apply(this, arguments));\r\n };\r\n Calendar.prototype.unselect = function () {\r\n if (this.view) {\r\n this.view.unselect();\r\n }\r\n };\r\n // Given arguments to the select method in the API, returns a span (unzoned start/end and other info)\r\n Calendar.prototype.buildSelectFootprint = function (zonedStartInput, zonedEndInput) {\r\n var start = this.moment(zonedStartInput).stripZone();\r\n var end;\r\n if (zonedEndInput) {\r\n end = this.moment(zonedEndInput).stripZone();\r\n }\r\n else if (start.hasTime()) {\r\n end = start.clone().add(this.defaultTimedEventDuration);\r\n }\r\n else {\r\n end = start.clone().add(this.defaultAllDayEventDuration);\r\n }\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), !start.hasTime());\r\n };\r\n // Date Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initMomentInternals = function () {\r\n var _this = this;\r\n this.defaultAllDayEventDuration = moment.duration(this.opt('defaultAllDayEventDuration'));\r\n this.defaultTimedEventDuration = moment.duration(this.opt('defaultTimedEventDuration'));\r\n // Called immediately, and when any of the options change.\r\n // Happens before any internal objects rebuild or rerender, because this is very core.\r\n this.optionsManager.watch('buildingMomentLocale', [\r\n '?locale', '?monthNames', '?monthNamesShort', '?dayNames', '?dayNamesShort',\r\n '?firstDay', '?weekNumberCalculation'\r\n ], function (opts) {\r\n var weekNumberCalculation = opts.weekNumberCalculation;\r\n var firstDay = opts.firstDay;\r\n var _week;\r\n // normalize\r\n if (weekNumberCalculation === 'iso') {\r\n weekNumberCalculation = 'ISO'; // normalize\r\n }\r\n var localeData = Object.create(// make a cheap copy\r\n locale_1.getMomentLocaleData(opts.locale) // will fall back to en\r\n );\r\n if (opts.monthNames) {\r\n localeData._months = opts.monthNames;\r\n }\r\n if (opts.monthNamesShort) {\r\n localeData._monthsShort = opts.monthNamesShort;\r\n }\r\n if (opts.dayNames) {\r\n localeData._weekdays = opts.dayNames;\r\n }\r\n if (opts.dayNamesShort) {\r\n localeData._weekdaysShort = opts.dayNamesShort;\r\n }\r\n if (firstDay == null && weekNumberCalculation === 'ISO') {\r\n firstDay = 1;\r\n }\r\n if (firstDay != null) {\r\n _week = Object.create(localeData._week); // _week: { dow: # }\r\n _week.dow = firstDay;\r\n localeData._week = _week;\r\n }\r\n if (weekNumberCalculation === 'ISO' ||\r\n weekNumberCalculation === 'local' ||\r\n typeof weekNumberCalculation === 'function') {\r\n localeData._fullCalendar_weekCalc = weekNumberCalculation; // moment-ext will know what to do with it\r\n }\r\n _this.localeData = localeData;\r\n // If the internal current date object already exists, move to new locale.\r\n // We do NOT need to do this technique for event dates, because this happens when converting to \"segments\".\r\n if (_this.currentDate) {\r\n _this.localizeMoment(_this.currentDate); // sets to localeData\r\n }\r\n });\r\n };\r\n // Builds a moment using the settings of the current calendar: timezone and locale.\r\n // Accepts anything the vanilla moment() constructor accepts.\r\n Calendar.prototype.moment = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var mom;\r\n if (this.opt('timezone') === 'local') {\r\n mom = moment_ext_1.default.apply(null, args);\r\n // Force the moment to be local, because momentExt doesn't guarantee it.\r\n if (mom.hasTime()) {\r\n mom.local();\r\n }\r\n }\r\n else if (this.opt('timezone') === 'UTC') {\r\n mom = moment_ext_1.default.utc.apply(null, args); // process as UTC\r\n }\r\n else {\r\n mom = moment_ext_1.default.parseZone.apply(null, args); // let the input decide the zone\r\n }\r\n this.localizeMoment(mom); // TODO\r\n return mom;\r\n };\r\n Calendar.prototype.msToMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n else {\r\n mom = this.applyTimezone(mom); // may or may not apply locale\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n Calendar.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n // Updates the given moment's locale settings to the current calendar locale settings.\r\n Calendar.prototype.localizeMoment = function (mom) {\r\n mom._locale = this.localeData;\r\n };\r\n // Returns a boolean about whether or not the calendar knows how to calculate\r\n // the timezone offset of arbitrary dates in the current timezone.\r\n Calendar.prototype.getIsAmbigTimezone = function () {\r\n return this.opt('timezone') !== 'local' && this.opt('timezone') !== 'UTC';\r\n };\r\n // Returns a copy of the given date in the current timezone. Has no effect on dates without times.\r\n Calendar.prototype.applyTimezone = function (date) {\r\n if (!date.hasTime()) {\r\n return date.clone();\r\n }\r\n var zonedDate = this.moment(date.toArray());\r\n var timeAdjust = date.time().asMilliseconds() - zonedDate.time().asMilliseconds();\r\n var adjustedZonedDate;\r\n // Safari sometimes has problems with this coersion when near DST. Adjust if necessary. (bug #2396)\r\n if (timeAdjust) {\r\n adjustedZonedDate = zonedDate.clone().add(timeAdjust); // add milliseconds\r\n if (date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds() === 0) {\r\n zonedDate = adjustedZonedDate;\r\n }\r\n }\r\n return zonedDate;\r\n };\r\n /*\r\n Assumes the footprint is non-open-ended.\r\n */\r\n Calendar.prototype.footprintToDateProfile = function (componentFootprint, ignoreEnd) {\r\n if (ignoreEnd === void 0) { ignoreEnd = false; }\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs);\r\n var end;\r\n if (!ignoreEnd) {\r\n end = moment_ext_1.default.utc(componentFootprint.unzonedRange.endMs);\r\n }\r\n if (componentFootprint.isAllDay) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else {\r\n start = this.applyTimezone(start);\r\n if (end) {\r\n end = this.applyTimezone(end);\r\n }\r\n }\r\n return new EventDateProfile_1.default(start, end, this);\r\n };\r\n // Returns a moment for the current date, as defined by the client's computer or from the `now` option.\r\n // Will return an moment with an ambiguous timezone.\r\n Calendar.prototype.getNow = function () {\r\n var now = this.opt('now');\r\n if (typeof now === 'function') {\r\n now = now();\r\n }\r\n return this.moment(now).stripZone();\r\n };\r\n // Produces a human-readable string for the given duration.\r\n // Side-effect: changes the locale of the given duration.\r\n Calendar.prototype.humanizeDuration = function (duration) {\r\n return duration.locale(this.opt('locale')).humanize();\r\n };\r\n // will return `null` if invalid range\r\n Calendar.prototype.parseUnzonedRange = function (rangeInput) {\r\n var start = null;\r\n var end = null;\r\n if (rangeInput.start) {\r\n start = this.moment(rangeInput.start).stripZone();\r\n }\r\n if (rangeInput.end) {\r\n end = this.moment(rangeInput.end).stripZone();\r\n }\r\n if (!start && !end) {\r\n return null;\r\n }\r\n if (start && end && end.isBefore(start)) {\r\n return null;\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Event-Date Utilities\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initEventManager = function () {\r\n var _this = this;\r\n var eventManager = new EventManager_1.default(this);\r\n var rawSources = this.opt('eventSources') || [];\r\n var singleRawSource = this.opt('events');\r\n this.eventManager = eventManager;\r\n if (singleRawSource) {\r\n rawSources.unshift(singleRawSource);\r\n }\r\n eventManager.on('release', function (eventsPayload) {\r\n _this.trigger('eventsReset', eventsPayload);\r\n });\r\n eventManager.freeze();\r\n rawSources.forEach(function (rawSource) {\r\n var source = EventSourceParser_1.default.parse(rawSource, _this);\r\n if (source) {\r\n eventManager.addSource(source);\r\n }\r\n });\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.requestEvents = function (start, end) {\r\n return this.eventManager.requestEvents(start, end, this.opt('timezone'), !this.opt('lazyFetching'));\r\n };\r\n // Get an event's normalized end date. If not present, calculate it from the defaults.\r\n Calendar.prototype.getEventEnd = function (event) {\r\n if (event.end) {\r\n return event.end.clone();\r\n }\r\n else {\r\n return this.getDefaultEventEnd(event.allDay, event.start);\r\n }\r\n };\r\n // Given an event's allDay status and start date, return what its fallback end date should be.\r\n // TODO: rename to computeDefaultEventEnd\r\n Calendar.prototype.getDefaultEventEnd = function (allDay, zonedStart) {\r\n var end = zonedStart.clone();\r\n if (allDay) {\r\n end.stripTime().add(this.defaultAllDayEventDuration);\r\n }\r\n else {\r\n end.add(this.defaultTimedEventDuration);\r\n }\r\n if (this.getIsAmbigTimezone()) {\r\n end.stripZone(); // we don't know what the tzo should be\r\n }\r\n return end;\r\n };\r\n // Public Events API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.rerenderEvents = function () {\r\n this.view.flash('displayingEvents');\r\n };\r\n Calendar.prototype.refetchEvents = function () {\r\n this.eventManager.refetchAllSources();\r\n };\r\n Calendar.prototype.renderEvents = function (eventInputs, isSticky) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventInputs.length; i++) {\r\n this.renderEvent(eventInputs[i], isSticky);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.renderEvent = function (eventInput, isSticky) {\r\n if (isSticky === void 0) { isSticky = false; }\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, eventInput.source || eventManager.stickySource);\r\n if (eventDef) {\r\n eventManager.addEventDef(eventDef, isSticky);\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.removeEvents = function (legacyQuery) {\r\n var eventManager = this.eventManager;\r\n var legacyInstances = [];\r\n var idMap = {};\r\n var eventDef;\r\n var i;\r\n if (legacyQuery == null) {\r\n eventManager.removeAllEventDefs(); // persist=true\r\n }\r\n else {\r\n eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyInstances.push(eventInstance.toLegacy());\r\n });\r\n legacyInstances = filterLegacyEventInstances(legacyInstances, legacyQuery);\r\n // compute unique IDs\r\n for (i = 0; i < legacyInstances.length; i++) {\r\n eventDef = this.eventManager.getEventDefByUid(legacyInstances[i]._id);\r\n idMap[eventDef.id] = true;\r\n }\r\n eventManager.freeze();\r\n for (i in idMap) {\r\n eventManager.removeEventDefsById(i); // persist=true\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.clientEvents = function (legacyQuery) {\r\n var legacyEventInstances = [];\r\n this.eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyEventInstances.push(eventInstance.toLegacy());\r\n });\r\n return filterLegacyEventInstances(legacyEventInstances, legacyQuery);\r\n };\r\n Calendar.prototype.updateEvents = function (eventPropsArray) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventPropsArray.length; i++) {\r\n this.updateEvent(eventPropsArray[i]);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.updateEvent = function (eventProps) {\r\n var eventDef = this.eventManager.getEventDefByUid(eventProps._id);\r\n var eventInstance;\r\n var eventDefMutation;\r\n if (eventDef instanceof SingleEventDef_1.default) {\r\n eventInstance = eventDef.buildInstance();\r\n eventDefMutation = EventDefMutation_1.default.createFromRawProps(eventInstance, eventProps, // raw props\r\n null // largeUnit -- who uses it?\r\n );\r\n this.eventManager.mutateEventsWithId(eventDef.id, eventDefMutation); // will release\r\n }\r\n };\r\n // Public Event Sources API\r\n // ------------------------------------------------------------------------------------\r\n Calendar.prototype.getEventSources = function () {\r\n return this.eventManager.otherSources.slice(); // clone\r\n };\r\n Calendar.prototype.getEventSourceById = function (id) {\r\n return this.eventManager.getSourceById(EventSource_1.default.normalizeId(id));\r\n };\r\n Calendar.prototype.addEventSource = function (sourceInput) {\r\n var source = EventSourceParser_1.default.parse(sourceInput, this);\r\n if (source) {\r\n this.eventManager.addSource(source);\r\n }\r\n };\r\n Calendar.prototype.removeEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources;\r\n var i;\r\n if (sourceMultiQuery == null) {\r\n this.eventManager.removeAllSources();\r\n }\r\n else {\r\n sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n Calendar.prototype.removeEventSource = function (sourceQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.querySources(sourceQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.refetchEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.refetchSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n // not for internal use. use options module directly instead.\r\n Calendar.defaults = options_1.globalDefaults;\r\n Calendar.englishDefaults = options_1.englishDefaults;\r\n Calendar.rtlDefaults = options_1.rtlDefaults;\r\n return Calendar;\r\n}());\r\nexports.default = Calendar;\r\nEmitterMixin_1.default.mixInto(Calendar);\r\nListenerMixin_1.default.mixInto(Calendar);\r\nfunction filterLegacyEventInstances(legacyEventInstances, legacyQuery) {\r\n if (legacyQuery == null) {\r\n return legacyEventInstances;\r\n }\r\n else if ($.isFunction(legacyQuery)) {\r\n return legacyEventInstances.filter(legacyQuery);\r\n }\r\n else {\r\n legacyQuery += ''; // normalize to string\r\n return legacyEventInstances.filter(function (legacyEventInstance) {\r\n // soft comparison because id not be normalized to string\r\n // tslint:disable-next-line\r\n return legacyEventInstance.id == legacyQuery ||\r\n legacyEventInstance._id === legacyQuery; // can specify internal id, but must exactly match\r\n });\r\n }\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 221 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator = /** @class */ (function () {\r\n function DateProfileGenerator(_view) {\r\n this._view = _view;\r\n }\r\n DateProfileGenerator.prototype.opt = function (name) {\r\n return this._view.opt(name);\r\n };\r\n DateProfileGenerator.prototype.trimHiddenDays = function (unzonedRange) {\r\n return this._view.trimHiddenDays(unzonedRange);\r\n };\r\n DateProfileGenerator.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n return this._view.calendar.msToUtcMoment(ms, forceAllDay);\r\n };\r\n /* Date Range Computation\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\r\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile) {\r\n var prevDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .subtract(currentDateProfile.dateIncrement);\r\n return this.build(prevDate, -1);\r\n };\r\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\r\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile) {\r\n var nextDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .add(currentDateProfile.dateIncrement);\r\n return this.build(nextDate, 1);\r\n };\r\n // Builds a structure holding dates/ranges for rendering around the given date.\r\n // Optional direction param indicates whether the date is being incremented/decremented\r\n // from its previous value. decremented = -1, incremented = 1 (default).\r\n DateProfileGenerator.prototype.build = function (date, direction, forceToValid) {\r\n if (forceToValid === void 0) { forceToValid = false; }\r\n var isDateAllDay = !date.hasTime();\r\n var validUnzonedRange;\r\n var minTime = null;\r\n var maxTime = null;\r\n var currentInfo;\r\n var isRangeAllDay;\r\n var renderUnzonedRange;\r\n var activeUnzonedRange;\r\n var isValid;\r\n validUnzonedRange = this.buildValidRange();\r\n validUnzonedRange = this.trimHiddenDays(validUnzonedRange);\r\n if (forceToValid) {\r\n date = this.msToUtcMoment(validUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n currentInfo = this.buildCurrentRangeInfo(date, direction);\r\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\r\n renderUnzonedRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.unzonedRange), currentInfo.unit, isRangeAllDay);\r\n renderUnzonedRange = this.trimHiddenDays(renderUnzonedRange);\r\n activeUnzonedRange = renderUnzonedRange.clone();\r\n if (!this.opt('showNonCurrentDates')) {\r\n activeUnzonedRange = activeUnzonedRange.intersect(currentInfo.unzonedRange);\r\n }\r\n minTime = moment.duration(this.opt('minTime'));\r\n maxTime = moment.duration(this.opt('maxTime'));\r\n activeUnzonedRange = this.adjustActiveRange(activeUnzonedRange, minTime, maxTime);\r\n activeUnzonedRange = activeUnzonedRange.intersect(validUnzonedRange); // might return null\r\n if (activeUnzonedRange) {\r\n date = this.msToUtcMoment(activeUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n // it's invalid if the originally requested date is not contained,\r\n // or if the range is completely outside of the valid range.\r\n isValid = currentInfo.unzonedRange.intersectsWith(validUnzonedRange);\r\n return {\r\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\r\n // an object with optional start and end properties.\r\n validUnzonedRange: validUnzonedRange,\r\n // range the view is formally responsible for.\r\n // for example, a month view might have 1st-31st, excluding padded dates\r\n currentUnzonedRange: currentInfo.unzonedRange,\r\n // name of largest unit being displayed, like \"month\" or \"week\"\r\n currentRangeUnit: currentInfo.unit,\r\n isRangeAllDay: isRangeAllDay,\r\n // dates that display events and accept drag-n-drop\r\n // will be `null` if no dates accept events\r\n activeUnzonedRange: activeUnzonedRange,\r\n // date range with a rendered skeleton\r\n // includes not-active days that need some sort of DOM\r\n renderUnzonedRange: renderUnzonedRange,\r\n // Duration object that denotes the first visible time of any given day\r\n minTime: minTime,\r\n // Duration object that denotes the exclusive visible end time of any given day\r\n maxTime: maxTime,\r\n isValid: isValid,\r\n date: date,\r\n // how far the current date will move for a prev/next operation\r\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\r\n // pass a fallback (might be null) ^\r\n };\r\n };\r\n // Builds an object with optional start/end properties.\r\n // Indicates the minimum/maximum dates to display.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildValidRange = function () {\r\n return this._view.getUnzonedRangeOption('validRange', this._view.calendar.getNow()) ||\r\n new UnzonedRange_1.default(); // completely open-ended\r\n };\r\n // Builds a structure with info about the \"current\" range, the range that is\r\n // highlighted as being the current month for example.\r\n // See build() for a description of `direction`.\r\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\r\n var viewSpec = this._view.viewSpec;\r\n var duration = null;\r\n var unit = null;\r\n var unzonedRange = null;\r\n var dayCount;\r\n if (viewSpec.duration) {\r\n duration = viewSpec.duration;\r\n unit = viewSpec.durationUnit;\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n else if ((dayCount = this.opt('dayCount'))) {\r\n unit = 'day';\r\n unzonedRange = this.buildRangeFromDayCount(date, direction, dayCount);\r\n }\r\n else if ((unzonedRange = this.buildCustomVisibleRange(date))) {\r\n unit = util_1.computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd());\r\n }\r\n else {\r\n duration = this.getFallbackDuration();\r\n unit = util_1.computeGreatestUnit(duration);\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n return { duration: duration, unit: unit, unzonedRange: unzonedRange };\r\n };\r\n DateProfileGenerator.prototype.getFallbackDuration = function () {\r\n return moment.duration({ days: 1 });\r\n };\r\n // Returns a new activeUnzonedRange to have time values (un-ambiguate)\r\n // minTime or maxTime causes the range to expand.\r\n DateProfileGenerator.prototype.adjustActiveRange = function (unzonedRange, minTime, maxTime) {\r\n var start = unzonedRange.getStart();\r\n var end = unzonedRange.getEnd();\r\n if (this._view.usesMinMaxTime) {\r\n if (minTime < 0) {\r\n start.time(0).add(minTime);\r\n }\r\n if (maxTime > 24 * 60 * 60 * 1000) {\r\n end.time(maxTime - (24 * 60 * 60 * 1000));\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds the \"current\" range when it is specified as an explicit duration.\r\n // `unit` is the already-computed computeGreatestUnit value of duration.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\r\n var alignment = this.opt('dateAlignment');\r\n var dateIncrementInput;\r\n var dateIncrementDuration;\r\n var start;\r\n var end;\r\n var res;\r\n // compute what the alignment should be\r\n if (!alignment) {\r\n dateIncrementInput = this.opt('dateIncrement');\r\n if (dateIncrementInput) {\r\n dateIncrementDuration = moment.duration(dateIncrementInput);\r\n // use the smaller of the two units\r\n if (dateIncrementDuration < duration) {\r\n alignment = util_1.computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput);\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n // if the view displays a single day or smaller\r\n if (duration.as('days') <= 1) {\r\n if (this._view.isHiddenDay(start)) {\r\n start = this._view.skipHiddenDays(start, direction);\r\n start.startOf('day');\r\n }\r\n }\r\n function computeRes() {\r\n start = date.clone().startOf(alignment);\r\n end = start.clone().add(duration);\r\n res = new UnzonedRange_1.default(start, end);\r\n }\r\n computeRes();\r\n // if range is completely enveloped by hidden days, go past the hidden days\r\n if (!this.trimHiddenDays(res)) {\r\n date = this._view.skipHiddenDays(date, direction);\r\n computeRes();\r\n }\r\n return res;\r\n };\r\n // Builds the \"current\" range when a dayCount is specified.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\r\n var customAlignment = this.opt('dateAlignment');\r\n var runningCount = 0;\r\n var start = date.clone();\r\n var end;\r\n if (customAlignment) {\r\n start.startOf(customAlignment);\r\n }\r\n start.startOf('day');\r\n start = this._view.skipHiddenDays(start, direction);\r\n end = start.clone();\r\n do {\r\n end.add(1, 'day');\r\n if (!this._view.isHiddenDay(end)) {\r\n runningCount++;\r\n }\r\n } while (runningCount < dayCount);\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds a normalized range object for the \"visible\" range,\r\n // which is a way to define the currentUnzonedRange and activeUnzonedRange at the same time.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\r\n var visibleUnzonedRange = this._view.getUnzonedRangeOption('visibleRange', this._view.calendar.applyTimezone(date) // correct zone. also generates new obj that avoids mutations\r\n );\r\n if (visibleUnzonedRange && (visibleUnzonedRange.startMs == null || visibleUnzonedRange.endMs == null)) {\r\n return null;\r\n }\r\n return visibleUnzonedRange;\r\n };\r\n // Computes the range that will represent the element/cells for *rendering*,\r\n // but which may have voided days/times.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n return currentUnzonedRange.clone();\r\n };\r\n // Compute the duration value that should be added/substracted to the current date\r\n // when a prev/next operation happens.\r\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\r\n var dateIncrementInput = this.opt('dateIncrement');\r\n var customAlignment;\r\n if (dateIncrementInput) {\r\n return moment.duration(dateIncrementInput);\r\n }\r\n else if ((customAlignment = this.opt('dateAlignment'))) {\r\n return moment.duration(1, customAlignment);\r\n }\r\n else if (fallback) {\r\n return fallback;\r\n }\r\n else {\r\n return moment.duration({ days: 1 });\r\n }\r\n };\r\n return DateProfileGenerator;\r\n}());\r\nexports.default = DateProfileGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 222 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(16);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar ExternalDropping = /** @class */ (function (_super) {\r\n tslib_1.__extends(ExternalDropping, _super);\r\n function ExternalDropping() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isDragging = false; // jqui-dragging an external element? boolean\r\n return _this;\r\n }\r\n /*\r\n component impements:\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - isExternalInstanceGroupAllowed\r\n - renderDrag\r\n - unrenderDrag\r\n */\r\n ExternalDropping.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n ExternalDropping.prototype.bindToDocument = function () {\r\n this.listenTo($(document), {\r\n dragstart: this.handleDragStart,\r\n sortstart: this.handleDragStart // jqui\r\n });\r\n };\r\n ExternalDropping.prototype.unbindFromDocument = function () {\r\n this.stopListeningTo($(document));\r\n };\r\n // Called when a jQuery UI drag is initiated anywhere in the DOM\r\n ExternalDropping.prototype.handleDragStart = function (ev, ui) {\r\n var el;\r\n var accept;\r\n if (this.opt('droppable')) {\r\n el = $((ui ? ui.item : null) || ev.target);\r\n // Test that the dragged element passes the dropAccept selector or filter function.\r\n // FYI, the default is \"*\" (matches all)\r\n accept = this.opt('dropAccept');\r\n if ($.isFunction(accept) ? accept.call(el[0], el) : el.is(accept)) {\r\n if (!this.isDragging) {\r\n this.listenToExternalDrag(el, ev, ui);\r\n }\r\n }\r\n }\r\n };\r\n // Called when a jQuery UI drag starts and it needs to be monitored for dropping\r\n ExternalDropping.prototype.listenToExternalDrag = function (el, ev, ui) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var meta = getDraggedElMeta(el); // extra data about event drop, including possible event to create\r\n var singleEventDef; // a null value signals an unsuccessful drag\r\n // listener that tracks mouse movement over date-associated pixel regions\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n interactionStart: function () {\r\n _this.isDragging = true;\r\n },\r\n hitOver: function (hit) {\r\n var isAllowed = true;\r\n var hitFootprint = hit.component.getSafeHitFootprint(hit); // hit might not belong to this grid\r\n var mutatedEventInstanceGroup;\r\n if (hitFootprint) {\r\n singleEventDef = _this.computeExternalDrop(hitFootprint, meta);\r\n if (singleEventDef) {\r\n mutatedEventInstanceGroup = new EventInstanceGroup_1.default(singleEventDef.buildInstances());\r\n isAllowed = meta.eventProps ? // isEvent?\r\n component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup) :\r\n component.isExternalInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n singleEventDef = null;\r\n util_1.disableCursor();\r\n }\r\n if (singleEventDef) {\r\n component.renderDrag(// called without a seg parameter\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, view.calendar)));\r\n }\r\n },\r\n hitOut: function () {\r\n singleEventDef = null; // signal unsuccessful\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n component.unrenderDrag();\r\n },\r\n interactionEnd: function (ev) {\r\n if (singleEventDef) {\r\n view.reportExternalDrop(singleEventDef, Boolean(meta.eventProps), // isEvent\r\n Boolean(meta.stick), // isSticky\r\n el, ev, ui);\r\n }\r\n _this.isDragging = false;\r\n _this.dragListener = null;\r\n }\r\n });\r\n dragListener.startDrag(ev); // start listening immediately\r\n };\r\n // Given a hit to be dropped upon, and misc data associated with the jqui drag (guaranteed to be a plain object),\r\n // returns the zoned start/end dates for the event that would result from the hypothetical drop. end might be null.\r\n // Returning a null value signals an invalid drop hit.\r\n // DOES NOT consider overlap/constraint.\r\n // Assumes both footprints are non-open-ended.\r\n ExternalDropping.prototype.computeExternalDrop = function (componentFootprint, meta) {\r\n var calendar = this.view.calendar;\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs).stripZone();\r\n var end;\r\n var eventDef;\r\n if (componentFootprint.isAllDay) {\r\n // if dropped on an all-day span, and element's metadata specified a time, set it\r\n if (meta.startTime) {\r\n start.time(meta.startTime);\r\n }\r\n else {\r\n start.stripTime();\r\n }\r\n }\r\n if (meta.duration) {\r\n end = start.clone().add(meta.duration);\r\n }\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n eventDef = SingleEventDef_1.default.parse($.extend({}, meta.eventProps, {\r\n start: start,\r\n end: end\r\n }), new EventSource_1.default(calendar));\r\n return eventDef;\r\n };\r\n return ExternalDropping;\r\n}(Interaction_1.default));\r\nexports.default = ExternalDropping;\r\nListenerMixin_1.default.mixInto(ExternalDropping);\r\n/* External-Dragging-Element Data\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Require all HTML5 data-* attributes used by FullCalendar to have this prefix.\r\n// A value of '' will query attributes like data-event. A value of 'fc' will query attributes like data-fc-event.\r\nexportHooks.dataAttrPrefix = '';\r\n// Given a jQuery element that might represent a dragged FullCalendar event, returns an intermediate data structure\r\n// to be used for Event Object creation.\r\n// A defined `.eventProps`, even when empty, indicates that an event should be created.\r\nfunction getDraggedElMeta(el) {\r\n var prefix = exportHooks.dataAttrPrefix;\r\n var eventProps; // properties for creating the event, not related to date/time\r\n var startTime; // a Duration\r\n var duration;\r\n var stick;\r\n if (prefix) {\r\n prefix += '-';\r\n }\r\n eventProps = el.data(prefix + 'event') || null;\r\n if (eventProps) {\r\n if (typeof eventProps === 'object') {\r\n eventProps = $.extend({}, eventProps); // make a copy\r\n }\r\n else {\r\n eventProps = {};\r\n }\r\n // pluck special-cased date/time properties\r\n startTime = eventProps.start;\r\n if (startTime == null) {\r\n startTime = eventProps.time;\r\n } // accept 'time' as well\r\n duration = eventProps.duration;\r\n stick = eventProps.stick;\r\n delete eventProps.start;\r\n delete eventProps.time;\r\n delete eventProps.duration;\r\n delete eventProps.stick;\r\n }\r\n // fallback to standalone attribute values for each of the date/time properties\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'start');\r\n }\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'time');\r\n } // accept 'time' as well\r\n if (duration == null) {\r\n duration = el.data(prefix + 'duration');\r\n }\r\n if (stick == null) {\r\n stick = el.data(prefix + 'stick');\r\n }\r\n // massage into correct data types\r\n startTime = startTime != null ? moment.duration(startTime) : null;\r\n duration = duration != null ? moment.duration(duration) : null;\r\n stick = Boolean(stick);\r\n return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick };\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 223 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar EventResizing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventResizing, _super);\r\n /*\r\n component impements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - getSafeHitFootprint\r\n */\r\n function EventResizing(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isResizing = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventResizing.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventResizing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMouseDown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventResizing.prototype.handleMouseDown = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventResizing.prototype.handleTouchStart = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev);\r\n }\r\n };\r\n // Creates a listener that tracks the user as they resize an event segment.\r\n // Generic enough to work with any type of Grid.\r\n EventResizing.prototype.buildDragListener = function (seg, isStart) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance;\r\n var isDragging;\r\n var resizeMutation; // zoned event date properties. falsy if invalid resize\r\n // Tracks mouse movement over the *grid's* coordinate map\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n interactionStart: function () {\r\n isDragging = false;\r\n },\r\n dragStart: function (ev) {\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segResizeStart(seg, ev);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origHitFootprint = component.getSafeHitFootprint(origHit);\r\n var hitFootprint = component.getSafeHitFootprint(hit);\r\n var mutatedEventInstanceGroup;\r\n if (origHitFootprint && hitFootprint) {\r\n resizeMutation = isStart ?\r\n _this.computeEventStartResizeMutation(origHitFootprint, hitFootprint, seg.footprint) :\r\n _this.computeEventEndResizeMutation(origHitFootprint, hitFootprint, seg.footprint);\r\n if (resizeMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, resizeMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n resizeMutation = null;\r\n util_1.disableCursor();\r\n }\r\n else if (resizeMutation.isEmpty()) {\r\n // no change. (FYI, event dates might have zones)\r\n resizeMutation = null;\r\n }\r\n if (resizeMutation) {\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n view.renderEventResize(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg);\r\n }\r\n },\r\n hitOut: function () {\r\n resizeMutation = null;\r\n },\r\n hitDone: function () {\r\n view.unrenderEventResize(seg);\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n if (isDragging) {\r\n _this.segResizeStop(seg, ev);\r\n }\r\n if (resizeMutation) {\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventResize(eventInstance, resizeMutation, el, ev);\r\n }\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment resizing starts\r\n EventResizing.prototype.segResizeStart = function (seg, ev) {\r\n this.isResizing = true;\r\n this.component.publiclyTrigger('eventResizeStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment resizing stops\r\n EventResizing.prototype.segResizeStop = function (seg, ev) {\r\n this.isResizing = false;\r\n this.component.publiclyTrigger('eventResizeStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Returns new date-information for an event segment being resized from its start\r\n EventResizing.prototype.computeEventStartResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var startDelta = this.component.diffDates(endFootprint.unzonedRange.getStart(), startFootprint.unzonedRange.getStart());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getStart().add(startDelta) < origRange.getEnd()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setStartDelta(startDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n // Returns new date-information for an event segment being resized from its end\r\n EventResizing.prototype.computeEventEndResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var endDelta = this.component.diffDates(endFootprint.unzonedRange.getEnd(), startFootprint.unzonedRange.getEnd());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getEnd().add(endDelta) > origRange.getStart()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setEndDelta(endDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n return EventResizing;\r\n}(Interaction_1.default));\r\nexports.default = EventResizing;\r\n\r\n\r\n/***/ }),\r\n/* 224 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar DragListener_1 = __webpack_require__(54);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar MouseFollower_1 = __webpack_require__(244);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar EventDragging = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventDragging, _super);\r\n /*\r\n component implements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n */\r\n function EventDragging(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isDragging = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventDragging.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventDragging.prototype.getSelectionDelay = function () {\r\n var delay = this.opt('eventLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n EventDragging.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMousedown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventDragging.prototype.handleMousedown = function (seg, ev) {\r\n if (!this.component.shouldIgnoreMouse() &&\r\n this.component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventDragging.prototype.handleTouchStart = function (seg, ev) {\r\n var component = this.component;\r\n var settings = {\r\n delay: this.view.isEventDefSelected(seg.footprint.eventDef) ? // already selected?\r\n 0 : this.getSelectionDelay()\r\n };\r\n if (component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, settings);\r\n }\r\n else if (component.canStartSelection(seg, ev)) {\r\n this.buildSelectListener(seg).startInteraction(ev, settings);\r\n }\r\n };\r\n // seg isn't draggable, but let's use a generic DragListener\r\n // simply for the delay, so it can be selected.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildSelectListener = function (seg) {\r\n var _this = this;\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n var dragListener = this.dragListener = new DragListener_1.default({\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n },\r\n interactionEnd: function (ev) {\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Builds a listener that will track user-dragging on an event segment.\r\n // Generic enough to work with any type of Grid.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildDragListener = function (seg) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n var isDragging;\r\n var mouseFollower; // A clone of the original element that will move with the mouse\r\n var eventDefMutation;\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n // Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents\r\n // of the view.\r\n var dragListener = this.dragListener = new HitDragListener_1.default(view, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n subjectCenter: true,\r\n interactionStart: function (ev) {\r\n seg.component = component; // for renderDrag\r\n isDragging = false;\r\n mouseFollower = new MouseFollower_1.default(seg.el, {\r\n additionalClass: 'fc-dragging',\r\n parentEl: view.el,\r\n opacity: dragListener.isTouch ? null : _this.opt('dragOpacity'),\r\n revertDuration: _this.opt('dragRevertDuration'),\r\n zIndex: 2 // one above the .fc-view\r\n });\r\n mouseFollower.hide(); // don't show until we know this is a real drag\r\n mouseFollower.start(ev);\r\n },\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segDragStart(seg, ev);\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origFootprint;\r\n var footprint;\r\n var mutatedEventInstanceGroup;\r\n // starting hit could be forced (DayGrid.limit)\r\n if (seg.hit) {\r\n origHit = seg.hit;\r\n }\r\n // hit might not belong to this grid, so query origin grid\r\n origFootprint = origHit.component.getSafeHitFootprint(origHit);\r\n footprint = hit.component.getSafeHitFootprint(hit);\r\n if (origFootprint && footprint) {\r\n eventDefMutation = _this.computeEventDropMutation(origFootprint, footprint, eventDef);\r\n if (eventDefMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, eventDefMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n eventDefMutation = null;\r\n util_1.disableCursor();\r\n }\r\n // if a valid drop location, have the subclass render a visual indication\r\n if (eventDefMutation &&\r\n view.renderDrag(// truthy if rendered something\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg, dragListener.isTouch)) {\r\n mouseFollower.hide(); // if the subclass is already using a mock event \"helper\", hide our own\r\n }\r\n else {\r\n mouseFollower.show(); // otherwise, have the helper follow the mouse (no snapping)\r\n }\r\n if (isOrig) {\r\n // needs to have moved hits to be a valid drop\r\n eventDefMutation = null;\r\n }\r\n },\r\n hitOut: function () {\r\n view.unrenderDrag(seg); // unrender whatever was done in renderDrag\r\n mouseFollower.show(); // show in case we are moving out of all hits\r\n eventDefMutation = null;\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n delete seg.component; // prevent side effects\r\n // do revert animation if hasn't changed. calls a callback when finished (whether animation or not)\r\n mouseFollower.stop(!eventDefMutation, function () {\r\n if (isDragging) {\r\n view.unrenderDrag(seg);\r\n _this.segDragStop(seg, ev);\r\n }\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n if (eventDefMutation) {\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventDrop(eventInstance, eventDefMutation, el, ev);\r\n }\r\n });\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment dragging starts\r\n EventDragging.prototype.segDragStart = function (seg, ev) {\r\n this.isDragging = true;\r\n this.component.publiclyTrigger('eventDragStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment dragging stops\r\n EventDragging.prototype.segDragStop = function (seg, ev) {\r\n this.isDragging = false;\r\n this.component.publiclyTrigger('eventDragStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // DOES NOT consider overlap/constraint\r\n EventDragging.prototype.computeEventDropMutation = function (startFootprint, endFootprint, eventDef) {\r\n var eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(this.computeEventDateMutation(startFootprint, endFootprint));\r\n return eventDefMutation;\r\n };\r\n EventDragging.prototype.computeEventDateMutation = function (startFootprint, endFootprint) {\r\n var date0 = startFootprint.unzonedRange.getStart();\r\n var date1 = endFootprint.unzonedRange.getStart();\r\n var clearEnd = false;\r\n var forceTimed = false;\r\n var forceAllDay = false;\r\n var dateDelta;\r\n var dateMutation;\r\n if (startFootprint.isAllDay !== endFootprint.isAllDay) {\r\n clearEnd = true;\r\n if (endFootprint.isAllDay) {\r\n forceAllDay = true;\r\n date0.stripTime();\r\n }\r\n else {\r\n forceTimed = true;\r\n }\r\n }\r\n dateDelta = this.component.diffDates(date1, date0);\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.clearEnd = clearEnd;\r\n dateMutation.forceTimed = forceTimed;\r\n dateMutation.forceAllDay = forceAllDay;\r\n dateMutation.setDateDelta(dateDelta);\r\n return dateMutation;\r\n };\r\n return EventDragging;\r\n}(Interaction_1.default));\r\nexports.default = EventDragging;\r\n\r\n\r\n/***/ }),\r\n/* 225 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar DateSelecting = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateSelecting, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - renderHighlight\r\n - unrenderHighlight\r\n */\r\n function DateSelecting(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateSelecting.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateSelecting.prototype.getDelay = function () {\r\n var delay = this.opt('selectLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n DateSelecting.prototype.bindToEl = function (el) {\r\n var _this = this;\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev, {\r\n distance: _this.opt('selectMinDistance')\r\n });\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev, {\r\n delay: _this.getDelay()\r\n });\r\n }\r\n });\r\n util_1.preventSelection(el);\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day selecting.\r\n DateSelecting.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var selectionFootprint; // null if invalid selection\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n selectionFootprint = null;\r\n },\r\n dragStart: function (ev) {\r\n _this.view.unselect(ev); // since we could be rendering a new selection, we want to clear any old one\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var origHitFootprint;\r\n var hitFootprint;\r\n if (origHit) {\r\n origHitFootprint = component.getSafeHitFootprint(origHit);\r\n hitFootprint = component.getSafeHitFootprint(hit);\r\n if (origHitFootprint && hitFootprint) {\r\n selectionFootprint = _this.computeSelection(origHitFootprint, hitFootprint);\r\n }\r\n else {\r\n selectionFootprint = null;\r\n }\r\n if (selectionFootprint) {\r\n component.renderSelectionFootprint(selectionFootprint);\r\n }\r\n else if (selectionFootprint === false) {\r\n util_1.disableCursor();\r\n }\r\n }\r\n },\r\n hitOut: function () {\r\n selectionFootprint = null;\r\n component.unrenderSelection();\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n if (!isCancelled && selectionFootprint) {\r\n // the selection will already have been rendered. just report it\r\n _this.view.reportSelection(selectionFootprint, ev);\r\n }\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Given the first and last date-spans of a selection, returns another date-span object.\r\n // Subclasses can override and provide additional data in the span object. Will be passed to renderSelectionFootprint().\r\n // Will return false if the selection is invalid and this should be indicated to the user.\r\n // Will return null/undefined if a selection invalid but no error should be reported.\r\n DateSelecting.prototype.computeSelection = function (footprint0, footprint1) {\r\n var wholeFootprint = this.computeSelectionFootprint(footprint0, footprint1);\r\n if (wholeFootprint && !this.isSelectionFootprintAllowed(wholeFootprint)) {\r\n return false;\r\n }\r\n return wholeFootprint;\r\n };\r\n // Given two spans, must return the combination of the two.\r\n // TODO: do this separation of concerns (combining VS validation) for event dnd/resize too.\r\n // Assumes both footprints are non-open-ended.\r\n DateSelecting.prototype.computeSelectionFootprint = function (footprint0, footprint1) {\r\n var ms = [\r\n footprint0.unzonedRange.startMs,\r\n footprint0.unzonedRange.endMs,\r\n footprint1.unzonedRange.startMs,\r\n footprint1.unzonedRange.endMs\r\n ];\r\n ms.sort(util_1.compareNumbers);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(ms[0], ms[3]), footprint0.isAllDay);\r\n };\r\n DateSelecting.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n return this.component.dateProfile.validUnzonedRange.containsRange(componentFootprint.unzonedRange) &&\r\n this.view.calendar.constraints.isSelectionFootprintAllowed(componentFootprint);\r\n };\r\n return DateSelecting;\r\n}(Interaction_1.default));\r\nexports.default = DateSelecting;\r\n\r\n\r\n/***/ }),\r\n/* 226 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar View_1 = __webpack_require__(41);\r\nvar TimeGrid_1 = __webpack_require__(227);\r\nvar DayGrid_1 = __webpack_require__(61);\r\nvar AGENDA_ALL_DAY_EVENT_LIMIT = 5;\r\nvar agendaTimeGridMethods;\r\nvar agendaDayGridMethods;\r\n/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\r\n// Responsible for managing width/height.\r\nvar AgendaView = /** @class */ (function (_super) {\r\n tslib_1.__extends(AgendaView, _super);\r\n function AgendaView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\r\n _this.timeGrid = _this.instantiateTimeGrid();\r\n _this.addChild(_this.timeGrid);\r\n if (_this.opt('allDaySlot')) {\r\n _this.dayGrid = _this.instantiateDayGrid(); // the all-day subcomponent of this view\r\n _this.addChild(_this.dayGrid);\r\n }\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass\r\n AgendaView.prototype.instantiateTimeGrid = function () {\r\n var timeGrid = new this.timeGridClass(this);\r\n util_1.copyOwnProps(agendaTimeGridMethods, timeGrid);\r\n return timeGrid;\r\n };\r\n // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass\r\n AgendaView.prototype.instantiateDayGrid = function () {\r\n var dayGrid = new this.dayGridClass(this);\r\n util_1.copyOwnProps(agendaDayGridMethods, dayGrid);\r\n return dayGrid;\r\n };\r\n /* Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.renderSkeleton = function () {\r\n var timeGridWrapEl;\r\n var timeGridEl;\r\n this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n timeGridWrapEl = this.scroller.el.addClass('fc-time-grid-container');\r\n timeGridEl = $('
').appendTo(timeGridWrapEl);\r\n this.el.find('.fc-body > tr > td').append(timeGridWrapEl);\r\n this.timeGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.timeGrid.setElement(timeGridEl);\r\n if (this.dayGrid) {\r\n this.dayGrid.setElement(this.el.find('.fc-day-grid'));\r\n // have the day-grid extend it's coordinate area over the
dividing the two grids\r\n this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight();\r\n }\r\n };\r\n AgendaView.prototype.unrenderSkeleton = function () {\r\n this.timeGrid.removeElement();\r\n if (this.dayGrid) {\r\n this.dayGrid.removeElement();\r\n }\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid and time-grid components will render inside containers defined by this HTML.\r\n AgendaView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '' +\r\n (this.opt('columnHeader') ?\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
 
' +\r\n (this.dayGrid ?\r\n '
' +\r\n '
' :\r\n '') +\r\n '
';\r\n };\r\n // Generates an HTML attribute string for setting the width of the axis, if it is known\r\n AgendaView.prototype.axisStyleAttr = function () {\r\n if (this.axisWidth != null) {\r\n return 'style=\"width:' + this.axisWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.getNowIndicatorUnit = function () {\r\n return this.timeGrid.getNowIndicatorUnit();\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Adjusts the vertical dimensions of the view to the specified values\r\n AgendaView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit;\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n // make all axis cells line up, and record the width so newly created axis cells will have it\r\n this.axisWidth = util_1.matchCellWidths(this.el.find('.fc-axis'));\r\n // hack to give the view some height prior to timeGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS timeGrid.\r\n if (!this.timeGrid.colEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n // set of fake row elements that must compensate when scroller has scrollbars\r\n var noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)');\r\n // reset all dimensions back to the original state\r\n this.timeGrid.bottomRuleEl.hide(); // .show() will be called later if this
is necessary\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n util_1.uncompensateScroll(noScrollRowEls);\r\n // limit number of events in the all-day area\r\n if (this.dayGrid) {\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n eventLimit = this.opt('eventLimit');\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\r\n }\r\n if (eventLimit) {\r\n this.dayGrid.limitRows(eventLimit);\r\n }\r\n }\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) {\r\n // make the all-day and header rows lines up\r\n util_1.compensateScroll(noScrollRowEls, scrollbarWidths);\r\n // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\r\n // and reapply the desired height to the scroller.\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n // if there's any space below the slats, show the horizontal rule.\r\n // this won't cause any new overflow, because lockOverflow already called.\r\n if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\r\n this.timeGrid.bottomRuleEl.show();\r\n }\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n AgendaView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes the initial pre-configured scroll state prior to allowing the user to change it\r\n AgendaView.prototype.computeInitialDateScroll = function () {\r\n var scrollTime = moment.duration(this.opt('scrollTime'));\r\n var top = this.timeGrid.computeTimeTop(scrollTime);\r\n // zoom can give weird floating-point values. rather scroll a little bit further\r\n top = Math.ceil(top);\r\n if (top) {\r\n top++; // to overcome top border that slots beyond the first have. looks better\r\n }\r\n return { top: top };\r\n };\r\n AgendaView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n AgendaView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n /* Hit Areas\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // forward all hit-related method calls to the grids (dayGrid might not be defined)\r\n AgendaView.prototype.getHitFootprint = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitFootprint(hit);\r\n };\r\n AgendaView.prototype.getHitEl = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitEl(hit);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.executeEventRender = function (eventsPayload) {\r\n var dayEventsPayload = {};\r\n var timedEventsPayload = {};\r\n var id;\r\n var eventInstanceGroup;\r\n // separate the events into all-day and timed\r\n for (id in eventsPayload) {\r\n eventInstanceGroup = eventsPayload[id];\r\n if (eventInstanceGroup.getEventDef().isAllDay()) {\r\n dayEventsPayload[id] = eventInstanceGroup;\r\n }\r\n else {\r\n timedEventsPayload[id] = eventInstanceGroup;\r\n }\r\n }\r\n this.timeGrid.executeEventRender(timedEventsPayload);\r\n if (this.dayGrid) {\r\n this.dayGrid.executeEventRender(dayEventsPayload);\r\n }\r\n };\r\n /* Dragging/Resizing Routing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n AgendaView.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n var renderedHelper = false;\r\n renderedHelper = this.timeGrid.renderDrag(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n renderedHelper = this.dayGrid.renderDrag(groups.allDay, seg, isTouch) || renderedHelper;\r\n }\r\n return renderedHelper;\r\n };\r\n AgendaView.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n this.timeGrid.renderEventResize(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n this.dayGrid.renderEventResize(groups.allDay, seg, isTouch);\r\n }\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection\r\n AgendaView.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (!componentFootprint.isAllDay) {\r\n this.timeGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n else if (this.dayGrid) {\r\n this.dayGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n };\r\n return AgendaView;\r\n}(View_1.default));\r\nexports.default = AgendaView;\r\nAgendaView.prototype.timeGridClass = TimeGrid_1.default;\r\nAgendaView.prototype.dayGridClass = DayGrid_1.default;\r\n// Will customize the rendering behavior of the AgendaView's timeGrid\r\nagendaTimeGridMethods = {\r\n // Generates the HTML that will go before the day-of week header cells\r\n renderHeadIntroHtml: function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var weekStart = calendar.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, true);\r\n var weekText;\r\n if (this.opt('weekNumbers')) {\r\n weekText = weekStart.format(this.opt('smallWeekFormat'));\r\n return '' +\r\n '' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt > 1 }, util_1.htmlEscape(weekText) // inner HTML\r\n ) +\r\n '';\r\n }\r\n else {\r\n return '';\r\n }\r\n },\r\n // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n }\r\n};\r\n// Will customize the rendering behavior of the AgendaView's dayGrid\r\nagendaDayGridMethods = {\r\n // Generates the HTML that goes before the all-day cells\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '' +\r\n '' +\r\n '' + // needed for matchCellWidths\r\n view.getAllDayHtml() +\r\n '' +\r\n '';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n }\r\n};\r\nfunction groupEventFootprintsByAllDay(eventFootprints) {\r\n var allDay = [];\r\n var timed = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventFootprints[i].componentFootprint.isAllDay) {\r\n allDay.push(eventFootprints[i]);\r\n }\r\n else {\r\n timed.push(eventFootprints[i]);\r\n }\r\n }\r\n return { allDay: allDay, timed: timed };\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 227 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nvar CoordCache_1 = __webpack_require__(53);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar TimeGridEventRenderer_1 = __webpack_require__(246);\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(247);\r\nvar TimeGridFillRenderer_1 = __webpack_require__(248);\r\n/* A component that renders one or more columns of vertical time slots\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// We mixin DayTable, even though there is only a single row of days\r\n// potential nice values for the slot-duration and interval-duration\r\n// from largest to smallest\r\nvar AGENDA_STOCK_SUB_DURATIONS = [\r\n { hours: 1 },\r\n { minutes: 30 },\r\n { minutes: 15 },\r\n { seconds: 30 },\r\n { seconds: 15 }\r\n];\r\nvar TimeGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGrid, _super);\r\n function TimeGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.processOptions();\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n TimeGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByTimes(componentFootprint.unzonedRange);\r\n var i;\r\n for (i = 0; i < segs.length; i++) {\r\n if (this.isRTL) {\r\n segs[i].col = this.daysPerRow - 1 - segs[i].dayIndex;\r\n }\r\n else {\r\n segs[i].col = segs[i].dayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Handling\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.sliceRangeByTimes = function (unzonedRange) {\r\n var segs = [];\r\n var segRange;\r\n var dayIndex;\r\n for (dayIndex = 0; dayIndex < this.daysPerRow; dayIndex++) {\r\n segRange = unzonedRange.intersect(this.dayRanges[dayIndex]);\r\n if (segRange) {\r\n segs.push({\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Parses various options into properties of this object\r\n TimeGrid.prototype.processOptions = function () {\r\n var slotDuration = this.opt('slotDuration');\r\n var snapDuration = this.opt('snapDuration');\r\n var input;\r\n slotDuration = moment.duration(slotDuration);\r\n snapDuration = snapDuration ? moment.duration(snapDuration) : slotDuration;\r\n this.slotDuration = slotDuration;\r\n this.snapDuration = snapDuration;\r\n this.snapsPerSlot = slotDuration / snapDuration; // TODO: ensure an integer multiple?\r\n // might be an array value (for TimelineView).\r\n // if so, getting the most granular entry (the last one probably).\r\n input = this.opt('slotLabelFormat');\r\n if ($.isArray(input)) {\r\n input = input[input.length - 1];\r\n }\r\n this.labelFormat = input ||\r\n this.opt('smallTimeFormat'); // the computed default\r\n input = this.opt('slotLabelInterval');\r\n this.labelInterval = input ?\r\n moment.duration(input) :\r\n this.computeLabelInterval(slotDuration);\r\n };\r\n // Computes an automatic value for slotLabelInterval\r\n TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\r\n var i;\r\n var labelInterval;\r\n var slotsPerLabel;\r\n // find the smallest stock label interval that results in more than one slots-per-label\r\n for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\r\n labelInterval = moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]);\r\n slotsPerLabel = util_1.divideDurationByDuration(labelInterval, slotDuration);\r\n if (util_1.isInt(slotsPerLabel) && slotsPerLabel > 1) {\r\n return labelInterval;\r\n }\r\n }\r\n return moment.duration(slotDuration); // fall back. clone\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderSlats();\r\n this.renderColumns();\r\n };\r\n TimeGrid.prototype.unrenderDates = function () {\r\n // this.unrenderSlats(); // don't need this because repeated .html() calls clear\r\n this.unrenderColumns();\r\n };\r\n TimeGrid.prototype.renderSkeleton = function () {\r\n var theme = this.view.calendar.theme;\r\n this.el.html('
' +\r\n '
' +\r\n '
');\r\n this.bottomRuleEl = this.el.find('hr');\r\n };\r\n TimeGrid.prototype.renderSlats = function () {\r\n var theme = this.view.calendar.theme;\r\n this.slatContainerEl = this.el.find('> .fc-slats')\r\n .html(// avoids needing ::unrenderSlats()\r\n '' +\r\n this.renderSlatRowHtml() +\r\n '
');\r\n this.slatEls = this.slatContainerEl.find('tr');\r\n this.slatCoordCache = new CoordCache_1.default({\r\n els: this.slatEls,\r\n isVertical: true\r\n });\r\n };\r\n // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\r\n TimeGrid.prototype.renderSlatRowHtml = function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var isRTL = this.isRTL;\r\n var dateProfile = this.dateProfile;\r\n var html = '';\r\n var slotTime = moment.duration(+dateProfile.minTime); // wish there was .clone() for durations\r\n var slotIterator = moment.duration(0);\r\n var slotDate; // will be on the view's first day, but we only care about its time\r\n var isLabeled;\r\n var axisHtml;\r\n // Calculate the time for each slot\r\n while (slotTime < dateProfile.maxTime) {\r\n slotDate = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs).time(slotTime);\r\n isLabeled = util_1.isInt(util_1.divideDurationByDuration(slotIterator, this.labelInterval));\r\n axisHtml =\r\n '' +\r\n (isLabeled ?\r\n '' + // for matchCellWidths\r\n util_1.htmlEscape(slotDate.format(this.labelFormat)) +\r\n '' :\r\n '') +\r\n '';\r\n html +=\r\n '' +\r\n (!isRTL ? axisHtml : '') +\r\n '' +\r\n (isRTL ? axisHtml : '') +\r\n '';\r\n slotTime.add(this.slotDuration);\r\n slotIterator.add(this.slotDuration);\r\n }\r\n return html;\r\n };\r\n TimeGrid.prototype.renderColumns = function () {\r\n var dateProfile = this.dateProfile;\r\n var theme = this.view.calendar.theme;\r\n this.dayRanges = this.dayDates.map(function (dayDate) {\r\n return new UnzonedRange_1.default(dayDate.clone().add(dateProfile.minTime), dayDate.clone().add(dateProfile.maxTime));\r\n });\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n this.el.find('> .fc-bg').html('' +\r\n this.renderBgTrHtml(0) + // row=0\r\n '
');\r\n this.colEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.colEls,\r\n isHorizontal: true\r\n });\r\n this.renderContentSkeleton();\r\n };\r\n TimeGrid.prototype.unrenderColumns = function () {\r\n this.unrenderContentSkeleton();\r\n };\r\n /* Content Skeleton\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders the DOM that the view's content will live in\r\n TimeGrid.prototype.renderContentSkeleton = function () {\r\n var cellHtml = '';\r\n var i;\r\n var skeletonEl;\r\n for (i = 0; i < this.colCnt; i++) {\r\n cellHtml +=\r\n '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '';\r\n }\r\n skeletonEl = this.contentSkeletonEl = $('
' +\r\n '' +\r\n '' + cellHtml + '' +\r\n '
' +\r\n '
');\r\n this.colContainerEls = skeletonEl.find('.fc-content-col');\r\n this.helperContainerEls = skeletonEl.find('.fc-helper-container');\r\n this.fgContainerEls = skeletonEl.find('.fc-event-container:not(.fc-helper-container)');\r\n this.bgContainerEls = skeletonEl.find('.fc-bgevent-container');\r\n this.highlightContainerEls = skeletonEl.find('.fc-highlight-container');\r\n this.businessContainerEls = skeletonEl.find('.fc-business-container');\r\n this.bookendCells(skeletonEl.find('tr')); // TODO: do this on string level\r\n this.el.append(skeletonEl);\r\n };\r\n TimeGrid.prototype.unrenderContentSkeleton = function () {\r\n if (this.contentSkeletonEl) {\r\n this.contentSkeletonEl.remove();\r\n this.contentSkeletonEl = null;\r\n this.colContainerEls = null;\r\n this.helperContainerEls = null;\r\n this.fgContainerEls = null;\r\n this.bgContainerEls = null;\r\n this.highlightContainerEls = null;\r\n this.businessContainerEls = null;\r\n }\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\r\n TimeGrid.prototype.groupSegsByCol = function (segs) {\r\n var segsByCol = [];\r\n var i;\r\n for (i = 0; i < this.colCnt; i++) {\r\n segsByCol.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segsByCol[segs[i].col].push(segs[i]);\r\n }\r\n return segsByCol;\r\n };\r\n // Given segments grouped by column, insert the segments' elements into a parallel array of container\r\n // elements, each living within a column.\r\n TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\r\n var col;\r\n var segs;\r\n var i;\r\n for (col = 0; col < this.colCnt; col++) {\r\n segs = segsByCol[col];\r\n for (i = 0; i < segs.length; i++) {\r\n containerEls.eq(col).append(segs[i].el);\r\n }\r\n }\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.getNowIndicatorUnit = function () {\r\n return 'minute'; // will refresh on the minute\r\n };\r\n TimeGrid.prototype.renderNowIndicator = function (date) {\r\n // HACK: if date columns not ready for some reason (scheduler)\r\n if (!this.colContainerEls) {\r\n return;\r\n }\r\n // seg system might be overkill, but it handles scenario where line needs to be rendered\r\n // more than once because of columns with the same date (resources columns for example)\r\n var segs = this.componentFootprintToSegs(new ComponentFootprint_1.default(new UnzonedRange_1.default(date, date.valueOf() + 1), // protect against null range\r\n false // all-day\r\n ));\r\n var top = this.computeDateTop(date, date);\r\n var nodes = [];\r\n var i;\r\n // render lines within the columns\r\n for (i = 0; i < segs.length; i++) {\r\n nodes.push($('
')\r\n .css('top', top)\r\n .appendTo(this.colContainerEls.eq(segs[i].col))[0]);\r\n }\r\n // render an arrow over the axis\r\n if (segs.length > 0) {\r\n nodes.push($('
')\r\n .css('top', top)\r\n .appendTo(this.el.find('.fc-content-skeleton'))[0]);\r\n }\r\n this.nowIndicatorEls = $(nodes);\r\n };\r\n TimeGrid.prototype.unrenderNowIndicator = function () {\r\n if (this.nowIndicatorEls) {\r\n this.nowIndicatorEls.remove();\r\n this.nowIndicatorEls = null;\r\n }\r\n };\r\n /* Coordinates\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.slatCoordCache.build();\r\n if (isResize) {\r\n this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs || []));\r\n }\r\n };\r\n TimeGrid.prototype.getTotalSlatHeight = function () {\r\n return this.slatContainerEl.outerHeight();\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\r\n // `ms` can be a millisecond UTC time OR a UTC moment.\r\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\r\n TimeGrid.prototype.computeDateTop = function (ms, startOfDayDate) {\r\n return this.computeTimeTop(moment.duration(ms - startOfDayDate.clone().stripTime()));\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\r\n TimeGrid.prototype.computeTimeTop = function (time) {\r\n var len = this.slatEls.length;\r\n var dateProfile = this.dateProfile;\r\n var slatCoverage = (time - dateProfile.minTime) / this.slotDuration; // floating-point value of # of slots covered\r\n var slatIndex;\r\n var slatRemainder;\r\n // compute a floating-point number for how many slats should be progressed through.\r\n // from 0 to number of slats (inclusive)\r\n // constrained because minTime/maxTime might be customized.\r\n slatCoverage = Math.max(0, slatCoverage);\r\n slatCoverage = Math.min(len, slatCoverage);\r\n // an integer index of the furthest whole slat\r\n // from 0 to number slats (*exclusive*, so len-1)\r\n slatIndex = Math.floor(slatCoverage);\r\n slatIndex = Math.min(slatIndex, len - 1);\r\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\r\n // could be 1.0 if slatCoverage is covering *all* the slots\r\n slatRemainder = slatCoverage - slatIndex;\r\n return this.slatCoordCache.getTopPosition(slatIndex) +\r\n this.slatCoordCache.getHeight(slatIndex) * slatRemainder;\r\n };\r\n // Refreshes the CSS top/bottom coordinates for each segment element.\r\n // Works when called after initial render, after a window resize/zoom for example.\r\n TimeGrid.prototype.updateSegVerticals = function (segs) {\r\n this.computeSegVerticals(segs);\r\n this.assignSegVerticals(segs);\r\n };\r\n // For each segment in an array, computes and assigns its top and bottom properties\r\n TimeGrid.prototype.computeSegVerticals = function (segs) {\r\n var eventMinHeight = this.opt('agendaEventMinHeight');\r\n var i;\r\n var seg;\r\n var dayDate;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n dayDate = this.dayDates[seg.dayIndex];\r\n seg.top = this.computeDateTop(seg.startMs, dayDate);\r\n seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.endMs, dayDate));\r\n }\r\n };\r\n // Given segments that already have their top/bottom properties computed, applies those values to\r\n // the segments' elements.\r\n TimeGrid.prototype.assignSegVerticals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateSegVerticalCss(seg));\r\n }\r\n };\r\n // Generates an object with CSS properties for the top/bottom coordinates of a segment element\r\n TimeGrid.prototype.generateSegVerticalCss = function (seg) {\r\n return {\r\n top: seg.top,\r\n bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\r\n };\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.slatCoordCache.build();\r\n };\r\n TimeGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n // NOTE: don't clear slatCoordCache because we rely on it for computeTimeTop\r\n };\r\n TimeGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n var snapsPerSlot = this.snapsPerSlot;\r\n var colCoordCache = this.colCoordCache;\r\n var slatCoordCache = this.slatCoordCache;\r\n if (colCoordCache.isLeftInBounds(leftOffset) && slatCoordCache.isTopInBounds(topOffset)) {\r\n var colIndex = colCoordCache.getHorizontalIndex(leftOffset);\r\n var slatIndex = slatCoordCache.getVerticalIndex(topOffset);\r\n if (colIndex != null && slatIndex != null) {\r\n var slatTop = slatCoordCache.getTopOffset(slatIndex);\r\n var slatHeight = slatCoordCache.getHeight(slatIndex);\r\n var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1\r\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\r\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\r\n var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight;\r\n var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight;\r\n return {\r\n col: colIndex,\r\n snap: snapIndex,\r\n component: this,\r\n left: colCoordCache.getLeftOffset(colIndex),\r\n right: colCoordCache.getRightOffset(colIndex),\r\n top: snapTop,\r\n bottom: snapBottom\r\n };\r\n }\r\n }\r\n };\r\n TimeGrid.prototype.getHitFootprint = function (hit) {\r\n var start = this.getCellDate(0, hit.col); // row=0\r\n var time = this.computeSnapTime(hit.snap); // pass in the snap-index\r\n var end;\r\n start.time(time);\r\n end = start.clone().add(this.snapDuration);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), false // all-day?\r\n );\r\n };\r\n // Given a row number of the grid, representing a \"snap\", returns a time (Duration) from its start-of-day\r\n TimeGrid.prototype.computeSnapTime = function (snapIndex) {\r\n return moment.duration(this.dateProfile.minTime + this.snapDuration * snapIndex);\r\n };\r\n TimeGrid.prototype.getHitEl = function (hit) {\r\n return this.colEls.eq(hit.col);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being dragged over the specified date(s).\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n TimeGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n if (seg) {\r\n if (eventFootprints.length) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n // signal that a helper has been rendered\r\n return true;\r\n }\r\n }\r\n else {\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n }\r\n };\r\n // Unrenders any visual indication of an event being dragged\r\n TimeGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n TimeGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders any visual indication of an event being resized\r\n TimeGrid.prototype.unrenderEventResize = function () {\r\n this.helperRenderer.unrender();\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\r\n TimeGrid.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (this.opt('selectHelper')) {\r\n this.helperRenderer.renderComponentFootprint(componentFootprint);\r\n }\r\n else {\r\n this.renderHighlight(componentFootprint);\r\n }\r\n };\r\n // Unrenders any visual indication of a selection\r\n TimeGrid.prototype.unrenderSelection = function () {\r\n this.helperRenderer.unrender();\r\n this.unrenderHighlight();\r\n };\r\n return TimeGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = TimeGrid;\r\nTimeGrid.prototype.eventRendererClass = TimeGridEventRenderer_1.default;\r\nTimeGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nTimeGrid.prototype.helperRendererClass = TimeGridHelperRenderer_1.default;\r\nTimeGrid.prototype.fillRendererClass = TimeGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(TimeGrid);\r\nDayTableMixin_1.default.mixInto(TimeGrid);\r\n\r\n\r\n/***/ }),\r\n/* 228 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator_1 = __webpack_require__(221);\r\nvar BasicViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicViewDateProfileGenerator, _super);\r\n function BasicViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n BasicViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); // an UnzonedRange\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n // year and month views should be aligned with weeks. this is already done for week\r\n if (/^(year|month)$/.test(currentRangeUnit)) {\r\n start.startOf('week');\r\n // make end-of-week if not already\r\n if (end.weekday()) {\r\n end.add(1, 'week').startOf('week'); // exclusively move backwards\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return BasicViewDateProfileGenerator;\r\n}(DateProfileGenerator_1.default));\r\nexports.default = BasicViewDateProfileGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 229 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar BasicView_1 = __webpack_require__(62);\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(253);\r\n/* A month view with day cells running in rows (one-per-week) and columns\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MonthView = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthView, _super);\r\n function MonthView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Overrides the default BasicView behavior to have special multi-week auto-height logic\r\n MonthView.prototype.setGridHeight = function (height, isAuto) {\r\n // if auto, make the height of each row the height that it would be if there were 6 weeks\r\n if (isAuto) {\r\n height *= this.dayGrid.rowCnt / 6;\r\n }\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\r\n };\r\n MonthView.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return date.month() !== moment.utc(dateProfile.currentUnzonedRange.startMs).month(); // TODO: optimize\r\n };\r\n return MonthView;\r\n}(BasicView_1.default));\r\nexports.default = MonthView;\r\nMonthView.prototype.dateProfileGeneratorClass = MonthViewDateProfileGenerator_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 230 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar View_1 = __webpack_require__(41);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar ListEventRenderer_1 = __webpack_require__(254);\r\nvar ListEventPointing_1 = __webpack_require__(255);\r\n/*\r\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\r\n*/\r\nvar ListView = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListView, _super);\r\n function ListView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.segSelector = '.fc-list-item'; // which elements accept event actions\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n ListView.prototype.renderSkeleton = function () {\r\n this.el.addClass('fc-list-view ' +\r\n this.calendar.theme.getClass('listView'));\r\n this.scroller.render();\r\n this.scroller.el.appendTo(this.el);\r\n this.contentEl = this.scroller.scrollEl; // shortcut\r\n };\r\n ListView.prototype.unrenderSkeleton = function () {\r\n this.scroller.destroy(); // will remove the Grid too\r\n };\r\n ListView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n if (!isAuto) {\r\n this.scroller.setHeight(this.computeScrollerHeight(totalHeight));\r\n }\r\n };\r\n ListView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n ListView.prototype.renderDates = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var dayStart = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs, true);\r\n var viewEnd = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.endMs, true);\r\n var dayDates = [];\r\n var dayRanges = [];\r\n while (dayStart < viewEnd) {\r\n dayDates.push(dayStart.clone());\r\n dayRanges.push(new UnzonedRange_1.default(dayStart, dayStart.clone().add(1, 'day')));\r\n dayStart.add(1, 'day');\r\n }\r\n this.dayDates = dayDates;\r\n this.dayRanges = dayRanges;\r\n // all real rendering happens in EventRenderer\r\n };\r\n // slices by day\r\n ListView.prototype.componentFootprintToSegs = function (footprint) {\r\n var dayRanges = this.dayRanges;\r\n var dayIndex;\r\n var segRange;\r\n var seg;\r\n var segs = [];\r\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) {\r\n segRange = footprint.unzonedRange.intersect(dayRanges[dayIndex]);\r\n if (segRange) {\r\n seg = {\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n };\r\n segs.push(seg);\r\n // detect when footprint won't go fully into the next day,\r\n // and mutate the latest seg to the be the end.\r\n if (!seg.isEnd && !footprint.isAllDay &&\r\n dayIndex + 1 < dayRanges.length &&\r\n footprint.unzonedRange.endMs < dayRanges[dayIndex + 1].startMs + this.nextDayThreshold) {\r\n seg.endMs = footprint.unzonedRange.endMs;\r\n seg.isEnd = true;\r\n break;\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n ListView.prototype.renderEmptyMessage = function () {\r\n this.contentEl.html('
' + // TODO: try less wraps\r\n '
' +\r\n '
' +\r\n util_1.htmlEscape(this.opt('noEventsMessage')) +\r\n '
' +\r\n '
' +\r\n '
');\r\n };\r\n // render the event segments in the view\r\n ListView.prototype.renderSegList = function (allSegs) {\r\n var segsByDay = this.groupSegsByDay(allSegs); // sparse array\r\n var dayIndex;\r\n var daySegs;\r\n var i;\r\n var tableEl = $('
');\r\n var tbodyEl = tableEl.find('tbody');\r\n for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {\r\n daySegs = segsByDay[dayIndex];\r\n if (daySegs) {\r\n // append a day header\r\n tbodyEl.append(this.dayHeaderHtml(this.dayDates[dayIndex]));\r\n this.eventRenderer.sortEventSegs(daySegs);\r\n for (i = 0; i < daySegs.length; i++) {\r\n tbodyEl.append(daySegs[i].el); // append event row\r\n }\r\n }\r\n }\r\n this.contentEl.empty().append(tableEl);\r\n };\r\n // Returns a sparse array of arrays, segs grouped by their dayIndex\r\n ListView.prototype.groupSegsByDay = function (segs) {\r\n var segsByDay = []; // sparse array\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\r\n .push(seg);\r\n }\r\n return segsByDay;\r\n };\r\n // generates the HTML for the day headers that live amongst the event rows\r\n ListView.prototype.dayHeaderHtml = function (dayDate) {\r\n var mainFormat = this.opt('listDayFormat');\r\n var altFormat = this.opt('listDayAltFormat');\r\n return '' +\r\n '' +\r\n (mainFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-main' }, util_1.htmlEscape(dayDate.format(mainFormat)) // inner HTML\r\n ) :\r\n '') +\r\n (altFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-alt' }, util_1.htmlEscape(dayDate.format(altFormat)) // inner HTML\r\n ) :\r\n '') +\r\n '' +\r\n '';\r\n };\r\n return ListView;\r\n}(View_1.default));\r\nexports.default = ListView;\r\nListView.prototype.eventRendererClass = ListEventRenderer_1.default;\r\nListView.prototype.eventPointingClass = ListEventPointing_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 231 */,\r\n/* 232 */,\r\n/* 233 */,\r\n/* 234 */,\r\n/* 235 */,\r\n/* 236 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(16);\r\nvar util_1 = __webpack_require__(4);\r\nvar Calendar_1 = __webpack_require__(220);\r\n// for intentional side-effects\r\n__webpack_require__(10);\r\n__webpack_require__(47);\r\n__webpack_require__(256);\r\n__webpack_require__(257);\r\n__webpack_require__(260);\r\n__webpack_require__(261);\r\n__webpack_require__(262);\r\n__webpack_require__(263);\r\n$.fullCalendar = exportHooks;\r\n$.fn.fullCalendar = function (options) {\r\n var args = Array.prototype.slice.call(arguments, 1); // for a possible method call\r\n var res = this; // what this function will return (this jQuery object by default)\r\n this.each(function (i, _element) {\r\n var element = $(_element);\r\n var calendar = element.data('fullCalendar'); // get the existing calendar object (if any)\r\n var singleRes; // the returned value of this single method call\r\n // a method call\r\n if (typeof options === 'string') {\r\n if (options === 'getCalendar') {\r\n if (!i) {\r\n res = calendar;\r\n }\r\n }\r\n else if (options === 'destroy') {\r\n if (calendar) {\r\n calendar.destroy();\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else if (!calendar) {\r\n util_1.warn('Attempting to call a FullCalendar method on an element with no calendar.');\r\n }\r\n else if ($.isFunction(calendar[options])) {\r\n singleRes = calendar[options].apply(calendar, args);\r\n if (!i) {\r\n res = singleRes; // record the first method call result\r\n }\r\n if (options === 'destroy') {\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else {\r\n util_1.warn(\"'\" + options + \"' is an unknown FullCalendar method.\");\r\n }\r\n }\r\n else if (!calendar) {\r\n calendar = new Calendar_1.default(element, options);\r\n element.data('fullCalendar', calendar);\r\n calendar.render();\r\n }\r\n });\r\n return res;\r\n};\r\nmodule.exports = exportHooks;\r\n\r\n\r\n/***/ }),\r\n/* 237 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Model_1 = __webpack_require__(48);\r\nvar Component = /** @class */ (function (_super) {\r\n tslib_1.__extends(Component, _super);\r\n function Component() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Component.prototype.setElement = function (el) {\r\n this.el = el;\r\n this.bindGlobalHandlers();\r\n this.renderSkeleton();\r\n this.set('isInDom', true);\r\n };\r\n Component.prototype.removeElement = function () {\r\n this.unset('isInDom');\r\n this.unrenderSkeleton();\r\n this.unbindGlobalHandlers();\r\n this.el.remove();\r\n // NOTE: don't null-out this.el in case the View was destroyed within an API callback.\r\n // We don't null-out the View's other jQuery element references upon destroy,\r\n // so we shouldn't kill this.el either.\r\n };\r\n Component.prototype.bindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n Component.prototype.unbindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n /*\r\n NOTE: Can't have a `render` method. Read the deprecation notice in View::executeDateRender\r\n */\r\n // Renders the basic structure of the view before any content is rendered\r\n Component.prototype.renderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n // Unrenders the basic structure of the view\r\n Component.prototype.unrenderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n return Component;\r\n}(Model_1.default));\r\nexports.default = Component;\r\n\r\n\r\n/***/ }),\r\n/* 238 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Iterator = /** @class */ (function () {\r\n function Iterator(items) {\r\n this.items = items || [];\r\n }\r\n /* Calls a method on every item passing the arguments through */\r\n Iterator.prototype.proxyCall = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var results = [];\r\n this.items.forEach(function (item) {\r\n results.push(item[methodName].apply(item, args));\r\n });\r\n return results;\r\n };\r\n return Iterator;\r\n}());\r\nexports.default = Iterator;\r\n\r\n\r\n/***/ }),\r\n/* 239 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/* Toolbar with buttons and title\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar Toolbar = /** @class */ (function () {\r\n function Toolbar(calendar, toolbarOptions) {\r\n this.el = null; // mirrors local `el`\r\n this.viewsWithButtons = [];\r\n this.calendar = calendar;\r\n this.toolbarOptions = toolbarOptions;\r\n }\r\n // method to update toolbar-specific options, not calendar-wide options\r\n Toolbar.prototype.setToolbarOptions = function (newToolbarOptions) {\r\n this.toolbarOptions = newToolbarOptions;\r\n };\r\n // can be called repeatedly and will rerender\r\n Toolbar.prototype.render = function () {\r\n var sections = this.toolbarOptions.layout;\r\n var el = this.el;\r\n if (sections) {\r\n if (!el) {\r\n el = this.el = $(\"
\");\r\n }\r\n else {\r\n el.empty();\r\n }\r\n el.append(this.renderSection('left'))\r\n .append(this.renderSection('right'))\r\n .append(this.renderSection('center'))\r\n .append('
');\r\n }\r\n else {\r\n this.removeElement();\r\n }\r\n };\r\n Toolbar.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n Toolbar.prototype.renderSection = function (position) {\r\n var _this = this;\r\n var calendar = this.calendar;\r\n var theme = calendar.theme;\r\n var optionsManager = calendar.optionsManager;\r\n var viewSpecManager = calendar.viewSpecManager;\r\n var sectionEl = $('
');\r\n var buttonStr = this.toolbarOptions.layout[position];\r\n var calendarCustomButtons = optionsManager.get('customButtons') || {};\r\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\r\n var calendarButtonText = optionsManager.get('buttonText') || {};\r\n if (buttonStr) {\r\n $.each(buttonStr.split(' '), function (i, buttonGroupStr) {\r\n var groupChildren = $();\r\n var isOnlyButtons = true;\r\n var groupEl;\r\n $.each(buttonGroupStr.split(','), function (j, buttonName) {\r\n var customButtonProps;\r\n var viewSpec;\r\n var buttonClick;\r\n var buttonIcon; // only one of these will be set\r\n var buttonText; // \"\r\n var buttonInnerHtml;\r\n var buttonClasses;\r\n var buttonEl;\r\n var buttonAriaAttr;\r\n if (buttonName === 'title') {\r\n groupChildren = groupChildren.add($('

 

')); // we always want it to take up height\r\n isOnlyButtons = false;\r\n }\r\n else {\r\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\r\n buttonClick = function (ev) {\r\n if (customButtonProps.click) {\r\n customButtonProps.click.call(buttonEl[0], ev);\r\n }\r\n };\r\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = customButtonProps.text);\r\n }\r\n else if ((viewSpec = viewSpecManager.getViewSpec(buttonName))) {\r\n _this.viewsWithButtons.push(buttonName);\r\n buttonClick = function () {\r\n calendar.changeView(buttonName);\r\n };\r\n (buttonText = viewSpec.buttonTextOverride) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = viewSpec.buttonTextDefault);\r\n }\r\n else if (calendar[buttonName]) {\r\n buttonClick = function () {\r\n calendar[buttonName]();\r\n };\r\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = calendarButtonText[buttonName]);\r\n // ^ everything else is considered default\r\n }\r\n if (buttonClick) {\r\n buttonClasses = [\r\n 'fc-' + buttonName + '-button',\r\n theme.getClass('button'),\r\n theme.getClass('stateDefault')\r\n ];\r\n if (buttonText) {\r\n buttonInnerHtml = util_1.htmlEscape(buttonText);\r\n buttonAriaAttr = '';\r\n }\r\n else if (buttonIcon) {\r\n buttonInnerHtml = \"\";\r\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\r\n }\r\n buttonEl = $(// type=\"button\" so that it doesn't submit a form\r\n '')\r\n .click(function (ev) {\r\n // don't process clicks for disabled buttons\r\n if (!buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonClick(ev);\r\n // after the click action, if the button becomes the \"active\" tab, or disabled,\r\n // it should never have a hover class, so remove it now.\r\n if (buttonEl.hasClass(theme.getClass('stateActive')) ||\r\n buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonEl.removeClass(theme.getClass('stateHover'));\r\n }\r\n }\r\n })\r\n .mousedown(function () {\r\n // the *down* effect (mouse pressed in).\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateDown'));\r\n })\r\n .mouseup(function () {\r\n // undo the *down* effect\r\n buttonEl.removeClass(theme.getClass('stateDown'));\r\n })\r\n .hover(function () {\r\n // the *hover* effect.\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateHover'));\r\n }, function () {\r\n // undo the *hover* effect\r\n buttonEl\r\n .removeClass(theme.getClass('stateHover'))\r\n .removeClass(theme.getClass('stateDown')); // if mouseleave happens before mouseup\r\n });\r\n groupChildren = groupChildren.add(buttonEl);\r\n }\r\n }\r\n });\r\n if (isOnlyButtons) {\r\n groupChildren\r\n .first().addClass(theme.getClass('cornerLeft')).end()\r\n .last().addClass(theme.getClass('cornerRight')).end();\r\n }\r\n if (groupChildren.length > 1) {\r\n groupEl = $('
');\r\n if (isOnlyButtons) {\r\n groupEl.addClass(theme.getClass('buttonGroup'));\r\n }\r\n groupEl.append(groupChildren);\r\n sectionEl.append(groupEl);\r\n }\r\n else {\r\n sectionEl.append(groupChildren); // 1 or 0 children\r\n }\r\n });\r\n }\r\n return sectionEl;\r\n };\r\n Toolbar.prototype.updateTitle = function (text) {\r\n if (this.el) {\r\n this.el.find('h2').text(text);\r\n }\r\n };\r\n Toolbar.prototype.activateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .addClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.deactivateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .removeClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.disableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', true)\r\n .addClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.enableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', false)\r\n .removeClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.getViewsWithButtons = function () {\r\n return this.viewsWithButtons;\r\n };\r\n return Toolbar;\r\n}());\r\nexports.default = Toolbar;\r\n\r\n\r\n/***/ }),\r\n/* 240 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar locale_1 = __webpack_require__(31);\r\nvar Model_1 = __webpack_require__(48);\r\nvar OptionsManager = /** @class */ (function (_super) {\r\n tslib_1.__extends(OptionsManager, _super);\r\n function OptionsManager(_calendar, overrides) {\r\n var _this = _super.call(this) || this;\r\n _this._calendar = _calendar;\r\n _this.overrides = $.extend({}, overrides); // make a copy\r\n _this.dynamicOverrides = {};\r\n _this.compute();\r\n return _this;\r\n }\r\n OptionsManager.prototype.add = function (newOptionHash) {\r\n var optionCnt = 0;\r\n var optionName;\r\n this.recordOverrides(newOptionHash); // will trigger this model's watchers\r\n for (optionName in newOptionHash) {\r\n optionCnt++;\r\n }\r\n // special-case handling of single option change.\r\n // if only one option change, `optionName` will be its name.\r\n if (optionCnt === 1) {\r\n if (optionName === 'height' || optionName === 'contentHeight' || optionName === 'aspectRatio') {\r\n this._calendar.updateViewSize(true); // isResize=true\r\n return;\r\n }\r\n else if (optionName === 'defaultDate') {\r\n return; // can't change date this way. use gotoDate instead\r\n }\r\n else if (optionName === 'businessHours') {\r\n return; // this model already reacts to this\r\n }\r\n else if (/^(event|select)(Overlap|Constraint|Allow)$/.test(optionName)) {\r\n return; // doesn't affect rendering. only interactions.\r\n }\r\n else if (optionName === 'timezone') {\r\n this._calendar.view.flash('initialEvents');\r\n return;\r\n }\r\n }\r\n // catch-all. rerender the header and footer and rebuild/rerender the current view\r\n this._calendar.renderHeader();\r\n this._calendar.renderFooter();\r\n // even non-current views will be affected by this option change. do before rerender\r\n // TODO: detangle\r\n this._calendar.viewsByType = {};\r\n this._calendar.reinitView();\r\n };\r\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\r\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\r\n OptionsManager.prototype.compute = function () {\r\n var locale;\r\n var localeDefaults;\r\n var isRTL;\r\n var dirDefaults;\r\n var rawOptions;\r\n locale = util_1.firstDefined(// explicit locale option given?\r\n this.dynamicOverrides.locale, this.overrides.locale);\r\n localeDefaults = locale_1.localeOptionHash[locale];\r\n if (!localeDefaults) {\r\n locale = options_1.globalDefaults.locale;\r\n localeDefaults = locale_1.localeOptionHash[locale] || {};\r\n }\r\n isRTL = util_1.firstDefined(// based on options computed so far, is direction RTL?\r\n this.dynamicOverrides.isRTL, this.overrides.isRTL, localeDefaults.isRTL, options_1.globalDefaults.isRTL);\r\n dirDefaults = isRTL ? options_1.rtlDefaults : {};\r\n this.dirDefaults = dirDefaults;\r\n this.localeDefaults = localeDefaults;\r\n rawOptions = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n dirDefaults,\r\n localeDefaults,\r\n this.overrides,\r\n this.dynamicOverrides\r\n ]);\r\n locale_1.populateInstanceComputableOptions(rawOptions); // fill in gaps with computed options\r\n this.reset(rawOptions);\r\n };\r\n // stores the new options internally, but does not rerender anything.\r\n OptionsManager.prototype.recordOverrides = function (newOptionHash) {\r\n var optionName;\r\n for (optionName in newOptionHash) {\r\n this.dynamicOverrides[optionName] = newOptionHash[optionName];\r\n }\r\n this._calendar.viewSpecManager.clearCache(); // the dynamic override invalidates the options in this cache, so just clear it\r\n this.compute(); // this.options needs to be recomputed after the dynamic override\r\n };\r\n return OptionsManager;\r\n}(Model_1.default));\r\nexports.default = OptionsManager;\r\n\r\n\r\n/***/ }),\r\n/* 241 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar locale_1 = __webpack_require__(31);\r\nvar ViewSpecManager = /** @class */ (function () {\r\n function ViewSpecManager(optionsManager, _calendar) {\r\n this.optionsManager = optionsManager;\r\n this._calendar = _calendar;\r\n this.clearCache();\r\n }\r\n ViewSpecManager.prototype.clearCache = function () {\r\n this.viewSpecCache = {};\r\n };\r\n // Gets information about how to create a view. Will use a cache.\r\n ViewSpecManager.prototype.getViewSpec = function (viewType) {\r\n var cache = this.viewSpecCache;\r\n return cache[viewType] || (cache[viewType] = this.buildViewSpec(viewType));\r\n };\r\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\r\n // Preference is given to views that have corresponding buttons.\r\n ViewSpecManager.prototype.getUnitViewSpec = function (unit) {\r\n var viewTypes;\r\n var i;\r\n var spec;\r\n if ($.inArray(unit, util_1.unitsDesc) !== -1) {\r\n // put views that have buttons first. there will be duplicates, but oh well\r\n viewTypes = this._calendar.header.getViewsWithButtons(); // TODO: include footer as well?\r\n $.each(ViewRegistry_1.viewHash, function (viewType) {\r\n viewTypes.push(viewType);\r\n });\r\n for (i = 0; i < viewTypes.length; i++) {\r\n spec = this.getViewSpec(viewTypes[i]);\r\n if (spec) {\r\n if (spec.singleUnit === unit) {\r\n return spec;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n // Builds an object with information on how to create a given view\r\n ViewSpecManager.prototype.buildViewSpec = function (requestedViewType) {\r\n var viewOverrides = this.optionsManager.overrides.views || {};\r\n var specChain = []; // for the view. lowest to highest priority\r\n var defaultsChain = []; // for the view. lowest to highest priority\r\n var overridesChain = []; // for the view. lowest to highest priority\r\n var viewType = requestedViewType;\r\n var spec; // for the view\r\n var overrides; // for the view\r\n var durationInput;\r\n var duration;\r\n var unit;\r\n // iterate from the specific view definition to a more general one until we hit an actual View class\r\n while (viewType) {\r\n spec = ViewRegistry_1.viewHash[viewType];\r\n overrides = viewOverrides[viewType];\r\n viewType = null; // clear. might repopulate for another iteration\r\n if (typeof spec === 'function') {\r\n spec = { 'class': spec };\r\n }\r\n if (spec) {\r\n specChain.unshift(spec);\r\n defaultsChain.unshift(spec.defaults || {});\r\n durationInput = durationInput || spec.duration;\r\n viewType = viewType || spec.type;\r\n }\r\n if (overrides) {\r\n overridesChain.unshift(overrides); // view-specific option hashes have options at zero-level\r\n durationInput = durationInput || overrides.duration;\r\n viewType = viewType || overrides.type;\r\n }\r\n }\r\n spec = util_1.mergeProps(specChain);\r\n spec.type = requestedViewType;\r\n if (!spec['class']) {\r\n return false;\r\n }\r\n // fall back to top-level `duration` option\r\n durationInput = durationInput ||\r\n this.optionsManager.dynamicOverrides.duration ||\r\n this.optionsManager.overrides.duration;\r\n if (durationInput) {\r\n duration = moment.duration(durationInput);\r\n if (duration.valueOf()) {\r\n unit = util_1.computeDurationGreatestUnit(duration, durationInput);\r\n spec.duration = duration;\r\n spec.durationUnit = unit;\r\n // view is a single-unit duration, like \"week\" or \"day\"\r\n // incorporate options for this. lowest priority\r\n if (duration.as(unit) === 1) {\r\n spec.singleUnit = unit;\r\n overridesChain.unshift(viewOverrides[unit] || {});\r\n }\r\n }\r\n }\r\n spec.defaults = options_1.mergeOptions(defaultsChain);\r\n spec.overrides = options_1.mergeOptions(overridesChain);\r\n this.buildViewSpecOptions(spec);\r\n this.buildViewSpecButtonText(spec, requestedViewType);\r\n return spec;\r\n };\r\n // Builds and assigns a view spec's options object from its already-assigned defaults and overrides\r\n ViewSpecManager.prototype.buildViewSpecOptions = function (spec) {\r\n var optionsManager = this.optionsManager;\r\n spec.options = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n spec.defaults,\r\n optionsManager.dirDefaults,\r\n optionsManager.localeDefaults,\r\n optionsManager.overrides,\r\n spec.overrides,\r\n optionsManager.dynamicOverrides // dynamically set via setter. highest precedence\r\n ]);\r\n locale_1.populateInstanceComputableOptions(spec.options);\r\n };\r\n // Computes and assigns a view spec's buttonText-related options\r\n ViewSpecManager.prototype.buildViewSpecButtonText = function (spec, requestedViewType) {\r\n var optionsManager = this.optionsManager;\r\n // given an options object with a possible `buttonText` hash, lookup the buttonText for the\r\n // requested view, falling back to a generic unit entry like \"week\" or \"day\"\r\n function queryButtonText(options) {\r\n var buttonText = options.buttonText || {};\r\n return buttonText[requestedViewType] ||\r\n // view can decide to look up a certain key\r\n (spec.buttonTextKey ? buttonText[spec.buttonTextKey] : null) ||\r\n // a key like \"month\"\r\n (spec.singleUnit ? buttonText[spec.singleUnit] : null);\r\n }\r\n // highest to lowest priority\r\n spec.buttonTextOverride =\r\n queryButtonText(optionsManager.dynamicOverrides) ||\r\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\r\n spec.overrides.buttonText; // `buttonText` for view-specific options is a string\r\n // highest to lowest priority. mirrors buildViewSpecOptions\r\n spec.buttonTextDefault =\r\n queryButtonText(optionsManager.localeDefaults) ||\r\n queryButtonText(optionsManager.dirDefaults) ||\r\n spec.defaults.buttonText || // a single string. from ViewSubclass.defaults\r\n queryButtonText(options_1.globalDefaults) ||\r\n (spec.duration ? this._calendar.humanizeDuration(spec.duration) : null) || // like \"3 days\"\r\n requestedViewType; // fall back to given view name\r\n };\r\n return ViewSpecManager;\r\n}());\r\nexports.default = ViewSpecManager;\r\n\r\n\r\n/***/ }),\r\n/* 242 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventPeriod_1 = __webpack_require__(243);\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar EventManager = /** @class */ (function () {\r\n function EventManager(calendar) {\r\n this.calendar = calendar;\r\n this.stickySource = new ArrayEventSource_1.default(calendar);\r\n this.otherSources = [];\r\n }\r\n EventManager.prototype.requestEvents = function (start, end, timezone, force) {\r\n if (force ||\r\n !this.currentPeriod ||\r\n !this.currentPeriod.isWithinRange(start, end) ||\r\n timezone !== this.currentPeriod.timezone) {\r\n this.setPeriod(// will change this.currentPeriod\r\n new EventPeriod_1.default(start, end, timezone));\r\n }\r\n return this.currentPeriod.whenReleased();\r\n };\r\n // Source Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.addSource = function (eventSource) {\r\n this.otherSources.push(eventSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.requestSource(eventSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeSource = function (doomedSource) {\r\n util_1.removeExact(this.otherSources, doomedSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeSource(doomedSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllSources = function () {\r\n this.otherSources = [];\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeAllSources(); // might release\r\n }\r\n };\r\n // Source Refetching\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.refetchSource = function (eventSource) {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeSource(eventSource);\r\n currentPeriod.requestSource(eventSource);\r\n currentPeriod.thaw();\r\n }\r\n };\r\n EventManager.prototype.refetchAllSources = function () {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeAllSources();\r\n currentPeriod.requestSources(this.getSources());\r\n currentPeriod.thaw();\r\n }\r\n };\r\n // Source Querying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getSources = function () {\r\n return [this.stickySource].concat(this.otherSources);\r\n };\r\n // like querySources, but accepts multple match criteria (like multiple IDs)\r\n EventManager.prototype.multiQuerySources = function (matchInputs) {\r\n // coerce into an array\r\n if (!matchInputs) {\r\n matchInputs = [];\r\n }\r\n else if (!$.isArray(matchInputs)) {\r\n matchInputs = [matchInputs];\r\n }\r\n var matchingSources = [];\r\n var i;\r\n // resolve raw inputs to real event source objects\r\n for (i = 0; i < matchInputs.length; i++) {\r\n matchingSources.push.apply(// append\r\n matchingSources, this.querySources(matchInputs[i]));\r\n }\r\n return matchingSources;\r\n };\r\n // matchInput can either by a real event source object, an ID, or the function/URL for the source.\r\n // returns an array of matching source objects.\r\n EventManager.prototype.querySources = function (matchInput) {\r\n var sources = this.otherSources;\r\n var i;\r\n var source;\r\n // given a proper event source object\r\n for (i = 0; i < sources.length; i++) {\r\n source = sources[i];\r\n if (source === matchInput) {\r\n return [source];\r\n }\r\n }\r\n // an ID match\r\n source = this.getSourceById(EventSource_1.default.normalizeId(matchInput));\r\n if (source) {\r\n return [source];\r\n }\r\n // parse as an event source\r\n matchInput = EventSourceParser_1.default.parse(matchInput, this.calendar);\r\n if (matchInput) {\r\n return $.grep(sources, function (source) {\r\n return isSourcesEquivalent(matchInput, source);\r\n });\r\n }\r\n };\r\n /*\r\n ID assumed to already be normalized\r\n */\r\n EventManager.prototype.getSourceById = function (id) {\r\n return $.grep(this.otherSources, function (source) {\r\n return source.id && source.id === id;\r\n })[0];\r\n };\r\n // Event-Period\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.setPeriod = function (eventPeriod) {\r\n if (this.currentPeriod) {\r\n this.unbindPeriod(this.currentPeriod);\r\n this.currentPeriod = null;\r\n }\r\n this.currentPeriod = eventPeriod;\r\n this.bindPeriod(eventPeriod);\r\n eventPeriod.requestSources(this.getSources());\r\n };\r\n EventManager.prototype.bindPeriod = function (eventPeriod) {\r\n this.listenTo(eventPeriod, 'release', function (eventsPayload) {\r\n this.trigger('release', eventsPayload);\r\n });\r\n };\r\n EventManager.prototype.unbindPeriod = function (eventPeriod) {\r\n this.stopListeningTo(eventPeriod);\r\n };\r\n // Event Getting/Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getEventDefByUid = function (uid) {\r\n if (this.currentPeriod) {\r\n return this.currentPeriod.getEventDefByUid(uid);\r\n }\r\n };\r\n EventManager.prototype.addEventDef = function (eventDef, isSticky) {\r\n if (isSticky) {\r\n this.stickySource.addEventDef(eventDef);\r\n }\r\n if (this.currentPeriod) {\r\n this.currentPeriod.addEventDef(eventDef); // might release\r\n }\r\n };\r\n EventManager.prototype.removeEventDefsById = function (eventId) {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeEventDefsById(eventId);\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeEventDefsById(eventId); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllEventDefs = function () {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeAllEventDefs();\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeAllEventDefs();\r\n }\r\n };\r\n // Event Mutating\r\n // -----------------------------------------------------------------------------------------------------------------\r\n /*\r\n Returns an undo function.\r\n */\r\n EventManager.prototype.mutateEventsWithId = function (eventDefId, eventDefMutation) {\r\n var currentPeriod = this.currentPeriod;\r\n var eventDefs;\r\n var undoFuncs = [];\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n eventDefs = currentPeriod.getEventDefsById(eventDefId);\r\n eventDefs.forEach(function (eventDef) {\r\n // add/remove esp because id might change\r\n currentPeriod.removeEventDef(eventDef);\r\n undoFuncs.push(eventDefMutation.mutateSingle(eventDef));\r\n currentPeriod.addEventDef(eventDef);\r\n });\r\n currentPeriod.thaw();\r\n return function () {\r\n currentPeriod.freeze();\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n currentPeriod.removeEventDef(eventDefs[i]);\r\n undoFuncs[i]();\r\n currentPeriod.addEventDef(eventDefs[i]);\r\n }\r\n currentPeriod.thaw();\r\n };\r\n }\r\n return function () { };\r\n };\r\n /*\r\n copies and then mutates\r\n */\r\n EventManager.prototype.buildMutatedEventInstanceGroup = function (eventDefId, eventDefMutation) {\r\n var eventDefs = this.getEventDefsById(eventDefId);\r\n var i;\r\n var defCopy;\r\n var allInstances = [];\r\n for (i = 0; i < eventDefs.length; i++) {\r\n defCopy = eventDefs[i].clone();\r\n if (defCopy instanceof SingleEventDef_1.default) {\r\n eventDefMutation.mutateSingle(defCopy);\r\n allInstances.push.apply(allInstances, // append\r\n defCopy.buildInstances());\r\n }\r\n }\r\n return new EventInstanceGroup_1.default(allInstances);\r\n };\r\n // Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.freeze = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.freeze();\r\n }\r\n };\r\n EventManager.prototype.thaw = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.thaw();\r\n }\r\n };\r\n // methods that simply forward to EventPeriod\r\n EventManager.prototype.getEventDefsById = function (eventDefId) {\r\n return this.currentPeriod.getEventDefsById(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstances = function () {\r\n return this.currentPeriod.getEventInstances();\r\n };\r\n EventManager.prototype.getEventInstancesWithId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithId(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithoutId(eventDefId);\r\n };\r\n return EventManager;\r\n}());\r\nexports.default = EventManager;\r\nEmitterMixin_1.default.mixInto(EventManager);\r\nListenerMixin_1.default.mixInto(EventManager);\r\nfunction isSourcesEquivalent(source0, source1) {\r\n return source0.getPrimitive() === source1.getPrimitive();\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 243 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EventPeriod = /** @class */ (function () {\r\n function EventPeriod(start, end, timezone) {\r\n this.pendingCnt = 0;\r\n this.freezeDepth = 0;\r\n this.stuntedReleaseCnt = 0;\r\n this.releaseCnt = 0;\r\n this.start = start;\r\n this.end = end;\r\n this.timezone = timezone;\r\n this.unzonedRange = new UnzonedRange_1.default(start.clone().stripZone(), end.clone().stripZone());\r\n this.requestsByUid = {};\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n }\r\n EventPeriod.prototype.isWithinRange = function (start, end) {\r\n // TODO: use a range util function?\r\n return !start.isBefore(this.start) && !end.isAfter(this.end);\r\n };\r\n // Requesting and Purging\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.requestSources = function (sources) {\r\n this.freeze();\r\n for (var i = 0; i < sources.length; i++) {\r\n this.requestSource(sources[i]);\r\n }\r\n this.thaw();\r\n };\r\n EventPeriod.prototype.requestSource = function (source) {\r\n var _this = this;\r\n var request = { source: source, status: 'pending', eventDefs: null };\r\n this.requestsByUid[source.uid] = request;\r\n this.pendingCnt += 1;\r\n source.fetch(this.start, this.end, this.timezone).then(function (eventDefs) {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'completed';\r\n request.eventDefs = eventDefs;\r\n _this.addEventDefs(eventDefs);\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n }, function () {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'failed';\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n });\r\n };\r\n EventPeriod.prototype.purgeSource = function (source) {\r\n var request = this.requestsByUid[source.uid];\r\n if (request) {\r\n delete this.requestsByUid[source.uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n this.pendingCnt--;\r\n this.tryRelease();\r\n }\r\n else if (request.status === 'completed') {\r\n request.eventDefs.forEach(this.removeEventDef.bind(this));\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.purgeAllSources = function () {\r\n var requestsByUid = this.requestsByUid;\r\n var uid;\r\n var request;\r\n var completedCnt = 0;\r\n for (uid in requestsByUid) {\r\n request = requestsByUid[uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n }\r\n else if (request.status === 'completed') {\r\n completedCnt++;\r\n }\r\n }\r\n this.requestsByUid = {};\r\n this.pendingCnt = 0;\r\n if (completedCnt) {\r\n this.removeAllEventDefs(); // might release\r\n }\r\n };\r\n // Event Definitions\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventDefByUid = function (eventDefUid) {\r\n return this.eventDefsByUid[eventDefUid];\r\n };\r\n EventPeriod.prototype.getEventDefsById = function (eventDefId) {\r\n var a = this.eventDefsById[eventDefId];\r\n if (a) {\r\n return a.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.addEventDefs = function (eventDefs) {\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n this.addEventDef(eventDefs[i]);\r\n }\r\n };\r\n EventPeriod.prototype.addEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefId = eventDef.id;\r\n var eventDefs = eventDefsById[eventDefId] || (eventDefsById[eventDefId] = []);\r\n var eventInstances = eventDef.buildInstances(this.unzonedRange);\r\n var i;\r\n eventDefs.push(eventDef);\r\n this.eventDefsByUid[eventDef.uid] = eventDef;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n this.addEventInstance(eventInstances[i], eventDefId);\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDefsById = function (eventDefId) {\r\n var _this = this;\r\n this.getEventDefsById(eventDefId).forEach(function (eventDef) {\r\n _this.removeEventDef(eventDef);\r\n });\r\n };\r\n EventPeriod.prototype.removeAllEventDefs = function () {\r\n var isEmpty = $.isEmptyObject(this.eventDefsByUid);\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n if (!isEmpty) {\r\n this.tryRelease();\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefs = eventDefsById[eventDef.id];\r\n delete this.eventDefsByUid[eventDef.uid];\r\n if (eventDefs) {\r\n util_1.removeExact(eventDefs, eventDef);\r\n if (!eventDefs.length) {\r\n delete eventDefsById[eventDef.id];\r\n }\r\n this.removeEventInstancesForDef(eventDef);\r\n }\r\n };\r\n // Event Instances\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventInstances = function () {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n return eventInstances;\r\n };\r\n EventPeriod.prototype.getEventInstancesWithId = function (eventDefId) {\r\n var eventInstanceGroup = this.eventInstanceGroupsById[eventDefId];\r\n if (eventInstanceGroup) {\r\n return eventInstanceGroup.eventInstances.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var matchingInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n if (id !== eventDefId) {\r\n matchingInstances.push.apply(matchingInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n }\r\n return matchingInstances;\r\n };\r\n EventPeriod.prototype.addEventInstance = function (eventInstance, eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDefId] ||\r\n (eventInstanceGroupsById[eventDefId] = new EventInstanceGroup_1.default());\r\n eventInstanceGroup.eventInstances.push(eventInstance);\r\n this.tryRelease();\r\n };\r\n EventPeriod.prototype.removeEventInstancesForDef = function (eventDef) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDef.id];\r\n var removeCnt;\r\n if (eventInstanceGroup) {\r\n removeCnt = util_1.removeMatching(eventInstanceGroup.eventInstances, function (currentEventInstance) {\r\n return currentEventInstance.def === eventDef;\r\n });\r\n if (!eventInstanceGroup.eventInstances.length) {\r\n delete eventInstanceGroupsById[eventDef.id];\r\n }\r\n if (removeCnt) {\r\n this.tryRelease();\r\n }\r\n }\r\n };\r\n // Releasing and Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.tryRelease = function () {\r\n if (!this.pendingCnt) {\r\n if (!this.freezeDepth) {\r\n this.release();\r\n }\r\n else {\r\n this.stuntedReleaseCnt++;\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.release = function () {\r\n this.releaseCnt++;\r\n this.trigger('release', this.eventInstanceGroupsById);\r\n };\r\n EventPeriod.prototype.whenReleased = function () {\r\n var _this = this;\r\n if (this.releaseCnt) {\r\n return Promise_1.default.resolve(this.eventInstanceGroupsById);\r\n }\r\n else {\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.one('release', onResolve);\r\n });\r\n }\r\n };\r\n EventPeriod.prototype.freeze = function () {\r\n if (!(this.freezeDepth++)) {\r\n this.stuntedReleaseCnt = 0;\r\n }\r\n };\r\n EventPeriod.prototype.thaw = function () {\r\n if (!(--this.freezeDepth) && this.stuntedReleaseCnt && !this.pendingCnt) {\r\n this.release();\r\n }\r\n };\r\n return EventPeriod;\r\n}());\r\nexports.default = EventPeriod;\r\nEmitterMixin_1.default.mixInto(EventPeriod);\r\n\r\n\r\n/***/ }),\r\n/* 244 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\n/* Creates a clone of an element and lets it track the mouse as it moves\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MouseFollower = /** @class */ (function () {\r\n function MouseFollower(sourceEl, options) {\r\n this.isFollowing = false;\r\n this.isHidden = false;\r\n this.isAnimating = false; // doing the revert animation?\r\n this.options = options = options || {};\r\n this.sourceEl = sourceEl;\r\n this.parentEl = options.parentEl ? $(options.parentEl) : sourceEl.parent(); // default to sourceEl's parent\r\n }\r\n // Causes the element to start following the mouse\r\n MouseFollower.prototype.start = function (ev) {\r\n if (!this.isFollowing) {\r\n this.isFollowing = true;\r\n this.y0 = util_1.getEvY(ev);\r\n this.x0 = util_1.getEvX(ev);\r\n this.topDelta = 0;\r\n this.leftDelta = 0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n if (util_1.getEvIsTouch(ev)) {\r\n this.listenTo($(document), 'touchmove', this.handleMove);\r\n }\r\n else {\r\n this.listenTo($(document), 'mousemove', this.handleMove);\r\n }\r\n }\r\n };\r\n // Causes the element to stop following the mouse. If shouldRevert is true, will animate back to original position.\r\n // `callback` gets invoked when the animation is complete. If no animation, it is invoked immediately.\r\n MouseFollower.prototype.stop = function (shouldRevert, callback) {\r\n var _this = this;\r\n var revertDuration = this.options.revertDuration;\r\n var complete = function () {\r\n _this.isAnimating = false;\r\n _this.removeElement();\r\n _this.top0 = _this.left0 = null; // reset state for future updatePosition calls\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n if (this.isFollowing && !this.isAnimating) {\r\n this.isFollowing = false;\r\n this.stopListeningTo($(document));\r\n if (shouldRevert && revertDuration && !this.isHidden) {\r\n this.isAnimating = true;\r\n this.el.animate({\r\n top: this.top0,\r\n left: this.left0\r\n }, {\r\n duration: revertDuration,\r\n complete: complete\r\n });\r\n }\r\n else {\r\n complete();\r\n }\r\n }\r\n };\r\n // Gets the tracking element. Create it if necessary\r\n MouseFollower.prototype.getEl = function () {\r\n var el = this.el;\r\n if (!el) {\r\n el = this.el = this.sourceEl.clone()\r\n .addClass(this.options.additionalClass || '')\r\n .css({\r\n position: 'absolute',\r\n visibility: '',\r\n display: this.isHidden ? 'none' : '',\r\n margin: 0,\r\n right: 'auto',\r\n bottom: 'auto',\r\n width: this.sourceEl.width(),\r\n height: this.sourceEl.height(),\r\n opacity: this.options.opacity || '',\r\n zIndex: this.options.zIndex\r\n });\r\n // we don't want long taps or any mouse interaction causing selection/menus.\r\n // would use preventSelection(), but that prevents selectstart, causing problems.\r\n el.addClass('fc-unselectable');\r\n el.appendTo(this.parentEl);\r\n }\r\n return el;\r\n };\r\n // Removes the tracking element if it has already been created\r\n MouseFollower.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n // Update the CSS position of the tracking element\r\n MouseFollower.prototype.updatePosition = function () {\r\n var sourceOffset;\r\n var origin;\r\n this.getEl(); // ensure this.el\r\n // make sure origin info was computed\r\n if (this.top0 == null) {\r\n sourceOffset = this.sourceEl.offset();\r\n origin = this.el.offsetParent().offset();\r\n this.top0 = sourceOffset.top - origin.top;\r\n this.left0 = sourceOffset.left - origin.left;\r\n }\r\n this.el.css({\r\n top: this.top0 + this.topDelta,\r\n left: this.left0 + this.leftDelta\r\n });\r\n };\r\n // Gets called when the user moves the mouse\r\n MouseFollower.prototype.handleMove = function (ev) {\r\n this.topDelta = util_1.getEvY(ev) - this.y0;\r\n this.leftDelta = util_1.getEvX(ev) - this.x0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n };\r\n // Temporarily makes the tracking element invisible. Can be called before following starts\r\n MouseFollower.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.isHidden = true;\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n }\r\n };\r\n // Show the tracking element after it has been temporarily hidden\r\n MouseFollower.prototype.show = function () {\r\n if (this.isHidden) {\r\n this.isHidden = false;\r\n this.updatePosition();\r\n this.getEl().show();\r\n }\r\n };\r\n return MouseFollower;\r\n}());\r\nexports.default = MouseFollower;\r\nListenerMixin_1.default.mixInto(MouseFollower);\r\n\r\n\r\n/***/ }),\r\n/* 245 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar DateClicking = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateClicking, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - getHitEl\r\n */\r\n function DateClicking(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateClicking.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateClicking.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (!component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (!component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day clicking.\r\n DateClicking.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var dayClickHit; // null if invalid dayClick\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n dayClickHit = dragListener.origHit;\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n // if user dragged to another cell at any point, it can no longer be a dayClick\r\n if (!isOrig) {\r\n dayClickHit = null;\r\n }\r\n },\r\n hitOut: function () {\r\n dayClickHit = null;\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n var componentFootprint;\r\n if (!isCancelled && dayClickHit) {\r\n componentFootprint = component.getSafeHitFootprint(dayClickHit);\r\n if (componentFootprint) {\r\n _this.view.triggerDayClick(componentFootprint, component.getHitEl(dayClickHit), ev);\r\n }\r\n }\r\n }\r\n });\r\n // because dragListener won't be called with any time delay, \"dragging\" will begin immediately,\r\n // which will kill any touchmoving/scrolling. Prevent this.\r\n dragListener.shouldCancelTouchScroll = false;\r\n dragListener.scrollAlwaysKills = true;\r\n return dragListener;\r\n };\r\n return DateClicking;\r\n}(Interaction_1.default));\r\nexports.default = DateClicking;\r\n\r\n\r\n/***/ }),\r\n/* 246 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\r\n/*\r\nOnly handles foreground segs.\r\nDoes not own rendering. Use for low-level util methods by TimeGrid.\r\n*/\r\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridEventRenderer, _super);\r\n function TimeGridEventRenderer(timeGrid, fillRenderer) {\r\n var _this = _super.call(this, timeGrid, fillRenderer) || this;\r\n _this.timeGrid = timeGrid;\r\n return _this;\r\n }\r\n TimeGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n this.renderFgSegsIntoContainers(segs, this.timeGrid.fgContainerEls);\r\n };\r\n // Given an array of foreground segments, render a DOM element for each, computes position,\r\n // and attaches to the column inner-container elements.\r\n TimeGridEventRenderer.prototype.renderFgSegsIntoContainers = function (segs, containerEls) {\r\n var segsByCol;\r\n var col;\r\n segsByCol = this.timeGrid.groupSegsByCol(segs);\r\n for (col = 0; col < this.timeGrid.colCnt; col++) {\r\n this.updateFgSegCoords(segsByCol[col]);\r\n }\r\n this.timeGrid.attachSegsByCol(segsByCol, containerEls);\r\n };\r\n TimeGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n if (this.fgSegs) {\r\n this.fgSegs.forEach(function (seg) {\r\n seg.el.remove();\r\n });\r\n }\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('noMeridiemTimeFormat'); // like \"6:30\" (no AM/PM)\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n // Renders the HTML for a single event segment's default rendering\r\n TimeGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var componentFootprint = seg.footprint.componentFootprint;\r\n var isAllDay = componentFootprint.isAllDay;\r\n var eventDef = seg.footprint.eventDef;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeText;\r\n var fullTimeText; // more verbose time text. for the print stylesheet\r\n var startTimeText; // just the start time text\r\n classes.unshift('fc-time-grid-event', 'fc-v-event');\r\n // if the event appears to span more than one day...\r\n if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n // Don't display time text on segments that run entirely through a day.\r\n // That would appear as midnight-midnight and would look dumb.\r\n // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\r\n if (seg.isStart || seg.isEnd) {\r\n var zonedStart = calendar.msToMoment(seg.startMs);\r\n var zonedEnd = calendar.msToMoment(seg.endMs);\r\n timeText = this._getTimeText(zonedStart, zonedEnd, isAllDay);\r\n fullTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, 'LT');\r\n startTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, null, false); // displayEnd=false\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeText = this.getTimeText(seg.footprint);\r\n fullTimeText = this.getTimeText(seg.footprint, 'LT');\r\n startTimeText = this.getTimeText(seg.footprint, null, false); // displayEnd=false\r\n }\r\n return '' +\r\n '
' +\r\n (timeText ?\r\n '
' +\r\n '' + util_1.htmlEscape(timeText) + '' +\r\n '
' :\r\n '') +\r\n (eventDef.title ?\r\n '
' +\r\n util_1.htmlEscape(eventDef.title) +\r\n '
' :\r\n '') +\r\n '
' +\r\n '
' +\r\n /* TODO: write CSS for this\r\n (isResizableFromStart ?\r\n '
' :\r\n ''\r\n ) +\r\n */\r\n (isResizableFromEnd ?\r\n '
' :\r\n '') +\r\n '';\r\n };\r\n // Given segments that are assumed to all live in the *same column*,\r\n // compute their verical/horizontal coordinates and assign to their elements.\r\n TimeGridEventRenderer.prototype.updateFgSegCoords = function (segs) {\r\n this.timeGrid.computeSegVerticals(segs); // horizontals relies on this\r\n this.computeFgSegHorizontals(segs); // compute horizontal coordinates, z-index's, and reorder the array\r\n this.timeGrid.assignSegVerticals(segs);\r\n this.assignFgSegHorizontals(segs);\r\n };\r\n // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\r\n // NOTE: Also reorders the given array by date!\r\n TimeGridEventRenderer.prototype.computeFgSegHorizontals = function (segs) {\r\n var levels;\r\n var level0;\r\n var i;\r\n this.sortEventSegs(segs); // order by certain criteria\r\n levels = buildSlotSegLevels(segs);\r\n computeForwardSlotSegs(levels);\r\n if ((level0 = levels[0])) {\r\n for (i = 0; i < level0.length; i++) {\r\n computeSlotSegPressures(level0[i]);\r\n }\r\n for (i = 0; i < level0.length; i++) {\r\n this.computeFgSegForwardBack(level0[i], 0, 0);\r\n }\r\n }\r\n };\r\n // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\r\n // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\r\n // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\r\n //\r\n // The segment might be part of a \"series\", which means consecutive segments with the same pressure\r\n // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\r\n // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\r\n // coordinate of the first segment in the series.\r\n TimeGridEventRenderer.prototype.computeFgSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\r\n var forwardSegs = seg.forwardSegs;\r\n var i;\r\n if (seg.forwardCoord === undefined) {\r\n if (!forwardSegs.length) {\r\n // if there are no forward segments, this segment should butt up against the edge\r\n seg.forwardCoord = 1;\r\n }\r\n else {\r\n // sort highest pressure first\r\n this.sortForwardSegs(forwardSegs);\r\n // this segment's forwardCoord will be calculated from the backwardCoord of the\r\n // highest-pressure forward segment.\r\n this.computeFgSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\r\n seg.forwardCoord = forwardSegs[0].backwardCoord;\r\n }\r\n // calculate the backwardCoord from the forwardCoord. consider the series\r\n seg.backwardCoord = seg.forwardCoord -\r\n (seg.forwardCoord - seriesBackwardCoord) / // available width for series\r\n (seriesBackwardPressure + 1); // # of segments in the series\r\n // use this segment's coordinates to computed the coordinates of the less-pressurized\r\n // forward segments\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n this.computeFgSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\r\n }\r\n }\r\n };\r\n TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\r\n forwardSegs.sort(util_1.proxy(this, 'compareForwardSegs'));\r\n };\r\n // A cmp function for determining which forward segment to rely on more when computing coordinates.\r\n TimeGridEventRenderer.prototype.compareForwardSegs = function (seg1, seg2) {\r\n // put higher-pressure first\r\n return seg2.forwardPressure - seg1.forwardPressure ||\r\n // put segments that are closer to initial edge first (and favor ones with no coords yet)\r\n (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) ||\r\n // do normal sorting...\r\n this.compareEventSegs(seg1, seg2);\r\n };\r\n // Given foreground event segments that have already had their position coordinates computed,\r\n // assigns position-related CSS values to their elements.\r\n TimeGridEventRenderer.prototype.assignFgSegHorizontals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateFgSegHorizontalCss(seg));\r\n // if the height is short, add a className for alternate styling\r\n if (seg.bottom - seg.top < 30) {\r\n seg.el.addClass('fc-short');\r\n }\r\n }\r\n };\r\n // Generates an object with CSS properties/values that should be applied to an event segment element.\r\n // Contains important positioning-related properties that should be applied to any event element, customized or not.\r\n TimeGridEventRenderer.prototype.generateFgSegHorizontalCss = function (seg) {\r\n var shouldOverlap = this.opt('slotEventOverlap');\r\n var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\r\n var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\r\n var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\r\n var isRTL = this.timeGrid.isRTL;\r\n var left; // amount of space from left edge, a fraction of the total width\r\n var right; // amount of space from right edge, a fraction of the total width\r\n if (shouldOverlap) {\r\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\r\n forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\r\n }\r\n if (isRTL) {\r\n left = 1 - forwardCoord;\r\n right = backwardCoord;\r\n }\r\n else {\r\n left = backwardCoord;\r\n right = 1 - forwardCoord;\r\n }\r\n props.zIndex = seg.level + 1; // convert from 0-base to 1-based\r\n props.left = left * 100 + '%';\r\n props.right = right * 100 + '%';\r\n if (shouldOverlap && seg.forwardPressure) {\r\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\r\n props[isRTL ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\r\n }\r\n return props;\r\n };\r\n return TimeGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = TimeGridEventRenderer;\r\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\r\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\r\nfunction buildSlotSegLevels(segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // go through all the levels and stop on the first level where there are no collisions\r\n for (j = 0; j < levels.length; j++) {\r\n if (!computeSlotSegCollisions(seg, levels[j]).length) {\r\n break;\r\n }\r\n }\r\n seg.level = j;\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n return levels;\r\n}\r\n// For every segment, figure out the other segments that are in subsequent\r\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\r\nfunction computeForwardSlotSegs(levels) {\r\n var i;\r\n var level;\r\n var j;\r\n var seg;\r\n var k;\r\n for (i = 0; i < levels.length; i++) {\r\n level = levels[i];\r\n for (j = 0; j < level.length; j++) {\r\n seg = level[j];\r\n seg.forwardSegs = [];\r\n for (k = i + 1; k < levels.length; k++) {\r\n computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\r\n }\r\n }\r\n }\r\n}\r\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\r\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\r\nfunction computeSlotSegPressures(seg) {\r\n var forwardSegs = seg.forwardSegs;\r\n var forwardPressure = 0;\r\n var i;\r\n var forwardSeg;\r\n if (seg.forwardPressure === undefined) {\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n forwardSeg = forwardSegs[i];\r\n // figure out the child's maximum forward path\r\n computeSlotSegPressures(forwardSeg);\r\n // either use the existing maximum, or use the child's forward pressure\r\n // plus one (for the forwardSeg itself)\r\n forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\r\n }\r\n seg.forwardPressure = forwardPressure;\r\n }\r\n}\r\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\r\n// Append into an optionally-supplied `results` array and return.\r\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\r\n if (results === void 0) { results = []; }\r\n for (var i = 0; i < otherSegs.length; i++) {\r\n if (isSlotSegCollision(seg, otherSegs[i])) {\r\n results.push(otherSegs[i]);\r\n }\r\n }\r\n return results;\r\n} \t\r\n// Do these segments occupy the same vertical space?\r\nfunction isSlotSegCollision(seg1, seg2) {\r\n/////////////// stop physics of segments\r\n// return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\r\n return 0;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 247 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nvar TimeGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridHelperRenderer, _super);\r\n function TimeGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var i;\r\n var seg;\r\n var sourceEl;\r\n // TODO: not good to call eventRenderer this way\r\n this.eventRenderer.renderFgSegsIntoContainers(segs, this.component.helperContainerEls);\r\n // Try to make the segment that is in the same row as sourceSeg look the same\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (sourceSeg && sourceSeg.col === seg.col) {\r\n sourceEl = sourceSeg.el;\r\n seg.el.css({\r\n left: sourceEl.css('left'),\r\n right: sourceEl.css('right'),\r\n 'margin-left': sourceEl.css('margin-left'),\r\n 'margin-right': sourceEl.css('margin-right')\r\n });\r\n }\r\n helperNodes.push(seg.el[0]);\r\n }\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return TimeGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = TimeGridHelperRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 248 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridFillRenderer, _super);\r\n function TimeGridFillRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var timeGrid = this.component;\r\n var containerEls;\r\n // TODO: more efficient lookup\r\n if (type === 'bgEvent') {\r\n containerEls = timeGrid.bgContainerEls;\r\n }\r\n else if (type === 'businessHours') {\r\n containerEls = timeGrid.businessContainerEls;\r\n }\r\n else if (type === 'highlight') {\r\n containerEls = timeGrid.highlightContainerEls;\r\n }\r\n timeGrid.updateSegVerticals(segs);\r\n timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\r\n return segs.map(function (seg) {\r\n return seg.el[0];\r\n });\r\n };\r\n return TimeGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = TimeGridFillRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 249 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/* A rectangular panel that is absolutely positioned over other content\r\n------------------------------------------------------------------------------------------------------------------------\r\nOptions:\r\n - className (string)\r\n - content (HTML string or jQuery element set)\r\n - parentEl\r\n - top\r\n - left\r\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\r\n - autoHide (boolean)\r\n - show (callback)\r\n - hide (callback)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Popover = /** @class */ (function () {\r\n function Popover(options) {\r\n this.isHidden = true;\r\n this.margin = 10; // the space required between the popover and the edges of the scroll container\r\n this.options = options || {};\r\n }\r\n // Shows the popover on the specified position. Renders it if not already\r\n Popover.prototype.show = function () {\r\n if (this.isHidden) {\r\n if (!this.el) {\r\n this.render();\r\n }\r\n this.el.show();\r\n this.position();\r\n this.isHidden = false;\r\n this.trigger('show');\r\n }\r\n };\r\n // Hides the popover, through CSS, but does not remove it from the DOM\r\n Popover.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.el.hide();\r\n this.isHidden = true;\r\n this.trigger('hide');\r\n }\r\n };\r\n // Creates `this.el` and renders content inside of it\r\n Popover.prototype.render = function () {\r\n var _this = this;\r\n var options = this.options;\r\n this.el = $('
')\r\n .addClass(options.className || '')\r\n .css({\r\n // position initially to the top left to avoid creating scrollbars\r\n top: 0,\r\n left: 0\r\n })\r\n .append(options.content)\r\n .appendTo(options.parentEl);\r\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\r\n this.el.on('click', '.fc-close', function () {\r\n _this.hide();\r\n });\r\n if (options.autoHide) {\r\n this.listenTo($(document), 'mousedown', this.documentMousedown);\r\n }\r\n };\r\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\r\n Popover.prototype.documentMousedown = function (ev) {\r\n // only hide the popover if the click happened outside the popover\r\n if (this.el && !$(ev.target).closest(this.el).length) {\r\n this.hide();\r\n }\r\n };\r\n // Hides and unregisters any handlers\r\n Popover.prototype.removeElement = function () {\r\n this.hide();\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n this.stopListeningTo($(document), 'mousedown');\r\n };\r\n // Positions the popover optimally, using the top/left/right options\r\n Popover.prototype.position = function () {\r\n var options = this.options;\r\n var origin = this.el.offsetParent().offset();\r\n var width = this.el.outerWidth();\r\n var height = this.el.outerHeight();\r\n var windowEl = $(window);\r\n var viewportEl = util_1.getScrollParent(this.el);\r\n var viewportTop;\r\n var viewportLeft;\r\n var viewportOffset;\r\n var top; // the \"position\" (not \"offset\") values for the popover\r\n var left; //\r\n // compute top and left\r\n top = options.top || 0;\r\n if (options.left !== undefined) {\r\n left = options.left;\r\n }\r\n else if (options.right !== undefined) {\r\n left = options.right - width; // derive the left value from the right value\r\n }\r\n else {\r\n left = 0;\r\n }\r\n if (viewportEl.is(window) || viewportEl.is(document)) {\r\n viewportEl = windowEl;\r\n viewportTop = 0; // the window is always at the top left\r\n viewportLeft = 0; // (and .offset() won't work if called here)\r\n }\r\n else {\r\n viewportOffset = viewportEl.offset();\r\n viewportTop = viewportOffset.top;\r\n viewportLeft = viewportOffset.left;\r\n }\r\n // if the window is scrolled, it causes the visible area to be further down\r\n viewportTop += windowEl.scrollTop();\r\n viewportLeft += windowEl.scrollLeft();\r\n // constrain to the view port. if constrained by two edges, give precedence to top/left\r\n if (options.viewportConstrain !== false) {\r\n top = Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin);\r\n top = Math.max(top, viewportTop + this.margin);\r\n left = Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin);\r\n left = Math.max(left, viewportLeft + this.margin);\r\n }\r\n this.el.css({\r\n top: top - origin.top,\r\n left: left - origin.left\r\n });\r\n };\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n // TODO: better code reuse for this. Repeat code\r\n Popover.prototype.trigger = function (name) {\r\n if (this.options[name]) {\r\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n };\r\n return Popover;\r\n}());\r\nexports.default = Popover;\r\nListenerMixin_1.default.mixInto(Popover);\r\n\r\n\r\n/***/ }),\r\n/* 250 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\r\n/* Event-rendering methods for the DayGrid class\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridEventRenderer, _super);\r\n function DayGridEventRenderer(dayGrid, fillRenderer) {\r\n var _this = _super.call(this, dayGrid, fillRenderer) || this;\r\n _this.dayGrid = dayGrid;\r\n return _this;\r\n }\r\n DayGridEventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n // don't render timed background events\r\n eventRanges = $.grep(eventRanges, function (eventRange) {\r\n return eventRange.eventDef.isAllDay();\r\n });\r\n _super.prototype.renderBgRanges.call(this, eventRanges);\r\n };\r\n // Renders the given foreground event segments onto the grid\r\n DayGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\r\n // append to each row's content skeleton\r\n this.dayGrid.rowEls.each(function (i, rowNode) {\r\n $(rowNode).find('.fc-content-skeleton > table').append(rowStructs[i].tbodyEl);\r\n });\r\n };\r\n // Unrenders all currently rendered foreground event segments\r\n DayGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n var rowStructs = this.rowStructs || [];\r\n var rowStruct;\r\n while ((rowStruct = rowStructs.pop())) {\r\n rowStruct.tbodyEl.remove();\r\n }\r\n this.rowStructs = null;\r\n };\r\n // Uses the given events array to generate elements that should be appended to each row's content skeleton.\r\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\r\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\r\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\r\n var rowStructs = [];\r\n var segRows;\r\n var row;\r\n segRows = this.groupSegRows(segs); // group into nested arrays\r\n // iterate each row of segment groupings\r\n for (row = 0; row < segRows.length; row++) {\r\n rowStructs.push(this.renderSegRow(row, segRows[row]));\r\n }\r\n return rowStructs;\r\n };\r\n // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains\r\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\r\n // NOTE: modifies rowSegs\r\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\r\n var colCnt = this.dayGrid.colCnt;\r\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\r\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\r\n var tbody = $('');\r\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\r\n var cellMatrix = []; // lookup for all elements of the level+col matrix\r\n var loneCellMatrix = []; // lookup for elements that only take up a single column\r\n var i;\r\n var levelSegs;\r\n var col;\r\n var tr;\r\n var j;\r\n var seg;\r\n var td;\r\n // populates empty cells from the current column (`col`) to `endCol`\r\n function emptyCellsUntil(endCol) {\r\n while (col < endCol) {\r\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\r\n td = (loneCellMatrix[i - 1] || [])[col];\r\n if (td) {\r\n td.attr('rowspan', parseInt(td.attr('rowspan') || 1, 10) + 1);\r\n }\r\n else {\r\n td = $('');\r\n tr.append(td);\r\n }\r\n cellMatrix[i][col] = td;\r\n loneCellMatrix[i][col] = td;\r\n col++;\r\n }\r\n }\r\n for (i = 0; i < levelCnt; i++) {\r\n levelSegs = segLevels[i];\r\n col = 0;\r\n tr = $('');\r\n segMatrix.push([]);\r\n cellMatrix.push([]);\r\n loneCellMatrix.push([]);\r\n // levelCnt might be 1 even though there are no actual levels. protect against this.\r\n // this single empty row is useful for styling.\r\n if (levelSegs) {\r\n for (j = 0; j < levelSegs.length; j++) {\r\n seg = levelSegs[j];\r\n emptyCellsUntil(seg.leftCol);\r\n // create a container that occupies or more columns. append the event element.\r\n td = $('').append(seg.el);\r\n if (seg.leftCol !== seg.rightCol) {\r\n td.attr('colspan', seg.rightCol - seg.leftCol + 1);\r\n }\r\n else {\r\n loneCellMatrix[i][col] = td;\r\n }\r\n while (col <= seg.rightCol) {\r\n cellMatrix[i][col] = td;\r\n segMatrix[i][col] = seg;\r\n col++;\r\n }\r\n tr.append(td);\r\n }\r\n }\r\n emptyCellsUntil(colCnt); // finish off the row\r\n this.dayGrid.bookendCells(tr);\r\n tbody.append(tr);\r\n }\r\n return {\r\n row: row,\r\n tbodyEl: tbody,\r\n cellMatrix: cellMatrix,\r\n segMatrix: segMatrix,\r\n segLevels: segLevels,\r\n segs: rowSegs\r\n };\r\n };\r\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\r\n // NOTE: modifies segs\r\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n // Give preference to elements with certain criteria, so they have\r\n // a chance to be closer to the top.\r\n this.sortEventSegs(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\r\n for (j = 0; j < levels.length; j++) {\r\n if (!isDaySegCollision(seg, levels[j])) {\r\n break;\r\n }\r\n }\r\n // `j` now holds the desired subrow index\r\n seg.level = j;\r\n // create new level array if needed and append segment\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n // order segments left-to-right. very important if calendar is RTL\r\n for (j = 0; j < levels.length; j++) {\r\n levels[j].sort(compareDaySegCols);\r\n }\r\n return levels;\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\r\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\r\n var segRows = [];\r\n var i;\r\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\r\n segRows.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segRows[segs[i].row].push(segs[i]);\r\n }\r\n return segRows;\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n DayGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('extraSmallTimeFormat'); // like \"6p\" or \"6:30p\"\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\r\n };\r\n // Builds the HTML to be used for the default element for an individual segment\r\n DayGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var isAllDay = seg.footprint.componentFootprint.isAllDay;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && isAllDay &&\r\n seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && isAllDay &&\r\n seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeHtml = '';\r\n var timeText;\r\n var titleHtml;\r\n classes.unshift('fc-day-grid-event', 'fc-h-event');\r\n // Only display a timed events time if it is the starting segment\r\n if (seg.isStart) {\r\n timeText = this.getTimeText(seg.footprint);\r\n if (timeText) {\r\n timeHtml = '' + util_1.htmlEscape(timeText) + '';\r\n }\r\n }\r\n titleHtml =\r\n '' +\r\n (util_1.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\r\n '';\r\n return '' +\r\n '
' +\r\n (this.dayGrid.isRTL ?\r\n titleHtml + ' ' + timeHtml : // put a natural space in between\r\n timeHtml + ' ' + titleHtml //\r\n ) +\r\n '
' +\r\n (isResizableFromStart ?\r\n '
' :\r\n '') +\r\n (isResizableFromEnd ?\r\n '
' :\r\n '') +\r\n '';\r\n };\r\n return DayGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = DayGridEventRenderer;\r\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\r\nfunction isDaySegCollision(seg, otherSegs) {\r\n var i;\r\n var otherSeg;\r\n for (i = 0; i < otherSegs.length; i++) {\r\n otherSeg = otherSegs[i];\r\n if (otherSeg.leftCol <= seg.rightCol &&\r\n otherSeg.rightCol >= seg.leftCol) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n// A cmp function for determining the leftmost event\r\nfunction compareDaySegCols(a, b) {\r\n return a.leftCol - b.leftCol;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 251 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nvar DayGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridHelperRenderer, _super);\r\n function DayGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Renders a mock \"helper\" event. `sourceSeg` is the associated internal segment object. It can be null.\r\n DayGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var rowStructs;\r\n // TODO: not good to call eventRenderer this way\r\n rowStructs = this.eventRenderer.renderSegRows(segs);\r\n // inject each new event skeleton into each associated row\r\n this.component.rowEls.each(function (row, rowNode) {\r\n var rowEl = $(rowNode); // the .fc-row\r\n var skeletonEl = $('
'); // will be absolutely positioned\r\n var skeletonTopEl;\r\n var skeletonTop;\r\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\r\n if (sourceSeg && sourceSeg.row === row) {\r\n skeletonTop = sourceSeg.el.position().top;\r\n }\r\n else {\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton tbody');\r\n if (!skeletonTopEl.length) {\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton table');\r\n }\r\n skeletonTop = skeletonTopEl.position().top;\r\n }\r\n skeletonEl.css('top', skeletonTop)\r\n .find('table')\r\n .append(rowStructs[row].tbodyEl);\r\n rowEl.append(skeletonEl);\r\n helperNodes.push(skeletonEl[0]);\r\n });\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return DayGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = DayGridHelperRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 252 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nvar DayGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridFillRenderer, _super);\r\n function DayGridFillRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.fillSegTag = 'td'; // override the default tag name\r\n return _this;\r\n }\r\n DayGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var nodes = [];\r\n var i;\r\n var seg;\r\n var skeletonEl;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n skeletonEl = this.renderFillRow(type, seg);\r\n this.component.rowEls.eq(seg.row).append(skeletonEl);\r\n nodes.push(skeletonEl[0]);\r\n }\r\n return nodes;\r\n };\r\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\r\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\r\n var colCnt = this.component.colCnt;\r\n var startCol = seg.leftCol;\r\n var endCol = seg.rightCol + 1;\r\n var className;\r\n var skeletonEl;\r\n var trEl;\r\n if (type === 'businessHours') {\r\n className = 'bgevent';\r\n }\r\n else {\r\n className = type.toLowerCase();\r\n }\r\n skeletonEl = $('
' +\r\n '
' +\r\n '
');\r\n trEl = skeletonEl.find('tr');\r\n if (startCol > 0) {\r\n trEl.append('');\r\n }\r\n trEl.append(seg.el.attr('colspan', endCol - startCol));\r\n if (endCol < colCnt) {\r\n trEl.append('');\r\n }\r\n this.component.bookendCells(trEl);\r\n return skeletonEl;\r\n };\r\n return DayGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = DayGridFillRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 253 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(228);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar MonthViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthViewDateProfileGenerator, _super);\r\n function MonthViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n MonthViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay);\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n var rowCnt;\r\n // ensure 6 weeks\r\n if (this.opt('fixedWeekCount')) {\r\n rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\r\n end.diff(start, 'weeks', true) // dontRound=true\r\n );\r\n end.add(6 - rowCnt, 'weeks');\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return MonthViewDateProfileGenerator;\r\n}(BasicViewDateProfileGenerator_1.default));\r\nexports.default = MonthViewDateProfileGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 254 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\r\nvar ListEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventRenderer, _super);\r\n function ListEventRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ListEventRenderer.prototype.renderFgSegs = function (segs) {\r\n if (!segs.length) {\r\n this.component.renderEmptyMessage();\r\n }\r\n else {\r\n this.component.renderSegList(segs);\r\n }\r\n };\r\n // generates the HTML for a single event row\r\n ListEventRenderer.prototype.fgSegHtml = function (seg) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var eventFootprint = seg.footprint;\r\n var eventDef = eventFootprint.eventDef;\r\n var componentFootprint = eventFootprint.componentFootprint;\r\n var url = eventDef.url;\r\n var classes = ['fc-list-item'].concat(this.getClasses(eventDef));\r\n var bgColor = this.getBgColor(eventDef);\r\n var timeHtml;\r\n if (componentFootprint.isAllDay) {\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n else if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n if (seg.isStart || seg.isEnd) {\r\n timeHtml = util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay));\r\n }\r\n else {\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeHtml = util_1.htmlEscape(this.getTimeText(eventFootprint));\r\n }\r\n if (url) {\r\n classes.push('fc-has-url');\r\n }\r\n return '' +\r\n (this.displayEventTime ?\r\n '' +\r\n (timeHtml || '') +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n util_1.htmlEscape(eventDef.title || '') +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n // like \"4:00am\"\r\n ListEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('mediumTimeFormat');\r\n };\r\n return ListEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = ListEventRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 255 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar EventPointing_1 = __webpack_require__(59);\r\nvar ListEventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventPointing, _super);\r\n function ListEventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // for events with a url, the whole should be clickable,\r\n // but it's impossible to wrap with an tag. simulate this.\r\n ListEventPointing.prototype.handleClick = function (seg, ev) {\r\n var url;\r\n _super.prototype.handleClick.call(this, seg, ev); // might prevent the default action\r\n // not clicking on or within an with an href\r\n if (!$(ev.target).closest('a[href]').length) {\r\n url = seg.footprint.eventDef.url;\r\n if (url && !ev.isDefaultPrevented()) {\r\n window.location.href = url; // simulate link click\r\n }\r\n }\r\n };\r\n return ListEventPointing;\r\n}(EventPointing_1.default));\r\nexports.default = ListEventPointing;\r\n\r\n\r\n/***/ }),\r\n/* 256 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nvar FuncEventSource_1 = __webpack_require__(215);\r\nvar JsonFeedEventSource_1 = __webpack_require__(216);\r\nEventSourceParser_1.default.registerClass(ArrayEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(FuncEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(JsonFeedEventSource_1.default);\r\n\r\n\r\n/***/ }),\r\n/* 257 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nvar StandardTheme_1 = __webpack_require__(213);\r\nvar JqueryUiTheme_1 = __webpack_require__(214);\r\nvar Bootstrap3Theme_1 = __webpack_require__(258);\r\nvar Bootstrap4Theme_1 = __webpack_require__(259);\r\nThemeRegistry_1.defineThemeSystem('standard', StandardTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('jquery-ui', JqueryUiTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap3', Bootstrap3Theme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap4', Bootstrap4Theme_1.default);\r\n\r\n\r\n/***/ }),\r\n/* 258 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar Bootstrap3Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap3Theme, _super);\r\n function Bootstrap3Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap3Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap3Theme;\r\nBootstrap3Theme.prototype.classes = {\r\n widget: 'fc-bootstrap3',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-default',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'panel panel-default',\r\n popoverHeader: 'panel-heading',\r\n popoverContent: 'panel-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `panel` class b/c don't want margins/radius. only border color.\r\n headerRow: 'panel-default',\r\n dayRow: 'panel-default',\r\n // list view\r\n listView: 'panel panel-default'\r\n};\r\nBootstrap3Theme.prototype.baseIconClass = 'glyphicon';\r\nBootstrap3Theme.prototype.iconClasses = {\r\n close: 'glyphicon-remove',\r\n prev: 'glyphicon-chevron-left',\r\n next: 'glyphicon-chevron-right',\r\n prevYear: 'glyphicon-backward',\r\n nextYear: 'glyphicon-forward'\r\n};\r\nBootstrap3Theme.prototype.iconOverrideOption = 'bootstrapGlyphicons';\r\nBootstrap3Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapGlyphicon';\r\nBootstrap3Theme.prototype.iconOverridePrefix = 'glyphicon-';\r\n\r\n\r\n/***/ }),\r\n/* 259 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar Bootstrap4Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap4Theme, _super);\r\n function Bootstrap4Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap4Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap4Theme;\r\nBootstrap4Theme.prototype.classes = {\r\n widget: 'fc-bootstrap4',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'table-active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-primary',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'card card-primary',\r\n popoverHeader: 'card-header',\r\n popoverContent: 'card-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `table` class b/c don't want margins/padding/structure. only border color.\r\n headerRow: 'table-bordered',\r\n dayRow: 'table-bordered',\r\n // list view\r\n listView: 'card card-primary'\r\n};\r\nBootstrap4Theme.prototype.baseIconClass = 'fa';\r\nBootstrap4Theme.prototype.iconClasses = {\r\n close: 'fa-times',\r\n prev: 'fa-chevron-left',\r\n next: 'fa-chevron-right',\r\n prevYear: 'fa-angle-double-left',\r\n nextYear: 'fa-angle-double-right'\r\n};\r\nBootstrap4Theme.prototype.iconOverrideOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverridePrefix = 'fa-';\r\n\r\n\r\n/***/ }),\r\n/* 260 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar BasicView_1 = __webpack_require__(62);\r\nvar MonthView_1 = __webpack_require__(229);\r\nViewRegistry_1.defineView('basic', {\r\n 'class': BasicView_1.default\r\n});\r\nViewRegistry_1.defineView('basicDay', {\r\n type: 'basic',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('basicWeek', {\r\n type: 'basic',\r\n duration: { weeks: 1 }\r\n});\r\nViewRegistry_1.defineView('month', {\r\n 'class': MonthView_1.default,\r\n duration: { months: 1 },\r\n defaults: {\r\n fixedWeekCount: true\r\n }\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 261 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar AgendaView_1 = __webpack_require__(226);\r\nViewRegistry_1.defineView('agenda', {\r\n 'class': AgendaView_1.default,\r\n defaults: {\r\n allDaySlot: true,\r\n slotDuration: '00:30:00',\r\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\r\n }\r\n});\r\nViewRegistry_1.defineView('agendaDay', {\r\n type: 'agenda',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('agendaWeek', {\r\n type: 'agenda',\r\n duration: { weeks: 1 }\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 262 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar ListView_1 = __webpack_require__(230);\r\nViewRegistry_1.defineView('list', {\r\n 'class': ListView_1.default,\r\n buttonTextKey: 'list',\r\n defaults: {\r\n buttonText: 'list',\r\n listDayFormat: 'LL',\r\n noEventsMessage: 'No events to display'\r\n }\r\n});\r\nViewRegistry_1.defineView('listDay', {\r\n type: 'list',\r\n duration: { days: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header\r\n }\r\n});\r\nViewRegistry_1.defineView('listWeek', {\r\n type: 'list',\r\n duration: { weeks: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd',\r\n listDayAltFormat: 'LL'\r\n }\r\n});\r\nViewRegistry_1.defineView('listMonth', {\r\n type: 'list',\r\n duration: { month: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\nViewRegistry_1.defineView('listYear', {\r\n type: 'list',\r\n duration: { year: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 263 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\r\n\r\n/***/ })\r\n/******/ ]);\r\n});\n\n/***/ }),\n/* 294 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('full-calendar-reserve',{attrs:{\"show-modal\":_vm.showModalReserve,\"startDate\":_vm.startDate,\"endDate\":_vm.endDate,\"resources-checkboxes\":_vm.resourcesCheckboxes,\"number-of-resources\":_vm.selectedResources.length,\"add-reservation\":_vm.addReservation},on:{\"close\":function($event){_vm.showModalReserve = false}}}),_vm._v(\" \"),_c('full-calendar-info',{attrs:{\"show-modal\":_vm.showModalInfo,\"reservation\":_vm.reservation,\"cancel\":_vm.cancelReservation,\"update\":_vm.updateReservation,\"refreshTasks\":_vm.refreshTasks,\"nodes\":_vm.nodes},on:{\"close\":function($event){_vm.showModalInfo = false},\"handleError\":_vm.handleError}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 295 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MySchedule_vue__ = __webpack_require__(192);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3b70e2bc_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_MySchedule_vue__ = __webpack_require__(297);\nfunction injectStyle (ssrContext) {\n __webpack_require__(296)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3b70e2bc\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MySchedule_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3b70e2bc_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_MySchedule_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 296 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 297 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"range-select-container\"},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"scale-transition\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-text-field',{staticClass:\"date-input\",attrs:{\"slot\":\"activator\",\"label\":\"Schedule start date\",\"prepend-icon\":\"event\",\"readonly\":\"\"},slot:\"activator\",model:{value:(_vm.picker),callback:function ($$v) {_vm.picker=$$v},expression:\"picker\"}}),_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.menu = false; _vm.changeSchedule()}},model:{value:(_vm.picker),callback:function ($$v) {_vm.picker=$$v},expression:\"picker\"}})],1),_vm._v(\" \"),_c('v-text-field',{staticClass:\"range-input\",attrs:{\"min\":\"1\",\"step\":\"1\",\"type\":\"number\",\"label\":\"Schedule range in days\"},on:{\"input\":function($event){return _vm.changeSchedule()}},model:{value:(_vm.range),callback:function ($$v) {_vm.range=$$v},expression:\"range\"}})],1),_vm._v(\" \"),_c('div',{key:_vm.tableKey,staticClass:\"container\"},[_c('div',{staticClass:\"left-table\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('table',[_c('tbody',_vm._l((_vm.tableContent.resources),function(resource){return _c('tr',{key:resource.id},[_c('td',{staticClass:\"first-column\",class:{selected: resource.selected}},[(!resource.selected)?_c('v-btn',{staticClass:\"small-button\",attrs:{\"fab\":\"\",\"dark\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){return _vm.toggle(resource)}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"add\")])],1):_vm._e(),_vm._v(\" \"),(resource.selected)?_c('v-btn',{staticClass:\"small-button\",attrs:{\"fab\":\"\",\"dark\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){return _vm.toggle(resource)}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"remove\")])],1):_vm._e(),_vm._v(\"\\n \"+_vm._s(resource.name)+\"\\n \")],1)])}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"right-table\"},[_c('table',[_c('tbody',_vm._l((_vm.tableContent.header),function(header){return _c('th',{key:header.value},[_vm._v(_vm._s(header.value))])}),0)]),_vm._v(\" \"),_c('table',[_c('tbody',[_c('tr',_vm._l((_vm.tableContent.hours),function(hours){return _c('td',{key:hours.id,staticClass:\"hours\"},[_vm._v(_vm._s(hours.value))])}),0)])]),_vm._v(\" \"),_c('table',[_c('tbody',_vm._l((_vm.tableContent.resources),function(resource){return _c('tr',{key:resource.id},_vm._l((resource.slots),function(slots){return _c('td',{key:slots.id,class:{ 'reserved': slots.reserved, 'userReservation': slots.userReservation }},[_vm._v(_vm._s(slots.value))])}),0)}),0)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tbody',[_c('th',{staticClass:\"first-column\"},[_vm._v(\"Resources\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tbody',[_c('tr',[_c('td',{staticClass:\"first-column\"},[_vm._v(\"Hours\")])])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 298 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('v-snackbar',{attrs:{\"color\":\"error\",\"bottom\":\"\",\"multi-line\":\"\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \"),_c('v-btn',{attrs:{\"color\":\"white\",\"flat\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},[_vm._v(\"\\n Close\\n \")])],1),_vm._v(\" \"),_c('section',{attrs:{\"id\":\"schedule_section\"}},[_c('MySchedule',{attrs:{\"parsed-nodes\":_vm.parsedNodes},on:{\"handleError\":function($event){return _vm.handleError.apply(void 0, arguments)},\"loadResources\":function($event){return _vm.loadResources.apply(void 0, arguments)}}})],1),_vm._v(\" \"),_c('section',{attrs:{\"id\":\"calendar_section\"}},[_c('FullCalendar',{attrs:{\"update-calendar\":_vm.updateCalendar,\"selected-resources\":_vm.selectedResources,\"nodes\":_vm.nodes},on:{\"handleError\":function($event){return _vm.handleError.apply(void 0, arguments)}}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 299 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_NodesOverview_vue__ = __webpack_require__(193);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18fc6060_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_NodesOverview_vue__ = __webpack_require__(315);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_NodesOverview_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_18fc6060_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_NodesOverview_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 300 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_WatchGenerator_vue__ = __webpack_require__(194);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_09be105e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_WatchGenerator_vue__ = __webpack_require__(314);\nfunction injectStyle (ssrContext) {\n __webpack_require__(301)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_WatchGenerator_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_09be105e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_WatchGenerator_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 301 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 302 */,\n/* 303 */,\n/* 304 */,\n/* 305 */,\n/* 306 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_WatchBox_vue__ = __webpack_require__(195);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_76d51dc2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_WatchBox_vue__ = __webpack_require__(313);\nfunction injectStyle (ssrContext) {\n __webpack_require__(307)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_WatchBox_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_76d51dc2_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_WatchBox_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 307 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 308 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LineChart_vue__ = __webpack_require__(196);\n/* unused harmony namespace reexport */\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\nvar __vue_template__ = null\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LineChart_vue__[\"a\" /* default */],\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 309 */,\n/* 310 */,\n/* 311 */,\n/* 312 */,\n/* 313 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"select_line\"},[_c('v-select',{staticClass:\"select_item\",attrs:{\"items\":_vm.nodes},model:{value:(_vm.selectedNode),callback:function ($$v) {_vm.selectedNode=$$v},expression:\"selectedNode\"}}),_vm._v(\" \"),_c('div',{staticClass:\"select_space\"}),_vm._v(\" \"),_c('v-select',{staticClass:\"select_item\",attrs:{\"items\":_vm.resourceTypes},model:{value:(_vm.selectedResourceType),callback:function ($$v) {_vm.selectedResourceType=$$v},expression:\"selectedResourceType\"}}),_vm._v(\" \"),_c('div',{staticClass:\"select_space\"}),_vm._v(\" \"),_c('v-select',{staticClass:\"select_item\",attrs:{\"items\":_vm.metrics},model:{value:(_vm.selectedMetric),callback:function ($$v) {_vm.selectedMetric=$$v},expression:\"selectedMetric\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"indigo\",\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"outline\":\"\"},on:{\"click\":function($event){return _vm.removeMe()}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"delete\")])],1)],1),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),(_vm.showProcesses === true)?_c('div',{staticClass:\"table_box\"},[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.processes,\"item-key\":\"pid\",\"hide-actions\":\"\"},scopedSlots:_vm._u([{key:\"items\",fn:function(props){return [_c('tr',{on:{\"click\":function($event){props.expanded = !props.expanded}}},[_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.index))]),_vm._v(\" \"),_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.owner))]),_vm._v(\" \"),_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.pid))]),_vm._v(\" \"),_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.command))])])]}},{key:\"expand\",fn:function(props){return [_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',[_vm._v(\"GPU UUID: \"+_vm._s(props.item.uuid))])],1)]}}],null,false,51043860)})],1):_c('div',[_c('LineChart',{staticClass:\"chart_box\",attrs:{\"chart-data\":_vm.metricData,\"options\":_vm.metricOptions,\"rerender-chart\":_vm.rerenderChart,\"update-chart\":_vm.updateChart}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 314 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.addWatch}},[_vm._v(\"\\n Add watch\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"watch_table\"},_vm._l((_vm.watches),function(watch){return _c('WatchBox',{key:watch.id,staticClass:\"watch_box\",attrs:{\"default-node\":watch.defaultNode,\"default-resource-type\":watch.defaultResourceType,\"default-metric\":watch.defaultMetric,\"resources-indexes\":_vm.resourcesIndexes,\"chart-datasets\":_vm.chartDatasets,\"update-chart\":_vm.updateChart,\"time\":_vm.time},on:{\"changeDefaultNode\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeDefaultNode.apply(void 0, [ watch.id ].concat( argsArray ))},\"changeDefaultResourceType\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeDefaultResourceType.apply(void 0, [ watch.id ].concat( argsArray ))},\"changeDefaultMetric\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeDefaultMetric.apply(void 0, [ watch.id ].concat( argsArray ))},\"deleteWatch\":function($event){return _vm.deleteWatch(watch.id)}}})}),1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 315 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('WatchGenerator')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 316 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TasksOverview_vue__ = __webpack_require__(197);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3aaf4402_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TasksOverview_vue__ = __webpack_require__(336);\nfunction injectStyle (ssrContext) {\n __webpack_require__(317)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TasksOverview_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3aaf4402_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TasksOverview_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 317 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 318 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskCreate_vue__ = __webpack_require__(198);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1853547a_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskCreate_vue__ = __webpack_require__(326);\nfunction injectStyle (ssrContext) {\n __webpack_require__(319)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1853547a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskCreate_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_1853547a_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskCreate_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 319 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 320 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLine_vue__ = __webpack_require__(199);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b07ebe7c_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLine_vue__ = __webpack_require__(325);\nfunction injectStyle (ssrContext) {\n __webpack_require__(321)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-b07ebe7c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLine_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_b07ebe7c_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLine_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 321 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 322 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLineParameter_vue__ = __webpack_require__(200);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d52c3886_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLineParameter_vue__ = __webpack_require__(324);\nfunction injectStyle (ssrContext) {\n __webpack_require__(323)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLineParameter_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d52c3886_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLineParameter_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 323 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 324 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-text-field',{staticClass:\"task-input\",attrs:{\"label\":_vm.newParameter,\"small\":\"\"},model:{value:(_vm.newValue),callback:function ($$v) {_vm.newValue=$$v},expression:\"newValue\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"remove-button\",attrs:{\"color\":\"indigo\",\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"outline\":\"\"},on:{\"click\":function($event){return _vm.removeMe()}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"delete\")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 325 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-center\":\"\"}},[_c('div',{staticClass:\"task-preview\"},[_vm._v(\"\\n \"+_vm._s(_vm.taskPreview)+\"\\n \")])]),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-select',{staticClass:\"task-select\",attrs:{\"items\":_vm.hostnames,\"label\":\"Hostname\",\"small\":\"\"},model:{value:(_vm.newHost),callback:function ($$v) {_vm.newHost=$$v},expression:\"newHost\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-select',{staticClass:\"task-select\",attrs:{\"items\":_vm.hostResources,\"label\":\"Resource\",\"small\":\"\"},model:{value:(_vm.newResource),callback:function ($$v) {_vm.newResource=$$v},expression:\"newResource\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"task-input\",attrs:{\"label\":\"Command\",\"small\":\"\"},model:{value:(_vm.newCommand),callback:function ($$v) {_vm.newCommand=$$v},expression:\"newCommand\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},_vm._l((_vm.parameters),function(parameter){return _c('TaskLineParameter',{key:parameter.id,staticClass:\"task-input\",attrs:{\"parameter\":parameter.parameter,\"value\":parameter.value},on:{\"changeParameter\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeParameter.apply(void 0, [ parameter.id ].concat( argsArray ))},\"deleteParameter\":function($event){return _vm.deleteParameter(parameter.id)}}})}),1),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeMe()}}},[_vm._v(\"\\n Remove task\\n \")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 326 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"80vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Create tasks\")]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(\"\\n info\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"CPU tasks can be run without making reservation.\\n \"),_c('br'),_vm._v(\"When you want to create a GPU task, you must\\n \"),_c('br'),_vm._v(\"first ensure that you are eligible to do so\\n \"),_c('br'),_vm._v(\"(having active reservation for that GPU).\\n \")])])],1),_vm._v(\" \"),_c('v-card-text',_vm._l((_vm.lines),function(line){return _c('TaskLine',{key:line.id,attrs:{\"hostnames\":_vm.hostnames,\"hosts\":_vm.hosts,\"host\":line.host,\"resource\":line.resource,\"command\":line.command,\"parameters\":line.parameters},on:{\"changeLine\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeLine.apply(void 0, [ line.id ].concat( argsArray ))},\"deleteLine\":function($event){return _vm.deleteLine(line.id)}}})}),1),_vm._v(\" \"),_c('v-card-text',[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"block\":\"\",\"small\":\"\"},on:{\"click\":_vm.copyLine}},[_vm._v(\"\\n Add task\\n \")])],1),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-text-field',{staticClass:\"parameter-name-input\",attrs:{\"label\":\"Parameter name\",\"small\":\"\"},model:{value:(_vm.newParameter),callback:function ($$v) {_vm.newParameter=$$v},expression:\"newParameter\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"round\":\"\"},on:{\"click\":_vm.addParameter}},[_vm._v(\"\\n Add parameter to all tasks\\n \")])],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.addTasks}},[_vm._v(\"\\n Create all tasks\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 327 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskEdit_vue__ = __webpack_require__(201);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_23f3faef_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskEdit_vue__ = __webpack_require__(329);\nfunction injectStyle (ssrContext) {\n __webpack_require__(328)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-23f3faef\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskEdit_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_23f3faef_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskEdit_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 328 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 329 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"80vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Edit task\")])]),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-text-field',{staticClass:\"host-input\",attrs:{\"label\":\"Hostname\",\"small\":\"\"},model:{value:(_vm.newHost),callback:function ($$v) {_vm.newHost=$$v},expression:\"newHost\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"command-input\",attrs:{\"label\":\"Command\",\"small\":\"\"},model:{value:(_vm.newCommand),callback:function ($$v) {_vm.newCommand=$$v},expression:\"newCommand\"}})],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.changeTask}},[_vm._v(\"\\n Edit task\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 330 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskSchedule_vue__ = __webpack_require__(202);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_54bcbb8f_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskSchedule_vue__ = __webpack_require__(332);\nfunction injectStyle (ssrContext) {\n __webpack_require__(331)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-54bcbb8f\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskSchedule_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_54bcbb8f_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskSchedule_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 331 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 332 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"40vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Schedule task\")])]),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-checkbox',{attrs:{\"label\":\"Set spawn time\"},model:{value:(_vm.spawn),callback:function ($$v) {_vm.spawn=$$v},expression:\"spawn\"}}),_vm._v(\" \"),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Spawn date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newSpawnDate),callback:function ($$v) {_vm.newSpawnDate=$$v},expression:\"newSpawnDate\"}},on))]}}]),model:{value:(_vm.spawnDateMenu),callback:function ($$v) {_vm.spawnDateMenu=$$v},expression:\"spawnDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.spawnDateMenu = false}},model:{value:(_vm.newSpawnDate),callback:function ($$v) {_vm.newSpawnDate=$$v},expression:\"newSpawnDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"spawnMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newSpawnTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newSpawnTime=$event},\"update:return-value\":function($event){_vm.newSpawnTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Spawn time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newSpawnTime),callback:function ($$v) {_vm.newSpawnTime=$$v},expression:\"newSpawnTime\"}},on))]}}]),model:{value:(_vm.spawnTimeMenu),callback:function ($$v) {_vm.spawnTimeMenu=$$v},expression:\"spawnTimeMenu\"}},[_vm._v(\" \"),(_vm.spawnTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.spawnMenu.save(_vm.newSpawnTime)}},model:{value:(_vm.newSpawnTime),callback:function ($$v) {_vm.newSpawnTime=$$v},expression:\"newSpawnTime\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-checkbox',{attrs:{\"label\":\"Set terminate time\"},model:{value:(_vm.terminate),callback:function ($$v) {_vm.terminate=$$v},expression:\"terminate\"}}),_vm._v(\" \"),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Terminate date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newTerminateDate),callback:function ($$v) {_vm.newTerminateDate=$$v},expression:\"newTerminateDate\"}},on))]}}]),model:{value:(_vm.terminateDateMenu),callback:function ($$v) {_vm.terminateDateMenu=$$v},expression:\"terminateDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.terminateDateMenu = false}},model:{value:(_vm.newTerminateDate),callback:function ($$v) {_vm.newTerminateDate=$$v},expression:\"newTerminateDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"terminateMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newTerminateTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newTerminateTime=$event},\"update:return-value\":function($event){_vm.newTerminateTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Terminate time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newTerminateTime),callback:function ($$v) {_vm.newTerminateTime=$$v},expression:\"newTerminateTime\"}},on))]}}]),model:{value:(_vm.terminateTimeMenu),callback:function ($$v) {_vm.terminateTimeMenu=$$v},expression:\"terminateTimeMenu\"}},[_vm._v(\" \"),(_vm.terminateTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.terminateMenu.save(_vm.newTerminateTime)}},model:{value:(_vm.newTerminateTime),callback:function ($$v) {_vm.newTerminateTime=$$v},expression:\"newTerminateTime\"}}):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.checkActionFlag}},[_vm._v(\"\\n Schedule task\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 333 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLog_vue__ = __webpack_require__(203);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4d909ec3_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLog_vue__ = __webpack_require__(335);\nfunction injectStyle (ssrContext) {\n __webpack_require__(334)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4d909ec3\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_TaskLog_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4d909ec3_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_TaskLog_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 334 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 335 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"80vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Task log\")])]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.path)+\"\\n \"),_c('div',{staticClass:\"log_box\"},_vm._l((_vm.lines),function(line,index){return _c('div',{key:index},[_vm._v(\"\\n \"+_vm._s(line)+\"\\n \")])}),0)]),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Close\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 336 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('TaskCreate',{attrs:{\"show-modal\":_vm.showModalCreate,\"hostnames\":_vm.hostnames,\"hosts\":_vm.hosts,\"actionFlag\":_vm.actionFlag},on:{\"close\":function($event){_vm.showModalCreate = false},\"getTasks\":_vm.getTasks}}),_vm._v(\" \"),_c('TaskEdit',{attrs:{\"show-modal\":_vm.showModalEdit,\"taskId\":_vm.taskId,\"hostname\":_vm.newHostname,\"command\":_vm.newCommand,\"actionFlag\":_vm.actionFlag},on:{\"close\":function($event){_vm.showModalEdit = false},\"getTask\":function($event){return _vm.getTask.apply(void 0, arguments)},\"changeActionFlag\":function($event){return _vm.changeActionFlag.apply(void 0, arguments)},\"changeSnackbar\":function($event){return _vm.changeSnackbar.apply(void 0, arguments)}}}),_vm._v(\" \"),_c('TaskSchedule',{attrs:{\"show-modal\":_vm.showModalSchedule,\"taskId\":_vm.taskId,\"spawnTime\":_vm.newSpawnTime,\"terminateTime\":_vm.newTerminateTime,\"actionFlag\":_vm.actionFlag,\"multipleFlag\":_vm.multipleFlag,\"selected\":_vm.selected},on:{\"close\":function($event){_vm.showModalSchedule = false},\"updateTask\":function($event){return _vm.updateTask.apply(void 0, arguments)},\"changeActionFlag\":function($event){return _vm.changeActionFlag.apply(void 0, arguments)},\"changeSnackbar\":function($event){return _vm.changeSnackbar.apply(void 0, arguments)},\"handleError\":function($event){return _vm.handleError.apply(void 0, arguments)}}}),_vm._v(\" \"),_c('TaskLog',{attrs:{\"show-modal\":_vm.showModalLog,\"lines\":_vm.logs,\"path\":_vm.path},on:{\"close\":function($event){_vm.showModalLog = false}}}),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.showModalHowItWorks),callback:function ($$v) {_vm.showModalHowItWorks=$$v},expression:\"showModalHowItWorks\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline grey lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n How it works\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Your tasks are managed by `screen` program installed on each machine. You can attach\\n to/close them as they are running. Screen sessions created by TensorHive have custom\\n names so you won't be confused which is which.\"),_c('br'),_c('br'),_vm._v(\"\\n When your task command stops executing, screen session will disappear from `screen -ls`\\n but stdout produced your process will be redirected to a log file.\\n Logs are automatically gathered and stored on that machine under `~/TensorHiveLogs`\\n \")]),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"flat\":\"\"},on:{\"click\":function($event){_vm.showModalHowItWorks = false}}},[_vm._v(\"\\n Close\\n \")])],1)],1)],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"400\"},model:{value:(_vm.showModalRemove),callback:function ($$v) {_vm.showModalRemove=$$v},expression:\"showModalRemove\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline grey lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Do you want to remove this task?\\n \")]),_vm._v(\" \"),_c('v-card-actions',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModalRemove= false}}},[_vm._v(\"\\n No\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.removeTask()}}},[_vm._v(\"\\n Yes\\n \")])],1)],1)],1)],1),_vm._v(\" \"),_c('v-data-table',{key:_vm.tableKey,staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.tasks,\"pagination\":_vm.pagination,\"loading\":_vm.actionFlag,\"select-all\":\"\",\"item-key\":\"id\"},on:{\"update:pagination\":function($event){_vm.pagination=$event}},scopedSlots:_vm._u([{key:\"headers\",fn:function(props){return [_c('tr',[_c('th',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-checkbox',{attrs:{\"input-value\":props.all,\"indeterminate\":props.indeterminate,\"primary\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleAll($event)}}}),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){_vm.showModalHowItWorks = true}}},on),[_vm._v(\"\\n info\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"How it works\")])])],1)],1),_vm._v(\" \"),_vm._l((props.headers),function(header){return _c('th',{key:header.text,class:['column sortable', _vm.pagination.descending ? 'desc' : 'asc', header.value === _vm.pagination.sortBy ? 'active' : ''],on:{\"click\":function($event){return _vm.changeSort(header.value)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"arrow_upward\")]),_vm._v(\"\\n \"+_vm._s(header.text)+\"\\n \")],1)})],2)]}},{key:\"items\",fn:function(props){return [_c('tr',{attrs:{\"active\":props.selected},on:{\"click\":function($event){props.selected = !props.selected}}},[_c('td',[_c('v-checkbox',{attrs:{\"input-value\":props.selected,\"primary\":\"\",\"hide-details\":\"\"}})],1),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.id))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.hostname))]),_vm._v(\" \"),_c('td',{staticClass:\"task-command\"},[_vm._v(_vm._s(props.item.command))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.pid))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.status))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.spawnAt)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.terminateAt)))]),_vm._v(\" \"),_c('td',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.scheduleTasks(props.item)}}},on),[_vm._v(\"\\n schedule\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Schedule task\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.spawnTasks(props.item.id)}}},on),[_vm._v(\"\\n play_arrow\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Spawn task\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.terminateTasks(props.item.id, null)}}},on),[_vm._v(\"\\n stop\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Terminate task - does not guarantee that\\n \"),_c('br'),_vm._v(\" task will stop (depends on command)\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticStyle:{\"font-size\":\"20px\"},on:{\"click\":function($event){return _vm.terminateTasks(props.item.id, false)}}},on),[_vm._v(\"\\n 💀\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Kill task - use when command is more stubborn\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticStyle:{\"font-size\":\"20px\"},on:{\"click\":function($event){return _vm.getLog(props.item.id)}}},on),[_vm._v(\"\\n description\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Show log\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.editTask(props.item)}}},on),[_vm._v(\"\\n edit\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Edit task\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.showConfirmationDialog(props.item.id)}}},on),[_vm._v(\"\\n delete\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Remove task\")])])],1)])]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},[_vm._v(\" \"),_c('v-progress-linear',{attrs:{\"indeterminate\":true},scopedSlots:_vm._u([{key:\"progress\",fn:function(){return undefined},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"text-xs-center pt-2\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.showModalCreate=true}}},[_vm._v(\"Create tasks\")]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.getTasks(true)}}},on),[_vm._v(\"\\n refresh\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Refresh\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.scheduleTasks(null)}}},on),[_vm._v(\"\\n schedule\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Schedule selected tasks\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.spawnTasks(null)}}},on),[_vm._v(\"\\n play_arrow\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Spawn selected tasks\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.terminateTasks(null, null)}}},on),[_vm._v(\"\\n stop\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Terminate selected tasks - does not guarantee that\\n \"),_c('br'),_vm._v(\"task will stop (depends on command)\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticStyle:{\"font-size\":\"20px\"},on:{\"click\":function($event){return _vm.terminateTasks(null, false)}}},on),[_vm._v(\"\\n 💀\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Kill selected tasks - use when command is more stubborn\")])])],1),_vm._v(\" \"),_c('v-snackbar',{attrs:{\"color\":\"amber\",\"bottom\":\"\",\"multi-line\":\"\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',{staticStyle:{\"color\":\"black\"}},[_vm._v(\" Synchronization in progress. Actions are not allowed now. \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"black\",\"flat\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},[_vm._v(\"\\n Close\\n \")])],1),_vm._v(\" \"),_c('v-snackbar',{attrs:{\"color\":\"red\",\"bottom\":\"\",\"multi-line\":\"\"},model:{value:(_vm.snackbarError),callback:function ($$v) {_vm.snackbarError=$$v},expression:\"snackbarError\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \"),_c('v-btn',{attrs:{\"color\":\"black\",\"flat\":\"\"},on:{\"click\":function($event){_vm.snackbarError = false}}},[_vm._v(\"\\n Close\\n \")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 337 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UsersOverview_vue__ = __webpack_require__(204);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3f0582b0_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_UsersOverview_vue__ = __webpack_require__(339);\nfunction injectStyle (ssrContext) {\n __webpack_require__(338)\n}\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3f0582b0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_UsersOverview_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_3f0582b0_hasScoped_true_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_UsersOverview_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 338 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 339 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"info\"},model:{value:(_vm.created),callback:function ($$v) {_vm.created=$$v},expression:\"created\"}},[_vm._v(\"\\n User successfully created\\n \")]),_vm._v(\" \"),_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"50vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Create new user\")])]),_vm._v(\" \"),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser($event)}}},[_vm._v(\"\\n Username\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-user\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalUsername),expression:\"modalUsername\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalUsername\",\"placeholder\":\"Username\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalUsername)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalUsername=$event.target.value}}})]),_vm._v(\"\\n Email\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalEmail),expression:\"modalEmail\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalEmail\",\"placeholder\":\"Email\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalEmail)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalEmail=$event.target.value}}})]),_vm._v(\"\\n Password\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword),expression:\"modalPassword\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword=$event.target.value}}})]),_vm._v(\"\\n Repeat password\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword2),expression:\"modalPassword2\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword2\",\"placeholder\":\"Password2\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword2=$event.target.value}}})]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.modalAlert),callback:function ($$v) {_vm.modalAlert=$$v},expression:\"modalAlert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModal=false}}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\"\\n Create\\n \")])],1)])],1)],1)],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"400\"},model:{value:(_vm.showModalRemove),callback:function ($$v) {_vm.showModalRemove=$$v},expression:\"showModalRemove\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline grey lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Do you want to remove this user?\\n \")]),_vm._v(\" \"),_c('v-card-actions',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModalRemove= false}}},[_vm._v(\"\\n No\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.removeUser()}}},[_vm._v(\"\\n Yes\\n \")])],1)],1)],1)],1),_vm._v(\" \"),_c('div',[_c('div',{staticClass:\"text-xs-center pt-2\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.showModal=true}}},[_vm._v(\"Create user\")])],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-text',[_c('v-card-text',[_vm._v(\"\\n Edit user\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Current username: \"+_vm._s(_vm.currentUser.username)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n New username\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.username),expression:\"user.username\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalUsername\",\"placeholder\":\"Username\",\"type\":\"text\"},domProps:{\"value\":(_vm.user.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"username\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Current email: \"+_vm._s(_vm.currentUser.email)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n New email\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.email),expression:\"user.email\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalEmail\",\"placeholder\":\"Email\",\"type\":\"text\"},domProps:{\"value\":(_vm.user.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"email\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n New password\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Repeat password\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password2),expression:\"user.password2\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword2\",\"placeholder\":\"Password2\",\"type\":\"password\"},domProps:{\"value\":(_vm.user.password2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password2\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Account roles:\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('v-checkbox',{attrs:{\"label\":\"admin\"},model:{value:(_vm.adminCheckbox),callback:function ($$v) {_vm.adminCheckbox=$$v},expression:\"adminCheckbox\"}})],1)],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"flat\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"flat\":\"\"},on:{\"click\":_vm.updateUser}},[_vm._v(\"Edit\")])],1)],1)],1),_vm._v(\" \"),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.users,\"search\":_vm.search,\"pagination\":_vm.pagination,\"item-key\":\"id\",\"hide-actions\":\"\"},on:{\"update:pagination\":function($event){_vm.pagination=$event}},scopedSlots:_vm._u([{key:\"items\",fn:function(props){return [_c('tr',[_c('td',[_vm._v(_vm._s(props.item.id))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.username))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.email))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.createdAt)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.role))]),_vm._v(\" \"),_c('td',[_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.editUser(props.item)}}},[_vm._v(\"\\n edit\\n \")]),_vm._v(\" \"),_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.showConfirmationDialog(props.item.id)}}},[_vm._v(\"\\n delete\\n \")])],1)])]}}])}),_vm._v(\" \"),_c('div',{staticClass:\"text-xs-center pt-2\"},[_c('v-pagination',{attrs:{\"length\":_vm.pages},model:{value:(_vm.pagination.page),callback:function ($$v) {_vm.$set(_vm.pagination, \"page\", $$v)},expression:\"pagination.page\"}})],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 340 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vuex__ = __webpack_require__(341);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__state__ = __webpack_require__(342);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__actions__ = __webpack_require__(343);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__mutations__ = __webpack_require__(344);\n\n\n\n\n\n\n__WEBPACK_IMPORTED_MODULE_0_vue__[\"default\"].use(__WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */]);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (new __WEBPACK_IMPORTED_MODULE_1_vuex__[\"a\" /* default */].Store({\n state: __WEBPACK_IMPORTED_MODULE_2__state__[\"a\" /* default */],\n actions: __WEBPACK_IMPORTED_MODULE_3__actions__[\"a\" /* default */],\n mutations: __WEBPACK_IMPORTED_MODULE_4__mutations__[\"a\" /* default */]\n}));\n\n/***/ }),\n/* 341 */,\n/* 342 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n callingAPI: false,\n searching: '',\n serverURI: 'http://10.110.1.136:8080',\n user: null,\n role: null,\n id: null,\n accessToken: null,\n refreshToken: null,\n userInfo: {\n messages: [{ 1: 'test', 2: 'test' }],\n notifications: [],\n tasks: []\n }\n});\n\n/***/ }),\n/* 343 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({});\n\n/***/ }),\n/* 344 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n TOGGLE_LOADING: function TOGGLE_LOADING(state) {\n state.callingAPI = !state.callingAPI;\n },\n TOGGLE_SEARCHING: function TOGGLE_SEARCHING(state) {\n state.searching = state.searching === '' ? 'loading' : '';\n },\n SET_USER: function SET_USER(state, user) {\n state.user = user;\n },\n SET_ROLE: function SET_ROLE(state, role) {\n state.role = role;\n },\n SET_ID: function SET_ID(state, id) {\n state.id = id;\n },\n SET_ACCESS_TOKEN: function SET_ACCESS_TOKEN(state, token) {\n state.accessToken = token;\n },\n SET_REFRESH_TOKEN: function SET_REFRESH_TOKEN(state, token) {\n state.refreshToken = token;\n }\n});\n\n/***/ }),\n/* 345 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = domain;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = count;\n/* harmony export (immutable) */ __webpack_exports__[\"d\"] = prettyDate;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = pluralize;\nvar urlParser = document.createElement('a');\n\nfunction domain(url) {\n urlParser.href = url;\n return urlParser.hostname;\n}\n\nfunction count(arr) {\n return arr.length;\n}\n\nfunction prettyDate(date) {\n var a = new Date(date);\n return a.toDateString();\n}\n\nfunction pluralize(time, label) {\n if (time === 1) {\n return time + label;\n }\n\n return time + label + 's';\n}\n\n/***/ }),\n/* 346 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__ = __webpack_require__(205);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_535f2ac0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__ = __webpack_require__(347);\nvar normalizeComponent = __webpack_require__(1)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_App_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_535f2ac0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_App_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 347 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 348 */,\n/* 349 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 350 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ })\n],[206]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.607bb86363643317145e.js","import axios from 'axios'\nimport config from '../config'\n\nexport default {\n request (method, uri, token, data = null) {\n if (!method) {\n console.error('API function call requires method argument')\n return\n }\n\n if (!uri) {\n console.error('API function call requires uri argument')\n return\n }\n\n var url = config.serverURI + uri\n if (token !== null) {\n axios.defaults.headers.common['Authorization'] = token\n }\n return axios({ method: method, url: url, data: data })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/api/index.js","export default {\n serverURI: '',\n apiVersion: '',\n version: '',\n fixedLayout: false,\n hideLogoOnMobile: false\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/config/index.js","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/TheDash.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/dash/BaseSidebar.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/dash/BaseSidebarMenu.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/TheLogin.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/404.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/ReservationsOverview.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/reserve_resources/FullCalendar.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/reserve_resources/FullCalendarReserve.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/reserve_resources/FullCalendarInfo.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/reserve_resources/MySchedule.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/NodesOverview.vue","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/nodes_overview/WatchGenerator.vue","\r\n\r\n\r\n\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/nodes_overview/WatchBox.vue","\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/nodes_overview/LineChart.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/TasksOverview.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/tasks_overview/TaskCreate.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/tasks_overview/TaskLine.vue","\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/tasks_overview/TaskLineParameter.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/tasks_overview/TaskEdit.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/tasks_overview/TaskSchedule.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/tasks_overview/TaskLog.vue","\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/views/UsersOverview.vue","\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/App.vue","// Import ES6 Promise\nimport 'es6-promise/auto'\n\n// Import System requirements\nimport Vue from 'vue'\nimport VueRouter from 'vue-router'\n\nimport { sync } from 'vuex-router-sync'\nimport routes from './routes'\nimport store from './store'\nimport api from './api'\n\n// Import Helpers for filters\nimport { domain, count, prettyDate, pluralize } from './filters'\n\n// Import Views - Top level\nimport AppView from './components/App.vue'\n\nimport Vuetify from 'vuetify'\nimport 'vuetify/dist/vuetify.min.css'\nimport 'material-design-icons-iconfont/dist/material-design-icons.css'\n\nimport axios from 'axios'\nimport config from './config'\naxios.get('static/config.json').then(response => {\n config.serverURI = response.data.apiPath\n config.apiVersion = response.data.apiVersion\n config.version = response.data.version\n if (window.localStorage) {\n var apiVersion = JSON.parse(window.localStorage.getItem('apiVersion'))\n var version = JSON.parse(window.localStorage.getItem('version'))\n if (apiVersion === null) {\n if (config.apiVersion !== undefined) {\n window.localStorage.setItem('apiVersion', JSON.stringify(config.apiVersion))\n } else {\n window.localStorage.setItem('apiVersion', JSON.stringify('no data in config file'))\n }\n } else if (apiVersion !== config.apiVersion) {\n window.localStorage.clear()\n location.reload(true)\n }\n if (version === null) {\n if (config.version !== undefined) {\n window.localStorage.setItem('version', JSON.stringify(config.apiVersion))\n } else {\n window.localStorage.setItem('version', JSON.stringify('no data in config file'))\n }\n } else if (version !== config.version) {\n window.localStorage.clear()\n location.reload(true)\n }\n }\n\n Vue.use(Vuetify)\n\n // Import Install and register helper items\n Vue.filter('count', count)\n Vue.filter('domain', domain)\n Vue.filter('prettyDate', prettyDate)\n Vue.filter('pluralize', pluralize)\n\n Vue.use(VueRouter)\n\n // Routing logic\n var router = new VueRouter({\n routes: routes,\n mode: 'history',\n linkExactActiveClass: 'active',\n scrollBehavior: function (to, from, savedPosition) {\n return savedPosition || { x: 0, y: 0 }\n }\n })\n\n // Some middleware to help us ensure the user is authenticated.\n router.beforeEach((to, from, next) => {\n if (\n to.matched.some(record => record.meta.requiresAuth) &&\n (!router.app.$store.state.accessToken || router.app.$store.state.accessToken === 'null')\n ) {\n // this route requires auth, check if logged in\n // if not, redirect to login page.\n window.console.log('Not authenticated')\n next({\n path: '/login',\n query: { redirect: to.fullPath }\n })\n } else if (to.meta.role === 'admin') {\n if (router.app.$store.state.role === 'admin') {\n next()\n } else {\n next({\n path: '/',\n query: { redirect: to.fullPath }\n })\n }\n } else {\n next()\n }\n })\n\n sync(store, router)\n\n axios.interceptors.response.use(null, (error) => {\n if (error.config.url === config.serverURI + '/user/refresh') {\n window.localStorage.clear()\n store.commit('SET_USER', null)\n store.commit('SET_ROLE', null)\n store.commit('SET_ACCESS_TOKEN', null)\n store.commit('SET_REFRESH_TOKEN', null)\n router.push('/login')\n } else {\n if (error.config && error.response && error.response.status === 401 && error.config.url !== config.serverURI + '/user/login') {\n axios.defaults.headers.common['Authorization'] = store.state.refreshToken\n return axios({ method: 'get', url: config.serverURI + '/user/refresh', data: null })\n .then(response => {\n store.commit('SET_ACCESS_TOKEN', 'Bearer ' + response.data.access_token)\n if (window.localStorage) {\n window.localStorage.setItem('accessToken', 'Bearer ' + response.data.access_token)\n }\n error.config.headers['Authorization'] = 'Bearer ' + response.data.access_token\n return axios.request(error.config)\n })\n .catch(error => {\n handleError(error)\n logout()\n })\n }\n }\n return Promise.reject(error)\n })\n // Check local storage to handle refreshes\n if (window.localStorage) {\n var localUserString = window.localStorage.getItem('user') || 'null'\n var localUser = JSON.parse(localUserString)\n\n if (localUser && store.state.user !== localUser) {\n store.commit('SET_USER', localUser)\n store.commit('SET_ACCESS_TOKEN', window.localStorage.getItem('accessToken'))\n store.commit('SET_REFRESH_TOKEN', window.localStorage.getItem('refreshToken'))\n store.commit('SET_ROLE', window.localStorage.getItem('role'))\n store.commit('SET_ID', parseInt(window.localStorage.getItem('userId')))\n }\n }\n function handleError (error) {\n if (!error.hasOwnProperty('response')) {\n console.log(error.message)\n } else {\n if (!error.response.data.hasOwnProperty('msg')) {\n console.log(error.response.data)\n } else {\n console.log(error.response.data.msg)\n }\n }\n }\n\n function logout () {\n if (store.state.accessToken !== null) {\n api\n .request('delete', '/user/logout', store.state.accessToken)\n .then(response => {\n store.commit('SET_ACCESS_TOKEN', null)\n if (window.localStorage) {\n window.localStorage.setItem('accessToken', null)\n }\n if (store.state.refreshToken !== null) {\n api\n .request('delete', '/user/logout/refresh_token', store.state.refreshToken)\n .then(response => {\n store.commit('SET_REFRESH_TOKEN', null)\n if (window.localStorage) {\n window.localStorage.setItem('refreshToken', null)\n }\n })\n .catch(error => {\n handleError(error)\n })\n }\n })\n .catch(error => {\n this.handleError(error)\n })\n }\n store.commit('SET_USER', null)\n store.commit('SET_ROLE', null)\n\n if (window.localStorage) {\n window.localStorage.setItem('user', null)\n window.localStorage.setItem('role', null)\n window.localStorage.setItem('watches', null)\n window.localStorage.setItem('watchIds', null)\n }\n router.push('/login')\n }\n // Start out app!\n // eslint-disable-next-line no-new\n new Vue({\n el: '#root',\n router: router,\n store: store,\n render: h => h(AppView)\n })\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","import DashView from './components/TheDash.vue'\nimport LoginView from './components/TheLogin.vue'\nimport NotFoundView from './components/404.vue'\n// Import Views - Dash\nimport CalendarView from './components/views/ReservationsOverview.vue'\nimport WatchView from './components/views/NodesOverview.vue'\nimport TasksView from './components/views/TasksOverview.vue'\nimport UsersView from './components/views/UsersOverview.vue'\n// Routes\nconst routes = [\n {\n path: '/',\n component: DashView,\n children: [\n {\n path: '/reservations_overview',\n alias: '',\n component: CalendarView,\n name: 'Reservation Overview',\n meta: {\n description: 'Calendar with reservations',\n requiresAuth: true,\n role: 'user'\n }\n },\n {\n path: 'nodes_overview',\n alias: '',\n component: WatchView,\n name: 'Nodes overview',\n meta: {\n description: 'Informations about nodes',\n requiresAuth: true,\n role: 'user'\n }\n },\n {\n path: 'tasks_overview',\n alias: '',\n component: TasksView,\n name: 'Tasks overview',\n meta: {\n description: 'Tasks overview',\n requiresAuth: true,\n role: 'user'\n }\n },\n {\n path: 'users_overview',\n alias: '',\n component: UsersView,\n name: 'Users overview',\n meta: {\n description: 'Table users view for admin',\n requiresAuth: true,\n role: 'admin'\n }\n }\n ]\n },\n {\n path: '/login',\n component: LoginView,\n meta: {\n role: 'user'\n }\n },\n {\n path: '*',\n component: NotFoundView\n }\n]\n\nexport default routes\n\n\n\n// WEBPACK FOOTER //\n// ./src/routes.js","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2ece43d6\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TheDash.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./TheDash.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./TheDash.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2ece43d6\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./TheDash.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/TheDash.vue\n// module id = 249\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-8c8911fe\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./BaseSidebar.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./BaseSidebar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./BaseSidebar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8c8911fe\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./BaseSidebar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dash/BaseSidebar.vue\n// module id = 252\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1ff073b3\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./BaseSidebarMenu.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./BaseSidebarMenu.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./BaseSidebarMenu.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1ff073b3\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./BaseSidebarMenu.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dash/BaseSidebarMenu.vue\n// module id = 254\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"sidebar-menu\"},[_c('li',{staticClass:\"header\"},[_vm._v(\"SCHEDULE\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/reservations_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-calendar-check-o\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Reservations Overview\")])])]),_vm._v(\" \"),_c('li',{staticClass:\"header\"},[_vm._v(\"RESOURCES\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/nodes_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-bar-chart\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Nodes Overview\")])])]),_vm._v(\" \"),_c('li',{staticClass:\"header\"},[_vm._v(\"TASKS\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/tasks_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-tasks\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Tasks Overview\")])])]),_vm._v(\" \"),(_vm.$store.state.role === 'admin')?_c('li',{staticClass:\"header\"},[_vm._v(\"\\n ADMIN ZONE\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.$store.state.role === 'admin')?_c('router-link',{staticClass:\"pageLink\",attrs:{\"tag\":\"li\",\"to\":\"/users_overview\"}},[_c('a',[_c('i',{staticClass:\"fa fa-users\"}),_vm._v(\" \"),_c('span',{staticClass:\"page\"},[_vm._v(\"Users Overview\")])])]):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1ff073b3\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/dash/BaseSidebarMenu.vue\n// module id = 256\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('aside',{staticClass:\"main-sidebar\"},[_c('section',{staticClass:\"sidebar\"},[_c('BaseSidebarMenu')],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-8c8911fe\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/dash/BaseSidebar.vue\n// module id = 257\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:['wrapper', _vm.classes]},[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('header',{staticClass:\"main-header\"},[_c('nav',{staticClass:\"navbar navbar-static-top\",attrs:{\"role\":\"navigation\"}},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"version_info\"},[_c('b',[_vm._v(\"TensorHive\")]),_vm._v(\" v\"+_vm._s(_vm.version)+\" \"),_c('b',[_vm._v(\"API\")]),_vm._v(\" v\"+_vm._s(_vm.apiVersion)+\"\\n \")]),_vm._v(\" \"),_c('v-menu',{staticClass:\"user_chip\",attrs:{\"close-on-content-click\":false,\"offset-y\":\"\"}},[_c('v-chip',{attrs:{\"slot\":\"activator\",\"color\":\"green\",\"text-color\":\"white\"},slot:\"activator\"},[_c('v-avatar',[_c('v-icon',[_vm._v(\"account_circle\")])],1),_vm._v(\"\\n \"+_vm._s(_vm.displayName)+\"\\n \")],1),_vm._v(\" \"),_c('v-card',[_c('v-card-actions',[_c('v-btn',{attrs:{\"flat\":\"\"},on:{\"click\":function($event){return _vm.logout()}}},[_vm._v(\"Logout\")])],1)],1)],1)],1)]),_vm._v(\" \"),_c('BaseSidebar'),_vm._v(\" \"),_c('div',{staticClass:\"content-wrapper\"},[_c('router-view')],1),_vm._v(\" \"),_c('v-footer',{attrs:{\"height\":\"auto\",\"color\":\"#222d32\"}},[_c('v-layout',{attrs:{\"justify-center\":\"\",\"row\":\"\",\"wrap\":\"\"}},[_c('v-flex',{attrs:{\"text-xs-center\":\"\",\"white--text\":\"\",\"xs12\":\"\"}},[_vm._v(\"\\n Found a bug? (\"),_c('a',{attrs:{\"href\":\"https://github.com/roscisz/TensorHive/issues\"}},[_vm._v(\"Report issue\")]),_vm._v(\")\\n \")])],1)],1)],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"sidebar-toggle\",attrs:{\"href\":\"javascript:;\",\"data-toggle\":\"offcanvas\",\"role\":\"button\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Toggle navigation\")])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2ece43d6\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/TheDash.vue\n// module id = 277\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-78d7a2a0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TheLogin.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./TheLogin.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./TheLogin.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-78d7a2a0\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./TheLogin.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-78d7a2a0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/TheLogin.vue\n// module id = 278\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"login\"}},[_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"50vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Register new account\")])]),_vm._v(\" \"),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser($event)}}},[_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-user\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalUsername),expression:\"modalUsername\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalUsername\",\"placeholder\":\"UNIX username\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalUsername)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalUsername=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalEmail),expression:\"modalEmail\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalEmail\",\"placeholder\":\"Email\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalEmail)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalEmail=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword),expression:\"modalPassword\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword2),expression:\"modalPassword2\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword2\",\"placeholder\":\"Repeat password\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword2=$event.target.value}}})]),_vm._v(\"\\n Please copy the key below and paste it into \"),_c('b',[_vm._v(\"~/.ssh/authorized_keys\")]),_vm._v(\".\"),_c('br'),_vm._v(\"It will allow TensorHive to confirm you identity and access machines with provided UNIX username.\\n \"),_c('v-textarea',{attrs:{\"solo\":\"\",\"name\":\"entry\",\"value\":_vm.entry,\"id\":\"entry\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\"},on:{\"click\":_vm.copyEntryToClipboard}},[_vm._v(\"Copy to clipboard\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.modalAlert),callback:function ($$v) {_vm.modalAlert=$$v},expression:\"modalAlert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModal=false}}},[_vm._v(\"\\n Go back\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\"\\n Register\\n \")])],1)])],1)],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"text-center col-sm-12\"},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.checkCreds($event)}}},[_vm._v(\"\\n Login to your account\\n \"),_c('div',{staticClass:\"input-group\"},[_vm._m(0),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.username),expression:\"username\"}],staticClass:\"form-control\",attrs:{\"name\":\"username\",\"placeholder\":\"Username\",\"type\":\"text\"},domProps:{\"value\":(_vm.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.username=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_vm._m(1),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.password),expression:\"password\"}],staticClass:\"form-control\",attrs:{\"name\":\"password\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.password=$event.target.value}}})]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"info\"},model:{value:(_vm.created),callback:function ($$v) {_vm.created=$$v},expression:\"created\"}},[_vm._v(\"\\n Account successfully created\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\"},on:{\"click\":_vm.requestEntry}},[_vm._v(\"Register\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\"\\n Login\\n \")])],1)])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-78d7a2a0\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/TheLogin.vue\n// module id = 280\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-209d35e8\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./404.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./404.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./404.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-209d35e8\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./404.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/404.vue\n// module id = 281\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"notFound\"}},[_c('div',{staticClass:\"text-center col-sm-12\"},[_c('h1',[_vm._v(\"You are lost.\")]),_vm._v(\" \"),_c('h4',[_vm._v(\"This page doesn't exist.\")]),_vm._v(\" \"),_c('router-link',{staticClass:\"vertical-5p lead\",attrs:{\"to\":\"/\"}},[_vm._v(\"Take me home.\")])],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-209d35e8\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/404.vue\n// module id = 283\n// module chunks = 1","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ReservationsOverview.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ReservationsOverview.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4f2a7601\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ReservationsOverview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/ReservationsOverview.vue\n// module id = 284\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-74cfb89e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FullCalendar.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FullCalendar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FullCalendar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-74cfb89e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./FullCalendar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/reserve_resources/FullCalendar.vue\n// module id = 285\n// module chunks = 1","var normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FullCalendarReserve.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FullCalendarReserve.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-18b777fb\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./FullCalendarReserve.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/reserve_resources/FullCalendarReserve.vue\n// module id = 287\n// module chunks = 1","var map = {\n\t\"./af\": 63,\n\t\"./af.js\": 63,\n\t\"./ar\": 64,\n\t\"./ar-dz\": 65,\n\t\"./ar-dz.js\": 65,\n\t\"./ar-kw\": 66,\n\t\"./ar-kw.js\": 66,\n\t\"./ar-ly\": 67,\n\t\"./ar-ly.js\": 67,\n\t\"./ar-ma\": 68,\n\t\"./ar-ma.js\": 68,\n\t\"./ar-sa\": 69,\n\t\"./ar-sa.js\": 69,\n\t\"./ar-tn\": 70,\n\t\"./ar-tn.js\": 70,\n\t\"./ar.js\": 64,\n\t\"./az\": 71,\n\t\"./az.js\": 71,\n\t\"./be\": 72,\n\t\"./be.js\": 72,\n\t\"./bg\": 73,\n\t\"./bg.js\": 73,\n\t\"./bm\": 74,\n\t\"./bm.js\": 74,\n\t\"./bn\": 75,\n\t\"./bn.js\": 75,\n\t\"./bo\": 76,\n\t\"./bo.js\": 76,\n\t\"./br\": 77,\n\t\"./br.js\": 77,\n\t\"./bs\": 78,\n\t\"./bs.js\": 78,\n\t\"./ca\": 79,\n\t\"./ca.js\": 79,\n\t\"./cs\": 80,\n\t\"./cs.js\": 80,\n\t\"./cv\": 81,\n\t\"./cv.js\": 81,\n\t\"./cy\": 82,\n\t\"./cy.js\": 82,\n\t\"./da\": 83,\n\t\"./da.js\": 83,\n\t\"./de\": 84,\n\t\"./de-at\": 85,\n\t\"./de-at.js\": 85,\n\t\"./de-ch\": 86,\n\t\"./de-ch.js\": 86,\n\t\"./de.js\": 84,\n\t\"./dv\": 87,\n\t\"./dv.js\": 87,\n\t\"./el\": 88,\n\t\"./el.js\": 88,\n\t\"./en-SG\": 89,\n\t\"./en-SG.js\": 89,\n\t\"./en-au\": 90,\n\t\"./en-au.js\": 90,\n\t\"./en-ca\": 91,\n\t\"./en-ca.js\": 91,\n\t\"./en-gb\": 92,\n\t\"./en-gb.js\": 92,\n\t\"./en-ie\": 93,\n\t\"./en-ie.js\": 93,\n\t\"./en-il\": 94,\n\t\"./en-il.js\": 94,\n\t\"./en-nz\": 95,\n\t\"./en-nz.js\": 95,\n\t\"./eo\": 96,\n\t\"./eo.js\": 96,\n\t\"./es\": 97,\n\t\"./es-do\": 98,\n\t\"./es-do.js\": 98,\n\t\"./es-us\": 99,\n\t\"./es-us.js\": 99,\n\t\"./es.js\": 97,\n\t\"./et\": 100,\n\t\"./et.js\": 100,\n\t\"./eu\": 101,\n\t\"./eu.js\": 101,\n\t\"./fa\": 102,\n\t\"./fa.js\": 102,\n\t\"./fi\": 103,\n\t\"./fi.js\": 103,\n\t\"./fo\": 104,\n\t\"./fo.js\": 104,\n\t\"./fr\": 105,\n\t\"./fr-ca\": 106,\n\t\"./fr-ca.js\": 106,\n\t\"./fr-ch\": 107,\n\t\"./fr-ch.js\": 107,\n\t\"./fr.js\": 105,\n\t\"./fy\": 108,\n\t\"./fy.js\": 108,\n\t\"./ga\": 109,\n\t\"./ga.js\": 109,\n\t\"./gd\": 110,\n\t\"./gd.js\": 110,\n\t\"./gl\": 111,\n\t\"./gl.js\": 111,\n\t\"./gom-latn\": 112,\n\t\"./gom-latn.js\": 112,\n\t\"./gu\": 113,\n\t\"./gu.js\": 113,\n\t\"./he\": 114,\n\t\"./he.js\": 114,\n\t\"./hi\": 115,\n\t\"./hi.js\": 115,\n\t\"./hr\": 116,\n\t\"./hr.js\": 116,\n\t\"./hu\": 117,\n\t\"./hu.js\": 117,\n\t\"./hy-am\": 118,\n\t\"./hy-am.js\": 118,\n\t\"./id\": 119,\n\t\"./id.js\": 119,\n\t\"./is\": 120,\n\t\"./is.js\": 120,\n\t\"./it\": 121,\n\t\"./it-ch\": 122,\n\t\"./it-ch.js\": 122,\n\t\"./it.js\": 121,\n\t\"./ja\": 123,\n\t\"./ja.js\": 123,\n\t\"./jv\": 124,\n\t\"./jv.js\": 124,\n\t\"./ka\": 125,\n\t\"./ka.js\": 125,\n\t\"./kk\": 126,\n\t\"./kk.js\": 126,\n\t\"./km\": 127,\n\t\"./km.js\": 127,\n\t\"./kn\": 128,\n\t\"./kn.js\": 128,\n\t\"./ko\": 129,\n\t\"./ko.js\": 129,\n\t\"./ku\": 130,\n\t\"./ku.js\": 130,\n\t\"./ky\": 131,\n\t\"./ky.js\": 131,\n\t\"./lb\": 132,\n\t\"./lb.js\": 132,\n\t\"./lo\": 133,\n\t\"./lo.js\": 133,\n\t\"./lt\": 134,\n\t\"./lt.js\": 134,\n\t\"./lv\": 135,\n\t\"./lv.js\": 135,\n\t\"./me\": 136,\n\t\"./me.js\": 136,\n\t\"./mi\": 137,\n\t\"./mi.js\": 137,\n\t\"./mk\": 138,\n\t\"./mk.js\": 138,\n\t\"./ml\": 139,\n\t\"./ml.js\": 139,\n\t\"./mn\": 140,\n\t\"./mn.js\": 140,\n\t\"./mr\": 141,\n\t\"./mr.js\": 141,\n\t\"./ms\": 142,\n\t\"./ms-my\": 143,\n\t\"./ms-my.js\": 143,\n\t\"./ms.js\": 142,\n\t\"./mt\": 144,\n\t\"./mt.js\": 144,\n\t\"./my\": 145,\n\t\"./my.js\": 145,\n\t\"./nb\": 146,\n\t\"./nb.js\": 146,\n\t\"./ne\": 147,\n\t\"./ne.js\": 147,\n\t\"./nl\": 148,\n\t\"./nl-be\": 149,\n\t\"./nl-be.js\": 149,\n\t\"./nl.js\": 148,\n\t\"./nn\": 150,\n\t\"./nn.js\": 150,\n\t\"./pa-in\": 151,\n\t\"./pa-in.js\": 151,\n\t\"./pl\": 152,\n\t\"./pl.js\": 152,\n\t\"./pt\": 153,\n\t\"./pt-br\": 154,\n\t\"./pt-br.js\": 154,\n\t\"./pt.js\": 153,\n\t\"./ro\": 155,\n\t\"./ro.js\": 155,\n\t\"./ru\": 156,\n\t\"./ru.js\": 156,\n\t\"./sd\": 157,\n\t\"./sd.js\": 157,\n\t\"./se\": 158,\n\t\"./se.js\": 158,\n\t\"./si\": 159,\n\t\"./si.js\": 159,\n\t\"./sk\": 160,\n\t\"./sk.js\": 160,\n\t\"./sl\": 161,\n\t\"./sl.js\": 161,\n\t\"./sq\": 162,\n\t\"./sq.js\": 162,\n\t\"./sr\": 163,\n\t\"./sr-cyrl\": 164,\n\t\"./sr-cyrl.js\": 164,\n\t\"./sr.js\": 163,\n\t\"./ss\": 165,\n\t\"./ss.js\": 165,\n\t\"./sv\": 166,\n\t\"./sv.js\": 166,\n\t\"./sw\": 167,\n\t\"./sw.js\": 167,\n\t\"./ta\": 168,\n\t\"./ta.js\": 168,\n\t\"./te\": 169,\n\t\"./te.js\": 169,\n\t\"./tet\": 170,\n\t\"./tet.js\": 170,\n\t\"./tg\": 171,\n\t\"./tg.js\": 171,\n\t\"./th\": 172,\n\t\"./th.js\": 172,\n\t\"./tl-ph\": 173,\n\t\"./tl-ph.js\": 173,\n\t\"./tlh\": 174,\n\t\"./tlh.js\": 174,\n\t\"./tr\": 175,\n\t\"./tr.js\": 175,\n\t\"./tzl\": 176,\n\t\"./tzl.js\": 176,\n\t\"./tzm\": 177,\n\t\"./tzm-latn\": 178,\n\t\"./tzm-latn.js\": 178,\n\t\"./tzm.js\": 177,\n\t\"./ug-cn\": 179,\n\t\"./ug-cn.js\": 179,\n\t\"./uk\": 180,\n\t\"./uk.js\": 180,\n\t\"./ur\": 181,\n\t\"./ur.js\": 181,\n\t\"./uz\": 182,\n\t\"./uz-latn\": 183,\n\t\"./uz-latn.js\": 183,\n\t\"./uz.js\": 182,\n\t\"./vi\": 184,\n\t\"./vi.js\": 184,\n\t\"./x-pseudo\": 185,\n\t\"./x-pseudo.js\": 185,\n\t\"./yo\": 186,\n\t\"./yo.js\": 186,\n\t\"./zh-cn\": 187,\n\t\"./zh-cn.js\": 187,\n\t\"./zh-hk\": 188,\n\t\"./zh-hk.js\": 188,\n\t\"./zh-tw\": 189,\n\t\"./zh-tw.js\": 189\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) // check for number or string\n\t\tthrow new Error(\"Cannot find module '\" + req + \"'.\");\n\treturn id;\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 288;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale ^\\.\\/.*$\n// module id = 288\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"50vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Which resources do you want to reserve?\")])]),_vm._v(\" \"),_c('v-card-text',[_vm._l((_vm.resourcesCheckboxes),function(checkbox){return _c('div',{key:checkbox.uuid,staticClass:\"row\"},[_c('v-checkbox',{attrs:{\"label\":((checkbox.nodeName) + \" GPU\" + (checkbox.index) + \" \" + (checkbox.name)),\"disabled\":checkbox.disabled},model:{value:(checkbox.checked),callback:function ($$v) {_vm.$set(checkbox, \"checked\", $$v)},expression:\"checkbox.checked\"}})],1)}),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}},on))]}}]),model:{value:(_vm.startDateMenu),callback:function ($$v) {_vm.startDateMenu=$$v},expression:\"startDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.startDateMenu = false}},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"startMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newStartTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newStartTime=$event},\"update:return-value\":function($event){_vm.newStartTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},on))]}}]),model:{value:(_vm.startTimeMenu),callback:function ($$v) {_vm.startTimeMenu=$$v},expression:\"startTimeMenu\"}},[_vm._v(\" \"),(_vm.startTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.startMenu.save(_vm.newStartTime)}},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}},on))]}}]),model:{value:(_vm.endDateMenu),callback:function ($$v) {_vm.endDateMenu=$$v},expression:\"endDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.endDateMenu = false}},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"endMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newEndTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newEndTime=$event},\"update:return-value\":function($event){_vm.newEndTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},on))]}}]),model:{value:(_vm.endTimeMenu),callback:function ($$v) {_vm.endTimeMenu=$$v},expression:\"endTimeMenu\"}},[_vm._v(\" \"),(_vm.endTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.endMenu.save(_vm.newEndTime)}},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Title\"},model:{value:(_vm.reservationTitle),callback:function ($$v) {_vm.reservationTitle=$$v},expression:\"reservationTitle\"}}),_vm._v(\" \"),_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Description\"},model:{value:(_vm.reservationDescription),callback:function ($$v) {_vm.reservationDescription=$$v},expression:\"reservationDescription\"}}),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showInfo===true),expression:\"showInfo===true\"}],staticClass:\"text-red\"},[_c('p',{staticClass:\"vertical-5p lead\"},[_vm._v(\"You need to choose at least one resource to reserve\")])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer text-right\"},[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.reservation()}}},[_vm._v(\"\\n Reserve\\n \")])],1)],2)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-18b777fb\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/reserve_resources/FullCalendarReserve.vue\n// module id = 289\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-396e82ff\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./FullCalendarInfo.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FullCalendarInfo.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./FullCalendarInfo.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-396e82ff\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./FullCalendarInfo.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/reserve_resources/FullCalendarInfo.vue\n// module id = 290\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"width\":\"50vw\",\"persistent\":\"\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-text',[_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"flat\":\"\",\"icon\":\"\",\"color\":\"black\"},on:{\"click\":function($event){return _vm.close()}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Title:\")]),_vm._v(\" \"+_vm._s(_vm.reservation.title)+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Title\"},model:{value:(_vm.newTitle),callback:function ($$v) {_vm.newTitle=$$v},expression:\"newTitle\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Description:\")]),_vm._v(\" \"+_vm._s(_vm.reservation.description)+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-textarea',{attrs:{\"outline\":\"\",\"label\":\"Description\"},model:{value:(_vm.newDescription),callback:function ($$v) {_vm.newDescription=$$v},expression:\"newDescription\"}})],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Average GPU utilization:\")]),_vm._v(\" \"+_vm._s(_vm.gpuUtilAvg)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Average GPU memory utilization:\")]),_vm._v(\" \"+_vm._s(_vm.memUtilAvg)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"Start:\")]),_vm._v(\" \"+_vm._s(_vm.prettyDate(_vm.reservation.start))+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}},on))]}}],null,false,710299969),model:{value:(_vm.startDateMenu),callback:function ($$v) {_vm.startDateMenu=$$v},expression:\"startDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.startDateMenu = false}},model:{value:(_vm.newStartDate),callback:function ($$v) {_vm.newStartDate=$$v},expression:\"newStartDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"startMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newStartTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newStartTime=$event},\"update:return-value\":function($event){_vm.newStartTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Start time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}},on))]}}],null,false,4222293411),model:{value:(_vm.startTimeMenu),callback:function ($$v) {_vm.startTimeMenu=$$v},expression:\"startTimeMenu\"}},[_vm._v(\" \"),(_vm.startTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.startMenu.save(_vm.newStartTime)}},model:{value:(_vm.newStartTime),callback:function ($$v) {_vm.newStartTime=$$v},expression:\"newStartTime\"}}):_vm._e()],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"End:\")]),_vm._v(\" \"+_vm._s(_vm.prettyDate(_vm.reservation.end))+\"\\n \")]),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}},on))]}}],null,false,3230088161),model:{value:(_vm.endDateMenu),callback:function ($$v) {_vm.endDateMenu=$$v},expression:\"endDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.endDateMenu = false}},model:{value:(_vm.newEndDate),callback:function ($$v) {_vm.newEndDate=$$v},expression:\"newEndDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"endMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newEndTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newEndTime=$event},\"update:return-value\":function($event){_vm.newEndTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"End time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}},on))]}}],null,false,2362500227),model:{value:(_vm.endTimeMenu),callback:function ($$v) {_vm.endTimeMenu=$$v},expression:\"endTimeMenu\"}},[_vm._v(\" \"),(_vm.endTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"allowed-minutes\":function (m) { return m % 30 === 0; },\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.endMenu.save(_vm.newEndTime)}},model:{value:(_vm.newEndTime),callback:function ($$v) {_vm.newEndTime=$$v},expression:\"newEndTime\"}}):_vm._e()],1)],1)],1):_vm._e(),_vm._v(\" \"),_c('v-card-text',[_c('b',[_vm._v(\"GPU UUID:\")]),_vm._v(\" \"+_vm._s(_vm.reservation.resourceId)+\"\\n \")]),_vm._v(\" \"),(_vm.tasksCard)?_c('v-card-text',[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"warning\"},model:{value:(_vm.showAlert),callback:function ($$v) {_vm.showAlert=$$v},expression:\"showAlert\"}},[_vm._v(\"\\n Synchronization in progress. Task assign is disabled now.\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.tasksCard)?_c('v-data-table',{key:_vm.tableKey,staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.tasks,\"pagination\":_vm.pagination,\"loading\":_vm.actionFlag,\"select-all\":\"\",\"item-key\":\"id\"},on:{\"update:pagination\":function($event){_vm.pagination=$event}},scopedSlots:_vm._u([{key:\"headers\",fn:function(props){return [_c('tr',[_c('th',[_c('v-checkbox',{attrs:{\"input-value\":props.all,\"indeterminate\":props.indeterminate,\"primary\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleAll($event)}}})],1),_vm._v(\" \"),_vm._l((props.headers),function(header){return _c('th',{key:header.text,class:['column sortable', _vm.pagination.descending ? 'desc' : 'asc', header.value === _vm.pagination.sortBy ? 'active' : ''],on:{\"click\":function($event){return _vm.changeSort(header.value)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"arrow_upward\")]),_vm._v(\"\\n \"+_vm._s(header.text)+\"\\n \")],1)})],2)]}},{key:\"items\",fn:function(props){return [_c('tr',{attrs:{\"active\":props.selected},on:{\"click\":function($event){props.selected = !props.selected}}},[_c('td',[_c('v-checkbox',{attrs:{\"input-value\":props.selected,\"primary\":\"\",\"hide-details\":\"\"}})],1),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.id))]),_vm._v(\" \"),_c('td',{staticClass:\"task-command\"},[_vm._v(_vm._s(props.item.command))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.spawnAt)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.terminateAt)))])])]}}],null,false,4156683076),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},[_vm._v(\" \"),_c('v-progress-linear',{attrs:{\"indeterminate\":true},scopedSlots:_vm._u([{key:\"progress\",fn:function(){return undefined},proxy:true}],null,false,63074868)})],1):_vm._e(),_vm._v(\" \"),(_vm.tasksCard)?_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"info\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){return _vm.checkActionFlag()}}},[_vm._v(\"\\n Assign selected\\n \")]):_vm._e(),_vm._v(\" \"),_c('v-card-text',{staticClass:\"container\"},[_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"yellow\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.tasksCard=!_vm.tasksCard; _vm.cancelCard=false; _vm.updateCard=false}}},[_vm._v(\"\\n Schedule task(s) for this reservation\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"error\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.cancelCard=!_vm.cancelCard; _vm.tasksCard=false; _vm.updateCard=false}}},[_vm._v(\"\\n Cancel reservation\\n \")]),_vm._v(\" \"),_c('v-btn',{staticClass:\"float-right-button\",attrs:{\"color\":\"info\",\"small\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.updateCard=!_vm.updateCard; _vm.tasksCard=false, _vm.cancelCard=false}}},[_vm._v(\"\\n Edit reservation\\n \")])],1),_vm._v(\" \"),(_vm.cancelCard)?_c('v-card-text',[_vm._v(\"\\n Do you want to cancel selected reservation?\\n \"),_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.cancelCard=false}}},[_vm._v(\"\\n No\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.cancelReservation()}}},[_vm._v(\"\\n Yes\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.updateCard)?_c('v-card-text',[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.updateCard=false}}},[_vm._v(\"\\n Back\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.updateReservation()}}},[_vm._v(\"\\n Update\\n \")])],1):_vm._e()],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-396e82ff\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/reserve_resources/FullCalendarInfo.vue\n// module id = 292\n// module chunks = 1","/*!\r\n * FullCalendar v3.9.0\r\n * Docs & License: https://fullcalendar.io/\r\n * (c) 2018 Adam Shaw\r\n */\r\n(function webpackUniversalModuleDefinition(root, factory) {\r\n\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\tmodule.exports = factory(require(\"moment\"), require(\"jquery\"));\r\n\telse if(typeof define === 'function' && define.amd)\r\n\t\tdefine([\"moment\", \"jquery\"], factory);\r\n\telse if(typeof exports === 'object')\r\n\t\texports[\"FullCalendar\"] = factory(require(\"moment\"), require(\"jquery\"));\r\n\telse\r\n\t\troot[\"FullCalendar\"] = factory(root[\"moment\"], root[\"jQuery\"]);\r\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_3__) {\r\nreturn /******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId]) {\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n/******/ \t\t}\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\ti: moduleId,\r\n/******/ \t\t\tl: false,\r\n/******/ \t\t\texports: {}\r\n/******/ \t\t};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.l = true;\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n/******/\r\n/******/\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n/******/\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n/******/\r\n/******/ \t// define getter function for harmony exports\r\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\r\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\r\n/******/ \t\t\tObject.defineProperty(exports, name, {\r\n/******/ \t\t\t\tconfigurable: false,\r\n/******/ \t\t\t\tenumerable: true,\r\n/******/ \t\t\t\tget: getter\r\n/******/ \t\t\t});\r\n/******/ \t\t}\r\n/******/ \t};\r\n/******/\r\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\r\n/******/ \t__webpack_require__.n = function(module) {\r\n/******/ \t\tvar getter = module && module.__esModule ?\r\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\r\n/******/ \t\t\tfunction getModuleExports() { return module; };\r\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\r\n/******/ \t\treturn getter;\r\n/******/ \t};\r\n/******/\r\n/******/ \t// Object.prototype.hasOwnProperty.call\r\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\r\n/******/\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n/******/\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(__webpack_require__.s = 236);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports) {\r\n\r\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_0__;\r\n\r\n/***/ }),\r\n/* 1 */,\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n/*\r\nderived from:\r\nhttps://github.com/Microsoft/tslib/blob/v1.6.0/tslib.js\r\n\r\nonly include the helpers we need, to keep down filesize\r\n*/\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b)\r\n if (b.hasOwnProperty(p))\r\n d[p] = b[p]; };\r\nexports.__extends = function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports) {\r\n\r\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\r\n\r\n/***/ }),\r\n/* 4 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\n/* FullCalendar-specific DOM Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Given the scrollbar widths of some other container, create borders/margins on rowEls in order to match the left\r\n// and right space that was offset by the scrollbars. A 1-pixel border first, then margin beyond that.\r\nfunction compensateScroll(rowEls, scrollbarWidths) {\r\n if (scrollbarWidths.left) {\r\n rowEls.css({\r\n 'border-left-width': 1,\r\n 'margin-left': scrollbarWidths.left - 1\r\n });\r\n }\r\n if (scrollbarWidths.right) {\r\n rowEls.css({\r\n 'border-right-width': 1,\r\n 'margin-right': scrollbarWidths.right - 1\r\n });\r\n }\r\n}\r\nexports.compensateScroll = compensateScroll;\r\n// Undoes compensateScroll and restores all borders/margins\r\nfunction uncompensateScroll(rowEls) {\r\n rowEls.css({\r\n 'margin-left': '',\r\n 'margin-right': '',\r\n 'border-left-width': '',\r\n 'border-right-width': ''\r\n });\r\n}\r\nexports.uncompensateScroll = uncompensateScroll;\r\n// Make the mouse cursor express that an event is not allowed in the current area\r\nfunction disableCursor() {\r\n $('body').addClass('fc-not-allowed');\r\n}\r\nexports.disableCursor = disableCursor;\r\n// Returns the mouse cursor to its original look\r\nfunction enableCursor() {\r\n $('body').removeClass('fc-not-allowed');\r\n}\r\nexports.enableCursor = enableCursor;\r\n// Given a total available height to fill, have `els` (essentially child rows) expand to accomodate.\r\n// By default, all elements that are shorter than the recommended height are expanded uniformly, not considering\r\n// any other els that are already too tall. if `shouldRedistribute` is on, it considers these tall rows and\r\n// reduces the available height.\r\nfunction distributeHeight(els, availableHeight, shouldRedistribute) {\r\n // *FLOORING NOTE*: we floor in certain places because zoom can give inaccurate floating-point dimensions,\r\n // and it is better to be shorter than taller, to avoid creating unnecessary scrollbars.\r\n var minOffset1 = Math.floor(availableHeight / els.length); // for non-last element\r\n var minOffset2 = Math.floor(availableHeight - minOffset1 * (els.length - 1)); // for last element *FLOORING NOTE*\r\n var flexEls = []; // elements that are allowed to expand. array of DOM nodes\r\n var flexOffsets = []; // amount of vertical space it takes up\r\n var flexHeights = []; // actual css height\r\n var usedHeight = 0;\r\n undistributeHeight(els); // give all elements their natural height\r\n // find elements that are below the recommended height (expandable).\r\n // important to query for heights in a single first pass (to avoid reflow oscillation).\r\n els.each(function (i, el) {\r\n var minOffset = i === els.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = $(el).outerHeight(true);\r\n if (naturalOffset < minOffset) {\r\n flexEls.push(el);\r\n flexOffsets.push(naturalOffset);\r\n flexHeights.push($(el).height());\r\n }\r\n else {\r\n // this element stretches past recommended height (non-expandable). mark the space as occupied.\r\n usedHeight += naturalOffset;\r\n }\r\n });\r\n // readjust the recommended height to only consider the height available to non-maxed-out rows.\r\n if (shouldRedistribute) {\r\n availableHeight -= usedHeight;\r\n minOffset1 = Math.floor(availableHeight / flexEls.length);\r\n minOffset2 = Math.floor(availableHeight - minOffset1 * (flexEls.length - 1)); // *FLOORING NOTE*\r\n }\r\n // assign heights to all expandable elements\r\n $(flexEls).each(function (i, el) {\r\n var minOffset = i === flexEls.length - 1 ? minOffset2 : minOffset1;\r\n var naturalOffset = flexOffsets[i];\r\n var naturalHeight = flexHeights[i];\r\n var newHeight = minOffset - (naturalOffset - naturalHeight); // subtract the margin/padding\r\n if (naturalOffset < minOffset) {\r\n $(el).height(newHeight);\r\n }\r\n });\r\n}\r\nexports.distributeHeight = distributeHeight;\r\n// Undoes distrubuteHeight, restoring all els to their natural height\r\nfunction undistributeHeight(els) {\r\n els.height('');\r\n}\r\nexports.undistributeHeight = undistributeHeight;\r\n// Given `els`, a jQuery set of cells, find the cell with the largest natural width and set the widths of all the\r\n// cells to be that width.\r\n// PREREQUISITE: if you want a cell to take up width, it needs to have a single inner element w/ display:inline\r\nfunction matchCellWidths(els) {\r\n var maxInnerWidth = 0;\r\n els.find('> *').each(function (i, innerEl) {\r\n var innerWidth = $(innerEl).outerWidth();\r\n if (innerWidth > maxInnerWidth) {\r\n maxInnerWidth = innerWidth;\r\n }\r\n });\r\n maxInnerWidth++; // sometimes not accurate of width the text needs to stay on one line. insurance\r\n els.width(maxInnerWidth);\r\n return maxInnerWidth;\r\n}\r\nexports.matchCellWidths = matchCellWidths;\r\n// Given one element that resides inside another,\r\n// Subtracts the height of the inner element from the outer element.\r\nfunction subtractInnerElHeight(outerEl, innerEl) {\r\n var both = outerEl.add(innerEl);\r\n var diff;\r\n // effin' IE8/9/10/11 sometimes returns 0 for dimensions. this weird hack was the only thing that worked\r\n both.css({\r\n position: 'relative',\r\n left: -1 // ensure reflow in case the el was already relative. negative is less likely to cause new scroll\r\n });\r\n diff = outerEl.outerHeight() - innerEl.outerHeight(); // grab the dimensions\r\n both.css({ position: '', left: '' }); // undo hack\r\n return diff;\r\n}\r\nexports.subtractInnerElHeight = subtractInnerElHeight;\r\n/* Element Geom Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// borrowed from https://github.com/jquery/jquery-ui/blob/1.11.0/ui/core.js#L51\r\nfunction getScrollParent(el) {\r\n var position = el.css('position');\r\n var scrollParent = el.parents().filter(function () {\r\n var parent = $(this);\r\n return (/(auto|scroll)/).test(parent.css('overflow') + parent.css('overflow-y') + parent.css('overflow-x'));\r\n }).eq(0);\r\n return position === 'fixed' || !scrollParent.length ? $(el[0].ownerDocument || document) : scrollParent;\r\n}\r\nexports.getScrollParent = getScrollParent;\r\n// Queries the outer bounding area of a jQuery element.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getOuterRect(el, origin) {\r\n var offset = el.offset();\r\n var left = offset.left - (origin ? origin.left : 0);\r\n var top = offset.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.outerWidth(),\r\n top: top,\r\n bottom: top + el.outerHeight()\r\n };\r\n}\r\nexports.getOuterRect = getOuterRect;\r\n// Queries the area within the margin/border/scrollbars of a jQuery element. Does not go within the padding.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\n// WARNING: given element can't have borders\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getClientRect(el, origin) {\r\n var offset = el.offset();\r\n var scrollbarWidths = getScrollbarWidths(el);\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + scrollbarWidths.left - (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + scrollbarWidths.top - (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el[0].clientWidth,\r\n top: top,\r\n bottom: top + el[0].clientHeight // clientHeight includes padding but NOT scrollbars\r\n };\r\n}\r\nexports.getClientRect = getClientRect;\r\n// Queries the area within the margin/border/padding of a jQuery element. Assumed not to have scrollbars.\r\n// Returns a rectangle with absolute coordinates: left, right (exclusive), top, bottom (exclusive).\r\n// Origin is optional.\r\nfunction getContentRect(el, origin) {\r\n var offset = el.offset(); // just outside of border, margin not included\r\n var left = offset.left + getCssFloat(el, 'border-left-width') + getCssFloat(el, 'padding-left') -\r\n (origin ? origin.left : 0);\r\n var top = offset.top + getCssFloat(el, 'border-top-width') + getCssFloat(el, 'padding-top') -\r\n (origin ? origin.top : 0);\r\n return {\r\n left: left,\r\n right: left + el.width(),\r\n top: top,\r\n bottom: top + el.height()\r\n };\r\n}\r\nexports.getContentRect = getContentRect;\r\n// Returns the computed left/right/top/bottom scrollbar widths for the given jQuery element.\r\n// WARNING: given element can't have borders (which will cause offsetWidth/offsetHeight to be larger).\r\n// NOTE: should use clientLeft/clientTop, but very unreliable cross-browser.\r\nfunction getScrollbarWidths(el) {\r\n var leftRightWidth = el[0].offsetWidth - el[0].clientWidth;\r\n var bottomWidth = el[0].offsetHeight - el[0].clientHeight;\r\n var widths;\r\n leftRightWidth = sanitizeScrollbarWidth(leftRightWidth);\r\n bottomWidth = sanitizeScrollbarWidth(bottomWidth);\r\n widths = { left: 0, right: 0, top: 0, bottom: bottomWidth };\r\n if (getIsLeftRtlScrollbars() && el.css('direction') === 'rtl') {\r\n widths.left = leftRightWidth;\r\n }\r\n else {\r\n widths.right = leftRightWidth;\r\n }\r\n return widths;\r\n}\r\nexports.getScrollbarWidths = getScrollbarWidths;\r\n// The scrollbar width computations in getScrollbarWidths are sometimes flawed when it comes to\r\n// retina displays, rounding, and IE11. Massage them into a usable value.\r\nfunction sanitizeScrollbarWidth(width) {\r\n width = Math.max(0, width); // no negatives\r\n width = Math.round(width);\r\n return width;\r\n}\r\n// Logic for determining if, when the element is right-to-left, the scrollbar appears on the left side\r\nvar _isLeftRtlScrollbars = null;\r\nfunction getIsLeftRtlScrollbars() {\r\n if (_isLeftRtlScrollbars === null) {\r\n _isLeftRtlScrollbars = computeIsLeftRtlScrollbars();\r\n }\r\n return _isLeftRtlScrollbars;\r\n}\r\nfunction computeIsLeftRtlScrollbars() {\r\n var el = $('
')\r\n .css({\r\n position: 'absolute',\r\n top: -1000,\r\n left: 0,\r\n border: 0,\r\n padding: 0,\r\n overflow: 'scroll',\r\n direction: 'rtl'\r\n })\r\n .appendTo('body');\r\n var innerEl = el.children();\r\n var res = innerEl.offset().left > el.offset().left; // is the inner div shifted to accommodate a left scrollbar?\r\n el.remove();\r\n return res;\r\n}\r\n// Retrieves a jQuery element's computed CSS value as a floating-point number.\r\n// If the queried value is non-numeric (ex: IE can return \"medium\" for border width), will just return zero.\r\nfunction getCssFloat(el, prop) {\r\n return parseFloat(el.css(prop)) || 0;\r\n}\r\n/* Mouse / Touch Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\r\nfunction isPrimaryMouseButton(ev) {\r\n return ev.which === 1 && !ev.ctrlKey;\r\n}\r\nexports.isPrimaryMouseButton = isPrimaryMouseButton;\r\nfunction getEvX(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageX;\r\n }\r\n return ev.pageX;\r\n}\r\nexports.getEvX = getEvX;\r\nfunction getEvY(ev) {\r\n var touches = ev.originalEvent.touches;\r\n // on mobile FF, pageX for touch events is present, but incorrect,\r\n // so, look at touch coordinates first.\r\n if (touches && touches.length) {\r\n return touches[0].pageY;\r\n }\r\n return ev.pageY;\r\n}\r\nexports.getEvY = getEvY;\r\nfunction getEvIsTouch(ev) {\r\n return /^touch/.test(ev.type);\r\n}\r\nexports.getEvIsTouch = getEvIsTouch;\r\nfunction preventSelection(el) {\r\n el.addClass('fc-unselectable')\r\n .on('selectstart', preventDefault);\r\n}\r\nexports.preventSelection = preventSelection;\r\nfunction allowSelection(el) {\r\n el.removeClass('fc-unselectable')\r\n .off('selectstart', preventDefault);\r\n}\r\nexports.allowSelection = allowSelection;\r\n// Stops a mouse/touch event from doing it's native browser action\r\nfunction preventDefault(ev) {\r\n ev.preventDefault();\r\n}\r\nexports.preventDefault = preventDefault;\r\n/* General Geometry Utils\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\r\nfunction intersectRects(rect1, rect2) {\r\n var res = {\r\n left: Math.max(rect1.left, rect2.left),\r\n right: Math.min(rect1.right, rect2.right),\r\n top: Math.max(rect1.top, rect2.top),\r\n bottom: Math.min(rect1.bottom, rect2.bottom)\r\n };\r\n if (res.left < res.right && res.top < res.bottom) {\r\n return res;\r\n }\r\n return false;\r\n}\r\nexports.intersectRects = intersectRects;\r\n// Returns a new point that will have been moved to reside within the given rectangle\r\nfunction constrainPoint(point, rect) {\r\n return {\r\n left: Math.min(Math.max(point.left, rect.left), rect.right),\r\n top: Math.min(Math.max(point.top, rect.top), rect.bottom)\r\n };\r\n}\r\nexports.constrainPoint = constrainPoint;\r\n// Returns a point that is the center of the given rectangle\r\nfunction getRectCenter(rect) {\r\n return {\r\n left: (rect.left + rect.right) / 2,\r\n top: (rect.top + rect.bottom) / 2\r\n };\r\n}\r\nexports.getRectCenter = getRectCenter;\r\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\r\nfunction diffPoints(point1, point2) {\r\n return {\r\n left: point1.left - point2.left,\r\n top: point1.top - point2.top\r\n };\r\n}\r\nexports.diffPoints = diffPoints;\r\n/* Object Ordering by Field\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction parseFieldSpecs(input) {\r\n var specs = [];\r\n var tokens = [];\r\n var i;\r\n var token;\r\n if (typeof input === 'string') {\r\n tokens = input.split(/\\s*,\\s*/);\r\n }\r\n else if (typeof input === 'function') {\r\n tokens = [input];\r\n }\r\n else if ($.isArray(input)) {\r\n tokens = input;\r\n }\r\n for (i = 0; i < tokens.length; i++) {\r\n token = tokens[i];\r\n if (typeof token === 'string') {\r\n specs.push(token.charAt(0) === '-' ?\r\n { field: token.substring(1), order: -1 } :\r\n { field: token, order: 1 });\r\n }\r\n else if (typeof token === 'function') {\r\n specs.push({ func: token });\r\n }\r\n }\r\n return specs;\r\n}\r\nexports.parseFieldSpecs = parseFieldSpecs;\r\nfunction compareByFieldSpecs(obj1, obj2, fieldSpecs, obj1fallback, obj2fallback) {\r\n var i;\r\n var cmp;\r\n for (i = 0; i < fieldSpecs.length; i++) {\r\n cmp = compareByFieldSpec(obj1, obj2, fieldSpecs[i], obj1fallback, obj2fallback);\r\n if (cmp) {\r\n return cmp;\r\n }\r\n }\r\n return 0;\r\n}\r\nexports.compareByFieldSpecs = compareByFieldSpecs;\r\nfunction compareByFieldSpec(obj1, obj2, fieldSpec, obj1fallback, obj2fallback) {\r\n if (fieldSpec.func) {\r\n return fieldSpec.func(obj1, obj2);\r\n }\r\n var val1 = obj1[fieldSpec.field];\r\n var val2 = obj2[fieldSpec.field];\r\n if (val1 == null && obj1fallback) {\r\n val1 = obj1fallback[fieldSpec.field];\r\n }\r\n if (val2 == null && obj2fallback) {\r\n val2 = obj2fallback[fieldSpec.field];\r\n }\r\n return flexibleCompare(val1, val2) * (fieldSpec.order || 1);\r\n}\r\nexports.compareByFieldSpec = compareByFieldSpec;\r\nfunction flexibleCompare(a, b) {\r\n if (!a && !b) {\r\n return 0;\r\n }\r\n if (b == null) {\r\n return -1;\r\n }\r\n if (a == null) {\r\n return 1;\r\n }\r\n if ($.type(a) === 'string' || $.type(b) === 'string') {\r\n return String(a).localeCompare(String(b));\r\n }\r\n return a - b;\r\n}\r\nexports.flexibleCompare = flexibleCompare;\r\n/* Date Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nexports.dayIDs = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\nexports.unitsDesc = ['year', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; // descending\r\n// Diffs the two moments into a Duration where full-days are recorded first, then the remaining time.\r\n// Moments will have their timezones normalized.\r\nfunction diffDayTime(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days'),\r\n ms: a.time() - b.time() // time-of-day from day start. disregards timezone\r\n });\r\n}\r\nexports.diffDayTime = diffDayTime;\r\n// Diffs the two moments via their start-of-day (regardless of timezone). Produces whole-day durations.\r\nfunction diffDay(a, b) {\r\n return moment.duration({\r\n days: a.clone().stripTime().diff(b.clone().stripTime(), 'days')\r\n });\r\n}\r\nexports.diffDay = diffDay;\r\n// Diffs two moments, producing a duration, made of a whole-unit-increment of the given unit. Uses rounding.\r\nfunction diffByUnit(a, b, unit) {\r\n return moment.duration(Math.round(a.diff(b, unit, true)), // returnFloat=true\r\n unit);\r\n}\r\nexports.diffByUnit = diffByUnit;\r\n// Computes the unit name of the largest whole-unit period of time.\r\n// For example, 48 hours will be \"days\" whereas 49 hours will be \"hours\".\r\n// Accepts start/end, a range object, or an original duration object.\r\nfunction computeGreatestUnit(start, end) {\r\n var i;\r\n var unit;\r\n var val;\r\n for (i = 0; i < exports.unitsDesc.length; i++) {\r\n unit = exports.unitsDesc[i];\r\n val = computeRangeAs(unit, start, end);\r\n if (val >= 1 && isInt(val)) {\r\n break;\r\n }\r\n }\r\n return unit; // will be \"milliseconds\" if nothing else matches\r\n}\r\nexports.computeGreatestUnit = computeGreatestUnit;\r\n// like computeGreatestUnit, but has special abilities to interpret the source input for clues\r\nfunction computeDurationGreatestUnit(duration, durationInput) {\r\n var unit = computeGreatestUnit(duration);\r\n // prevent days:7 from being interpreted as a week\r\n if (unit === 'week' && typeof durationInput === 'object' && durationInput.days) {\r\n unit = 'day';\r\n }\r\n return unit;\r\n}\r\nexports.computeDurationGreatestUnit = computeDurationGreatestUnit;\r\n// Computes the number of units (like \"hours\") in the given range.\r\n// Range can be a {start,end} object, separate start/end args, or a Duration.\r\n// Results are based on Moment's .as() and .diff() methods, so results can depend on internal handling\r\n// of month-diffing logic (which tends to vary from version to version).\r\nfunction computeRangeAs(unit, start, end) {\r\n if (end != null) {\r\n return end.diff(start, unit, true);\r\n }\r\n else if (moment.isDuration(start)) {\r\n return start.as(unit);\r\n }\r\n else {\r\n return start.end.diff(start.start, unit, true);\r\n }\r\n}\r\n// Intelligently divides a range (specified by a start/end params) by a duration\r\nfunction divideRangeByDuration(start, end, dur) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return (end - start) / dur;\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return end.diff(start, 'months', true) / months;\r\n }\r\n return end.diff(start, 'days', true) / dur.asDays();\r\n}\r\nexports.divideRangeByDuration = divideRangeByDuration;\r\n// Intelligently divides one duration by another\r\nfunction divideDurationByDuration(dur1, dur2) {\r\n var months1;\r\n var months2;\r\n if (durationHasTime(dur1) || durationHasTime(dur2)) {\r\n return dur1 / dur2;\r\n }\r\n months1 = dur1.asMonths();\r\n months2 = dur2.asMonths();\r\n if (Math.abs(months1) >= 1 && isInt(months1) &&\r\n Math.abs(months2) >= 1 && isInt(months2)) {\r\n return months1 / months2;\r\n }\r\n return dur1.asDays() / dur2.asDays();\r\n}\r\nexports.divideDurationByDuration = divideDurationByDuration;\r\n// Intelligently multiplies a duration by a number\r\nfunction multiplyDuration(dur, n) {\r\n var months;\r\n if (durationHasTime(dur)) {\r\n return moment.duration(dur * n);\r\n }\r\n months = dur.asMonths();\r\n if (Math.abs(months) >= 1 && isInt(months)) {\r\n return moment.duration({ months: months * n });\r\n }\r\n return moment.duration({ days: dur.asDays() * n });\r\n}\r\nexports.multiplyDuration = multiplyDuration;\r\n// Returns a boolean about whether the given duration has any time parts (hours/minutes/seconds/ms)\r\nfunction durationHasTime(dur) {\r\n return Boolean(dur.hours() || dur.minutes() || dur.seconds() || dur.milliseconds());\r\n}\r\nexports.durationHasTime = durationHasTime;\r\nfunction isNativeDate(input) {\r\n return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date;\r\n}\r\nexports.isNativeDate = isNativeDate;\r\n// Returns a boolean about whether the given input is a time string, like \"06:40:00\" or \"06:00\"\r\nfunction isTimeString(str) {\r\n return typeof str === 'string' &&\r\n /^\\d+\\:\\d+(?:\\:\\d+\\.?(?:\\d{3})?)?$/.test(str);\r\n}\r\nexports.isTimeString = isTimeString;\r\n/* Logging and Debug\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nfunction log() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.log) {\r\n return console.log.apply(console, args);\r\n }\r\n}\r\nexports.log = log;\r\nfunction warn() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var console = window.console;\r\n if (console && console.warn) {\r\n return console.warn.apply(console, args);\r\n }\r\n else {\r\n return log.apply(null, args);\r\n }\r\n}\r\nexports.warn = warn;\r\n/* General Utilities\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar hasOwnPropMethod = {}.hasOwnProperty;\r\n// Merges an array of objects into a single object.\r\n// The second argument allows for an array of property names who's object values will be merged together.\r\nfunction mergeProps(propObjs, complexProps) {\r\n var dest = {};\r\n var i;\r\n var name;\r\n var complexObjs;\r\n var j;\r\n var val;\r\n var props;\r\n if (complexProps) {\r\n for (i = 0; i < complexProps.length; i++) {\r\n name = complexProps[i];\r\n complexObjs = [];\r\n // collect the trailing object values, stopping when a non-object is discovered\r\n for (j = propObjs.length - 1; j >= 0; j--) {\r\n val = propObjs[j][name];\r\n if (typeof val === 'object') {\r\n complexObjs.unshift(val);\r\n }\r\n else if (val !== undefined) {\r\n dest[name] = val; // if there were no objects, this value will be used\r\n break;\r\n }\r\n }\r\n // if the trailing values were objects, use the merged value\r\n if (complexObjs.length) {\r\n dest[name] = mergeProps(complexObjs);\r\n }\r\n }\r\n }\r\n // copy values into the destination, going from last to first\r\n for (i = propObjs.length - 1; i >= 0; i--) {\r\n props = propObjs[i];\r\n for (name in props) {\r\n if (!(name in dest)) {\r\n dest[name] = props[name];\r\n }\r\n }\r\n }\r\n return dest;\r\n}\r\nexports.mergeProps = mergeProps;\r\nfunction copyOwnProps(src, dest) {\r\n for (var name_1 in src) {\r\n if (hasOwnProp(src, name_1)) {\r\n dest[name_1] = src[name_1];\r\n }\r\n }\r\n}\r\nexports.copyOwnProps = copyOwnProps;\r\nfunction hasOwnProp(obj, name) {\r\n return hasOwnPropMethod.call(obj, name);\r\n}\r\nexports.hasOwnProp = hasOwnProp;\r\nfunction applyAll(functions, thisObj, args) {\r\n if ($.isFunction(functions)) {\r\n functions = [functions];\r\n }\r\n if (functions) {\r\n var i = void 0;\r\n var ret = void 0;\r\n for (i = 0; i < functions.length; i++) {\r\n ret = functions[i].apply(thisObj, args) || ret;\r\n }\r\n return ret;\r\n }\r\n}\r\nexports.applyAll = applyAll;\r\nfunction removeMatching(array, testFunc) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (testFunc(array[i])) {\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeMatching = removeMatching;\r\nfunction removeExact(array, exactVal) {\r\n var removeCnt = 0;\r\n var i = 0;\r\n while (i < array.length) {\r\n if (array[i] === exactVal) {\r\n array.splice(i, 1);\r\n removeCnt++;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return removeCnt;\r\n}\r\nexports.removeExact = removeExact;\r\nfunction isArraysEqual(a0, a1) {\r\n var len = a0.length;\r\n var i;\r\n if (len == null || len !== a1.length) {\r\n return false;\r\n }\r\n for (i = 0; i < len; i++) {\r\n if (a0[i] !== a1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nexports.isArraysEqual = isArraysEqual;\r\nfunction firstDefined() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0; i < args.length; i++) {\r\n if (args[i] !== undefined) {\r\n return args[i];\r\n }\r\n }\r\n}\r\nexports.firstDefined = firstDefined;\r\nfunction htmlEscape(s) {\r\n return (s + '').replace(/&/g, '&')\r\n .replace(//g, '>')\r\n .replace(/'/g, ''')\r\n .replace(/\"/g, '"')\r\n .replace(/\\n/g, '
');\r\n}\r\nexports.htmlEscape = htmlEscape;\r\nfunction stripHtmlEntities(text) {\r\n return text.replace(/&.*?;/g, '');\r\n}\r\nexports.stripHtmlEntities = stripHtmlEntities;\r\n// Given a hash of CSS properties, returns a string of CSS.\r\n// Uses property names as-is (no camel-case conversion). Will not make statements for null/undefined values.\r\nfunction cssToStr(cssProps) {\r\n var statements = [];\r\n $.each(cssProps, function (name, val) {\r\n if (val != null) {\r\n statements.push(name + ':' + val);\r\n }\r\n });\r\n return statements.join(';');\r\n}\r\nexports.cssToStr = cssToStr;\r\n// Given an object hash of HTML attribute names to values,\r\n// generates a string that can be injected between < > in HTML\r\nfunction attrsToStr(attrs) {\r\n var parts = [];\r\n $.each(attrs, function (name, val) {\r\n if (val != null) {\r\n parts.push(name + '=\"' + htmlEscape(val) + '\"');\r\n }\r\n });\r\n return parts.join(' ');\r\n}\r\nexports.attrsToStr = attrsToStr;\r\nfunction capitaliseFirstLetter(str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n}\r\nexports.capitaliseFirstLetter = capitaliseFirstLetter;\r\nfunction compareNumbers(a, b) {\r\n return a - b;\r\n}\r\nexports.compareNumbers = compareNumbers;\r\nfunction isInt(n) {\r\n return n % 1 === 0;\r\n}\r\nexports.isInt = isInt;\r\n// Returns a method bound to the given object context.\r\n// Just like one of the jQuery.proxy signatures, but without the undesired behavior of treating the same method with\r\n// different contexts as identical when binding/unbinding events.\r\nfunction proxy(obj, methodName) {\r\n var method = obj[methodName];\r\n return function () {\r\n return method.apply(obj, arguments);\r\n };\r\n}\r\nexports.proxy = proxy;\r\n// Returns a function, that, as long as it continues to be invoked, will not\r\n// be triggered. The function will be called after it stops being called for\r\n// N milliseconds. If `immediate` is passed, trigger the function on the\r\n// leading edge, instead of the trailing.\r\n// https://github.com/jashkenas/underscore/blob/1.6.0/underscore.js#L714\r\nfunction debounce(func, wait, immediate) {\r\n if (immediate === void 0) { immediate = false; }\r\n var timeout;\r\n var args;\r\n var context;\r\n var timestamp;\r\n var result;\r\n var later = function () {\r\n var last = +new Date() - timestamp;\r\n if (last < wait) {\r\n timeout = setTimeout(later, wait - last);\r\n }\r\n else {\r\n timeout = null;\r\n if (!immediate) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n }\r\n };\r\n return function () {\r\n context = this;\r\n args = arguments;\r\n timestamp = +new Date();\r\n var callNow = immediate && !timeout;\r\n if (!timeout) {\r\n timeout = setTimeout(later, wait);\r\n }\r\n if (callNow) {\r\n result = func.apply(context, args);\r\n context = args = null;\r\n }\r\n return result;\r\n };\r\n}\r\nexports.debounce = debounce;\r\n\r\n\r\n/***/ }),\r\n/* 5 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar UnzonedRange = /** @class */ (function () {\r\n function UnzonedRange(startInput, endInput) {\r\n // TODO: move these into footprint.\r\n // Especially, doesn't make sense for null startMs/endMs.\r\n this.isStart = true;\r\n this.isEnd = true;\r\n if (moment.isMoment(startInput)) {\r\n startInput = startInput.clone().stripZone();\r\n }\r\n if (moment.isMoment(endInput)) {\r\n endInput = endInput.clone().stripZone();\r\n }\r\n if (startInput) {\r\n this.startMs = startInput.valueOf();\r\n }\r\n if (endInput) {\r\n this.endMs = endInput.valueOf();\r\n }\r\n }\r\n /*\r\n SIDEEFFECT: will mutate eventRanges.\r\n Will return a new array result.\r\n Only works for non-open-ended ranges.\r\n */\r\n UnzonedRange.invertRanges = function (ranges, constraintRange) {\r\n var invertedRanges = [];\r\n var startMs = constraintRange.startMs; // the end of the previous range. the start of the new range\r\n var i;\r\n var dateRange;\r\n // ranges need to be in order. required for our date-walking algorithm\r\n ranges.sort(compareUnzonedRanges);\r\n for (i = 0; i < ranges.length; i++) {\r\n dateRange = ranges[i];\r\n // add the span of time before the event (if there is any)\r\n if (dateRange.startMs > startMs) {\r\n invertedRanges.push(new UnzonedRange(startMs, dateRange.startMs));\r\n }\r\n if (dateRange.endMs > startMs) {\r\n startMs = dateRange.endMs;\r\n }\r\n }\r\n // add the span of time after the last event (if there is any)\r\n if (startMs < constraintRange.endMs) {\r\n invertedRanges.push(new UnzonedRange(startMs, constraintRange.endMs));\r\n }\r\n return invertedRanges;\r\n };\r\n UnzonedRange.prototype.intersect = function (otherRange) {\r\n var startMs = this.startMs;\r\n var endMs = this.endMs;\r\n var newRange = null;\r\n if (otherRange.startMs != null) {\r\n if (startMs == null) {\r\n startMs = otherRange.startMs;\r\n }\r\n else {\r\n startMs = Math.max(startMs, otherRange.startMs);\r\n }\r\n }\r\n if (otherRange.endMs != null) {\r\n if (endMs == null) {\r\n endMs = otherRange.endMs;\r\n }\r\n else {\r\n endMs = Math.min(endMs, otherRange.endMs);\r\n }\r\n }\r\n if (startMs == null || endMs == null || startMs < endMs) {\r\n newRange = new UnzonedRange(startMs, endMs);\r\n newRange.isStart = this.isStart && startMs === this.startMs;\r\n newRange.isEnd = this.isEnd && endMs === this.endMs;\r\n }\r\n return newRange;\r\n };\r\n UnzonedRange.prototype.intersectsWith = function (otherRange) {\r\n return (this.endMs == null || otherRange.startMs == null || this.endMs > otherRange.startMs) &&\r\n (this.startMs == null || otherRange.endMs == null || this.startMs < otherRange.endMs);\r\n };\r\n UnzonedRange.prototype.containsRange = function (innerRange) {\r\n return (this.startMs == null || (innerRange.startMs != null && innerRange.startMs >= this.startMs)) &&\r\n (this.endMs == null || (innerRange.endMs != null && innerRange.endMs <= this.endMs));\r\n };\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n UnzonedRange.prototype.containsDate = function (date) {\r\n var ms = date.valueOf();\r\n return (this.startMs == null || ms >= this.startMs) &&\r\n (this.endMs == null || ms < this.endMs);\r\n };\r\n // If the given date is not within the given range, move it inside.\r\n // (If it's past the end, make it one millisecond before the end).\r\n // `date` can be a moment, a Date, or a millisecond time.\r\n // Returns a MS-time.\r\n UnzonedRange.prototype.constrainDate = function (date) {\r\n var ms = date.valueOf();\r\n if (this.startMs != null && ms < this.startMs) {\r\n ms = this.startMs;\r\n }\r\n if (this.endMs != null && ms >= this.endMs) {\r\n ms = this.endMs - 1;\r\n }\r\n return ms;\r\n };\r\n UnzonedRange.prototype.equals = function (otherRange) {\r\n return this.startMs === otherRange.startMs && this.endMs === otherRange.endMs;\r\n };\r\n UnzonedRange.prototype.clone = function () {\r\n var range = new UnzonedRange(this.startMs, this.endMs);\r\n range.isStart = this.isStart;\r\n range.isEnd = this.isEnd;\r\n return range;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getStart = function () {\r\n if (this.startMs != null) {\r\n return moment_ext_1.default.utc(this.startMs).stripZone();\r\n }\r\n return null;\r\n };\r\n // Returns an ambig-zoned moment from startMs.\r\n // BEWARE: returned moment is not localized.\r\n // Formatting and start-of-week will be default.\r\n UnzonedRange.prototype.getEnd = function () {\r\n if (this.endMs != null) {\r\n return moment_ext_1.default.utc(this.endMs).stripZone();\r\n }\r\n return null;\r\n };\r\n UnzonedRange.prototype.as = function (unit) {\r\n return moment.utc(this.endMs).diff(moment.utc(this.startMs), unit, true);\r\n };\r\n return UnzonedRange;\r\n}());\r\nexports.default = UnzonedRange;\r\n/*\r\nOnly works for non-open-ended ranges.\r\n*/\r\nfunction compareUnzonedRanges(range1, range2) {\r\n return range1.startMs - range2.startMs; // earlier ranges go first\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 6 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(208);\r\nvar Class_1 = __webpack_require__(33);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar EventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventSource, _super);\r\n // can we do away with calendar? at least for the abstract?\r\n // useful for buildEventDef\r\n function EventSource(calendar) {\r\n var _this = _super.call(this) || this;\r\n _this.calendar = calendar;\r\n _this.className = [];\r\n _this.uid = String(EventSource.uuid++);\r\n return _this;\r\n }\r\n /*\r\n rawInput can be any data type!\r\n */\r\n EventSource.parse = function (rawInput, calendar) {\r\n var source = new this(calendar);\r\n if (typeof rawInput === 'object') {\r\n if (source.applyProps(rawInput)) {\r\n return source;\r\n }\r\n }\r\n return false;\r\n };\r\n EventSource.normalizeId = function (id) {\r\n if (id) {\r\n return String(id);\r\n }\r\n return null;\r\n };\r\n EventSource.prototype.fetch = function (start, end, timezone) {\r\n // subclasses must implement. must return a promise.\r\n };\r\n EventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n // optional for subclasses to implement\r\n };\r\n EventSource.prototype.removeAllEventDefs = function () {\r\n // optional for subclasses to implement\r\n };\r\n /*\r\n For compairing/matching\r\n */\r\n EventSource.prototype.getPrimitive = function (otherSource) {\r\n // subclasses must implement\r\n };\r\n EventSource.prototype.parseEventDefs = function (rawEventDefs) {\r\n var i;\r\n var eventDef;\r\n var eventDefs = [];\r\n for (i = 0; i < rawEventDefs.length; i++) {\r\n eventDef = this.parseEventDef(rawEventDefs[i]);\r\n if (eventDef) {\r\n eventDefs.push(eventDef);\r\n }\r\n }\r\n return eventDefs;\r\n };\r\n EventSource.prototype.parseEventDef = function (rawInput) {\r\n var calendarTransform = this.calendar.opt('eventDataTransform');\r\n var sourceTransform = this.eventDataTransform;\r\n if (calendarTransform) {\r\n rawInput = calendarTransform(rawInput, this.calendar);\r\n }\r\n if (sourceTransform) {\r\n rawInput = sourceTransform(rawInput, this.calendar);\r\n }\r\n return EventDefParser_1.default.parse(rawInput, this);\r\n };\r\n EventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventSource.normalizeId(rawProps.id);\r\n }\r\n // TODO: converge with EventDef\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n else if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventSource.uuid = 0;\r\n EventSource.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventSource.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventSource;\r\n}(Class_1.default));\r\nexports.default = EventSource;\r\nParsableModelMixin_1.default.mixInto(EventSource);\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nEventSource.defineStandardProps({\r\n // manually process...\r\n id: false,\r\n className: false,\r\n // automatically transfer...\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n rendering: true,\r\n overlap: true,\r\n constraint: true,\r\n allDayDefault: true,\r\n eventDataTransform: true\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 7 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/*\r\nUtility methods for easily listening to events on another object,\r\nand more importantly, easily unlistening from them.\r\n\r\nUSAGE:\r\n import { default as ListenerMixin, ListenerInterface } from './ListenerMixin'\r\nin class:\r\n listenTo: ListenerInterface['listenTo']\r\n stopListeningTo: ListenerInterface['stopListeningTo']\r\nafter class:\r\n ListenerMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar guid = 0;\r\nvar ListenerMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListenerMixin, _super);\r\n function ListenerMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Given an `other` object that has on/off methods, bind the given `callback` to an event by the given name.\r\n The `callback` will be called with the `this` context of the object that .listenTo is being called on.\r\n Can be called:\r\n .listenTo(other, eventName, callback)\r\n OR\r\n .listenTo(other, {\r\n eventName1: callback1,\r\n eventName2: callback2\r\n })\r\n */\r\n ListenerMixin.prototype.listenTo = function (other, arg, callback) {\r\n if (typeof arg === 'object') {\r\n for (var eventName in arg) {\r\n if (arg.hasOwnProperty(eventName)) {\r\n this.listenTo(other, eventName, arg[eventName]);\r\n }\r\n }\r\n }\r\n else if (typeof arg === 'string') {\r\n other.on(arg + '.' + this.getListenerNamespace(), // use event namespacing to identify this object\r\n $.proxy(callback, this) // always use `this` context\r\n // the usually-undesired jQuery guid behavior doesn't matter,\r\n // because we always unbind via namespace\r\n );\r\n }\r\n };\r\n /*\r\n Causes the current object to stop listening to events on the `other` object.\r\n `eventName` is optional. If omitted, will stop listening to ALL events on `other`.\r\n */\r\n ListenerMixin.prototype.stopListeningTo = function (other, eventName) {\r\n other.off((eventName || '') + '.' + this.getListenerNamespace());\r\n };\r\n /*\r\n Returns a string, unique to this object, to be used for event namespacing\r\n */\r\n ListenerMixin.prototype.getListenerNamespace = function () {\r\n if (this.listenerId == null) {\r\n this.listenerId = guid++;\r\n }\r\n return '_listener' + this.listenerId;\r\n };\r\n return ListenerMixin;\r\n}(Mixin_1.default));\r\nexports.default = ListenerMixin;\r\n\r\n\r\n/***/ }),\r\n/* 8 */,\r\n/* 9 */,\r\n/* 10 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ambigDateOfMonthRegex = /^\\s*\\d{4}-\\d\\d$/;\r\nvar ambigTimeOrZoneRegex = /^\\s*\\d{4}-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?)?$/;\r\nvar newMomentProto = moment.fn; // where we will attach our new methods\r\nexports.newMomentProto = newMomentProto;\r\nvar oldMomentProto = $.extend({}, newMomentProto); // copy of original moment methods\r\nexports.oldMomentProto = oldMomentProto;\r\n// tell momentjs to transfer these properties upon clone\r\nvar momentProperties = moment.momentProperties;\r\nmomentProperties.push('_fullCalendar');\r\nmomentProperties.push('_ambigTime');\r\nmomentProperties.push('_ambigZone');\r\n/*\r\nCall this if you want Moment's original format method to be used\r\n*/\r\nfunction oldMomentFormat(mom, formatStr) {\r\n return oldMomentProto.format.call(mom, formatStr); // oldMomentProto defined in moment-ext.js\r\n}\r\nexports.oldMomentFormat = oldMomentFormat;\r\n// Creating\r\n// -------------------------------------------------------------------------------------------------\r\n// Creates a new moment, similar to the vanilla moment(...) constructor, but with\r\n// extra features (ambiguous time, enhanced formatting). When given an existing moment,\r\n// it will function as a clone (and retain the zone of the moment). Anything else will\r\n// result in a moment in the local zone.\r\nvar momentExt = function () {\r\n return makeMoment(arguments);\r\n};\r\nexports.default = momentExt;\r\n// Sames as momentExt, but forces the resulting moment to be in the UTC timezone.\r\nmomentExt.utc = function () {\r\n var mom = makeMoment(arguments, true);\r\n // Force it into UTC because makeMoment doesn't guarantee it\r\n // (if given a pre-existing moment for example)\r\n if (mom.hasTime()) {\r\n mom.utc();\r\n }\r\n return mom;\r\n};\r\n// Same as momentExt, but when given an ISO8601 string, the timezone offset is preserved.\r\n// ISO8601 strings with no timezone offset will become ambiguously zoned.\r\nmomentExt.parseZone = function () {\r\n return makeMoment(arguments, true, true);\r\n};\r\n// Builds an enhanced moment from args. When given an existing moment, it clones. When given a\r\n// native Date, or called with no arguments (the current time), the resulting moment will be local.\r\n// Anything else needs to be \"parsed\" (a string or an array), and will be affected by:\r\n// parseAsUTC - if there is no zone information, should we parse the input in UTC?\r\n// parseZone - if there is zone information, should we force the zone of the moment?\r\nfunction makeMoment(args, parseAsUTC, parseZone) {\r\n if (parseAsUTC === void 0) { parseAsUTC = false; }\r\n if (parseZone === void 0) { parseZone = false; }\r\n var input = args[0];\r\n var isSingleString = args.length === 1 && typeof input === 'string';\r\n var isAmbigTime;\r\n var isAmbigZone;\r\n var ambigMatch;\r\n var mom;\r\n if (moment.isMoment(input) || util_1.isNativeDate(input) || input === undefined) {\r\n mom = moment.apply(null, args);\r\n }\r\n else {\r\n isAmbigTime = false;\r\n isAmbigZone = false;\r\n if (isSingleString) {\r\n if (ambigDateOfMonthRegex.test(input)) {\r\n // accept strings like '2014-05', but convert to the first of the month\r\n input += '-01';\r\n args = [input]; // for when we pass it on to moment's constructor\r\n isAmbigTime = true;\r\n isAmbigZone = true;\r\n }\r\n else if ((ambigMatch = ambigTimeOrZoneRegex.exec(input))) {\r\n isAmbigTime = !ambigMatch[5]; // no time part?\r\n isAmbigZone = true;\r\n }\r\n }\r\n else if ($.isArray(input)) {\r\n // arrays have no timezone information, so assume ambiguous zone\r\n isAmbigZone = true;\r\n }\r\n // otherwise, probably a string with a format\r\n if (parseAsUTC || isAmbigTime) {\r\n mom = moment.utc.apply(moment, args);\r\n }\r\n else {\r\n mom = moment.apply(null, args);\r\n }\r\n if (isAmbigTime) {\r\n mom._ambigTime = true;\r\n mom._ambigZone = true; // ambiguous time always means ambiguous zone\r\n }\r\n else if (parseZone) {\r\n if (isAmbigZone) {\r\n mom._ambigZone = true;\r\n }\r\n else if (isSingleString) {\r\n mom.utcOffset(input); // if not a valid zone, will assign UTC\r\n }\r\n }\r\n }\r\n mom._fullCalendar = true; // flag for extended functionality\r\n return mom;\r\n}\r\n// Week Number\r\n// -------------------------------------------------------------------------------------------------\r\n// Returns the week number, considering the locale's custom week number calcuation\r\n// `weeks` is an alias for `week`\r\nnewMomentProto.week = newMomentProto.weeks = function (input) {\r\n var weekCalc = this._locale._fullCalendar_weekCalc;\r\n if (input == null && typeof weekCalc === 'function') {\r\n return weekCalc(this);\r\n }\r\n else if (weekCalc === 'ISO') {\r\n return oldMomentProto.isoWeek.apply(this, arguments); // ISO getter/setter\r\n }\r\n return oldMomentProto.week.apply(this, arguments); // local getter/setter\r\n};\r\n// Time-of-day\r\n// -------------------------------------------------------------------------------------------------\r\n// GETTER\r\n// Returns a Duration with the hours/minutes/seconds/ms values of the moment.\r\n// If the moment has an ambiguous time, a duration of 00:00 will be returned.\r\n//\r\n// SETTER\r\n// You can supply a Duration, a Moment, or a Duration-like argument.\r\n// When setting the time, and the moment has an ambiguous time, it then becomes unambiguous.\r\nnewMomentProto.time = function (time) {\r\n // Fallback to the original method (if there is one) if this moment wasn't created via FullCalendar.\r\n // `time` is a generic enough method name where this precaution is necessary to avoid collisions w/ other plugins.\r\n if (!this._fullCalendar) {\r\n return oldMomentProto.time.apply(this, arguments);\r\n }\r\n if (time == null) {\r\n return moment.duration({\r\n hours: this.hours(),\r\n minutes: this.minutes(),\r\n seconds: this.seconds(),\r\n milliseconds: this.milliseconds()\r\n });\r\n }\r\n else {\r\n this._ambigTime = false; // mark that the moment now has a time\r\n if (!moment.isDuration(time) && !moment.isMoment(time)) {\r\n time = moment.duration(time);\r\n }\r\n // The day value should cause overflow (so 24 hours becomes 00:00:00 of next day).\r\n // Only for Duration times, not Moment times.\r\n var dayHours = 0;\r\n if (moment.isDuration(time)) {\r\n dayHours = Math.floor(time.asDays()) * 24;\r\n }\r\n // We need to set the individual fields.\r\n // Can't use startOf('day') then add duration. In case of DST at start of day.\r\n return this.hours(dayHours + time.hours())\r\n .minutes(time.minutes())\r\n .seconds(time.seconds())\r\n .milliseconds(time.milliseconds());\r\n }\r\n};\r\n// Converts the moment to UTC, stripping out its time-of-day and timezone offset,\r\n// but preserving its YMD. A moment with a stripped time will display no time\r\n// nor timezone offset when .format() is called.\r\nnewMomentProto.stripTime = function () {\r\n if (!this._ambigTime) {\r\n this.utc(true); // keepLocalTime=true (for keeping *date* value)\r\n // set time to zero\r\n this.set({\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0,\r\n ms: 0\r\n });\r\n // Mark the time as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears all ambig flags.\r\n this._ambigTime = true;\r\n this._ambigZone = true; // if ambiguous time, also ambiguous timezone offset\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns if the moment has a non-ambiguous time (boolean)\r\nnewMomentProto.hasTime = function () {\r\n return !this._ambigTime;\r\n};\r\n// Timezone\r\n// -------------------------------------------------------------------------------------------------\r\n// Converts the moment to UTC, stripping out its timezone offset, but preserving its\r\n// YMD and time-of-day. A moment with a stripped timezone offset will display no\r\n// timezone offset when .format() is called.\r\nnewMomentProto.stripZone = function () {\r\n var wasAmbigTime;\r\n if (!this._ambigZone) {\r\n wasAmbigTime = this._ambigTime;\r\n this.utc(true); // keepLocalTime=true (for keeping date and time values)\r\n // the above call to .utc()/.utcOffset() unfortunately might clear the ambig flags, so restore\r\n this._ambigTime = wasAmbigTime || false;\r\n // Mark the zone as ambiguous. This needs to happen after the .utc() call, which might call .utcOffset(),\r\n // which clears the ambig flags.\r\n this._ambigZone = true;\r\n }\r\n return this; // for chaining\r\n};\r\n// Returns of the moment has a non-ambiguous timezone offset (boolean)\r\nnewMomentProto.hasZone = function () {\r\n return !this._ambigZone;\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.local = function (keepLocalTime) {\r\n // for when converting from ambiguously-zoned to local,\r\n // keep the time values when converting from UTC -> local\r\n oldMomentProto.local.call(this, this._ambigZone || keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via local() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this; // for chaining\r\n};\r\n// implicitly marks a zone\r\nnewMomentProto.utc = function (keepLocalTime) {\r\n oldMomentProto.utc.call(this, keepLocalTime);\r\n // ensure non-ambiguous\r\n // this probably already happened via utc() -> utcOffset(), but don't rely on Moment's internals\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n return this;\r\n};\r\n// implicitly marks a zone (will probably get called upon .utc() and .local())\r\nnewMomentProto.utcOffset = function (tzo) {\r\n if (tzo != null) {\r\n // these assignments needs to happen before the original zone method is called.\r\n // I forget why, something to do with a browser crash.\r\n this._ambigTime = false;\r\n this._ambigZone = false;\r\n }\r\n return oldMomentProto.utcOffset.apply(this, arguments);\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 11 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/*\r\nUSAGE:\r\n import { default as EmitterMixin, EmitterInterface } from './EmitterMixin'\r\nin class:\r\n on: EmitterInterface['on']\r\n one: EmitterInterface['one']\r\n off: EmitterInterface['off']\r\n trigger: EmitterInterface['trigger']\r\n triggerWith: EmitterInterface['triggerWith']\r\n hasHandlers: EmitterInterface['hasHandlers']\r\nafter class:\r\n EmitterMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar EmitterMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(EmitterMixin, _super);\r\n function EmitterMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // jQuery-ification via $(this) allows a non-DOM object to have\r\n // the same event handling capabilities (including namespaces).\r\n EmitterMixin.prototype.on = function (types, handler) {\r\n $(this).on(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.one = function (types, handler) {\r\n $(this).one(types, this._prepareIntercept(handler));\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype._prepareIntercept = function (handler) {\r\n // handlers are always called with an \"event\" object as their first param.\r\n // sneak the `this` context and arguments into the extra parameter object\r\n // and forward them on to the original handler.\r\n var intercept = function (ev, extra) {\r\n return handler.apply(extra.context || this, extra.args || []);\r\n };\r\n // mimick jQuery's internal \"proxy\" system (risky, I know)\r\n // causing all functions with the same .guid to appear to be the same.\r\n // https://github.com/jquery/jquery/blob/2.2.4/src/core.js#L448\r\n // this is needed for calling .off with the original non-intercept handler.\r\n if (!handler.guid) {\r\n handler.guid = $.guid++;\r\n }\r\n intercept.guid = handler.guid;\r\n return intercept;\r\n };\r\n EmitterMixin.prototype.off = function (types, handler) {\r\n $(this).off(types, handler);\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.trigger = function (types) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // pass in \"extra\" info to the intercept\r\n $(this).triggerHandler(types, { args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.triggerWith = function (types, context, args) {\r\n // `triggerHandler` is less reliant on the DOM compared to `trigger`.\r\n // pass in \"extra\" info to the intercept.\r\n $(this).triggerHandler(types, { context: context, args: args });\r\n return this; // for chaining\r\n };\r\n EmitterMixin.prototype.hasHandlers = function (type) {\r\n var hash = $._data(this, 'events'); // http://blog.jquery.com/2012/08/09/jquery-1-8-released/\r\n return hash && hash[type] && hash[type].length > 0;\r\n };\r\n return EmitterMixin;\r\n}(Mixin_1.default));\r\nexports.default = EmitterMixin;\r\n\r\n\r\n/***/ }),\r\n/* 12 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar ComponentFootprint = /** @class */ (function () {\r\n function ComponentFootprint(unzonedRange, isAllDay) {\r\n this.isAllDay = false; // component can choose to ignore this\r\n this.unzonedRange = unzonedRange;\r\n this.isAllDay = isAllDay;\r\n }\r\n /*\r\n Only works for non-open-ended ranges.\r\n */\r\n ComponentFootprint.prototype.toLegacy = function (calendar) {\r\n return {\r\n start: calendar.msToMoment(this.unzonedRange.startMs, this.isAllDay),\r\n end: calendar.msToMoment(this.unzonedRange.endMs, this.isAllDay)\r\n };\r\n };\r\n return ComponentFootprint;\r\n}());\r\nexports.default = ComponentFootprint;\r\n\r\n\r\n/***/ }),\r\n/* 13 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventInstance_1 = __webpack_require__(209);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar SingleEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(SingleEventDef, _super);\r\n function SingleEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n Will receive start/end params, but will be ignored.\r\n */\r\n SingleEventDef.prototype.buildInstances = function () {\r\n return [this.buildInstance()];\r\n };\r\n SingleEventDef.prototype.buildInstance = function () {\r\n return new EventInstance_1.default(this, // definition\r\n this.dateProfile);\r\n };\r\n SingleEventDef.prototype.isAllDay = function () {\r\n return this.dateProfile.isAllDay();\r\n };\r\n SingleEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n def.dateProfile = this.dateProfile;\r\n return def;\r\n };\r\n SingleEventDef.prototype.rezone = function () {\r\n var calendar = this.source.calendar;\r\n var dateProfile = this.dateProfile;\r\n this.dateProfile = new EventDateProfile_1.default(calendar.moment(dateProfile.start), dateProfile.end ? calendar.moment(dateProfile.end) : null, calendar);\r\n };\r\n /*\r\n NOTE: if super-method fails, should still attempt to apply\r\n */\r\n SingleEventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n var dateProfile = EventDateProfile_1.default.parse(rawProps, this.source); // returns null on failure\r\n if (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n // make sure `date` shows up in the legacy event objects as-is\r\n if (rawProps.date != null) {\r\n this.miscProps.date = rawProps.date;\r\n }\r\n return superSuccess;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n return SingleEventDef;\r\n}(EventDef_1.default));\r\nexports.default = SingleEventDef;\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nSingleEventDef.defineStandardProps({\r\n start: false,\r\n date: false,\r\n end: false,\r\n allDay: false\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 14 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Mixin = /** @class */ (function () {\r\n function Mixin() {\r\n }\r\n Mixin.mixInto = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n if (!destClass.prototype[name]) {\r\n destClass.prototype[name] = _this.prototype[name];\r\n }\r\n });\r\n };\r\n /*\r\n will override existing methods\r\n TODO: remove! not used anymore\r\n */\r\n Mixin.mixOver = function (destClass) {\r\n var _this = this;\r\n Object.getOwnPropertyNames(this.prototype).forEach(function (name) {\r\n destClass.prototype[name] = _this.prototype[name];\r\n });\r\n };\r\n return Mixin;\r\n}());\r\nexports.default = Mixin;\r\n\r\n\r\n/***/ }),\r\n/* 15 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Interaction = /** @class */ (function () {\r\n function Interaction(component) {\r\n this.view = component._getView();\r\n this.component = component;\r\n }\r\n Interaction.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n Interaction.prototype.end = function () {\r\n // subclasses can implement\r\n };\r\n return Interaction;\r\n}());\r\nexports.default = Interaction;\r\n\r\n\r\n/***/ }),\r\n/* 16 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.version = '3.9.0';\r\n// When introducing internal API incompatibilities (where fullcalendar plugins would break),\r\n// the minor version of the calendar should be upped (ex: 2.7.2 -> 2.8.0)\r\n// and the below integer should be incremented.\r\nexports.internalApiVersion = 12;\r\nvar util_1 = __webpack_require__(4);\r\nexports.applyAll = util_1.applyAll;\r\nexports.debounce = util_1.debounce;\r\nexports.isInt = util_1.isInt;\r\nexports.htmlEscape = util_1.htmlEscape;\r\nexports.cssToStr = util_1.cssToStr;\r\nexports.proxy = util_1.proxy;\r\nexports.capitaliseFirstLetter = util_1.capitaliseFirstLetter;\r\nexports.getOuterRect = util_1.getOuterRect;\r\nexports.getClientRect = util_1.getClientRect;\r\nexports.getContentRect = util_1.getContentRect;\r\nexports.getScrollbarWidths = util_1.getScrollbarWidths;\r\nexports.preventDefault = util_1.preventDefault;\r\nexports.parseFieldSpecs = util_1.parseFieldSpecs;\r\nexports.compareByFieldSpecs = util_1.compareByFieldSpecs;\r\nexports.compareByFieldSpec = util_1.compareByFieldSpec;\r\nexports.flexibleCompare = util_1.flexibleCompare;\r\nexports.computeGreatestUnit = util_1.computeGreatestUnit;\r\nexports.divideRangeByDuration = util_1.divideRangeByDuration;\r\nexports.divideDurationByDuration = util_1.divideDurationByDuration;\r\nexports.multiplyDuration = util_1.multiplyDuration;\r\nexports.durationHasTime = util_1.durationHasTime;\r\nexports.log = util_1.log;\r\nexports.warn = util_1.warn;\r\nexports.removeExact = util_1.removeExact;\r\nexports.intersectRects = util_1.intersectRects;\r\nvar date_formatting_1 = __webpack_require__(47);\r\nexports.formatDate = date_formatting_1.formatDate;\r\nexports.formatRange = date_formatting_1.formatRange;\r\nexports.queryMostGranularFormatUnit = date_formatting_1.queryMostGranularFormatUnit;\r\nvar locale_1 = __webpack_require__(31);\r\nexports.datepickerLocale = locale_1.datepickerLocale;\r\nexports.locale = locale_1.locale;\r\nvar moment_ext_1 = __webpack_require__(10);\r\nexports.moment = moment_ext_1.default;\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nexports.EmitterMixin = EmitterMixin_1.default;\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexports.ListenerMixin = ListenerMixin_1.default;\r\nvar Model_1 = __webpack_require__(48);\r\nexports.Model = Model_1.default;\r\nvar Constraints_1 = __webpack_require__(207);\r\nexports.Constraints = Constraints_1.default;\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nexports.UnzonedRange = UnzonedRange_1.default;\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nexports.ComponentFootprint = ComponentFootprint_1.default;\r\nvar BusinessHourGenerator_1 = __webpack_require__(212);\r\nexports.BusinessHourGenerator = BusinessHourGenerator_1.default;\r\nvar EventDef_1 = __webpack_require__(34);\r\nexports.EventDef = EventDef_1.default;\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nexports.EventDefMutation = EventDefMutation_1.default;\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nexports.EventSourceParser = EventSourceParser_1.default;\r\nvar EventSource_1 = __webpack_require__(6);\r\nexports.EventSource = EventSource_1.default;\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nexports.defineThemeSystem = ThemeRegistry_1.defineThemeSystem;\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nexports.EventInstanceGroup = EventInstanceGroup_1.default;\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nexports.ArrayEventSource = ArrayEventSource_1.default;\r\nvar FuncEventSource_1 = __webpack_require__(215);\r\nexports.FuncEventSource = FuncEventSource_1.default;\r\nvar JsonFeedEventSource_1 = __webpack_require__(216);\r\nexports.JsonFeedEventSource = JsonFeedEventSource_1.default;\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nexports.EventFootprint = EventFootprint_1.default;\r\nvar Class_1 = __webpack_require__(33);\r\nexports.Class = Class_1.default;\r\nvar Mixin_1 = __webpack_require__(14);\r\nexports.Mixin = Mixin_1.default;\r\nvar CoordCache_1 = __webpack_require__(53);\r\nexports.CoordCache = CoordCache_1.default;\r\nvar DragListener_1 = __webpack_require__(54);\r\nexports.DragListener = DragListener_1.default;\r\nvar Promise_1 = __webpack_require__(20);\r\nexports.Promise = Promise_1.default;\r\nvar TaskQueue_1 = __webpack_require__(217);\r\nexports.TaskQueue = TaskQueue_1.default;\r\nvar RenderQueue_1 = __webpack_require__(218);\r\nexports.RenderQueue = RenderQueue_1.default;\r\nvar Scroller_1 = __webpack_require__(39);\r\nexports.Scroller = Scroller_1.default;\r\nvar Theme_1 = __webpack_require__(19);\r\nexports.Theme = Theme_1.default;\r\nvar DateComponent_1 = __webpack_require__(219);\r\nexports.DateComponent = DateComponent_1.default;\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nexports.InteractiveDateComponent = InteractiveDateComponent_1.default;\r\nvar Calendar_1 = __webpack_require__(220);\r\nexports.Calendar = Calendar_1.default;\r\nvar View_1 = __webpack_require__(41);\r\nexports.View = View_1.default;\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nexports.defineView = ViewRegistry_1.defineView;\r\nexports.getViewConfig = ViewRegistry_1.getViewConfig;\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nexports.DayTableMixin = DayTableMixin_1.default;\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nexports.BusinessHourRenderer = BusinessHourRenderer_1.default;\r\nvar EventRenderer_1 = __webpack_require__(42);\r\nexports.EventRenderer = EventRenderer_1.default;\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nexports.FillRenderer = FillRenderer_1.default;\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nexports.HelperRenderer = HelperRenderer_1.default;\r\nvar ExternalDropping_1 = __webpack_require__(222);\r\nexports.ExternalDropping = ExternalDropping_1.default;\r\nvar EventResizing_1 = __webpack_require__(223);\r\nexports.EventResizing = EventResizing_1.default;\r\nvar EventPointing_1 = __webpack_require__(59);\r\nexports.EventPointing = EventPointing_1.default;\r\nvar EventDragging_1 = __webpack_require__(224);\r\nexports.EventDragging = EventDragging_1.default;\r\nvar DateSelecting_1 = __webpack_require__(225);\r\nexports.DateSelecting = DateSelecting_1.default;\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nexports.StandardInteractionsMixin = StandardInteractionsMixin_1.default;\r\nvar AgendaView_1 = __webpack_require__(226);\r\nexports.AgendaView = AgendaView_1.default;\r\nvar TimeGrid_1 = __webpack_require__(227);\r\nexports.TimeGrid = TimeGrid_1.default;\r\nvar DayGrid_1 = __webpack_require__(61);\r\nexports.DayGrid = DayGrid_1.default;\r\nvar BasicView_1 = __webpack_require__(62);\r\nexports.BasicView = BasicView_1.default;\r\nvar MonthView_1 = __webpack_require__(229);\r\nexports.MonthView = MonthView_1.default;\r\nvar ListView_1 = __webpack_require__(230);\r\nexports.ListView = ListView_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 17 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/*\r\nMeant to be immutable\r\n*/\r\nvar EventDateProfile = /** @class */ (function () {\r\n function EventDateProfile(start, end, calendar) {\r\n this.start = start;\r\n this.end = end || null;\r\n this.unzonedRange = this.buildUnzonedRange(calendar);\r\n }\r\n /*\r\n Needs an EventSource object\r\n */\r\n EventDateProfile.parse = function (rawProps, source) {\r\n var startInput = rawProps.start || rawProps.date;\r\n var endInput = rawProps.end;\r\n if (!startInput) {\r\n return false;\r\n }\r\n var calendar = source.calendar;\r\n var start = calendar.moment(startInput);\r\n var end = endInput ? calendar.moment(endInput) : null;\r\n var forcedAllDay = rawProps.allDay;\r\n var forceEventDuration = calendar.opt('forceEventDuration');\r\n if (!start.isValid()) {\r\n return false;\r\n }\r\n if (end && (!end.isValid() || !end.isAfter(start))) {\r\n end = null;\r\n }\r\n if (forcedAllDay == null) {\r\n forcedAllDay = source.allDayDefault;\r\n if (forcedAllDay == null) {\r\n forcedAllDay = calendar.opt('allDayDefault');\r\n }\r\n }\r\n if (forcedAllDay === true) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else if (forcedAllDay === false) {\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n if (!end && forceEventDuration) {\r\n end = calendar.getDefaultEventEnd(!start.hasTime(), start);\r\n }\r\n return new EventDateProfile(start, end, calendar);\r\n };\r\n EventDateProfile.isStandardProp = function (propName) {\r\n return propName === 'start' || propName === 'date' || propName === 'end' || propName === 'allDay';\r\n };\r\n EventDateProfile.prototype.isAllDay = function () {\r\n return !(this.start.hasTime() || (this.end && this.end.hasTime()));\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.buildUnzonedRange = function (calendar) {\r\n var startMs = this.start.clone().stripZone().valueOf();\r\n var endMs = this.getEnd(calendar).stripZone().valueOf();\r\n return new UnzonedRange_1.default(startMs, endMs);\r\n };\r\n /*\r\n Needs a Calendar object\r\n */\r\n EventDateProfile.prototype.getEnd = function (calendar) {\r\n return this.end ?\r\n this.end.clone() :\r\n // derive the end from the start and allDay. compute allDay if necessary\r\n calendar.getDefaultEventEnd(this.isAllDay(), this.start);\r\n };\r\n return EventDateProfile;\r\n}());\r\nexports.default = EventDateProfile;\r\n\r\n\r\n/***/ }),\r\n/* 18 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar util_1 = __webpack_require__(35);\r\nvar EventRange_1 = __webpack_require__(211);\r\n/*\r\nIt's expected that there will be at least one EventInstance,\r\nOR that an explicitEventDef is assigned.\r\n*/\r\nvar EventInstanceGroup = /** @class */ (function () {\r\n function EventInstanceGroup(eventInstances) {\r\n this.eventInstances = eventInstances || [];\r\n }\r\n EventInstanceGroup.prototype.getAllEventRanges = function (constraintRange) {\r\n if (constraintRange) {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.eventInstances.map(util_1.eventInstanceToEventRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceRenderRanges = function (constraintRange) {\r\n if (this.isInverse()) {\r\n return this.sliceInverseRenderRanges(constraintRange);\r\n }\r\n else {\r\n return this.sliceNormalRenderRanges(constraintRange);\r\n }\r\n };\r\n EventInstanceGroup.prototype.sliceNormalRenderRanges = function (constraintRange) {\r\n var eventInstances = this.eventInstances;\r\n var i;\r\n var eventInstance;\r\n var slicedRange;\r\n var slicedEventRanges = [];\r\n for (i = 0; i < eventInstances.length; i++) {\r\n eventInstance = eventInstances[i];\r\n slicedRange = eventInstance.dateProfile.unzonedRange.intersect(constraintRange);\r\n if (slicedRange) {\r\n slicedEventRanges.push(new EventRange_1.default(slicedRange, eventInstance.def, eventInstance));\r\n }\r\n }\r\n return slicedEventRanges;\r\n };\r\n EventInstanceGroup.prototype.sliceInverseRenderRanges = function (constraintRange) {\r\n var unzonedRanges = this.eventInstances.map(util_1.eventInstanceToUnzonedRange);\r\n var ownerDef = this.getEventDef();\r\n unzonedRanges = UnzonedRange_1.default.invertRanges(unzonedRanges, constraintRange);\r\n return unzonedRanges.map(function (unzonedRange) {\r\n return new EventRange_1.default(unzonedRange, ownerDef); // don't give an EventInstance\r\n });\r\n };\r\n EventInstanceGroup.prototype.isInverse = function () {\r\n return this.getEventDef().hasInverseRendering();\r\n };\r\n EventInstanceGroup.prototype.getEventDef = function () {\r\n return this.explicitEventDef || this.eventInstances[0].def;\r\n };\r\n return EventInstanceGroup;\r\n}());\r\nexports.default = EventInstanceGroup;\r\n\r\n\r\n/***/ }),\r\n/* 19 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar Theme = /** @class */ (function () {\r\n function Theme(optionsManager) {\r\n this.optionsManager = optionsManager;\r\n this.processIconOverride();\r\n }\r\n Theme.prototype.processIconOverride = function () {\r\n if (this.iconOverrideOption) {\r\n this.setIconOverride(this.optionsManager.get(this.iconOverrideOption));\r\n }\r\n };\r\n Theme.prototype.setIconOverride = function (iconOverrideHash) {\r\n var iconClassesCopy;\r\n var buttonName;\r\n if ($.isPlainObject(iconOverrideHash)) {\r\n iconClassesCopy = $.extend({}, this.iconClasses);\r\n for (buttonName in iconOverrideHash) {\r\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\r\n }\r\n this.iconClasses = iconClassesCopy;\r\n }\r\n else if (iconOverrideHash === false) {\r\n this.iconClasses = {};\r\n }\r\n };\r\n Theme.prototype.applyIconOverridePrefix = function (className) {\r\n var prefix = this.iconOverridePrefix;\r\n if (prefix && className.indexOf(prefix) !== 0) {\r\n className = prefix + className;\r\n }\r\n return className;\r\n };\r\n Theme.prototype.getClass = function (key) {\r\n return this.classes[key] || '';\r\n };\r\n Theme.prototype.getIconClass = function (buttonName) {\r\n var className = this.iconClasses[buttonName];\r\n if (className) {\r\n return this.baseIconClass + ' ' + className;\r\n }\r\n return '';\r\n };\r\n Theme.prototype.getCustomButtonIconClass = function (customButtonProps) {\r\n var className;\r\n if (this.iconOverrideCustomButtonOption) {\r\n className = customButtonProps[this.iconOverrideCustomButtonOption];\r\n if (className) {\r\n return this.baseIconClass + ' ' + this.applyIconOverridePrefix(className);\r\n }\r\n }\r\n return '';\r\n };\r\n return Theme;\r\n}());\r\nexports.default = Theme;\r\nTheme.prototype.classes = {};\r\nTheme.prototype.iconClasses = {};\r\nTheme.prototype.baseIconClass = '';\r\nTheme.prototype.iconOverridePrefix = '';\r\n\r\n\r\n/***/ }),\r\n/* 20 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar PromiseStub = {\r\n construct: function (executor) {\r\n var deferred = $.Deferred();\r\n var promise = deferred.promise();\r\n if (typeof executor === 'function') {\r\n executor(function (val) {\r\n deferred.resolve(val);\r\n attachImmediatelyResolvingThen(promise, val);\r\n }, function () {\r\n deferred.reject();\r\n attachImmediatelyRejectingThen(promise);\r\n });\r\n }\r\n return promise;\r\n },\r\n resolve: function (val) {\r\n var deferred = $.Deferred().resolve(val);\r\n var promise = deferred.promise();\r\n attachImmediatelyResolvingThen(promise, val);\r\n return promise;\r\n },\r\n reject: function () {\r\n var deferred = $.Deferred().reject();\r\n var promise = deferred.promise();\r\n attachImmediatelyRejectingThen(promise);\r\n return promise;\r\n }\r\n};\r\nexports.default = PromiseStub;\r\nfunction attachImmediatelyResolvingThen(promise, val) {\r\n promise.then = function (onResolve) {\r\n if (typeof onResolve === 'function') {\r\n return PromiseStub.resolve(onResolve(val));\r\n }\r\n return promise;\r\n };\r\n}\r\nfunction attachImmediatelyRejectingThen(promise) {\r\n promise.then = function (onResolve, onReject) {\r\n if (typeof onReject === 'function') {\r\n onReject();\r\n }\r\n return promise;\r\n };\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 21 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(16);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nexportHooks.touchMouseIgnoreWait = 500;\r\nvar globalEmitter = null;\r\nvar neededCount = 0;\r\n/*\r\nListens to document and window-level user-interaction events, like touch events and mouse events,\r\nand fires these events as-is to whoever is observing a GlobalEmitter.\r\nBest when used as a singleton via GlobalEmitter.get()\r\n\r\nNormalizes mouse/touch events. For examples:\r\n- ignores the the simulated mouse events that happen after a quick tap: mousemove+mousedown+mouseup+click\r\n- compensates for various buggy scenarios where a touchend does not fire\r\n*/\r\nvar GlobalEmitter = /** @class */ (function () {\r\n function GlobalEmitter() {\r\n this.isTouching = false;\r\n this.mouseIgnoreDepth = 0;\r\n }\r\n // gets the singleton\r\n GlobalEmitter.get = function () {\r\n if (!globalEmitter) {\r\n globalEmitter = new GlobalEmitter();\r\n globalEmitter.bind();\r\n }\r\n return globalEmitter;\r\n };\r\n // called when an object knows it will need a GlobalEmitter in the near future.\r\n GlobalEmitter.needed = function () {\r\n GlobalEmitter.get(); // ensures globalEmitter\r\n neededCount++;\r\n };\r\n // called when the object that originally called needed() doesn't need a GlobalEmitter anymore.\r\n GlobalEmitter.unneeded = function () {\r\n neededCount--;\r\n if (!neededCount) {\r\n globalEmitter.unbind();\r\n globalEmitter = null;\r\n }\r\n };\r\n GlobalEmitter.prototype.bind = function () {\r\n var _this = this;\r\n this.listenTo($(document), {\r\n touchstart: this.handleTouchStart,\r\n touchcancel: this.handleTouchCancel,\r\n touchend: this.handleTouchEnd,\r\n mousedown: this.handleMouseDown,\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.handleMouseUp,\r\n click: this.handleClick,\r\n selectstart: this.handleSelectStart,\r\n contextmenu: this.handleContextMenu\r\n });\r\n // because we need to call preventDefault\r\n // because https://www.chromestatus.com/features/5093566007214080\r\n // TODO: investigate performance because this is a global handler\r\n window.addEventListener('touchmove', this.handleTouchMoveProxy = function (ev) {\r\n _this.handleTouchMove($.Event(ev));\r\n }, { passive: false } // allows preventDefault()\r\n );\r\n // attach a handler to get called when ANY scroll action happens on the page.\r\n // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\r\n // http://stackoverflow.com/a/32954565/96342\r\n window.addEventListener('scroll', this.handleScrollProxy = function (ev) {\r\n _this.handleScroll($.Event(ev));\r\n }, true // useCapture\r\n );\r\n };\r\n GlobalEmitter.prototype.unbind = function () {\r\n this.stopListeningTo($(document));\r\n window.removeEventListener('touchmove', this.handleTouchMoveProxy);\r\n window.removeEventListener('scroll', this.handleScrollProxy, true // useCapture\r\n );\r\n };\r\n // Touch Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleTouchStart = function (ev) {\r\n // if a previous touch interaction never ended with a touchend, then implicitly end it,\r\n // but since a new touch interaction is about to begin, don't start the mouse ignore period.\r\n this.stopTouch(ev, true); // skipMouseIgnore=true\r\n this.isTouching = true;\r\n this.trigger('touchstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleTouchMove = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchmove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchCancel = function (ev) {\r\n if (this.isTouching) {\r\n this.trigger('touchcancel', ev);\r\n // Have touchcancel fire an artificial touchend. That way, handlers won't need to listen to both.\r\n // If touchend fires later, it won't have any effect b/c isTouching will be false.\r\n this.stopTouch(ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleTouchEnd = function (ev) {\r\n this.stopTouch(ev);\r\n };\r\n // Mouse Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleMouseDown = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousedown', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseMove = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mousemove', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleMouseUp = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('mouseup', ev);\r\n }\r\n };\r\n GlobalEmitter.prototype.handleClick = function (ev) {\r\n if (!this.shouldIgnoreMouse()) {\r\n this.trigger('click', ev);\r\n }\r\n };\r\n // Misc Handlers\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.handleSelectStart = function (ev) {\r\n this.trigger('selectstart', ev);\r\n };\r\n GlobalEmitter.prototype.handleContextMenu = function (ev) {\r\n this.trigger('contextmenu', ev);\r\n };\r\n GlobalEmitter.prototype.handleScroll = function (ev) {\r\n this.trigger('scroll', ev);\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n GlobalEmitter.prototype.stopTouch = function (ev, skipMouseIgnore) {\r\n if (skipMouseIgnore === void 0) { skipMouseIgnore = false; }\r\n if (this.isTouching) {\r\n this.isTouching = false;\r\n this.trigger('touchend', ev);\r\n if (!skipMouseIgnore) {\r\n this.startTouchMouseIgnore();\r\n }\r\n }\r\n };\r\n GlobalEmitter.prototype.startTouchMouseIgnore = function () {\r\n var _this = this;\r\n var wait = exportHooks.touchMouseIgnoreWait;\r\n if (wait) {\r\n this.mouseIgnoreDepth++;\r\n setTimeout(function () {\r\n _this.mouseIgnoreDepth--;\r\n }, wait);\r\n }\r\n };\r\n GlobalEmitter.prototype.shouldIgnoreMouse = function () {\r\n return this.isTouching || Boolean(this.mouseIgnoreDepth);\r\n };\r\n return GlobalEmitter;\r\n}());\r\nexports.default = GlobalEmitter;\r\nListenerMixin_1.default.mixInto(GlobalEmitter);\r\nEmitterMixin_1.default.mixInto(GlobalEmitter);\r\n\r\n\r\n/***/ }),\r\n/* 22 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar exportHooks = __webpack_require__(16);\r\nexports.viewHash = {};\r\nexportHooks.views = exports.viewHash;\r\nfunction defineView(viewName, viewConfig) {\r\n exports.viewHash[viewName] = viewConfig;\r\n}\r\nexports.defineView = defineView;\r\nfunction getViewConfig(viewName) {\r\n return exports.viewHash[viewName];\r\n}\r\nexports.getViewConfig = getViewConfig;\r\n\r\n\r\n/***/ }),\r\n/* 23 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar DragListener_1 = __webpack_require__(54);\r\n/* Tracks mouse movements over a component and raises events about which hit the mouse is over.\r\n------------------------------------------------------------------------------------------------------------------------\r\noptions:\r\n- subjectEl\r\n- subjectCenter\r\n*/\r\nvar HitDragListener = /** @class */ (function (_super) {\r\n tslib_1.__extends(HitDragListener, _super);\r\n function HitDragListener(component, options) {\r\n var _this = _super.call(this, options) || this;\r\n _this.component = component;\r\n return _this;\r\n }\r\n // Called when drag listening starts (but a real drag has not necessarily began).\r\n // ev might be undefined if dragging was started manually.\r\n HitDragListener.prototype.handleInteractionStart = function (ev) {\r\n var subjectEl = this.subjectEl;\r\n var subjectRect;\r\n var origPoint;\r\n var point;\r\n this.component.hitsNeeded();\r\n this.computeScrollBounds(); // for autoscroll\r\n if (ev) {\r\n origPoint = { left: util_1.getEvX(ev), top: util_1.getEvY(ev) };\r\n point = origPoint;\r\n // constrain the point to bounds of the element being dragged\r\n if (subjectEl) {\r\n subjectRect = util_1.getOuterRect(subjectEl); // used for centering as well\r\n point = util_1.constrainPoint(point, subjectRect);\r\n }\r\n this.origHit = this.queryHit(point.left, point.top);\r\n // treat the center of the subject as the collision point?\r\n if (subjectEl && this.options.subjectCenter) {\r\n // only consider the area the subject overlaps the hit. best for large subjects.\r\n // TODO: skip this if hit didn't supply left/right/top/bottom\r\n if (this.origHit) {\r\n subjectRect = util_1.intersectRects(this.origHit, subjectRect) ||\r\n subjectRect; // in case there is no intersection\r\n }\r\n point = util_1.getRectCenter(subjectRect);\r\n }\r\n this.coordAdjust = util_1.diffPoints(point, origPoint); // point - origPoint\r\n }\r\n else {\r\n this.origHit = null;\r\n this.coordAdjust = null;\r\n }\r\n // call the super-method. do it after origHit has been computed\r\n _super.prototype.handleInteractionStart.call(this, ev);\r\n };\r\n // Called when the actual drag has started\r\n HitDragListener.prototype.handleDragStart = function (ev) {\r\n var hit;\r\n _super.prototype.handleDragStart.call(this, ev);\r\n // might be different from this.origHit if the min-distance is large\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n // report the initial hit the mouse is over\r\n // especially important if no min-distance and drag starts immediately\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n };\r\n // Called when the drag moves\r\n HitDragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n var hit;\r\n _super.prototype.handleDrag.call(this, dx, dy, ev);\r\n hit = this.queryHit(util_1.getEvX(ev), util_1.getEvY(ev));\r\n if (!isHitsEqual(hit, this.hit)) {\r\n if (this.hit) {\r\n this.handleHitOut();\r\n }\r\n if (hit) {\r\n this.handleHitOver(hit);\r\n }\r\n }\r\n };\r\n // Called when dragging has been stopped\r\n HitDragListener.prototype.handleDragEnd = function (ev) {\r\n this.handleHitDone();\r\n _super.prototype.handleDragEnd.call(this, ev);\r\n };\r\n // Called when a the mouse has just moved over a new hit\r\n HitDragListener.prototype.handleHitOver = function (hit) {\r\n var isOrig = isHitsEqual(hit, this.origHit);\r\n this.hit = hit;\r\n this.trigger('hitOver', this.hit, isOrig, this.origHit);\r\n };\r\n // Called when the mouse has just moved out of a hit\r\n HitDragListener.prototype.handleHitOut = function () {\r\n if (this.hit) {\r\n this.trigger('hitOut', this.hit);\r\n this.handleHitDone();\r\n this.hit = null;\r\n }\r\n };\r\n // Called after a hitOut. Also called before a dragStop\r\n HitDragListener.prototype.handleHitDone = function () {\r\n if (this.hit) {\r\n this.trigger('hitDone', this.hit);\r\n }\r\n };\r\n // Called when the interaction ends, whether there was a real drag or not\r\n HitDragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n _super.prototype.handleInteractionEnd.call(this, ev, isCancelled);\r\n this.origHit = null;\r\n this.hit = null;\r\n this.component.hitsNotNeeded();\r\n };\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n HitDragListener.prototype.handleScrollEnd = function () {\r\n _super.prototype.handleScrollEnd.call(this);\r\n // hits' absolute positions will be in new places after a user's scroll.\r\n // HACK for recomputing.\r\n if (this.isDragging) {\r\n this.component.releaseHits();\r\n this.component.prepareHits();\r\n }\r\n };\r\n // Gets the hit underneath the coordinates for the given mouse event\r\n HitDragListener.prototype.queryHit = function (left, top) {\r\n if (this.coordAdjust) {\r\n left += this.coordAdjust.left;\r\n top += this.coordAdjust.top;\r\n }\r\n return this.component.queryHit(left, top);\r\n };\r\n return HitDragListener;\r\n}(DragListener_1.default));\r\nexports.default = HitDragListener;\r\n// Returns `true` if the hits are identically equal. `false` otherwise. Must be from the same component.\r\n// Two null values will be considered equal, as two \"out of the component\" states are the same.\r\nfunction isHitsEqual(hit0, hit1) {\r\n if (!hit0 && !hit1) {\r\n return true;\r\n }\r\n if (hit0 && hit1) {\r\n return hit0.component === hit1.component &&\r\n isHitPropsWithin(hit0, hit1) &&\r\n isHitPropsWithin(hit1, hit0); // ensures all props are identical\r\n }\r\n return false;\r\n}\r\n// Returns true if all of subHit's non-standard properties are within superHit\r\nfunction isHitPropsWithin(subHit, superHit) {\r\n for (var propName in subHit) {\r\n if (!/^(component|left|right|top|bottom)$/.test(propName)) {\r\n if (subHit[propName] !== superHit[propName]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 24 */,\r\n/* 25 */,\r\n/* 26 */,\r\n/* 27 */,\r\n/* 28 */,\r\n/* 29 */,\r\n/* 30 */,\r\n/* 31 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(16);\r\nvar options_1 = __webpack_require__(32);\r\nvar util_1 = __webpack_require__(4);\r\nexports.localeOptionHash = {};\r\nexportHooks.locales = exports.localeOptionHash;\r\n// NOTE: can't guarantee any of these computations will run because not every locale has datepicker\r\n// configs, so make sure there are English fallbacks for these in the defaults file.\r\nvar dpComputableOptions = {\r\n buttonText: function (dpOptions) {\r\n return {\r\n // the translations sometimes wrongly contain HTML entities\r\n prev: util_1.stripHtmlEntities(dpOptions.prevText),\r\n next: util_1.stripHtmlEntities(dpOptions.nextText),\r\n today: util_1.stripHtmlEntities(dpOptions.currentText)\r\n };\r\n },\r\n // Produces format strings like \"MMMM YYYY\" -> \"September 2014\"\r\n monthYearFormat: function (dpOptions) {\r\n return dpOptions.showMonthAfterYear ?\r\n 'YYYY[' + dpOptions.yearSuffix + '] MMMM' :\r\n 'MMMM YYYY[' + dpOptions.yearSuffix + ']';\r\n }\r\n};\r\nvar momComputableOptions = {\r\n // Produces format strings like \"ddd M/D\" -> \"Fri 9/15\"\r\n dayOfMonthFormat: function (momOptions, fcOptions) {\r\n var format = momOptions.longDateFormat('l'); // for the format like \"M/D/YYYY\"\r\n // strip the year off the edge, as well as other misc non-whitespace chars\r\n format = format.replace(/^Y+[^\\w\\s]*|[^\\w\\s]*Y+$/g, '');\r\n if (fcOptions.isRTL) {\r\n format += ' ddd'; // for RTL, add day-of-week to end\r\n }\r\n else {\r\n format = 'ddd ' + format; // for LTR, add day-of-week to beginning\r\n }\r\n return format;\r\n },\r\n // Produces format strings like \"h:mma\" -> \"6:00pm\"\r\n mediumTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)a\" -> \"6pm\" / \"6:30pm\"\r\n smallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h(:mm)t\" -> \"6p\" / \"6:30p\"\r\n extraSmallTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '(:mm)')\r\n .replace(/(\\Wmm)$/, '($1)') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 't'); // convert to AM/PM/am/pm to lowercase one-letter. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"ha\" / \"H\" -> \"6pm\" / \"18\"\r\n hourFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(':mm', '')\r\n .replace(/(\\Wmm)$/, '') // like above, but for foreign locales\r\n .replace(/\\s*a$/i, 'a'); // convert AM/PM/am/pm to lowercase. remove any spaces beforehand\r\n },\r\n // Produces format strings like \"h:mm\" -> \"6:30\" (with no AM/PM)\r\n noMeridiemTimeFormat: function (momOptions) {\r\n return momOptions.longDateFormat('LT')\r\n .replace(/\\s*a$/i, ''); // remove trailing AM/PM\r\n }\r\n};\r\n// options that should be computed off live calendar options (considers override options)\r\n// TODO: best place for this? related to locale?\r\n// TODO: flipping text based on isRTL is a bad idea because the CSS `direction` might want to handle it\r\nvar instanceComputableOptions = {\r\n // Produces format strings for results like \"Mo 16\"\r\n smallDayDateFormat: function (options) {\r\n return options.isRTL ?\r\n 'D dd' :\r\n 'dd D';\r\n },\r\n // Produces format strings for results like \"Wk 5\"\r\n weekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[ ' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ' ]w';\r\n },\r\n // Produces format strings for results like \"Wk5\"\r\n smallWeekFormat: function (options) {\r\n return options.isRTL ?\r\n 'w[' + options.weekNumberTitle + ']' :\r\n '[' + options.weekNumberTitle + ']w';\r\n }\r\n};\r\n// TODO: make these computable properties in optionsManager\r\nfunction populateInstanceComputableOptions(options) {\r\n $.each(instanceComputableOptions, function (name, func) {\r\n if (options[name] == null) {\r\n options[name] = func(options);\r\n }\r\n });\r\n}\r\nexports.populateInstanceComputableOptions = populateInstanceComputableOptions;\r\n// Initialize jQuery UI datepicker translations while using some of the translations\r\n// Will set this as the default locales for datepicker.\r\nfunction datepickerLocale(localeCode, dpLocaleCode, dpOptions) {\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n var fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // transfer some simple options from datepicker to fc\r\n fcOptions.isRTL = dpOptions.isRTL;\r\n fcOptions.weekNumberTitle = dpOptions.weekHeader;\r\n // compute some more complex options from datepicker\r\n $.each(dpComputableOptions, function (name, func) {\r\n fcOptions[name] = func(dpOptions);\r\n });\r\n var jqDatePicker = $.datepicker;\r\n // is jQuery UI Datepicker is on the page?\r\n if (jqDatePicker) {\r\n // Register the locale data.\r\n // FullCalendar and MomentJS use locale codes like \"pt-br\" but Datepicker\r\n // does it like \"pt-BR\" or if it doesn't have the locale, maybe just \"pt\".\r\n // Make an alias so the locale can be referenced either way.\r\n jqDatePicker.regional[dpLocaleCode] =\r\n jqDatePicker.regional[localeCode] = // alias\r\n dpOptions;\r\n // Alias 'en' to the default locale data. Do this every time.\r\n jqDatePicker.regional.en = jqDatePicker.regional[''];\r\n // Set as Datepicker's global defaults.\r\n jqDatePicker.setDefaults(dpOptions);\r\n }\r\n}\r\nexports.datepickerLocale = datepickerLocale;\r\n// Sets FullCalendar-specific translations. Will set the locales as the global default.\r\nfunction locale(localeCode, newFcOptions) {\r\n var fcOptions;\r\n var momOptions;\r\n // get the FullCalendar internal option hash for this locale. create if necessary\r\n fcOptions = exports.localeOptionHash[localeCode] || (exports.localeOptionHash[localeCode] = {});\r\n // provided new options for this locales? merge them in\r\n if (newFcOptions) {\r\n fcOptions = exports.localeOptionHash[localeCode] = options_1.mergeOptions([fcOptions, newFcOptions]);\r\n }\r\n // compute locale options that weren't defined.\r\n // always do this. newFcOptions can be undefined when initializing from i18n file,\r\n // so no way to tell if this is an initialization or a default-setting.\r\n momOptions = getMomentLocaleData(localeCode); // will fall back to en\r\n $.each(momComputableOptions, function (name, func) {\r\n if (fcOptions[name] == null) {\r\n fcOptions[name] = (func)(momOptions, fcOptions);\r\n }\r\n });\r\n // set it as the default locale for FullCalendar\r\n options_1.globalDefaults.locale = localeCode;\r\n}\r\nexports.locale = locale;\r\n// Returns moment's internal locale data. If doesn't exist, returns English.\r\nfunction getMomentLocaleData(localeCode) {\r\n return moment.localeData(localeCode) || moment.localeData('en');\r\n}\r\nexports.getMomentLocaleData = getMomentLocaleData;\r\n// Initialize English by forcing computation of moment-derived options.\r\n// Also, sets it as the default.\r\nlocale('en', options_1.englishDefaults);\r\n\r\n\r\n/***/ }),\r\n/* 32 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nexports.globalDefaults = {\r\n titleRangeSeparator: ' \\u2013 ',\r\n monthYearFormat: 'MMMM YYYY',\r\n defaultTimedEventDuration: '02:00:00',\r\n defaultAllDayEventDuration: { days: 1 },\r\n forceEventDuration: false,\r\n nextDayThreshold: '09:00:00',\r\n // display\r\n columnHeader: true,\r\n defaultView: 'month',\r\n aspectRatio: 1.35,\r\n header: {\r\n left: 'title',\r\n center: '',\r\n right: 'today prev,next'\r\n },\r\n weekends: true,\r\n weekNumbers: false,\r\n weekNumberTitle: 'W',\r\n weekNumberCalculation: 'local',\r\n // editable: false,\r\n // nowIndicator: false,\r\n scrollTime: '06:00:00',\r\n minTime: '00:00:00',\r\n maxTime: '24:00:00',\r\n showNonCurrentDates: true,\r\n // event ajax\r\n lazyFetching: true,\r\n startParam: 'start',\r\n endParam: 'end',\r\n timezoneParam: 'timezone',\r\n timezone: false,\r\n // allDayDefault: undefined,\r\n // locale\r\n locale: null,\r\n isRTL: false,\r\n buttonText: {\r\n prev: 'prev',\r\n next: 'next',\r\n prevYear: 'prev year',\r\n nextYear: 'next year',\r\n year: 'year',\r\n today: 'today',\r\n month: 'month',\r\n week: 'week',\r\n day: 'day'\r\n },\r\n // buttonIcons: null,\r\n allDayText: 'all-day',\r\n // allows setting a min-height to the event segment to prevent short events overlapping each other\r\n agendaEventMinHeight: 0,\r\n // jquery-ui theming\r\n theme: false,\r\n // themeButtonIcons: null,\r\n // eventResizableFromStart: false,\r\n dragOpacity: .75,\r\n dragRevertDuration: 500,\r\n dragScroll: true,\r\n // selectable: false,\r\n unselectAuto: true,\r\n // selectMinDistance: 0,\r\n dropAccept: '*',\r\n eventOrder: 'title',\r\n // eventRenderWait: null,\r\n eventLimit: false,\r\n eventLimitText: 'more',\r\n eventLimitClick: 'popover',\r\n dayPopoverFormat: 'LL',\r\n handleWindowResize: true,\r\n windowResizeDelay: 100,\r\n longPressDelay: 1000\r\n};\r\nexports.englishDefaults = {\r\n dayPopoverFormat: 'dddd, MMMM D'\r\n};\r\nexports.rtlDefaults = {\r\n header: {\r\n left: 'next,prev today',\r\n center: '',\r\n right: 'title'\r\n },\r\n buttonIcons: {\r\n prev: 'right-single-arrow',\r\n next: 'left-single-arrow',\r\n prevYear: 'right-double-arrow',\r\n nextYear: 'left-double-arrow'\r\n },\r\n themeButtonIcons: {\r\n prev: 'circle-triangle-e',\r\n next: 'circle-triangle-w',\r\n nextYear: 'seek-prev',\r\n prevYear: 'seek-next'\r\n }\r\n};\r\nvar complexOptions = [\r\n 'header',\r\n 'footer',\r\n 'buttonText',\r\n 'buttonIcons',\r\n 'themeButtonIcons'\r\n];\r\n// Merges an array of option objects into a single object\r\nfunction mergeOptions(optionObjs) {\r\n return util_1.mergeProps(optionObjs, complexOptions);\r\n}\r\nexports.mergeOptions = mergeOptions;\r\n\r\n\r\n/***/ }),\r\n/* 33 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\n// Class that all other classes will inherit from\r\nvar Class = /** @class */ (function () {\r\n function Class() {\r\n }\r\n // Called on a class to create a subclass.\r\n // LIMITATION: cannot provide a constructor!\r\n Class.extend = function (members) {\r\n var SubClass = /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return SubClass;\r\n }(this));\r\n util_1.copyOwnProps(members, SubClass.prototype);\r\n return SubClass;\r\n };\r\n // Adds new member variables/methods to the class's prototype.\r\n // Can be called with another class, or a plain object hash containing new members.\r\n Class.mixin = function (members) {\r\n util_1.copyOwnProps(members, this.prototype);\r\n };\r\n return Class;\r\n}());\r\nexports.default = Class;\r\n\r\n\r\n/***/ }),\r\n/* 34 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar ParsableModelMixin_1 = __webpack_require__(208);\r\nvar EventDef = /** @class */ (function () {\r\n function EventDef(source) {\r\n this.source = source;\r\n this.className = [];\r\n this.miscProps = {};\r\n }\r\n EventDef.parse = function (rawInput, source) {\r\n var def = new this(source);\r\n if (def.applyProps(rawInput)) {\r\n return def;\r\n }\r\n return false;\r\n };\r\n EventDef.normalizeId = function (id) {\r\n return String(id);\r\n };\r\n EventDef.generateId = function () {\r\n return '_fc' + (EventDef.uuid++);\r\n };\r\n EventDef.prototype.clone = function () {\r\n var copy = new this.constructor(this.source);\r\n copy.id = this.id;\r\n copy.rawId = this.rawId;\r\n copy.uid = this.uid; // not really unique anymore :(\r\n EventDef.copyVerbatimStandardProps(this, copy);\r\n copy.className = this.className.slice(); // copy\r\n copy.miscProps = $.extend({}, this.miscProps);\r\n return copy;\r\n };\r\n EventDef.prototype.hasInverseRendering = function () {\r\n return this.getRendering() === 'inverse-background';\r\n };\r\n EventDef.prototype.hasBgRendering = function () {\r\n var rendering = this.getRendering();\r\n return rendering === 'inverse-background' || rendering === 'background';\r\n };\r\n EventDef.prototype.getRendering = function () {\r\n if (this.rendering != null) {\r\n return this.rendering;\r\n }\r\n return this.source.rendering;\r\n };\r\n EventDef.prototype.getConstraint = function () {\r\n if (this.constraint != null) {\r\n return this.constraint;\r\n }\r\n if (this.source.constraint != null) {\r\n return this.source.constraint;\r\n }\r\n return this.source.calendar.opt('eventConstraint'); // what about View option?\r\n };\r\n EventDef.prototype.getOverlap = function () {\r\n if (this.overlap != null) {\r\n return this.overlap;\r\n }\r\n if (this.source.overlap != null) {\r\n return this.source.overlap;\r\n }\r\n return this.source.calendar.opt('eventOverlap'); // what about View option?\r\n };\r\n EventDef.prototype.isStartExplicitlyEditable = function () {\r\n if (this.startEditable != null) {\r\n return this.startEditable;\r\n }\r\n return this.source.startEditable;\r\n };\r\n EventDef.prototype.isDurationExplicitlyEditable = function () {\r\n if (this.durationEditable != null) {\r\n return this.durationEditable;\r\n }\r\n return this.source.durationEditable;\r\n };\r\n EventDef.prototype.isExplicitlyEditable = function () {\r\n if (this.editable != null) {\r\n return this.editable;\r\n }\r\n return this.source.editable;\r\n };\r\n EventDef.prototype.toLegacy = function () {\r\n var obj = $.extend({}, this.miscProps);\r\n obj._id = this.uid;\r\n obj.source = this.source;\r\n obj.className = this.className.slice(); // copy\r\n obj.allDay = this.isAllDay();\r\n if (this.rawId != null) {\r\n obj.id = this.rawId;\r\n }\r\n EventDef.copyVerbatimStandardProps(this, obj);\r\n return obj;\r\n };\r\n EventDef.prototype.applyManualStandardProps = function (rawProps) {\r\n if (rawProps.id != null) {\r\n this.id = EventDef.normalizeId((this.rawId = rawProps.id));\r\n }\r\n else {\r\n this.id = EventDef.generateId();\r\n }\r\n if (rawProps._id != null) {\r\n this.uid = String(rawProps._id);\r\n }\r\n else {\r\n this.uid = EventDef.generateId();\r\n }\r\n // TODO: converge with EventSource\r\n if ($.isArray(rawProps.className)) {\r\n this.className = rawProps.className;\r\n }\r\n if (typeof rawProps.className === 'string') {\r\n this.className = rawProps.className.split(/\\s+/);\r\n }\r\n return true;\r\n };\r\n EventDef.prototype.applyMiscProps = function (rawProps) {\r\n $.extend(this.miscProps, rawProps);\r\n };\r\n EventDef.uuid = 0;\r\n EventDef.defineStandardProps = ParsableModelMixin_1.default.defineStandardProps;\r\n EventDef.copyVerbatimStandardProps = ParsableModelMixin_1.default.copyVerbatimStandardProps;\r\n return EventDef;\r\n}());\r\nexports.default = EventDef;\r\nParsableModelMixin_1.default.mixInto(EventDef);\r\nEventDef.defineStandardProps({\r\n // not automatically assigned (`false`)\r\n _id: false,\r\n id: false,\r\n className: false,\r\n source: false,\r\n // automatically assigned (`true`)\r\n title: true,\r\n url: true,\r\n rendering: true,\r\n constraint: true,\r\n overlap: true,\r\n editable: true,\r\n startEditable: true,\r\n durationEditable: true,\r\n color: true,\r\n backgroundColor: true,\r\n borderColor: true,\r\n textColor: true\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 35 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange_1 = __webpack_require__(211);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nfunction eventDefsToEventInstances(eventDefs, unzonedRange) {\r\n var eventInstances = [];\r\n var i;\r\n for (i = 0; i < eventDefs.length; i++) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventDefs[i].buildInstances(unzonedRange));\r\n }\r\n return eventInstances;\r\n}\r\nexports.eventDefsToEventInstances = eventDefsToEventInstances;\r\nfunction eventInstanceToEventRange(eventInstance) {\r\n return new EventRange_1.default(eventInstance.dateProfile.unzonedRange, eventInstance.def, eventInstance);\r\n}\r\nexports.eventInstanceToEventRange = eventInstanceToEventRange;\r\nfunction eventRangeToEventFootprint(eventRange) {\r\n return new EventFootprint_1.default(new ComponentFootprint_1.default(eventRange.unzonedRange, eventRange.eventDef.isAllDay()), eventRange.eventDef, eventRange.eventInstance // might not exist\r\n );\r\n}\r\nexports.eventRangeToEventFootprint = eventRangeToEventFootprint;\r\nfunction eventInstanceToUnzonedRange(eventInstance) {\r\n return eventInstance.dateProfile.unzonedRange;\r\n}\r\nexports.eventInstanceToUnzonedRange = eventInstanceToUnzonedRange;\r\nfunction eventFootprintToComponentFootprint(eventFootprint) {\r\n return eventFootprint.componentFootprint;\r\n}\r\nexports.eventFootprintToComponentFootprint = eventFootprintToComponentFootprint;\r\n\r\n\r\n/***/ }),\r\n/* 36 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventFootprint = /** @class */ (function () {\r\n function EventFootprint(componentFootprint, eventDef, eventInstance) {\r\n this.componentFootprint = componentFootprint;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n EventFootprint.prototype.getEventLegacy = function () {\r\n return (this.eventInstance || this.eventDef).toLegacy();\r\n };\r\n return EventFootprint;\r\n}());\r\nexports.default = EventFootprint;\r\n\r\n\r\n/***/ }),\r\n/* 37 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventDefMutation = /** @class */ (function () {\r\n function EventDefMutation() {\r\n }\r\n EventDefMutation.createFromRawProps = function (eventInstance, rawProps, largeUnit) {\r\n var eventDef = eventInstance.def;\r\n var dateProps = {};\r\n var standardProps = {};\r\n var miscProps = {};\r\n var verbatimStandardProps = {};\r\n var eventDefId = null;\r\n var className = null;\r\n var propName;\r\n var dateProfile;\r\n var dateMutation;\r\n var defMutation;\r\n for (propName in rawProps) {\r\n if (EventDateProfile_1.default.isStandardProp(propName)) {\r\n dateProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.isStandardProp(propName)) {\r\n standardProps[propName] = rawProps[propName];\r\n }\r\n else if (eventDef.miscProps[propName] !== rawProps[propName]) {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n dateProfile = EventDateProfile_1.default.parse(dateProps, eventDef.source);\r\n if (dateProfile) {\r\n dateMutation = EventDefDateMutation_1.default.createFromDiff(eventInstance.dateProfile, dateProfile, largeUnit);\r\n }\r\n if (standardProps.id !== eventDef.id) {\r\n eventDefId = standardProps.id; // only apply if there's a change\r\n }\r\n if (!util_1.isArraysEqual(standardProps.className, eventDef.className)) {\r\n className = standardProps.className; // only apply if there's a change\r\n }\r\n EventDef_1.default.copyVerbatimStandardProps(standardProps, // src\r\n verbatimStandardProps // dest\r\n );\r\n defMutation = new EventDefMutation();\r\n defMutation.eventDefId = eventDefId;\r\n defMutation.className = className;\r\n defMutation.verbatimStandardProps = verbatimStandardProps;\r\n defMutation.miscProps = miscProps;\r\n if (dateMutation) {\r\n defMutation.dateMutation = dateMutation;\r\n }\r\n return defMutation;\r\n };\r\n /*\r\n eventDef assumed to be a SingleEventDef.\r\n returns an undo function.\r\n */\r\n EventDefMutation.prototype.mutateSingle = function (eventDef) {\r\n var origDateProfile;\r\n if (this.dateMutation) {\r\n origDateProfile = eventDef.dateProfile;\r\n eventDef.dateProfile = this.dateMutation.buildNewDateProfile(origDateProfile, eventDef.source.calendar);\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.eventDefId != null) {\r\n eventDef.id = EventDef_1.default.normalizeId((eventDef.rawId = this.eventDefId));\r\n }\r\n // can't undo\r\n // TODO: more DRY with EventDef::applyManualStandardProps\r\n if (this.className) {\r\n eventDef.className = this.className;\r\n }\r\n // can't undo\r\n if (this.verbatimStandardProps) {\r\n SingleEventDef_1.default.copyVerbatimStandardProps(this.verbatimStandardProps, // src\r\n eventDef // dest\r\n );\r\n }\r\n // can't undo\r\n if (this.miscProps) {\r\n eventDef.applyMiscProps(this.miscProps);\r\n }\r\n if (origDateProfile) {\r\n return function () {\r\n eventDef.dateProfile = origDateProfile;\r\n };\r\n }\r\n else {\r\n return function () { };\r\n }\r\n };\r\n EventDefMutation.prototype.setDateMutation = function (dateMutation) {\r\n if (dateMutation && !dateMutation.isEmpty()) {\r\n this.dateMutation = dateMutation;\r\n }\r\n else {\r\n this.dateMutation = null;\r\n }\r\n };\r\n EventDefMutation.prototype.isEmpty = function () {\r\n return !this.dateMutation;\r\n };\r\n return EventDefMutation;\r\n}());\r\nexports.default = EventDefMutation;\r\n\r\n\r\n/***/ }),\r\n/* 38 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.default = {\r\n sourceClasses: [],\r\n registerClass: function (EventSourceClass) {\r\n this.sourceClasses.unshift(EventSourceClass); // give highest priority\r\n },\r\n parse: function (rawInput, calendar) {\r\n var sourceClasses = this.sourceClasses;\r\n var i;\r\n var eventSource;\r\n for (i = 0; i < sourceClasses.length; i++) {\r\n eventSource = sourceClasses[i].parse(rawInput, calendar);\r\n if (eventSource) {\r\n return eventSource;\r\n }\r\n }\r\n }\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 39 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Class_1 = __webpack_require__(33);\r\n/*\r\nEmbodies a div that has potential scrollbars\r\n*/\r\nvar Scroller = /** @class */ (function (_super) {\r\n tslib_1.__extends(Scroller, _super);\r\n function Scroller(options) {\r\n var _this = _super.call(this) || this;\r\n options = options || {};\r\n _this.overflowX = options.overflowX || options.overflow || 'auto';\r\n _this.overflowY = options.overflowY || options.overflow || 'auto';\r\n return _this;\r\n }\r\n Scroller.prototype.render = function () {\r\n this.el = this.renderEl();\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.renderEl = function () {\r\n return (this.scrollEl = $('
'));\r\n };\r\n // sets to natural height, unlocks overflow\r\n Scroller.prototype.clear = function () {\r\n this.setHeight('auto');\r\n this.applyOverflow();\r\n };\r\n Scroller.prototype.destroy = function () {\r\n this.el.remove();\r\n };\r\n // Overflow\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.applyOverflow = function () {\r\n this.scrollEl.css({\r\n 'overflow-x': this.overflowX,\r\n 'overflow-y': this.overflowY\r\n });\r\n };\r\n // Causes any 'auto' overflow values to resolves to 'scroll' or 'hidden'.\r\n // Useful for preserving scrollbar widths regardless of future resizes.\r\n // Can pass in scrollbarWidths for optimization.\r\n Scroller.prototype.lockOverflow = function (scrollbarWidths) {\r\n var overflowX = this.overflowX;\r\n var overflowY = this.overflowY;\r\n scrollbarWidths = scrollbarWidths || this.getScrollbarWidths();\r\n if (overflowX === 'auto') {\r\n overflowX = (scrollbarWidths.top || scrollbarWidths.bottom || // horizontal scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth) ? 'scroll' : 'hidden';\r\n }\r\n if (overflowY === 'auto') {\r\n overflowY = (scrollbarWidths.left || scrollbarWidths.right || // vertical scrollbars?\r\n // OR scrolling pane with massless scrollbars?\r\n this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight) ? 'scroll' : 'hidden';\r\n }\r\n this.scrollEl.css({ 'overflow-x': overflowX, 'overflow-y': overflowY });\r\n };\r\n // Getters / Setters\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Scroller.prototype.setHeight = function (height) {\r\n this.scrollEl.height(height);\r\n };\r\n Scroller.prototype.getScrollTop = function () {\r\n return this.scrollEl.scrollTop();\r\n };\r\n Scroller.prototype.setScrollTop = function (top) {\r\n this.scrollEl.scrollTop(top);\r\n };\r\n Scroller.prototype.getClientWidth = function () {\r\n return this.scrollEl[0].clientWidth;\r\n };\r\n Scroller.prototype.getClientHeight = function () {\r\n return this.scrollEl[0].clientHeight;\r\n };\r\n Scroller.prototype.getScrollbarWidths = function () {\r\n return util_1.getScrollbarWidths(this.scrollEl);\r\n };\r\n return Scroller;\r\n}(Class_1.default));\r\nexports.default = Scroller;\r\n\r\n\r\n/***/ }),\r\n/* 40 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar DateComponent_1 = __webpack_require__(219);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar InteractiveDateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(InteractiveDateComponent, _super);\r\n function InteractiveDateComponent(_view, _options) {\r\n var _this = _super.call(this, _view, _options) || this;\r\n // self-config, overridable by subclasses\r\n _this.segSelector = '.fc-event-container > *'; // what constitutes an event element?\r\n if (_this.dateSelectingClass) {\r\n _this.dateClicking = new _this.dateClickingClass(_this);\r\n }\r\n if (_this.dateSelectingClass) {\r\n _this.dateSelecting = new _this.dateSelectingClass(_this);\r\n }\r\n if (_this.eventPointingClass) {\r\n _this.eventPointing = new _this.eventPointingClass(_this);\r\n }\r\n if (_this.eventDraggingClass && _this.eventPointing) {\r\n _this.eventDragging = new _this.eventDraggingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.eventResizingClass && _this.eventPointing) {\r\n _this.eventResizing = new _this.eventResizingClass(_this, _this.eventPointing);\r\n }\r\n if (_this.externalDroppingClass) {\r\n _this.externalDropping = new _this.externalDroppingClass(_this);\r\n }\r\n return _this;\r\n }\r\n // Sets the container element that the view should render inside of, does global DOM-related initializations,\r\n // and renders all the non-date-related content inside.\r\n InteractiveDateComponent.prototype.setElement = function (el) {\r\n _super.prototype.setElement.call(this, el);\r\n if (this.dateClicking) {\r\n this.dateClicking.bindToEl(el);\r\n }\r\n if (this.dateSelecting) {\r\n this.dateSelecting.bindToEl(el);\r\n }\r\n this.bindAllSegHandlersToEl(el);\r\n };\r\n InteractiveDateComponent.prototype.removeElement = function () {\r\n this.endInteractions();\r\n _super.prototype.removeElement.call(this);\r\n };\r\n InteractiveDateComponent.prototype.executeEventUnrender = function () {\r\n this.endInteractions();\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n InteractiveDateComponent.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.bindToDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n if (this.externalDropping) {\r\n this.externalDropping.unbindFromDocument();\r\n }\r\n };\r\n InteractiveDateComponent.prototype.bindDateHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n // attach a handler to the grid's root element.\r\n // jQuery will take care of unregistering them when removeElement gets called.\r\n this.el.on(name, function (ev) {\r\n if (!$(ev.target).is(_this.segSelector + ':not(.fc-helper),' + // directly on an event element\r\n _this.segSelector + ':not(.fc-helper) *,' + // within an event element\r\n '.fc-more,' + // a \"more..\" link\r\n 'a[data-goto]' // a clickable nav link\r\n )) {\r\n return handler.call(_this, ev);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindAllSegHandlersToEl = function (el) {\r\n [\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (eventInteraction) {\r\n if (eventInteraction) {\r\n eventInteraction.bindToEl(el);\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.bindSegHandlerToEl = function (el, name, handler) {\r\n var _this = this;\r\n el.on(name, this.segSelector, function (ev) {\r\n var segEl = $(ev.currentTarget);\r\n if (!segEl.is('.fc-helper')) {\r\n var seg = segEl.data('fc-seg'); // grab segment data. put there by View::renderEventsPayload\r\n if (seg && !_this.shouldIgnoreEventPointing()) {\r\n return handler.call(_this, seg, ev); // context will be the Grid\r\n }\r\n }\r\n });\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreMouse = function () {\r\n // HACK\r\n // This will still work even though bindDateHandlerToEl doesn't use GlobalEmitter.\r\n return GlobalEmitter_1.default.get().shouldIgnoreMouse();\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreTouch = function () {\r\n var view = this._getView();\r\n // On iOS (and Android?) when a new selection is initiated overtop another selection,\r\n // the touchend never fires because the elements gets removed mid-touch-interaction (my theory).\r\n // HACK: simply don't allow this to happen.\r\n // ALSO: prevent selection when an *event* is already raised.\r\n return view.isSelected || view.selectedEvent;\r\n };\r\n InteractiveDateComponent.prototype.shouldIgnoreEventPointing = function () {\r\n // only call the handlers if there is not a drag/resize in progress\r\n return (this.eventDragging && this.eventDragging.isDragging) ||\r\n (this.eventResizing && this.eventResizing.isResizing);\r\n };\r\n InteractiveDateComponent.prototype.canStartSelection = function (seg, ev) {\r\n return util_1.getEvIsTouch(ev) &&\r\n !this.canStartResize(seg, ev) &&\r\n (this.isEventDefDraggable(seg.footprint.eventDef) ||\r\n this.isEventDefResizable(seg.footprint.eventDef));\r\n };\r\n InteractiveDateComponent.prototype.canStartDrag = function (seg, ev) {\r\n return !this.canStartResize(seg, ev) &&\r\n this.isEventDefDraggable(seg.footprint.eventDef);\r\n };\r\n InteractiveDateComponent.prototype.canStartResize = function (seg, ev) {\r\n var view = this._getView();\r\n var eventDef = seg.footprint.eventDef;\r\n return (!util_1.getEvIsTouch(ev) || view.isEventDefSelected(eventDef)) &&\r\n this.isEventDefResizable(eventDef) &&\r\n $(ev.target).is('.fc-resizer');\r\n };\r\n // Kills all in-progress dragging.\r\n // Useful for when public API methods that result in re-rendering are invoked during a drag.\r\n // Also useful for when touch devices misbehave and don't fire their touchend.\r\n InteractiveDateComponent.prototype.endInteractions = function () {\r\n [\r\n this.dateClicking,\r\n this.dateSelecting,\r\n this.eventPointing,\r\n this.eventDragging,\r\n this.eventResizing\r\n ].forEach(function (interaction) {\r\n if (interaction) {\r\n interaction.end();\r\n }\r\n });\r\n };\r\n // Event Drag-n-Drop\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be dragged by the user\r\n InteractiveDateComponent.prototype.isEventDefDraggable = function (eventDef) {\r\n return this.isEventDefStartEditable(eventDef);\r\n };\r\n InteractiveDateComponent.prototype.isEventDefStartEditable = function (eventDef) {\r\n var isEditable = eventDef.isStartExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('eventStartEditable');\r\n if (isEditable == null) {\r\n isEditable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isEditable;\r\n };\r\n InteractiveDateComponent.prototype.isEventDefGenerallyEditable = function (eventDef) {\r\n var isEditable = eventDef.isExplicitlyEditable();\r\n if (isEditable == null) {\r\n isEditable = this.opt('editable');\r\n }\r\n return isEditable;\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Computes if the given event is allowed to be resized from its starting edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromStart = function (eventDef) {\r\n return this.opt('eventResizableFromStart') && this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized from its ending edge\r\n InteractiveDateComponent.prototype.isEventDefResizableFromEnd = function (eventDef) {\r\n return this.isEventDefResizable(eventDef);\r\n };\r\n // Computes if the given event is allowed to be resized by the user at all\r\n InteractiveDateComponent.prototype.isEventDefResizable = function (eventDef) {\r\n var isResizable = eventDef.isDurationExplicitlyEditable();\r\n if (isResizable == null) {\r\n isResizable = this.opt('eventDurationEditable');\r\n if (isResizable == null) {\r\n isResizable = this.isEventDefGenerallyEditable(eventDef);\r\n }\r\n }\r\n return isResizable;\r\n };\r\n // Event Mutation / Constraints\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Diffs the two dates, returning a duration, based on granularity of the grid\r\n // TODO: port isTimeScale into this system?\r\n InteractiveDateComponent.prototype.diffDates = function (a, b) {\r\n if (this.largeUnit) {\r\n return util_1.diffByUnit(a, b, this.largeUnit);\r\n }\r\n else {\r\n return util_1.diffDayTime(a, b);\r\n }\r\n };\r\n // is it allowed, in relation to the view's validRange?\r\n // NOTE: very similar to isExternalInstanceGroupAllowed\r\n InteractiveDateComponent.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // TODO: just use getAllEventRanges directly\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n return view.calendar.constraints.isEventInstanceGroupAllowed(eventInstanceGroup);\r\n };\r\n // NOTE: very similar to isEventInstanceGroupAllowed\r\n // when it's a completely anonymous external drag, no event.\r\n InteractiveDateComponent.prototype.isExternalInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var view = this._getView();\r\n var dateProfile = this.dateProfile;\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!dateProfile.validUnzonedRange.containsRange(eventFootprints[i].componentFootprint.unzonedRange)) {\r\n return false;\r\n }\r\n }\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n // treat it as a selection\r\n // TODO: pass in eventInstanceGroup instead\r\n // because we don't want calendar's constraint system to depend on a component's\r\n // determination of footprints.\r\n if (!view.calendar.constraints.isSelectionFootprintAllowed(eventFootprints[i].componentFootprint)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return InteractiveDateComponent;\r\n}(DateComponent_1.default));\r\nexports.default = InteractiveDateComponent;\r\n\r\n\r\n/***/ }),\r\n/* 41 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar RenderQueue_1 = __webpack_require__(218);\r\nvar DateProfileGenerator_1 = __webpack_require__(221);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\n/* An abstract class from which other views inherit from\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar View = /** @class */ (function (_super) {\r\n tslib_1.__extends(View, _super);\r\n function View(calendar, viewSpec) {\r\n var _this = _super.call(this, null, viewSpec.options) || this;\r\n _this.batchRenderDepth = 0;\r\n _this.isSelected = false; // boolean whether a range of time is user-selected or not\r\n _this.calendar = calendar;\r\n _this.viewSpec = viewSpec;\r\n // shortcuts\r\n _this.type = viewSpec.type;\r\n // .name is deprecated\r\n _this.name = _this.type;\r\n _this.initRenderQueue();\r\n _this.initHiddenDays();\r\n _this.dateProfileGenerator = new _this.dateProfileGeneratorClass(_this);\r\n _this.bindBaseRenderHandlers();\r\n _this.eventOrderSpecs = util_1.parseFieldSpecs(_this.opt('eventOrder'));\r\n // legacy\r\n if (_this['initialize']) {\r\n _this['initialize']();\r\n }\r\n return _this;\r\n }\r\n View.prototype._getView = function () {\r\n return this;\r\n };\r\n // Retrieves an option with the given name\r\n View.prototype.opt = function (name) {\r\n return this.options[name];\r\n };\r\n /* Render Queue\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.initRenderQueue = function () {\r\n this.renderQueue = new RenderQueue_1.default({\r\n event: this.opt('eventRenderWait')\r\n });\r\n this.renderQueue.on('start', this.onRenderQueueStart.bind(this));\r\n this.renderQueue.on('stop', this.onRenderQueueStop.bind(this));\r\n this.on('before:change', this.startBatchRender);\r\n this.on('change', this.stopBatchRender);\r\n };\r\n View.prototype.onRenderQueueStart = function () {\r\n this.calendar.freezeContentHeight();\r\n this.addScroll(this.queryScroll());\r\n };\r\n View.prototype.onRenderQueueStop = function () {\r\n if (this.calendar.updateViewSize()) {\r\n this.popScroll();\r\n }\r\n this.calendar.thawContentHeight();\r\n };\r\n View.prototype.startBatchRender = function () {\r\n if (!(this.batchRenderDepth++)) {\r\n this.renderQueue.pause();\r\n }\r\n };\r\n View.prototype.stopBatchRender = function () {\r\n if (!(--this.batchRenderDepth)) {\r\n this.renderQueue.resume();\r\n }\r\n };\r\n View.prototype.requestRender = function (func, namespace, actionType) {\r\n this.renderQueue.queue(func, namespace, actionType);\r\n };\r\n // given func will auto-bind to `this`\r\n View.prototype.whenSizeUpdated = function (func) {\r\n if (this.renderQueue.isRunning) {\r\n this.renderQueue.one('stop', func.bind(this));\r\n }\r\n else {\r\n func.call(this);\r\n }\r\n };\r\n /* Title and Date Formatting\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes what the title at the top of the calendar should be for this view\r\n View.prototype.computeTitle = function (dateProfile) {\r\n var unzonedRange;\r\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\r\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\r\n unzonedRange = dateProfile.currentUnzonedRange;\r\n }\r\n else {\r\n unzonedRange = dateProfile.activeUnzonedRange;\r\n }\r\n return this.formatRange({\r\n start: this.calendar.msToMoment(unzonedRange.startMs, dateProfile.isRangeAllDay),\r\n end: this.calendar.msToMoment(unzonedRange.endMs, dateProfile.isRangeAllDay)\r\n }, dateProfile.isRangeAllDay, this.opt('titleFormat') || this.computeTitleFormat(dateProfile), this.opt('titleRangeSeparator'));\r\n };\r\n // Generates the format string that should be used to generate the title for the current date range.\r\n // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\r\n View.prototype.computeTitleFormat = function (dateProfile) {\r\n var currentRangeUnit = dateProfile.currentRangeUnit;\r\n if (currentRangeUnit === 'year') {\r\n return 'YYYY';\r\n }\r\n else if (currentRangeUnit === 'month') {\r\n return this.opt('monthYearFormat'); // like \"September 2014\"\r\n }\r\n else if (dateProfile.currentUnzonedRange.as('days') > 1) {\r\n return 'll'; // multi-day range. shorter, like \"Sep 9 - 10 2014\"\r\n }\r\n else {\r\n return 'LL'; // one day. longer, like \"September 9 2014\"\r\n }\r\n };\r\n // Date Setting/Unsetting\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.setDate = function (date) {\r\n var currentDateProfile = this.get('dateProfile');\r\n var newDateProfile = this.dateProfileGenerator.build(date, undefined, true); // forceToValid=true\r\n if (!currentDateProfile ||\r\n !currentDateProfile.activeUnzonedRange.equals(newDateProfile.activeUnzonedRange)) {\r\n this.set('dateProfile', newDateProfile);\r\n }\r\n };\r\n View.prototype.unsetDate = function () {\r\n this.unset('dateProfile');\r\n };\r\n // Event Data\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.fetchInitialEvents = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var forceAllDay = dateProfile.isRangeAllDay && !this.usesMinMaxTime;\r\n return calendar.requestEvents(calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, forceAllDay), calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, forceAllDay));\r\n };\r\n View.prototype.bindEventChanges = function () {\r\n this.listenTo(this.calendar, 'eventsReset', this.resetEvents); // TODO: make this a real event\r\n };\r\n View.prototype.unbindEventChanges = function () {\r\n this.stopListeningTo(this.calendar, 'eventsReset');\r\n };\r\n View.prototype.setEvents = function (eventsPayload) {\r\n this.set('currentEvents', eventsPayload);\r\n this.set('hasEvents', true);\r\n };\r\n View.prototype.unsetEvents = function () {\r\n this.unset('currentEvents');\r\n this.unset('hasEvents');\r\n };\r\n View.prototype.resetEvents = function (eventsPayload) {\r\n this.startBatchRender();\r\n this.unsetEvents();\r\n this.setEvents(eventsPayload);\r\n this.stopBatchRender();\r\n };\r\n // Date High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestDateRender = function (dateProfile) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateRender(dateProfile);\r\n }, 'date', 'init');\r\n };\r\n View.prototype.requestDateUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeDateUnrender();\r\n }, 'date', 'destroy');\r\n };\r\n // if dateProfile not specified, uses current\r\n View.prototype.executeDateRender = function (dateProfile) {\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n if (this['render']) {\r\n this['render'](); // TODO: deprecate\r\n }\r\n this.trigger('datesRendered');\r\n this.addScroll({ isDateInit: true });\r\n this.startNowIndicator(); // shouldn't render yet because updateSize will be called soon\r\n };\r\n View.prototype.executeDateUnrender = function () {\r\n this.unselect();\r\n this.stopNowIndicator();\r\n this.trigger('before:datesUnrendered');\r\n if (this['destroy']) {\r\n this['destroy'](); // TODO: deprecate\r\n }\r\n _super.prototype.executeDateUnrender.call(this);\r\n };\r\n // \"Base\" rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.bindBaseRenderHandlers = function () {\r\n var _this = this;\r\n this.on('datesRendered', function () {\r\n _this.whenSizeUpdated(_this.triggerViewRender);\r\n });\r\n this.on('before:datesUnrendered', function () {\r\n _this.triggerViewDestroy();\r\n });\r\n };\r\n View.prototype.triggerViewRender = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerViewDestroy = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Event High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestEventsRender = function (eventsPayload) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.executeEventRender(eventsPayload);\r\n _this.whenSizeUpdated(_this.triggerAfterEventsRendered);\r\n }, 'event', 'init');\r\n };\r\n View.prototype.requestEventsUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.triggerBeforeEventsDestroyed();\r\n _this.executeEventUnrender();\r\n }, 'event', 'destroy');\r\n };\r\n // Business Hour High-level Rendering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n View.prototype.requestBusinessHoursRender = function (businessHourGenerator) {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.renderBusinessHours(businessHourGenerator);\r\n }, 'businessHours', 'init');\r\n };\r\n View.prototype.requestBusinessHoursUnrender = function () {\r\n var _this = this;\r\n this.requestRender(function () {\r\n _this.unrenderBusinessHours();\r\n }, 'businessHours', 'destroy');\r\n };\r\n // Misc view rendering utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Binds DOM handlers to elements that reside outside the view container, such as the document\r\n View.prototype.bindGlobalHandlers = function () {\r\n _super.prototype.bindGlobalHandlers.call(this);\r\n this.listenTo(GlobalEmitter_1.default.get(), {\r\n touchstart: this.processUnselect,\r\n mousedown: this.handleDocumentMousedown\r\n });\r\n };\r\n // Unbinds DOM handlers from elements that reside outside the view container\r\n View.prototype.unbindGlobalHandlers = function () {\r\n _super.prototype.unbindGlobalHandlers.call(this);\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Immediately render the current time indicator and begins re-rendering it at an interval,\r\n // which is defined by this.getNowIndicatorUnit().\r\n // TODO: somehow do this for the current whole day's background too\r\n View.prototype.startNowIndicator = function () {\r\n var _this = this;\r\n var unit;\r\n var update;\r\n var delay; // ms wait value\r\n if (this.opt('nowIndicator')) {\r\n unit = this.getNowIndicatorUnit();\r\n if (unit) {\r\n update = util_1.proxy(this, 'updateNowIndicator'); // bind to `this`\r\n this.initialNowDate = this.calendar.getNow();\r\n this.initialNowQueriedMs = new Date().valueOf();\r\n // wait until the beginning of the next interval\r\n delay = this.initialNowDate.clone().startOf(unit).add(1, unit).valueOf() - this.initialNowDate.valueOf();\r\n this.nowIndicatorTimeoutID = setTimeout(function () {\r\n _this.nowIndicatorTimeoutID = null;\r\n update();\r\n delay = +moment.duration(1, unit);\r\n delay = Math.max(100, delay); // prevent too frequent\r\n _this.nowIndicatorIntervalID = setInterval(update, delay); // update every interval\r\n }, delay);\r\n }\r\n // rendering will be initiated in updateSize\r\n }\r\n };\r\n // rerenders the now indicator, computing the new current time from the amount of time that has passed\r\n // since the initial getNow call.\r\n View.prototype.updateNowIndicator = function () {\r\n if (this.isDatesRendered &&\r\n this.initialNowDate // activated before?\r\n ) {\r\n this.unrenderNowIndicator(); // won't unrender if unnecessary\r\n this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs) // add ms\r\n );\r\n this.isNowIndicatorRendered = true;\r\n }\r\n };\r\n // Immediately unrenders the view's current time indicator and stops any re-rendering timers.\r\n // Won't cause side effects if indicator isn't rendered.\r\n View.prototype.stopNowIndicator = function () {\r\n if (this.isNowIndicatorRendered) {\r\n if (this.nowIndicatorTimeoutID) {\r\n clearTimeout(this.nowIndicatorTimeoutID);\r\n this.nowIndicatorTimeoutID = null;\r\n }\r\n if (this.nowIndicatorIntervalID) {\r\n clearInterval(this.nowIndicatorIntervalID);\r\n this.nowIndicatorIntervalID = null;\r\n }\r\n this.unrenderNowIndicator();\r\n this.isNowIndicatorRendered = false;\r\n }\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n if (this['setHeight']) {\r\n this['setHeight'](totalHeight, isAuto);\r\n }\r\n else {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n }\r\n this.updateNowIndicator();\r\n };\r\n /* Scroller\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.addScroll = function (scroll) {\r\n var queuedScroll = this.queuedScroll || (this.queuedScroll = {});\r\n $.extend(queuedScroll, scroll);\r\n };\r\n View.prototype.popScroll = function () {\r\n this.applyQueuedScroll();\r\n this.queuedScroll = null;\r\n };\r\n View.prototype.applyQueuedScroll = function () {\r\n if (this.queuedScroll) {\r\n this.applyScroll(this.queuedScroll);\r\n }\r\n };\r\n View.prototype.queryScroll = function () {\r\n var scroll = {};\r\n if (this.isDatesRendered) {\r\n $.extend(scroll, this.queryDateScroll());\r\n }\r\n return scroll;\r\n };\r\n View.prototype.applyScroll = function (scroll) {\r\n if (scroll.isDateInit && this.isDatesRendered) {\r\n $.extend(scroll, this.computeInitialDateScroll());\r\n }\r\n if (this.isDatesRendered) {\r\n this.applyDateScroll(scroll);\r\n }\r\n };\r\n View.prototype.computeInitialDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.queryDateScroll = function () {\r\n return {}; // subclasses must implement\r\n };\r\n View.prototype.applyDateScroll = function (scroll) {\r\n // subclasses must implement\r\n };\r\n /* Event Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.reportEventDrop = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n var dateMutation = eventMutation.dateMutation;\r\n // update the EventInstance, for handlers\r\n if (dateMutation) {\r\n eventInstance.dateProfile = dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n }\r\n this.triggerEventDrop(eventInstance, \r\n // a drop doesn't necessarily mean a date mutation (ex: resource change)\r\n (dateMutation && dateMutation.dateDelta) || moment.duration(), undoFunc, el, ev);\r\n };\r\n // Triggers event-drop handlers that have subscribed via the API\r\n View.prototype.triggerEventDrop = function (eventInstance, dateDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventDrop', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n dateDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* External Element Drag-n-Drop\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an external element, via jQuery UI, has been dropped onto the calendar.\r\n // `meta` is the parsed data that has been embedded into the dragging event.\r\n // `dropLocation` is an object that contains the new zoned start/end/allDay values for the event.\r\n View.prototype.reportExternalDrop = function (singleEventDef, isEvent, isSticky, el, ev, ui) {\r\n if (isEvent) {\r\n this.calendar.eventManager.addEventDef(singleEventDef, isSticky);\r\n }\r\n this.triggerExternalDrop(singleEventDef, isEvent, el, ev, ui);\r\n };\r\n // Triggers external-drop handlers that have subscribed via the API\r\n View.prototype.triggerExternalDrop = function (singleEventDef, isEvent, el, ev, ui) {\r\n // trigger 'drop' regardless of whether element represents an event\r\n this.publiclyTrigger('drop', {\r\n context: el[0],\r\n args: [\r\n singleEventDef.dateProfile.start.clone(),\r\n ev,\r\n ui,\r\n this\r\n ]\r\n });\r\n if (isEvent) {\r\n // signal an external event landed\r\n this.publiclyTrigger('eventReceive', {\r\n context: this,\r\n args: [\r\n singleEventDef.buildInstance().toLegacy(),\r\n this\r\n ]\r\n });\r\n }\r\n };\r\n /* Event Resizing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Must be called when an event in the view has been resized to a new length\r\n View.prototype.reportEventResize = function (eventInstance, eventMutation, el, ev) {\r\n var eventManager = this.calendar.eventManager;\r\n var undoFunc = eventManager.mutateEventsWithId(eventInstance.def.id, eventMutation);\r\n // update the EventInstance, for handlers\r\n eventInstance.dateProfile = eventMutation.dateMutation.buildNewDateProfile(eventInstance.dateProfile, this.calendar);\r\n this.triggerEventResize(eventInstance, eventMutation.dateMutation.endDelta, undoFunc, el, ev);\r\n };\r\n // Triggers event-resize handlers that have subscribed via the API\r\n View.prototype.triggerEventResize = function (eventInstance, durationDelta, undoFunc, el, ev) {\r\n this.publiclyTrigger('eventResize', {\r\n context: el[0],\r\n args: [\r\n eventInstance.toLegacy(),\r\n durationDelta,\r\n undoFunc,\r\n ev,\r\n {},\r\n this\r\n ]\r\n });\r\n };\r\n /* Selection (time range)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Selects a date span on the view. `start` and `end` are both Moments.\r\n // `ev` is the native mouse event that begin the interaction.\r\n View.prototype.select = function (footprint, ev) {\r\n this.unselect(ev);\r\n this.renderSelectionFootprint(footprint);\r\n this.reportSelection(footprint, ev);\r\n };\r\n View.prototype.renderSelectionFootprint = function (footprint) {\r\n if (this['renderSelection']) {\r\n this['renderSelection'](footprint.toLegacy(this.calendar));\r\n }\r\n else {\r\n _super.prototype.renderSelectionFootprint.call(this, footprint);\r\n }\r\n };\r\n // Called when a new selection is made. Updates internal state and triggers handlers.\r\n View.prototype.reportSelection = function (footprint, ev) {\r\n this.isSelected = true;\r\n this.triggerSelect(footprint, ev);\r\n };\r\n // Triggers handlers to 'select'\r\n View.prototype.triggerSelect = function (footprint, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('select', {\r\n context: this,\r\n args: [\r\n dateProfile.start,\r\n dateProfile.end,\r\n ev,\r\n this\r\n ]\r\n });\r\n };\r\n // Undoes a selection. updates in the internal state and triggers handlers.\r\n // `ev` is the native mouse event that began the interaction.\r\n View.prototype.unselect = function (ev) {\r\n if (this.isSelected) {\r\n this.isSelected = false;\r\n if (this['destroySelection']) {\r\n this['destroySelection'](); // TODO: deprecate\r\n }\r\n this.unrenderSelection();\r\n this.publiclyTrigger('unselect', {\r\n context: this,\r\n args: [ev, this]\r\n });\r\n }\r\n };\r\n /* Event Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.selectEventInstance = function (eventInstance) {\r\n if (!this.selectedEventInstance ||\r\n this.selectedEventInstance !== eventInstance) {\r\n this.unselectEventInstance();\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventInstance === eventInstance &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.addClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = eventInstance;\r\n }\r\n };\r\n View.prototype.unselectEventInstance = function () {\r\n if (this.selectedEventInstance) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.el) {\r\n seg.el.removeClass('fc-selected');\r\n }\r\n });\r\n this.selectedEventInstance = null;\r\n }\r\n };\r\n View.prototype.isEventDefSelected = function (eventDef) {\r\n // event references might change on refetchEvents(), while selectedEventInstance doesn't,\r\n // so compare IDs\r\n return this.selectedEventInstance && this.selectedEventInstance.def.id === eventDef.id;\r\n };\r\n /* Mouse / Touch Unselecting (time range & event unselection)\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // TODO: move consistently to down/start or up/end?\r\n // TODO: don't kill previous selection if touch scrolling\r\n View.prototype.handleDocumentMousedown = function (ev) {\r\n if (util_1.isPrimaryMouseButton(ev)) {\r\n this.processUnselect(ev);\r\n }\r\n };\r\n View.prototype.processUnselect = function (ev) {\r\n this.processRangeUnselect(ev);\r\n this.processEventUnselect(ev);\r\n };\r\n View.prototype.processRangeUnselect = function (ev) {\r\n var ignore;\r\n // is there a time-range selection?\r\n if (this.isSelected && this.opt('unselectAuto')) {\r\n // only unselect if the clicked element is not identical to or inside of an 'unselectCancel' element\r\n ignore = this.opt('unselectCancel');\r\n if (!ignore || !$(ev.target).closest(ignore).length) {\r\n this.unselect(ev);\r\n }\r\n }\r\n };\r\n View.prototype.processEventUnselect = function (ev) {\r\n if (this.selectedEventInstance) {\r\n if (!$(ev.target).closest('.fc-selected').length) {\r\n this.unselectEventInstance();\r\n }\r\n }\r\n };\r\n /* Triggers\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n View.prototype.triggerBaseRendered = function () {\r\n this.publiclyTrigger('viewRender', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n View.prototype.triggerBaseUnrendered = function () {\r\n this.publiclyTrigger('viewDestroy', {\r\n context: this,\r\n args: [this, this.el]\r\n });\r\n };\r\n // Triggers handlers to 'dayClick'\r\n // Span has start/end of the clicked area. Only the start is useful.\r\n View.prototype.triggerDayClick = function (footprint, dayEl, ev) {\r\n var dateProfile = this.calendar.footprintToDateProfile(footprint); // abuse of \"Event\"DateProfile?\r\n this.publiclyTrigger('dayClick', {\r\n context: dayEl,\r\n args: [dateProfile.start, ev, this]\r\n });\r\n };\r\n /* Date Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // For DateComponent::getDayClasses\r\n View.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return false;\r\n };\r\n // Arguments after name will be forwarded to a hypothetical function value\r\n // WARNING: passed-in arguments will be given to generator functions as-is and can cause side-effects.\r\n // Always clone your objects if you fear mutation.\r\n View.prototype.getUnzonedRangeOption = function (name) {\r\n var val = this.opt(name);\r\n if (typeof val === 'function') {\r\n val = val.apply(null, Array.prototype.slice.call(arguments, 1));\r\n }\r\n if (val) {\r\n return this.calendar.parseUnzonedRange(val);\r\n }\r\n };\r\n /* Hidden Days\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Initializes internal variables related to calculating hidden days-of-week\r\n View.prototype.initHiddenDays = function () {\r\n var hiddenDays = this.opt('hiddenDays') || []; // array of day-of-week indices that are hidden\r\n var isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\r\n var dayCnt = 0;\r\n var i;\r\n if (this.opt('weekends') === false) {\r\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\r\n }\r\n for (i = 0; i < 7; i++) {\r\n if (!(isHiddenDayHash[i] = $.inArray(i, hiddenDays) !== -1)) {\r\n dayCnt++;\r\n }\r\n }\r\n if (!dayCnt) {\r\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\r\n }\r\n this.isHiddenDayHash = isHiddenDayHash;\r\n };\r\n // Remove days from the beginning and end of the range that are computed as hidden.\r\n // If the whole range is trimmed off, returns null\r\n View.prototype.trimHiddenDays = function (inputUnzonedRange) {\r\n var start = inputUnzonedRange.getStart();\r\n var end = inputUnzonedRange.getEnd();\r\n if (start) {\r\n start = this.skipHiddenDays(start);\r\n }\r\n if (end) {\r\n end = this.skipHiddenDays(end, -1, true);\r\n }\r\n if (start === null || end === null || start < end) {\r\n return new UnzonedRange_1.default(start, end);\r\n }\r\n return null;\r\n };\r\n // Is the current day hidden?\r\n // `day` is a day-of-week index (0-6), or a Moment\r\n View.prototype.isHiddenDay = function (day) {\r\n if (moment.isMoment(day)) {\r\n day = day.day();\r\n }\r\n return this.isHiddenDayHash[day];\r\n };\r\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\r\n // DOES NOT CONSIDER validUnzonedRange!\r\n // If the initial value of `date` is not a hidden day, don't do anything.\r\n // Pass `isExclusive` as `true` if you are dealing with an end date.\r\n // `inc` defaults to `1` (increment one day forward each time)\r\n View.prototype.skipHiddenDays = function (date, inc, isExclusive) {\r\n if (inc === void 0) { inc = 1; }\r\n if (isExclusive === void 0) { isExclusive = false; }\r\n var out = date.clone();\r\n while (this.isHiddenDayHash[(out.day() + (isExclusive ? inc : 0) + 7) % 7]) {\r\n out.add(inc, 'days');\r\n }\r\n return out;\r\n };\r\n return View;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = View;\r\nView.prototype.usesMinMaxTime = false;\r\nView.prototype.dateProfileGeneratorClass = DateProfileGenerator_1.default;\r\nView.watch('displayingDates', ['isInDom', 'dateProfile'], function (deps) {\r\n this.requestDateRender(deps.dateProfile);\r\n}, function () {\r\n this.requestDateUnrender();\r\n});\r\nView.watch('displayingBusinessHours', ['displayingDates', 'businessHourGenerator'], function (deps) {\r\n this.requestBusinessHoursRender(deps.businessHourGenerator);\r\n}, function () {\r\n this.requestBusinessHoursUnrender();\r\n});\r\nView.watch('initialEvents', ['dateProfile'], function (deps) {\r\n return this.fetchInitialEvents(deps.dateProfile);\r\n});\r\nView.watch('bindingEvents', ['initialEvents'], function (deps) {\r\n this.setEvents(deps.initialEvents);\r\n this.bindEventChanges();\r\n}, function () {\r\n this.unbindEventChanges();\r\n this.unsetEvents();\r\n});\r\nView.watch('displayingEvents', ['displayingDates', 'hasEvents'], function () {\r\n this.requestEventsRender(this.get('currentEvents'));\r\n}, function () {\r\n this.requestEventsUnrender();\r\n});\r\nView.watch('title', ['dateProfile'], function (deps) {\r\n return (this.title = this.computeTitle(deps.dateProfile)); // assign to View for legacy reasons\r\n});\r\nView.watch('legacyDateProps', ['dateProfile'], function (deps) {\r\n var calendar = this.calendar;\r\n var dateProfile = deps.dateProfile;\r\n // DEPRECATED, but we need to keep it updated...\r\n this.start = calendar.msToMoment(dateProfile.activeUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.end = calendar.msToMoment(dateProfile.activeUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n this.intervalStart = calendar.msToMoment(dateProfile.currentUnzonedRange.startMs, dateProfile.isRangeAllDay);\r\n this.intervalEnd = calendar.msToMoment(dateProfile.currentUnzonedRange.endMs, dateProfile.isRangeAllDay);\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 42 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer = /** @class */ (function () {\r\n function EventRenderer(component, fillRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n EventRenderer.prototype.opt = function (name) {\r\n return this.view.opt(name);\r\n };\r\n // Updates values that rely on options and also relate to range\r\n EventRenderer.prototype.rangeUpdated = function () {\r\n var displayEventTime;\r\n var displayEventEnd;\r\n this.eventTimeFormat =\r\n this.opt('eventTimeFormat') ||\r\n this.opt('timeFormat') || // deprecated\r\n this.computeEventTimeFormat();\r\n displayEventTime = this.opt('displayEventTime');\r\n if (displayEventTime == null) {\r\n displayEventTime = this.computeDisplayEventTime(); // might be based off of range\r\n }\r\n displayEventEnd = this.opt('displayEventEnd');\r\n if (displayEventEnd == null) {\r\n displayEventEnd = this.computeDisplayEventEnd(); // might be based off of range\r\n }\r\n this.displayEventTime = displayEventTime;\r\n this.displayEventEnd = displayEventEnd;\r\n };\r\n EventRenderer.prototype.render = function (eventsPayload) {\r\n var dateProfile = this.component._getDateProfile();\r\n var eventDefId;\r\n var instanceGroup;\r\n var eventRanges;\r\n var bgRanges = [];\r\n var fgRanges = [];\r\n for (eventDefId in eventsPayload) {\r\n instanceGroup = eventsPayload[eventDefId];\r\n eventRanges = instanceGroup.sliceRenderRanges(dateProfile.activeUnzonedRange);\r\n if (instanceGroup.getEventDef().hasBgRendering()) {\r\n bgRanges.push.apply(bgRanges, eventRanges);\r\n }\r\n else {\r\n fgRanges.push.apply(fgRanges, eventRanges);\r\n }\r\n }\r\n this.renderBgRanges(bgRanges);\r\n this.renderFgRanges(fgRanges);\r\n };\r\n EventRenderer.prototype.unrender = function () {\r\n this.unrenderBgRanges();\r\n this.unrenderFgRanges();\r\n };\r\n EventRenderer.prototype.renderFgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n // render an `.el` on each seg\r\n // returns a subset of the segs. segs that were actually rendered\r\n segs = this.renderFgSegEls(segs);\r\n if (this.renderFgSegs(segs) !== false) {\r\n this.fgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderFgRanges = function () {\r\n this.unrenderFgSegs(this.fgSegs || []);\r\n this.fgSegs = null;\r\n };\r\n EventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n var eventFootprints = this.component.eventRangesToEventFootprints(eventRanges);\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n if (this.renderBgSegs(segs) !== false) {\r\n this.bgSegs = segs;\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgRanges = function () {\r\n this.unrenderBgSegs();\r\n this.bgSegs = null;\r\n };\r\n EventRenderer.prototype.getSegs = function () {\r\n return (this.bgSegs || []).concat(this.fgSegs || []);\r\n };\r\n // Renders foreground event segments onto the grid\r\n EventRenderer.prototype.renderFgSegs = function (segs) {\r\n // subclasses must implement\r\n // segs already has rendered els, and has been filtered.\r\n return false; // signal failure if not implemented\r\n };\r\n // Unrenders all currently rendered foreground segments\r\n EventRenderer.prototype.unrenderFgSegs = function (segs) {\r\n // subclasses must implement\r\n };\r\n EventRenderer.prototype.renderBgSegs = function (segs) {\r\n var _this = this;\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('bgEvent', segs, {\r\n getClasses: function (seg) {\r\n return _this.getBgClasses(seg.footprint.eventDef);\r\n },\r\n getCss: function (seg) {\r\n return {\r\n 'background-color': _this.getBgColor(seg.footprint.eventDef)\r\n };\r\n },\r\n filterEl: function (seg, el) {\r\n return _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n });\r\n }\r\n else {\r\n return false; // signal failure if no fillRenderer\r\n }\r\n };\r\n EventRenderer.prototype.unrenderBgSegs = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('bgEvent');\r\n }\r\n };\r\n // Renders and assigns an `el` property for each foreground event segment.\r\n // Only returns segments that successfully rendered.\r\n EventRenderer.prototype.renderFgSegEls = function (segs, disableResizing) {\r\n var _this = this;\r\n if (disableResizing === void 0) { disableResizing = false; }\r\n var hasEventRenderHandlers = this.view.hasPublicHandlers('eventRender');\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) {\r\n // build a large concatenation of event segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n this.beforeFgSegHtml(segs[i]);\r\n html += this.fgSegHtml(segs[i], disableResizing);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment. An el might be null if the eventRender callback returned false.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n if (hasEventRenderHandlers) {\r\n el = _this.filterEventRenderEl(seg.footprint, el);\r\n }\r\n if (el) {\r\n el.data('fc-seg', seg); // used by handlers\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n EventRenderer.prototype.beforeFgSegHtml = function (seg) {\r\n };\r\n // Generates the HTML for the default rendering of a foreground event segment. Used by renderFgSegEls()\r\n EventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n // subclasses should implement\r\n };\r\n // Generic utility for generating the HTML classNames for an event segment's element\r\n EventRenderer.prototype.getSegClasses = function (seg, isDraggable, isResizable) {\r\n var classes = [\r\n 'fc-event',\r\n seg.isStart ? 'fc-start' : 'fc-not-start',\r\n seg.isEnd ? 'fc-end' : 'fc-not-end'\r\n ].concat(this.getClasses(seg.footprint.eventDef));\r\n if (isDraggable) {\r\n classes.push('fc-draggable');\r\n }\r\n if (isResizable) {\r\n classes.push('fc-resizable');\r\n }\r\n // event is currently selected? attach a className.\r\n if (this.view.isEventDefSelected(seg.footprint.eventDef)) {\r\n classes.push('fc-selected');\r\n }\r\n return classes;\r\n };\r\n // Given an event and the default element used for rendering, returns the element that should actually be used.\r\n // Basically runs events and elements through the eventRender hook.\r\n EventRenderer.prototype.filterEventRenderEl = function (eventFootprint, el) {\r\n var legacy = eventFootprint.getEventLegacy();\r\n var custom = this.view.publiclyTrigger('eventRender', {\r\n context: legacy,\r\n args: [legacy, el, this.view]\r\n });\r\n if (custom === false) {\r\n el = null;\r\n }\r\n else if (custom && custom !== true) {\r\n el = $(custom);\r\n }\r\n return el;\r\n };\r\n // Compute the text that should be displayed on an event's element.\r\n // `range` can be the Event object itself, or something range-like, with at least a `start`.\r\n // If event times are disabled, or the event has no time, will return a blank string.\r\n // If not specified, formatStr will default to the eventTimeFormat setting,\r\n // and displayEnd will default to the displayEventEnd setting.\r\n EventRenderer.prototype.getTimeText = function (eventFootprint, formatStr, displayEnd) {\r\n return this._getTimeText(eventFootprint.eventInstance.dateProfile.start, eventFootprint.eventInstance.dateProfile.end, eventFootprint.componentFootprint.isAllDay, formatStr, displayEnd);\r\n };\r\n EventRenderer.prototype._getTimeText = function (start, end, isAllDay, formatStr, displayEnd) {\r\n if (formatStr == null) {\r\n formatStr = this.eventTimeFormat;\r\n }\r\n if (displayEnd == null) {\r\n displayEnd = this.displayEventEnd;\r\n }\r\n if (this.displayEventTime && !isAllDay) {\r\n if (displayEnd && end) {\r\n return this.view.formatRange({ start: start, end: end }, false, // allDay\r\n formatStr);\r\n }\r\n else {\r\n return start.format(formatStr);\r\n }\r\n }\r\n return '';\r\n };\r\n EventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('smallTimeFormat');\r\n };\r\n EventRenderer.prototype.computeDisplayEventTime = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n EventRenderer.prototype.getBgClasses = function (eventDef) {\r\n var classNames = this.getClasses(eventDef);\r\n classNames.push('fc-bgevent');\r\n return classNames;\r\n };\r\n EventRenderer.prototype.getClasses = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var classNames = [];\r\n for (i = 0; i < objs.length; i++) {\r\n classNames.push.apply(// append\r\n classNames, objs[i].eventClassName || objs[i].className || []);\r\n }\r\n return classNames;\r\n };\r\n // Utility for generating event skin-related CSS properties\r\n EventRenderer.prototype.getSkinCss = function (eventDef) {\r\n return {\r\n 'background-color': this.getBgColor(eventDef),\r\n 'border-color': this.getBorderColor(eventDef),\r\n color: this.getTextColor(eventDef)\r\n };\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBgColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBackgroundColor || objs[i].eventColor ||\r\n objs[i].backgroundColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBackgroundColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getBorderColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventBorderColor || objs[i].eventColor ||\r\n objs[i].borderColor || objs[i].color;\r\n }\r\n if (!val) {\r\n val = this.opt('eventBorderColor') || this.opt('eventColor');\r\n }\r\n return val;\r\n };\r\n // Queries for caller-specified color, then falls back to default\r\n EventRenderer.prototype.getTextColor = function (eventDef) {\r\n var objs = this.getStylingObjs(eventDef);\r\n var i;\r\n var val;\r\n for (i = 0; i < objs.length && !val; i++) {\r\n val = objs[i].eventTextColor ||\r\n objs[i].textColor;\r\n }\r\n if (!val) {\r\n val = this.opt('eventTextColor');\r\n }\r\n return val;\r\n };\r\n EventRenderer.prototype.getStylingObjs = function (eventDef) {\r\n var objs = this.getFallbackStylingObjs(eventDef);\r\n objs.unshift(eventDef);\r\n return objs;\r\n };\r\n EventRenderer.prototype.getFallbackStylingObjs = function (eventDef) {\r\n return [eventDef.source];\r\n };\r\n EventRenderer.prototype.sortEventSegs = function (segs) {\r\n segs.sort(util_1.proxy(this, 'compareEventSegs'));\r\n };\r\n // A cmp function for determining which segments should take visual priority\r\n EventRenderer.prototype.compareEventSegs = function (seg1, seg2) {\r\n var f1 = seg1.footprint;\r\n var f2 = seg2.footprint;\r\n var cf1 = f1.componentFootprint;\r\n var cf2 = f2.componentFootprint;\r\n var r1 = cf1.unzonedRange;\r\n var r2 = cf2.unzonedRange;\r\n return r1.startMs - r2.startMs || // earlier events go first\r\n (r2.endMs - r2.startMs) - (r1.endMs - r1.startMs) || // tie? longer events go first\r\n cf2.isAllDay - cf1.isAllDay || // tie? put all-day events first (booleans cast to 0/1)\r\n util_1.compareByFieldSpecs(f1.eventDef, f2.eventDef, this.view.eventOrderSpecs, f1.eventDef.miscProps, f2.eventDef.miscProps);\r\n };\r\n return EventRenderer;\r\n}());\r\nexports.default = EventRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 43 */,\r\n/* 44 */,\r\n/* 45 */,\r\n/* 46 */,\r\n/* 47 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment_ext_1 = __webpack_require__(10);\r\n// Plugin\r\n// -------------------------------------------------------------------------------------------------\r\nmoment_ext_1.newMomentProto.format = function () {\r\n if (this._fullCalendar && arguments[0]) {\r\n return formatDate(this, arguments[0]); // our extended formatting\r\n }\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) {\r\n // moment.format() doesn't ensure english, but we want to.\r\n return moment_ext_1.oldMomentFormat(englishMoment(this));\r\n }\r\n return moment_ext_1.oldMomentProto.format.apply(this, arguments);\r\n};\r\nmoment_ext_1.newMomentProto.toISOString = function () {\r\n if (this._ambigTime) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD');\r\n }\r\n if (this._ambigZone) {\r\n return moment_ext_1.oldMomentFormat(englishMoment(this), 'YYYY-MM-DD[T]HH:mm:ss');\r\n }\r\n if (this._fullCalendar) {\r\n // depending on browser, moment might not output english. ensure english.\r\n // https://github.com/moment/moment/blob/2.18.1/src/lib/moment/format.js#L22\r\n return moment_ext_1.oldMomentProto.toISOString.apply(englishMoment(this), arguments);\r\n }\r\n return moment_ext_1.oldMomentProto.toISOString.apply(this, arguments);\r\n};\r\nfunction englishMoment(mom) {\r\n if (mom.locale() !== 'en') {\r\n return mom.clone().locale('en');\r\n }\r\n return mom;\r\n}\r\n// Config\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nInserted between chunks in the fake (\"intermediate\") formatting string.\r\nImportant that it passes as whitespace (\\s) because moment often identifies non-standalone months\r\nvia a regexp with an \\s.\r\n*/\r\nvar PART_SEPARATOR = '\\u000b'; // vertical tab\r\n/*\r\nInserted as the first character of a literal-text chunk to indicate that the literal text is not actually literal text,\r\nbut rather, a \"special\" token that has custom rendering (see specialTokens map).\r\n*/\r\nvar SPECIAL_TOKEN_MARKER = '\\u001f'; // information separator 1\r\n/*\r\nInserted at the beginning and end of a span of text that must have non-zero numeric characters.\r\nHandling of these markers is done in a post-processing step at the very end of text rendering.\r\n*/\r\nvar MAYBE_MARKER = '\\u001e'; // information separator 2\r\nvar MAYBE_REGEXP = new RegExp(MAYBE_MARKER + '([^' + MAYBE_MARKER + ']*)' + MAYBE_MARKER, 'g'); // must be global\r\n/*\r\nAddition formatting tokens we want recognized\r\n*/\r\nvar specialTokens = {\r\n t: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'a').charAt(0);\r\n },\r\n T: function (date) {\r\n return moment_ext_1.oldMomentFormat(date, 'A').charAt(0);\r\n }\r\n};\r\n/*\r\nThe first characters of formatting tokens for units that are 1 day or larger.\r\n`value` is for ranking relative size (lower means bigger).\r\n`unit` is a normalized unit, used for comparing moments.\r\n*/\r\nvar largeTokenMap = {\r\n Y: { value: 1, unit: 'year' },\r\n M: { value: 2, unit: 'month' },\r\n W: { value: 3, unit: 'week' },\r\n w: { value: 3, unit: 'week' },\r\n D: { value: 4, unit: 'day' },\r\n d: { value: 4, unit: 'day' } // day of week\r\n};\r\n// Single Date Formatting\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats `date` with a Moment formatting string, but allow our non-zero areas and special token\r\n*/\r\nfunction formatDate(date, formatStr) {\r\n return renderFakeFormatString(getParsedFormatString(formatStr).fakeFormatString, date);\r\n}\r\nexports.formatDate = formatDate;\r\n// Date Range Formatting\r\n// -------------------------------------------------------------------------------------------------\r\n// TODO: make it work with timezone offset\r\n/*\r\nUsing a formatting string meant for a single date, generate a range string, like\r\n\"Sep 2 - 9 2013\", that intelligently inserts a separator where the dates differ.\r\nIf the dates are the same as far as the format string is concerned, just return a single\r\nrendering of one date, without any separator.\r\n*/\r\nfunction formatRange(date1, date2, formatStr, separator, isRTL) {\r\n var localeData;\r\n date1 = moment_ext_1.default.parseZone(date1);\r\n date2 = moment_ext_1.default.parseZone(date2);\r\n localeData = date1.localeData();\r\n // Expand localized format strings, like \"LL\" -> \"MMMM D YYYY\".\r\n // BTW, this is not important for `formatDate` because it is impossible to put custom tokens\r\n // or non-zero areas in Moment's localized format strings.\r\n formatStr = localeData.longDateFormat(formatStr) || formatStr;\r\n return renderParsedFormat(getParsedFormatString(formatStr), date1, date2, separator || ' - ', isRTL);\r\n}\r\nexports.formatRange = formatRange;\r\n/*\r\nRenders a range with an already-parsed format string.\r\n*/\r\nfunction renderParsedFormat(parsedFormat, date1, date2, separator, isRTL) {\r\n var sameUnits = parsedFormat.sameUnits;\r\n var unzonedDate1 = date1.clone().stripZone(); // for same-unit comparisons\r\n var unzonedDate2 = date2.clone().stripZone(); // \"\r\n var renderedParts1 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date1);\r\n var renderedParts2 = renderFakeFormatStringParts(parsedFormat.fakeFormatString, date2);\r\n var leftI;\r\n var leftStr = '';\r\n var rightI;\r\n var rightStr = '';\r\n var middleI;\r\n var middleStr1 = '';\r\n var middleStr2 = '';\r\n var middleStr = '';\r\n // Start at the leftmost side of the formatting string and continue until you hit a token\r\n // that is not the same between dates.\r\n for (leftI = 0; leftI < sameUnits.length && (!sameUnits[leftI] || unzonedDate1.isSame(unzonedDate2, sameUnits[leftI])); leftI++) {\r\n leftStr += renderedParts1[leftI];\r\n }\r\n // Similarly, start at the rightmost side of the formatting string and move left\r\n for (rightI = sameUnits.length - 1; rightI > leftI && (!sameUnits[rightI] || unzonedDate1.isSame(unzonedDate2, sameUnits[rightI])); rightI--) {\r\n // If current chunk is on the boundary of unique date-content, and is a special-case\r\n // date-formatting postfix character, then don't consume it. Consider it unique date-content.\r\n // TODO: make configurable\r\n if (rightI - 1 === leftI && renderedParts1[rightI] === '.') {\r\n break;\r\n }\r\n rightStr = renderedParts1[rightI] + rightStr;\r\n }\r\n // The area in the middle is different for both of the dates.\r\n // Collect them distinctly so we can jam them together later.\r\n for (middleI = leftI; middleI <= rightI; middleI++) {\r\n middleStr1 += renderedParts1[middleI];\r\n middleStr2 += renderedParts2[middleI];\r\n }\r\n if (middleStr1 || middleStr2) {\r\n if (isRTL) {\r\n middleStr = middleStr2 + separator + middleStr1;\r\n }\r\n else {\r\n middleStr = middleStr1 + separator + middleStr2;\r\n }\r\n }\r\n return processMaybeMarkers(leftStr + middleStr + rightStr);\r\n}\r\n// Format String Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nvar parsedFormatStrCache = {};\r\n/*\r\nReturns a parsed format string, leveraging a cache.\r\n*/\r\nfunction getParsedFormatString(formatStr) {\r\n return parsedFormatStrCache[formatStr] ||\r\n (parsedFormatStrCache[formatStr] = parseFormatString(formatStr));\r\n}\r\n/*\r\nParses a format string into the following:\r\n- fakeFormatString: a momentJS formatting string, littered with special control characters that get post-processed.\r\n- sameUnits: for every part in fakeFormatString, if the part is a token, the value will be a unit string (like \"day\"),\r\n that indicates how similar a range's start & end must be in order to share the same formatted text.\r\n If not a token, then the value is null.\r\n Always a flat array (not nested liked \"chunks\").\r\n*/\r\nfunction parseFormatString(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n return {\r\n fakeFormatString: buildFakeFormatString(chunks),\r\n sameUnits: buildSameUnits(chunks)\r\n };\r\n}\r\n/*\r\nBreak the formatting string into an array of chunks.\r\nA 'maybe' chunk will have nested chunks.\r\n*/\r\nfunction chunkFormatString(formatStr) {\r\n var chunks = [];\r\n var match;\r\n // TODO: more descrimination\r\n // \\4 is a backreference to the first character of a multi-character set.\r\n var chunker = /\\[([^\\]]*)\\]|\\(([^\\)]*)\\)|(LTS|LT|(\\w)\\4*o?)|([^\\w\\[\\(]+)/g;\r\n while ((match = chunker.exec(formatStr))) {\r\n if (match[1]) {\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[1]));\r\n }\r\n else if (match[2]) {\r\n chunks.push({ maybe: chunkFormatString(match[2]) });\r\n }\r\n else if (match[3]) {\r\n chunks.push({ token: match[3] });\r\n }\r\n else if (match[5]) {\r\n chunks.push.apply(chunks, // append\r\n splitStringLiteral(match[5]));\r\n }\r\n }\r\n return chunks;\r\n}\r\n/*\r\nPotentially splits a literal-text string into multiple parts. For special cases.\r\n*/\r\nfunction splitStringLiteral(s) {\r\n if (s === '. ') {\r\n return ['.', ' ']; // for locales with periods bound to the end of each year/month/date\r\n }\r\n else {\r\n return [s];\r\n }\r\n}\r\n/*\r\nGiven chunks parsed from a real format string, generate a fake (aka \"intermediate\") format string with special control\r\ncharacters that will eventually be given to moment for formatting, and then post-processed.\r\n*/\r\nfunction buildFakeFormatString(chunks) {\r\n var parts = [];\r\n var i;\r\n var chunk;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (typeof chunk === 'string') {\r\n parts.push('[' + chunk + ']');\r\n }\r\n else if (chunk.token) {\r\n if (chunk.token in specialTokens) {\r\n parts.push(SPECIAL_TOKEN_MARKER + // useful during post-processing\r\n '[' + chunk.token + ']' // preserve as literal text\r\n );\r\n }\r\n else {\r\n parts.push(chunk.token); // unprotected text implies a format string\r\n }\r\n }\r\n else if (chunk.maybe) {\r\n parts.push(MAYBE_MARKER + // useful during post-processing\r\n buildFakeFormatString(chunk.maybe) +\r\n MAYBE_MARKER);\r\n }\r\n }\r\n return parts.join(PART_SEPARATOR);\r\n}\r\n/*\r\nGiven parsed chunks from a real formatting string, generates an array of unit strings (like \"day\") that indicate\r\nin which regard two dates must be similar in order to share range formatting text.\r\nThe `chunks` can be nested (because of \"maybe\" chunks), however, the returned array will be flat.\r\n*/\r\nfunction buildSameUnits(chunks) {\r\n var units = [];\r\n var i;\r\n var chunk;\r\n var tokenInfo;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n tokenInfo = largeTokenMap[chunk.token.charAt(0)];\r\n units.push(tokenInfo ? tokenInfo.unit : 'second'); // default to a very strict same-second\r\n }\r\n else if (chunk.maybe) {\r\n units.push.apply(units, // append\r\n buildSameUnits(chunk.maybe));\r\n }\r\n else {\r\n units.push(null);\r\n }\r\n }\r\n return units;\r\n}\r\n// Rendering to text\r\n// ---------------------------------------------------------------------------------------------------------------------\r\n/*\r\nFormats a date with a fake format string, post-processes the control characters, then returns.\r\n*/\r\nfunction renderFakeFormatString(fakeFormatString, date) {\r\n return processMaybeMarkers(renderFakeFormatStringParts(fakeFormatString, date).join(''));\r\n}\r\n/*\r\nFormats a date into parts that will have been post-processed, EXCEPT for the \"maybe\" markers.\r\n*/\r\nfunction renderFakeFormatStringParts(fakeFormatString, date) {\r\n var parts = [];\r\n var fakeRender = moment_ext_1.oldMomentFormat(date, fakeFormatString);\r\n var fakeParts = fakeRender.split(PART_SEPARATOR);\r\n var i;\r\n var fakePart;\r\n for (i = 0; i < fakeParts.length; i++) {\r\n fakePart = fakeParts[i];\r\n if (fakePart.charAt(0) === SPECIAL_TOKEN_MARKER) {\r\n parts.push(\r\n // the literal string IS the token's name.\r\n // call special token's registered function.\r\n specialTokens[fakePart.substring(1)](date));\r\n }\r\n else {\r\n parts.push(fakePart);\r\n }\r\n }\r\n return parts;\r\n}\r\n/*\r\nAccepts an almost-finally-formatted string and processes the \"maybe\" control characters, returning a new string.\r\n*/\r\nfunction processMaybeMarkers(s) {\r\n return s.replace(MAYBE_REGEXP, function (m0, m1) {\r\n if (m1.match(/[1-9]/)) {\r\n return m1;\r\n }\r\n else {\r\n return '';\r\n }\r\n });\r\n}\r\n// Misc Utils\r\n// -------------------------------------------------------------------------------------------------\r\n/*\r\nReturns a unit string, either 'year', 'month', 'day', or null for the most granular formatting token in the string.\r\n*/\r\nfunction queryMostGranularFormatUnit(formatStr) {\r\n var chunks = chunkFormatString(formatStr);\r\n var i;\r\n var chunk;\r\n var candidate;\r\n var best;\r\n for (i = 0; i < chunks.length; i++) {\r\n chunk = chunks[i];\r\n if (chunk.token) {\r\n candidate = largeTokenMap[chunk.token.charAt(0)];\r\n if (candidate) {\r\n if (!best || candidate.value > best.value) {\r\n best = candidate;\r\n }\r\n }\r\n }\r\n }\r\n if (best) {\r\n return best.unit;\r\n }\r\n return null;\r\n}\r\nexports.queryMostGranularFormatUnit = queryMostGranularFormatUnit;\r\n\r\n\r\n/***/ }),\r\n/* 48 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Class_1 = __webpack_require__(33);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Model = /** @class */ (function (_super) {\r\n tslib_1.__extends(Model, _super);\r\n function Model() {\r\n var _this = _super.call(this) || this;\r\n _this._watchers = {};\r\n _this._props = {};\r\n _this.applyGlobalWatchers();\r\n _this.constructed();\r\n return _this;\r\n }\r\n Model.watch = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n // subclasses should make a masked-copy of the superclass's map\r\n // TODO: write test\r\n if (!this.prototype.hasOwnProperty('_globalWatchArgs')) {\r\n this.prototype._globalWatchArgs = Object.create(this.prototype._globalWatchArgs);\r\n }\r\n this.prototype._globalWatchArgs[name] = args;\r\n };\r\n Model.prototype.constructed = function () {\r\n // useful for monkeypatching. TODO: BaseClass?\r\n };\r\n Model.prototype.applyGlobalWatchers = function () {\r\n var map = this._globalWatchArgs;\r\n var name;\r\n for (name in map) {\r\n this.watch.apply(this, [name].concat(map[name]));\r\n }\r\n };\r\n Model.prototype.has = function (name) {\r\n return name in this._props;\r\n };\r\n Model.prototype.get = function (name) {\r\n if (name === undefined) {\r\n return this._props;\r\n }\r\n return this._props[name];\r\n };\r\n Model.prototype.set = function (name, val) {\r\n var newProps;\r\n if (typeof name === 'string') {\r\n newProps = {};\r\n newProps[name] = val === undefined ? null : val;\r\n }\r\n else {\r\n newProps = name;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.reset = function (newProps) {\r\n var oldProps = this._props;\r\n var changeset = {}; // will have undefined's to signal unsets\r\n var name;\r\n for (name in oldProps) {\r\n changeset[name] = undefined;\r\n }\r\n for (name in newProps) {\r\n changeset[name] = newProps[name];\r\n }\r\n this.setProps(changeset);\r\n };\r\n Model.prototype.unset = function (name) {\r\n var newProps = {};\r\n var names;\r\n var i;\r\n if (typeof name === 'string') {\r\n names = [name];\r\n }\r\n else {\r\n names = name;\r\n }\r\n for (i = 0; i < names.length; i++) {\r\n newProps[names[i]] = undefined;\r\n }\r\n this.setProps(newProps);\r\n };\r\n Model.prototype.setProps = function (newProps) {\r\n var changedProps = {};\r\n var changedCnt = 0;\r\n var name;\r\n var val;\r\n for (name in newProps) {\r\n val = newProps[name];\r\n // a change in value?\r\n // if an object, don't check equality, because might have been mutated internally.\r\n // TODO: eventually enforce immutability.\r\n if (typeof val === 'object' ||\r\n val !== this._props[name]) {\r\n changedProps[name] = val;\r\n changedCnt++;\r\n }\r\n }\r\n if (changedCnt) {\r\n this.trigger('before:batchChange', changedProps);\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n this.trigger('before:change', name, val);\r\n this.trigger('before:change:' + name, val);\r\n }\r\n for (name in changedProps) {\r\n val = changedProps[name];\r\n if (val === undefined) {\r\n delete this._props[name];\r\n }\r\n else {\r\n this._props[name] = val;\r\n }\r\n this.trigger('change:' + name, val);\r\n this.trigger('change', name, val);\r\n }\r\n this.trigger('batchChange', changedProps);\r\n }\r\n };\r\n Model.prototype.watch = function (name, depList, startFunc, stopFunc) {\r\n var _this = this;\r\n this.unwatch(name);\r\n this._watchers[name] = this._watchDeps(depList, function (deps) {\r\n var res = startFunc.call(_this, deps);\r\n if (res && res.then) {\r\n _this.unset(name); // put in an unset state while resolving\r\n res.then(function (val) {\r\n _this.set(name, val);\r\n });\r\n }\r\n else {\r\n _this.set(name, res);\r\n }\r\n }, function (deps) {\r\n _this.unset(name);\r\n if (stopFunc) {\r\n stopFunc.call(_this, deps);\r\n }\r\n });\r\n };\r\n Model.prototype.unwatch = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n delete this._watchers[name];\r\n watcher.teardown();\r\n }\r\n };\r\n Model.prototype._watchDeps = function (depList, startFunc, stopFunc) {\r\n var _this = this;\r\n var queuedChangeCnt = 0;\r\n var depCnt = depList.length;\r\n var satisfyCnt = 0;\r\n var values = {}; // what's passed as the `deps` arguments\r\n var bindTuples = []; // array of [ eventName, handlerFunc ] arrays\r\n var isCallingStop = false;\r\n var onBeforeDepChange = function (depName, val, isOptional) {\r\n queuedChangeCnt++;\r\n if (queuedChangeCnt === 1) {\r\n if (satisfyCnt === depCnt) {\r\n isCallingStop = true;\r\n stopFunc(values);\r\n isCallingStop = false;\r\n }\r\n }\r\n };\r\n var onDepChange = function (depName, val, isOptional) {\r\n if (val === undefined) {\r\n // required dependency that was previously set?\r\n if (!isOptional && values[depName] !== undefined) {\r\n satisfyCnt--;\r\n }\r\n delete values[depName];\r\n }\r\n else {\r\n // required dependency that was previously unset?\r\n if (!isOptional && values[depName] === undefined) {\r\n satisfyCnt++;\r\n }\r\n values[depName] = val;\r\n }\r\n queuedChangeCnt--;\r\n if (!queuedChangeCnt) {\r\n // now finally satisfied or satisfied all along?\r\n if (satisfyCnt === depCnt) {\r\n // if the stopFunc initiated another value change, ignore it.\r\n // it will be processed by another change event anyway.\r\n if (!isCallingStop) {\r\n startFunc(values);\r\n }\r\n }\r\n }\r\n };\r\n // intercept for .on() that remembers handlers\r\n var bind = function (eventName, handler) {\r\n _this.on(eventName, handler);\r\n bindTuples.push([eventName, handler]);\r\n };\r\n // listen to dependency changes\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') {\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n bind('before:change:' + depName, function (val) {\r\n onBeforeDepChange(depName, val, isOptional);\r\n });\r\n bind('change:' + depName, function (val) {\r\n onDepChange(depName, val, isOptional);\r\n });\r\n });\r\n // process current dependency values\r\n depList.forEach(function (depName) {\r\n var isOptional = false;\r\n if (depName.charAt(0) === '?') {\r\n depName = depName.substring(1);\r\n isOptional = true;\r\n }\r\n if (_this.has(depName)) {\r\n values[depName] = _this.get(depName);\r\n satisfyCnt++;\r\n }\r\n else if (isOptional) {\r\n satisfyCnt++;\r\n }\r\n });\r\n // initially satisfied\r\n if (satisfyCnt === depCnt) {\r\n startFunc(values);\r\n }\r\n return {\r\n teardown: function () {\r\n // remove all handlers\r\n for (var i = 0; i < bindTuples.length; i++) {\r\n _this.off(bindTuples[i][0], bindTuples[i][1]);\r\n }\r\n bindTuples = null;\r\n // was satisfied, so call stopFunc\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n }\r\n },\r\n flash: function () {\r\n if (satisfyCnt === depCnt) {\r\n stopFunc();\r\n startFunc(values);\r\n }\r\n }\r\n };\r\n };\r\n Model.prototype.flash = function (name) {\r\n var watcher = this._watchers[name];\r\n if (watcher) {\r\n watcher.flash();\r\n }\r\n };\r\n return Model;\r\n}(Class_1.default));\r\nexports.default = Model;\r\nModel.prototype._globalWatchArgs = {}; // mutation protection in Model.watch\r\nEmitterMixin_1.default.mixInto(Model);\r\nListenerMixin_1.default.mixInto(Model);\r\n\r\n\r\n/***/ }),\r\n/* 49 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar RecurringEventDef_1 = __webpack_require__(210);\r\nexports.default = {\r\n parse: function (eventInput, source) {\r\n if (util_1.isTimeString(eventInput.start) || moment.isDuration(eventInput.start) ||\r\n util_1.isTimeString(eventInput.end) || moment.isDuration(eventInput.end)) {\r\n return RecurringEventDef_1.default.parse(eventInput, source);\r\n }\r\n else {\r\n return SingleEventDef_1.default.parse(eventInput, source);\r\n }\r\n }\r\n};\r\n\r\n\r\n/***/ }),\r\n/* 50 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventDefDateMutation = /** @class */ (function () {\r\n function EventDefDateMutation() {\r\n this.clearEnd = false;\r\n this.forceTimed = false;\r\n this.forceAllDay = false;\r\n }\r\n EventDefDateMutation.createFromDiff = function (dateProfile0, dateProfile1, largeUnit) {\r\n var clearEnd = dateProfile0.end && !dateProfile1.end;\r\n var forceTimed = dateProfile0.isAllDay() && !dateProfile1.isAllDay();\r\n var forceAllDay = !dateProfile0.isAllDay() && dateProfile1.isAllDay();\r\n var dateDelta;\r\n var endDiff;\r\n var endDelta;\r\n var mutation;\r\n // subtracts the dates in the appropriate way, returning a duration\r\n function subtractDates(date1, date0) {\r\n if (largeUnit) {\r\n return util_1.diffByUnit(date1, date0, largeUnit); // poorly named\r\n }\r\n else if (dateProfile1.isAllDay()) {\r\n return util_1.diffDay(date1, date0); // poorly named\r\n }\r\n else {\r\n return util_1.diffDayTime(date1, date0); // poorly named\r\n }\r\n }\r\n dateDelta = subtractDates(dateProfile1.start, dateProfile0.start);\r\n if (dateProfile1.end) {\r\n // use unzonedRanges because dateProfile0.end might be null\r\n endDiff = subtractDates(dateProfile1.unzonedRange.getEnd(), dateProfile0.unzonedRange.getEnd());\r\n endDelta = endDiff.subtract(dateDelta);\r\n }\r\n mutation = new EventDefDateMutation();\r\n mutation.clearEnd = clearEnd;\r\n mutation.forceTimed = forceTimed;\r\n mutation.forceAllDay = forceAllDay;\r\n mutation.setDateDelta(dateDelta);\r\n mutation.setEndDelta(endDelta);\r\n return mutation;\r\n };\r\n /*\r\n returns an undo function.\r\n */\r\n EventDefDateMutation.prototype.buildNewDateProfile = function (eventDateProfile, calendar) {\r\n var start = eventDateProfile.start.clone();\r\n var end = null;\r\n var shouldRezone = false;\r\n if (eventDateProfile.end && !this.clearEnd) {\r\n end = eventDateProfile.end.clone();\r\n }\r\n else if (this.endDelta && !end) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n if (this.forceTimed) {\r\n shouldRezone = true;\r\n if (!start.hasTime()) {\r\n start.time(0);\r\n }\r\n if (end && !end.hasTime()) {\r\n end.time(0);\r\n }\r\n }\r\n else if (this.forceAllDay) {\r\n if (start.hasTime()) {\r\n start.stripTime();\r\n }\r\n if (end && end.hasTime()) {\r\n end.stripTime();\r\n }\r\n }\r\n if (this.dateDelta) {\r\n shouldRezone = true;\r\n start.add(this.dateDelta);\r\n if (end) {\r\n end.add(this.dateDelta);\r\n }\r\n }\r\n // do this before adding startDelta to start, so we can work off of start\r\n if (this.endDelta) {\r\n shouldRezone = true;\r\n end.add(this.endDelta);\r\n }\r\n if (this.startDelta) {\r\n shouldRezone = true;\r\n start.add(this.startDelta);\r\n }\r\n if (shouldRezone) {\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n }\r\n // TODO: okay to access calendar option?\r\n if (!end && calendar.opt('forceEventDuration')) {\r\n end = calendar.getDefaultEventEnd(eventDateProfile.isAllDay(), start);\r\n }\r\n return new EventDateProfile_1.default(start, end, calendar);\r\n };\r\n EventDefDateMutation.prototype.setDateDelta = function (dateDelta) {\r\n if (dateDelta && dateDelta.valueOf()) {\r\n this.dateDelta = dateDelta;\r\n }\r\n else {\r\n this.dateDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setStartDelta = function (startDelta) {\r\n if (startDelta && startDelta.valueOf()) {\r\n this.startDelta = startDelta;\r\n }\r\n else {\r\n this.startDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.setEndDelta = function (endDelta) {\r\n if (endDelta && endDelta.valueOf()) {\r\n this.endDelta = endDelta;\r\n }\r\n else {\r\n this.endDelta = null;\r\n }\r\n };\r\n EventDefDateMutation.prototype.isEmpty = function () {\r\n return !this.clearEnd && !this.forceTimed && !this.forceAllDay &&\r\n !this.dateDelta && !this.startDelta && !this.endDelta;\r\n };\r\n return EventDefDateMutation;\r\n}());\r\nexports.default = EventDefDateMutation;\r\n\r\n\r\n/***/ }),\r\n/* 51 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar StandardTheme_1 = __webpack_require__(213);\r\nvar JqueryUiTheme_1 = __webpack_require__(214);\r\nvar themeClassHash = {};\r\nfunction defineThemeSystem(themeName, themeClass) {\r\n themeClassHash[themeName] = themeClass;\r\n}\r\nexports.defineThemeSystem = defineThemeSystem;\r\nfunction getThemeSystemClass(themeSetting) {\r\n if (!themeSetting) {\r\n return StandardTheme_1.default;\r\n }\r\n else if (themeSetting === true) {\r\n return JqueryUiTheme_1.default;\r\n }\r\n else {\r\n return themeClassHash[themeSetting];\r\n }\r\n}\r\nexports.getThemeSystemClass = getThemeSystemClass;\r\n\r\n\r\n/***/ }),\r\n/* 52 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar ArrayEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(ArrayEventSource, _super);\r\n function ArrayEventSource(calendar) {\r\n var _this = _super.call(this, calendar) || this;\r\n _this.eventDefs = []; // for if setRawEventDefs is never called\r\n return _this;\r\n }\r\n ArrayEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isArray(rawInput.events)) {\r\n rawProps = rawInput;\r\n }\r\n else if ($.isArray(rawInput)) {\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n ArrayEventSource.prototype.setRawEventDefs = function (rawEventDefs) {\r\n this.rawEventDefs = rawEventDefs;\r\n this.eventDefs = this.parseEventDefs(rawEventDefs);\r\n };\r\n ArrayEventSource.prototype.fetch = function (start, end, timezone) {\r\n var eventDefs = this.eventDefs;\r\n var i;\r\n if (this.currentTimezone != null &&\r\n this.currentTimezone !== timezone) {\r\n for (i = 0; i < eventDefs.length; i++) {\r\n if (eventDefs[i] instanceof SingleEventDef_1.default) {\r\n eventDefs[i].rezone();\r\n }\r\n }\r\n }\r\n this.currentTimezone = timezone;\r\n return Promise_1.default.resolve(eventDefs);\r\n };\r\n ArrayEventSource.prototype.addEventDef = function (eventDef) {\r\n this.eventDefs.push(eventDef);\r\n };\r\n /*\r\n eventDefId already normalized to a string\r\n */\r\n ArrayEventSource.prototype.removeEventDefsById = function (eventDefId) {\r\n return util_1.removeMatching(this.eventDefs, function (eventDef) {\r\n return eventDef.id === eventDefId;\r\n });\r\n };\r\n ArrayEventSource.prototype.removeAllEventDefs = function () {\r\n this.eventDefs = [];\r\n };\r\n ArrayEventSource.prototype.getPrimitive = function () {\r\n return this.rawEventDefs;\r\n };\r\n ArrayEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.setRawEventDefs(rawProps.events);\r\n return superSuccess;\r\n };\r\n return ArrayEventSource;\r\n}(EventSource_1.default));\r\nexports.default = ArrayEventSource;\r\nArrayEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 53 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/*\r\nA cache for the left/right/top/bottom/width/height values for one or more elements.\r\nWorks with both offset (from topleft document) and position (from offsetParent).\r\n\r\noptions:\r\n- els\r\n- isHorizontal\r\n- isVertical\r\n*/\r\nvar CoordCache = /** @class */ (function () {\r\n function CoordCache(options) {\r\n this.isHorizontal = false; // whether to query for left/right/width\r\n this.isVertical = false; // whether to query for top/bottom/height\r\n this.els = $(options.els);\r\n this.isHorizontal = options.isHorizontal;\r\n this.isVertical = options.isVertical;\r\n this.forcedOffsetParentEl = options.offsetParent ? $(options.offsetParent) : null;\r\n }\r\n // Queries the els for coordinates and stores them.\r\n // Call this method before using and of the get* methods below.\r\n CoordCache.prototype.build = function () {\r\n var offsetParentEl = this.forcedOffsetParentEl;\r\n if (!offsetParentEl && this.els.length > 0) {\r\n offsetParentEl = this.els.eq(0).offsetParent();\r\n }\r\n this.origin = offsetParentEl ?\r\n offsetParentEl.offset() :\r\n null;\r\n this.boundingRect = this.queryBoundingRect();\r\n if (this.isHorizontal) {\r\n this.buildElHorizontals();\r\n }\r\n if (this.isVertical) {\r\n this.buildElVerticals();\r\n }\r\n };\r\n // Destroys all internal data about coordinates, freeing memory\r\n CoordCache.prototype.clear = function () {\r\n this.origin = null;\r\n this.boundingRect = null;\r\n this.lefts = null;\r\n this.rights = null;\r\n this.tops = null;\r\n this.bottoms = null;\r\n };\r\n // When called, if coord caches aren't built, builds them\r\n CoordCache.prototype.ensureBuilt = function () {\r\n if (!this.origin) {\r\n this.build();\r\n }\r\n };\r\n // Populates the left/right internal coordinate arrays\r\n CoordCache.prototype.buildElHorizontals = function () {\r\n var lefts = [];\r\n var rights = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var left = el.offset().left;\r\n var width = el.outerWidth();\r\n lefts.push(left);\r\n rights.push(left + width);\r\n });\r\n this.lefts = lefts;\r\n this.rights = rights;\r\n };\r\n // Populates the top/bottom internal coordinate arrays\r\n CoordCache.prototype.buildElVerticals = function () {\r\n var tops = [];\r\n var bottoms = [];\r\n this.els.each(function (i, node) {\r\n var el = $(node);\r\n var top = el.offset().top;\r\n var height = el.outerHeight();\r\n tops.push(top);\r\n bottoms.push(top + height);\r\n });\r\n this.tops = tops;\r\n this.bottoms = bottoms;\r\n };\r\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getHorizontalIndex = function (leftOffset) {\r\n this.ensureBuilt();\r\n var lefts = this.lefts;\r\n var rights = this.rights;\r\n var len = lefts.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (leftOffset >= lefts[i] && leftOffset < rights[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\r\n // If no intersection is made, returns undefined.\r\n CoordCache.prototype.getVerticalIndex = function (topOffset) {\r\n this.ensureBuilt();\r\n var tops = this.tops;\r\n var bottoms = this.bottoms;\r\n var len = tops.length;\r\n var i;\r\n for (i = 0; i < len; i++) {\r\n if (topOffset >= tops[i] && topOffset < bottoms[i]) {\r\n return i;\r\n }\r\n }\r\n };\r\n // Gets the left offset (from document left) of the element at the given index\r\n CoordCache.prototype.getLeftOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex];\r\n };\r\n // Gets the left position (from offsetParent left) of the element at the given index\r\n CoordCache.prototype.getLeftPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.lefts[leftIndex] - this.origin.left;\r\n };\r\n // Gets the right offset (from document left) of the element at the given index.\r\n // This value is NOT relative to the document's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightOffset = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex];\r\n };\r\n // Gets the right position (from offsetParent left) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's right edge, like the CSS concept of \"right\" would be.\r\n CoordCache.prototype.getRightPosition = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.origin.left;\r\n };\r\n // Gets the width of the element at the given index\r\n CoordCache.prototype.getWidth = function (leftIndex) {\r\n this.ensureBuilt();\r\n return this.rights[leftIndex] - this.lefts[leftIndex];\r\n };\r\n // Gets the top offset (from document top) of the element at the given index\r\n CoordCache.prototype.getTopOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex];\r\n };\r\n // Gets the top position (from offsetParent top) of the element at the given position\r\n CoordCache.prototype.getTopPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.tops[topIndex] - this.origin.top;\r\n };\r\n // Gets the bottom offset (from the document top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomOffset = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex];\r\n };\r\n // Gets the bottom position (from the offsetParent top) of the element at the given index.\r\n // This value is NOT relative to the offsetParent's bottom edge, like the CSS concept of \"bottom\" would be.\r\n CoordCache.prototype.getBottomPosition = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.origin.top;\r\n };\r\n // Gets the height of the element at the given index\r\n CoordCache.prototype.getHeight = function (topIndex) {\r\n this.ensureBuilt();\r\n return this.bottoms[topIndex] - this.tops[topIndex];\r\n };\r\n // Bounding Rect\r\n // TODO: decouple this from CoordCache\r\n // Compute and return what the elements' bounding rectangle is, from the user's perspective.\r\n // Right now, only returns a rectangle if constrained by an overflow:scroll element.\r\n // Returns null if there are no elements\r\n CoordCache.prototype.queryBoundingRect = function () {\r\n var scrollParentEl;\r\n if (this.els.length > 0) {\r\n scrollParentEl = util_1.getScrollParent(this.els.eq(0));\r\n if (!scrollParentEl.is(document)) {\r\n return util_1.getClientRect(scrollParentEl);\r\n }\r\n }\r\n return null;\r\n };\r\n CoordCache.prototype.isPointInBounds = function (leftOffset, topOffset) {\r\n return this.isLeftInBounds(leftOffset) && this.isTopInBounds(topOffset);\r\n };\r\n CoordCache.prototype.isLeftInBounds = function (leftOffset) {\r\n return !this.boundingRect || (leftOffset >= this.boundingRect.left && leftOffset < this.boundingRect.right);\r\n };\r\n CoordCache.prototype.isTopInBounds = function (topOffset) {\r\n return !this.boundingRect || (topOffset >= this.boundingRect.top && topOffset < this.boundingRect.bottom);\r\n };\r\n return CoordCache;\r\n}());\r\nexports.default = CoordCache;\r\n\r\n\r\n/***/ }),\r\n/* 54 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\n/* Tracks a drag's mouse movement, firing various handlers\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// TODO: use Emitter\r\nvar DragListener = /** @class */ (function () {\r\n function DragListener(options) {\r\n this.isInteracting = false;\r\n this.isDistanceSurpassed = false;\r\n this.isDelayEnded = false;\r\n this.isDragging = false;\r\n this.isTouch = false;\r\n this.isGeneric = false; // initiated by 'dragstart' (jqui)\r\n this.shouldCancelTouchScroll = true;\r\n this.scrollAlwaysKills = false;\r\n this.isAutoScroll = false;\r\n // defaults\r\n this.scrollSensitivity = 30; // pixels from edge for scrolling to start\r\n this.scrollSpeed = 200; // pixels per second, at maximum speed\r\n this.scrollIntervalMs = 50; // millisecond wait between scroll increment\r\n this.options = options || {};\r\n }\r\n // Interaction (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startInteraction = function (ev, extraOptions) {\r\n if (extraOptions === void 0) { extraOptions = {}; }\r\n if (ev.type === 'mousedown') {\r\n if (GlobalEmitter_1.default.get().shouldIgnoreMouse()) {\r\n return;\r\n }\r\n else if (!util_1.isPrimaryMouseButton(ev)) {\r\n return;\r\n }\r\n else {\r\n ev.preventDefault(); // prevents native selection in most browsers\r\n }\r\n }\r\n if (!this.isInteracting) {\r\n // process options\r\n this.delay = util_1.firstDefined(extraOptions.delay, this.options.delay, 0);\r\n this.minDistance = util_1.firstDefined(extraOptions.distance, this.options.distance, 0);\r\n this.subjectEl = this.options.subjectEl;\r\n util_1.preventSelection($('body'));\r\n this.isInteracting = true;\r\n this.isTouch = util_1.getEvIsTouch(ev);\r\n this.isGeneric = ev.type === 'dragstart';\r\n this.isDelayEnded = false;\r\n this.isDistanceSurpassed = false;\r\n this.originX = util_1.getEvX(ev);\r\n this.originY = util_1.getEvY(ev);\r\n this.scrollEl = util_1.getScrollParent($(ev.target));\r\n this.bindHandlers();\r\n this.initAutoScroll();\r\n this.handleInteractionStart(ev);\r\n this.startDelay(ev);\r\n if (!this.minDistance) {\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n };\r\n DragListener.prototype.handleInteractionStart = function (ev) {\r\n this.trigger('interactionStart', ev);\r\n };\r\n DragListener.prototype.endInteraction = function (ev, isCancelled) {\r\n if (this.isInteracting) {\r\n this.endDrag(ev);\r\n if (this.delayTimeoutId) {\r\n clearTimeout(this.delayTimeoutId);\r\n this.delayTimeoutId = null;\r\n }\r\n this.destroyAutoScroll();\r\n this.unbindHandlers();\r\n this.isInteracting = false;\r\n this.handleInteractionEnd(ev, isCancelled);\r\n util_1.allowSelection($('body'));\r\n }\r\n };\r\n DragListener.prototype.handleInteractionEnd = function (ev, isCancelled) {\r\n this.trigger('interactionEnd', ev, isCancelled || false);\r\n };\r\n // Binding To DOM\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.bindHandlers = function () {\r\n // some browsers (Safari in iOS 10) don't allow preventDefault on touch events that are bound after touchstart,\r\n // so listen to the GlobalEmitter singleton, which is always bound, instead of the document directly.\r\n var globalEmitter = GlobalEmitter_1.default.get();\r\n if (this.isGeneric) {\r\n this.listenTo($(document), {\r\n drag: this.handleMove,\r\n dragstop: this.endInteraction\r\n });\r\n }\r\n else if (this.isTouch) {\r\n this.listenTo(globalEmitter, {\r\n touchmove: this.handleTouchMove,\r\n touchend: this.endInteraction,\r\n scroll: this.handleTouchScroll\r\n });\r\n }\r\n else {\r\n this.listenTo(globalEmitter, {\r\n mousemove: this.handleMouseMove,\r\n mouseup: this.endInteraction\r\n });\r\n }\r\n this.listenTo(globalEmitter, {\r\n selectstart: util_1.preventDefault,\r\n contextmenu: util_1.preventDefault // long taps would open menu on Chrome dev tools\r\n });\r\n };\r\n DragListener.prototype.unbindHandlers = function () {\r\n this.stopListeningTo(GlobalEmitter_1.default.get());\r\n this.stopListeningTo($(document)); // for isGeneric\r\n };\r\n // Drag (high-level)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // extraOptions ignored if drag already started\r\n DragListener.prototype.startDrag = function (ev, extraOptions) {\r\n this.startInteraction(ev, extraOptions); // ensure interaction began\r\n if (!this.isDragging) {\r\n this.isDragging = true;\r\n this.handleDragStart(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragStart = function (ev) {\r\n this.trigger('dragStart', ev);\r\n };\r\n DragListener.prototype.handleMove = function (ev) {\r\n var dx = util_1.getEvX(ev) - this.originX;\r\n var dy = util_1.getEvY(ev) - this.originY;\r\n var minDistance = this.minDistance;\r\n var distanceSq; // current distance from the origin, squared\r\n if (!this.isDistanceSurpassed) {\r\n distanceSq = dx * dx + dy * dy;\r\n if (distanceSq >= minDistance * minDistance) {\r\n this.handleDistanceSurpassed(ev);\r\n }\r\n }\r\n if (this.isDragging) {\r\n this.handleDrag(dx, dy, ev);\r\n }\r\n };\r\n // Called while the mouse is being moved and when we know a legitimate drag is taking place\r\n DragListener.prototype.handleDrag = function (dx, dy, ev) {\r\n this.trigger('drag', dx, dy, ev);\r\n this.updateAutoScroll(ev); // will possibly cause scrolling\r\n };\r\n DragListener.prototype.endDrag = function (ev) {\r\n if (this.isDragging) {\r\n this.isDragging = false;\r\n this.handleDragEnd(ev);\r\n }\r\n };\r\n DragListener.prototype.handleDragEnd = function (ev) {\r\n this.trigger('dragEnd', ev);\r\n };\r\n // Delay\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.startDelay = function (initialEv) {\r\n var _this = this;\r\n if (this.delay) {\r\n this.delayTimeoutId = setTimeout(function () {\r\n _this.handleDelayEnd(initialEv);\r\n }, this.delay);\r\n }\r\n else {\r\n this.handleDelayEnd(initialEv);\r\n }\r\n };\r\n DragListener.prototype.handleDelayEnd = function (initialEv) {\r\n this.isDelayEnded = true;\r\n if (this.isDistanceSurpassed) {\r\n this.startDrag(initialEv);\r\n }\r\n };\r\n // Distance\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleDistanceSurpassed = function (ev) {\r\n this.isDistanceSurpassed = true;\r\n if (this.isDelayEnded) {\r\n this.startDrag(ev);\r\n }\r\n };\r\n // Mouse / Touch\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchMove = function (ev) {\r\n // prevent inertia and touchmove-scrolling while dragging\r\n if (this.isDragging && this.shouldCancelTouchScroll) {\r\n ev.preventDefault();\r\n }\r\n this.handleMove(ev);\r\n };\r\n DragListener.prototype.handleMouseMove = function (ev) {\r\n this.handleMove(ev);\r\n };\r\n // Scrolling (unrelated to auto-scroll)\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.handleTouchScroll = function (ev) {\r\n // if the drag is being initiated by touch, but a scroll happens before\r\n // the drag-initiating delay is over, cancel the drag\r\n if (!this.isDragging || this.scrollAlwaysKills) {\r\n this.endInteraction(ev, true); // isCancelled=true\r\n }\r\n };\r\n // Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n DragListener.prototype.trigger = function (name) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (this.options[name]) {\r\n this.options[name].apply(this, args);\r\n }\r\n // makes _methods callable by event name. TODO: kill this\r\n if (this['_' + name]) {\r\n this['_' + name].apply(this, args);\r\n }\r\n };\r\n // Auto-scroll\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DragListener.prototype.initAutoScroll = function () {\r\n var scrollEl = this.scrollEl;\r\n this.isAutoScroll =\r\n this.options.scroll &&\r\n scrollEl &&\r\n !scrollEl.is(window) &&\r\n !scrollEl.is(document);\r\n if (this.isAutoScroll) {\r\n // debounce makes sure rapid calls don't happen\r\n this.listenTo(scrollEl, 'scroll', util_1.debounce(this.handleDebouncedScroll, 100));\r\n }\r\n };\r\n DragListener.prototype.destroyAutoScroll = function () {\r\n this.endAutoScroll(); // kill any animation loop\r\n // remove the scroll handler if there is a scrollEl\r\n if (this.isAutoScroll) {\r\n this.stopListeningTo(this.scrollEl, 'scroll'); // will probably get removed by unbindHandlers too :(\r\n }\r\n };\r\n // Computes and stores the bounding rectangle of scrollEl\r\n DragListener.prototype.computeScrollBounds = function () {\r\n if (this.isAutoScroll) {\r\n this.scrollBounds = util_1.getOuterRect(this.scrollEl);\r\n // TODO: use getClientRect in future. but prevents auto scrolling when on top of scrollbars\r\n }\r\n };\r\n // Called when the dragging is in progress and scrolling should be updated\r\n DragListener.prototype.updateAutoScroll = function (ev) {\r\n var sensitivity = this.scrollSensitivity;\r\n var bounds = this.scrollBounds;\r\n var topCloseness;\r\n var bottomCloseness;\r\n var leftCloseness;\r\n var rightCloseness;\r\n var topVel = 0;\r\n var leftVel = 0;\r\n if (bounds) {\r\n // compute closeness to edges. valid range is from 0.0 - 1.0\r\n topCloseness = (sensitivity - (util_1.getEvY(ev) - bounds.top)) / sensitivity;\r\n bottomCloseness = (sensitivity - (bounds.bottom - util_1.getEvY(ev))) / sensitivity;\r\n leftCloseness = (sensitivity - (util_1.getEvX(ev) - bounds.left)) / sensitivity;\r\n rightCloseness = (sensitivity - (bounds.right - util_1.getEvX(ev))) / sensitivity;\r\n // translate vertical closeness into velocity.\r\n // mouse must be completely in bounds for velocity to happen.\r\n if (topCloseness >= 0 && topCloseness <= 1) {\r\n topVel = topCloseness * this.scrollSpeed * -1; // negative. for scrolling up\r\n }\r\n else if (bottomCloseness >= 0 && bottomCloseness <= 1) {\r\n topVel = bottomCloseness * this.scrollSpeed;\r\n }\r\n // translate horizontal closeness into velocity\r\n if (leftCloseness >= 0 && leftCloseness <= 1) {\r\n leftVel = leftCloseness * this.scrollSpeed * -1; // negative. for scrolling left\r\n }\r\n else if (rightCloseness >= 0 && rightCloseness <= 1) {\r\n leftVel = rightCloseness * this.scrollSpeed;\r\n }\r\n }\r\n this.setScrollVel(topVel, leftVel);\r\n };\r\n // Sets the speed-of-scrolling for the scrollEl\r\n DragListener.prototype.setScrollVel = function (topVel, leftVel) {\r\n this.scrollTopVel = topVel;\r\n this.scrollLeftVel = leftVel;\r\n this.constrainScrollVel(); // massages into realistic values\r\n // if there is non-zero velocity, and an animation loop hasn't already started, then START\r\n if ((this.scrollTopVel || this.scrollLeftVel) && !this.scrollIntervalId) {\r\n this.scrollIntervalId = setInterval(util_1.proxy(this, 'scrollIntervalFunc'), // scope to `this`\r\n this.scrollIntervalMs);\r\n }\r\n };\r\n // Forces scrollTopVel and scrollLeftVel to be zero if scrolling has already gone all the way\r\n DragListener.prototype.constrainScrollVel = function () {\r\n var el = this.scrollEl;\r\n if (this.scrollTopVel < 0) {\r\n if (el.scrollTop() <= 0) {\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n else if (this.scrollTopVel > 0) {\r\n if (el.scrollTop() + el[0].clientHeight >= el[0].scrollHeight) {\r\n this.scrollTopVel = 0;\r\n }\r\n }\r\n if (this.scrollLeftVel < 0) {\r\n if (el.scrollLeft() <= 0) {\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n else if (this.scrollLeftVel > 0) {\r\n if (el.scrollLeft() + el[0].clientWidth >= el[0].scrollWidth) {\r\n this.scrollLeftVel = 0;\r\n }\r\n }\r\n };\r\n // This function gets called during every iteration of the scrolling animation loop\r\n DragListener.prototype.scrollIntervalFunc = function () {\r\n var el = this.scrollEl;\r\n var frac = this.scrollIntervalMs / 1000; // considering animation frequency, what the vel should be mult'd by\r\n // change the value of scrollEl's scroll\r\n if (this.scrollTopVel) {\r\n el.scrollTop(el.scrollTop() + this.scrollTopVel * frac);\r\n }\r\n if (this.scrollLeftVel) {\r\n el.scrollLeft(el.scrollLeft() + this.scrollLeftVel * frac);\r\n }\r\n this.constrainScrollVel(); // since the scroll values changed, recompute the velocities\r\n // if scrolled all the way, which causes the vels to be zero, stop the animation loop\r\n if (!this.scrollTopVel && !this.scrollLeftVel) {\r\n this.endAutoScroll();\r\n }\r\n };\r\n // Kills any existing scrolling animation loop\r\n DragListener.prototype.endAutoScroll = function () {\r\n if (this.scrollIntervalId) {\r\n clearInterval(this.scrollIntervalId);\r\n this.scrollIntervalId = null;\r\n this.handleScrollEnd();\r\n }\r\n };\r\n // Get called when the scrollEl is scrolled (NOTE: this is delayed via debounce)\r\n DragListener.prototype.handleDebouncedScroll = function () {\r\n // recompute all coordinates, but *only* if this is *not* part of our scrolling animation\r\n if (!this.scrollIntervalId) {\r\n this.handleScrollEnd();\r\n }\r\n };\r\n DragListener.prototype.handleScrollEnd = function () {\r\n // Called when scrolling has stopped, whether through auto scroll, or the user scrolling\r\n };\r\n return DragListener;\r\n}());\r\nexports.default = DragListener;\r\nListenerMixin_1.default.mixInto(DragListener);\r\n\r\n\r\n/***/ }),\r\n/* 55 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(14);\r\n/*\r\nA set of rendering and date-related methods for a visual component comprised of one or more rows of day columns.\r\nPrerequisite: the object being mixed into needs to be a *Grid*\r\n*/\r\nvar DayTableMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayTableMixin, _super);\r\n function DayTableMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Populates internal variables used for date calculation and rendering\r\n DayTableMixin.prototype.updateDayTable = function () {\r\n var t = this;\r\n var view = t.view;\r\n var calendar = view.calendar;\r\n var date = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.startMs, true);\r\n var end = calendar.msToUtcMoment(t.dateProfile.renderUnzonedRange.endMs, true);\r\n var dayIndex = -1;\r\n var dayIndices = [];\r\n var dayDates = [];\r\n var daysPerRow;\r\n var firstDay;\r\n var rowCnt;\r\n while (date.isBefore(end)) {\r\n if (view.isHiddenDay(date)) {\r\n dayIndices.push(dayIndex + 0.5); // mark that it's between indices\r\n }\r\n else {\r\n dayIndex++;\r\n dayIndices.push(dayIndex);\r\n dayDates.push(date.clone());\r\n }\r\n date.add(1, 'days');\r\n }\r\n if (this.breakOnWeeks) {\r\n // count columns until the day-of-week repeats\r\n firstDay = dayDates[0].day();\r\n for (daysPerRow = 1; daysPerRow < dayDates.length; daysPerRow++) {\r\n if (dayDates[daysPerRow].day() === firstDay) {\r\n break;\r\n }\r\n }\r\n rowCnt = Math.ceil(dayDates.length / daysPerRow);\r\n }\r\n else {\r\n rowCnt = 1;\r\n daysPerRow = dayDates.length;\r\n }\r\n this.dayDates = dayDates;\r\n this.dayIndices = dayIndices;\r\n this.daysPerRow = daysPerRow;\r\n this.rowCnt = rowCnt;\r\n this.updateDayTableCols();\r\n };\r\n // Computes and assigned the colCnt property and updates any options that may be computed from it\r\n DayTableMixin.prototype.updateDayTableCols = function () {\r\n this.colCnt = this.computeColCnt();\r\n this.colHeadFormat =\r\n this.opt('columnHeaderFormat') ||\r\n this.opt('columnFormat') || // deprecated\r\n this.computeColHeadFormat();\r\n };\r\n // Determines how many columns there should be in the table\r\n DayTableMixin.prototype.computeColCnt = function () {\r\n return this.daysPerRow;\r\n };\r\n // Computes the ambiguously-timed moment for the given cell\r\n DayTableMixin.prototype.getCellDate = function (row, col) {\r\n return this.dayDates[this.getCellDayIndex(row, col)].clone();\r\n };\r\n // Computes the ambiguously-timed date range for the given cell\r\n DayTableMixin.prototype.getCellRange = function (row, col) {\r\n var start = this.getCellDate(row, col);\r\n var end = start.clone().add(1, 'days');\r\n return { start: start, end: end };\r\n };\r\n // Returns the number of day cells, chronologically, from the first of the grid (0-based)\r\n DayTableMixin.prototype.getCellDayIndex = function (row, col) {\r\n return row * this.daysPerRow + this.getColDayIndex(col);\r\n };\r\n // Returns the numner of day cells, chronologically, from the first cell in *any given row*\r\n DayTableMixin.prototype.getColDayIndex = function (col) {\r\n if (this.isRTL) {\r\n return this.colCnt - 1 - col;\r\n }\r\n else {\r\n return col;\r\n }\r\n };\r\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\r\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\r\n // If before the first offset, returns a negative number.\r\n // If after the last offset, returns an offset past the last cell offset.\r\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\r\n DayTableMixin.prototype.getDateDayIndex = function (date) {\r\n var dayIndices = this.dayIndices;\r\n var dayOffset = date.diff(this.dayDates[0], 'days');\r\n if (dayOffset < 0) {\r\n return dayIndices[0] - 1;\r\n }\r\n else if (dayOffset >= dayIndices.length) {\r\n return dayIndices[dayIndices.length - 1] + 1;\r\n }\r\n else {\r\n return dayIndices[dayOffset];\r\n }\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes a default column header formatting string if `colFormat` is not explicitly defined\r\n DayTableMixin.prototype.computeColHeadFormat = function () {\r\n // if more than one week row, or if there are a lot of columns with not much space,\r\n // put just the day numbers will be in each cell\r\n if (this.rowCnt > 1 || this.colCnt > 10) {\r\n return 'ddd'; // \"Sat\"\r\n }\r\n else if (this.colCnt > 1) {\r\n return this.opt('dayOfMonthFormat'); // \"Sat 12/10\"\r\n }\r\n else {\r\n return 'dddd'; // \"Saturday\"\r\n }\r\n };\r\n /* Slicing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Slices up a date range into a segment for every week-row it intersects with\r\n DayTableMixin.prototype.sliceRangeByRow = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, rowFirst);\r\n segLast = Math.min(rangeLast, rowLast);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) {\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n // Slices up a date range into a segment for every day-cell it intersects with.\r\n // TODO: make more DRY with sliceRangeByRow somehow.\r\n DayTableMixin.prototype.sliceRangeByDay = function (unzonedRange) {\r\n var daysPerRow = this.daysPerRow;\r\n var normalRange = this.view.computeDayRange(unzonedRange); // make whole-day range, considering nextDayThreshold\r\n var rangeFirst = this.getDateDayIndex(normalRange.start); // inclusive first index\r\n var rangeLast = this.getDateDayIndex(normalRange.end.clone().subtract(1, 'days')); // inclusive last index\r\n var segs = [];\r\n var row;\r\n var rowFirst;\r\n var rowLast; // inclusive day-index range for current row\r\n var i;\r\n var segFirst;\r\n var segLast; // inclusive day-index range for segment\r\n for (row = 0; row < this.rowCnt; row++) {\r\n rowFirst = row * daysPerRow;\r\n rowLast = rowFirst + daysPerRow - 1;\r\n for (i = rowFirst; i <= rowLast; i++) {\r\n // intersect segment's offset range with the row's\r\n segFirst = Math.max(rangeFirst, i);\r\n segLast = Math.min(rangeLast, i);\r\n // deal with in-between indices\r\n segFirst = Math.ceil(segFirst); // in-between starts round to next cell\r\n segLast = Math.floor(segLast); // in-between ends round to prev cell\r\n if (segFirst <= segLast) {\r\n segs.push({\r\n row: row,\r\n // normalize to start of row\r\n firstRowDayIndex: segFirst - rowFirst,\r\n lastRowDayIndex: segLast - rowFirst,\r\n // must be matching integers to be the segment's start/end\r\n isStart: segFirst === rangeFirst,\r\n isEnd: segLast === rangeLast\r\n });\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Header Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderHeadHtml = function () {\r\n var theme = this.view.calendar.theme;\r\n return '' +\r\n '
' +\r\n '' +\r\n '' +\r\n this.renderHeadTrHtml() +\r\n '' +\r\n '
' +\r\n '
';\r\n };\r\n DayTableMixin.prototype.renderHeadIntroHtml = function () {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderHeadTrHtml = function () {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderHeadIntroHtml()) +\r\n this.renderHeadDateCellsHtml() +\r\n (this.isRTL ? this.renderHeadIntroHtml() : '') +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderHeadDateCellsHtml = function () {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(0, col);\r\n htmls.push(this.renderHeadDateCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // TODO: when internalApiVersion, accept an object for HTML attributes\r\n // (colspan should be no different)\r\n DayTableMixin.prototype.renderHeadDateCellHtml = function (date, colspan, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classNames = [\r\n 'fc-day-header',\r\n view.calendar.theme.getClass('widgetHeader')\r\n ];\r\n var innerHtml;\r\n if (typeof t.opt('columnHeaderHtml') === 'function') {\r\n innerHtml = t.opt('columnHeaderHtml')(date);\r\n }\r\n else if (typeof t.opt('columnHeaderText') === 'function') {\r\n innerHtml = util_1.htmlEscape(t.opt('columnHeaderText')(date));\r\n }\r\n else {\r\n innerHtml = util_1.htmlEscape(date.format(t.colHeadFormat));\r\n }\r\n // if only one row of days, the classNames on the header can represent the specific days beneath\r\n if (t.rowCnt === 1) {\r\n classNames = classNames.concat(\r\n // includes the day-of-week class\r\n // noThemeHighlight=true (don't highlight the header)\r\n t.getDayClasses(date, true));\r\n }\r\n else {\r\n classNames.push('fc-' + util_1.dayIDs[date.day()]); // only add the day-of-week class\r\n }\r\n return '' +\r\n ' 1 ?\r\n ' colspan=\"' + colspan + '\"' :\r\n '') +\r\n (otherAttrs ?\r\n ' ' + otherAttrs :\r\n '') +\r\n '>' +\r\n (isDateValid ?\r\n // don't make a link if the heading could represent multiple days, or if there's only one day (forceOff)\r\n view.buildGotoAnchorHtml({ date: date, forceOff: t.rowCnt > 1 || t.colCnt === 1 }, innerHtml) :\r\n // if not valid, display text, but no link\r\n innerHtml) +\r\n '';\r\n };\r\n /* Background Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderBgTrHtml = function (row) {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderBgIntroHtml(row)) +\r\n this.renderBgCellsHtml(row) +\r\n (this.isRTL ? this.renderBgIntroHtml(row) : '') +\r\n '';\r\n };\r\n DayTableMixin.prototype.renderBgIntroHtml = function (row) {\r\n return this.renderIntroHtml(); // fall back to generic\r\n };\r\n DayTableMixin.prototype.renderBgCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderBgCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n DayTableMixin.prototype.renderBgCellHtml = function (date, otherAttrs) {\r\n var t = this;\r\n var view = t.view;\r\n var isDateValid = t.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var classes = t.getDayClasses(date);\r\n classes.unshift('fc-day', view.calendar.theme.getClass('widgetContent'));\r\n return '';\r\n };\r\n /* Generic\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayTableMixin.prototype.renderIntroHtml = function () {\r\n // Generates the default HTML intro for any row. User classes should override\r\n };\r\n // TODO: a generic method for dealing with , RTL, intro\r\n // when increment internalApiVersion\r\n // wrapTr (scheduler)\r\n /* Utils\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Applies the generic \"intro\" and \"outro\" HTML to the given cells.\r\n // Intro means the leftmost cell when the calendar is LTR and the rightmost cell when RTL. Vice-versa for outro.\r\n DayTableMixin.prototype.bookendCells = function (trEl) {\r\n var introHtml = this.renderIntroHtml();\r\n if (introHtml) {\r\n if (this.isRTL) {\r\n trEl.append(introHtml);\r\n }\r\n else {\r\n trEl.prepend(introHtml);\r\n }\r\n }\r\n };\r\n return DayTableMixin;\r\n}(Mixin_1.default));\r\nexports.default = DayTableMixin;\r\n\r\n\r\n/***/ }),\r\n/* 56 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar BusinessHourRenderer = /** @class */ (function () {\r\n /*\r\n component implements:\r\n - eventRangesToEventFootprints\r\n - eventFootprintsToSegs\r\n */\r\n function BusinessHourRenderer(component, fillRenderer) {\r\n this.component = component;\r\n this.fillRenderer = fillRenderer;\r\n }\r\n BusinessHourRenderer.prototype.render = function (businessHourGenerator) {\r\n var component = this.component;\r\n var unzonedRange = component._getDateProfile().activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(component.hasAllDayBusinessHours, unzonedRange);\r\n var eventFootprints = eventInstanceGroup ?\r\n component.eventRangesToEventFootprints(eventInstanceGroup.sliceRenderRanges(unzonedRange)) :\r\n [];\r\n this.renderEventFootprints(eventFootprints);\r\n };\r\n BusinessHourRenderer.prototype.renderEventFootprints = function (eventFootprints) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n this.renderSegs(segs);\r\n this.segs = segs;\r\n };\r\n BusinessHourRenderer.prototype.renderSegs = function (segs) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderSegs('businessHours', segs, {\r\n getClasses: function (seg) {\r\n return ['fc-nonbusiness', 'fc-bgevent'];\r\n }\r\n });\r\n }\r\n };\r\n BusinessHourRenderer.prototype.unrender = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('businessHours');\r\n }\r\n this.segs = null;\r\n };\r\n BusinessHourRenderer.prototype.getSegs = function () {\r\n return this.segs || [];\r\n };\r\n return BusinessHourRenderer;\r\n}());\r\nexports.default = BusinessHourRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 57 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar FillRenderer = /** @class */ (function () {\r\n function FillRenderer(component) {\r\n this.fillSegTag = 'div';\r\n this.component = component;\r\n this.elsByFill = {};\r\n }\r\n FillRenderer.prototype.renderFootprint = function (type, componentFootprint, props) {\r\n this.renderSegs(type, this.component.componentFootprintToSegs(componentFootprint), props);\r\n };\r\n FillRenderer.prototype.renderSegs = function (type, segs, props) {\r\n var els;\r\n segs = this.buildSegEls(type, segs, props); // assignes `.el` to each seg. returns successfully rendered segs\r\n els = this.attachSegEls(type, segs);\r\n if (els) {\r\n this.reportEls(type, els);\r\n }\r\n return segs;\r\n };\r\n // Unrenders a specific type of fill that is currently rendered on the grid\r\n FillRenderer.prototype.unrender = function (type) {\r\n var el = this.elsByFill[type];\r\n if (el) {\r\n el.remove();\r\n delete this.elsByFill[type];\r\n }\r\n };\r\n // Renders and assigns an `el` property for each fill segment. Generic enough to work with different types.\r\n // Only returns segments that successfully rendered.\r\n FillRenderer.prototype.buildSegEls = function (type, segs, props) {\r\n var _this = this;\r\n var html = '';\r\n var renderedSegs = [];\r\n var i;\r\n if (segs.length) {\r\n // build a large concatenation of segment HTML\r\n for (i = 0; i < segs.length; i++) {\r\n html += this.buildSegHtml(type, segs[i], props);\r\n }\r\n // Grab individual elements from the combined HTML string. Use each as the default rendering.\r\n // Then, compute the 'el' for each segment.\r\n $(html).each(function (i, node) {\r\n var seg = segs[i];\r\n var el = $(node);\r\n // allow custom filter methods per-type\r\n if (props.filterEl) {\r\n el = props.filterEl(seg, el);\r\n }\r\n if (el) {\r\n el = $(el); // allow custom filter to return raw DOM node\r\n // correct element type? (would be bad if a non-TD were inserted into a table for example)\r\n if (el.is(_this.fillSegTag)) {\r\n seg.el = el;\r\n renderedSegs.push(seg);\r\n }\r\n }\r\n });\r\n }\r\n return renderedSegs;\r\n };\r\n // Builds the HTML needed for one fill segment. Generic enough to work with different types.\r\n FillRenderer.prototype.buildSegHtml = function (type, seg, props) {\r\n // custom hooks per-type\r\n var classes = props.getClasses ? props.getClasses(seg) : [];\r\n var css = util_1.cssToStr(props.getCss ? props.getCss(seg) : {});\r\n return '<' + this.fillSegTag +\r\n (classes.length ? ' class=\"' + classes.join(' ') + '\"' : '') +\r\n (css ? ' style=\"' + css + '\"' : '') +\r\n ' />';\r\n };\r\n // Should return wrapping DOM structure\r\n FillRenderer.prototype.attachSegEls = function (type, segs) {\r\n // subclasses must implement\r\n };\r\n FillRenderer.prototype.reportEls = function (type, nodes) {\r\n if (this.elsByFill[type]) {\r\n this.elsByFill[type] = this.elsByFill[type].add(nodes);\r\n }\r\n else {\r\n this.elsByFill[type] = $(nodes);\r\n }\r\n };\r\n return FillRenderer;\r\n}());\r\nexports.default = FillRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 58 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar HelperRenderer = /** @class */ (function () {\r\n function HelperRenderer(component, eventRenderer) {\r\n this.view = component._getView();\r\n this.component = component;\r\n this.eventRenderer = eventRenderer;\r\n }\r\n HelperRenderer.prototype.renderComponentFootprint = function (componentFootprint) {\r\n this.renderEventFootprints([\r\n this.fabricateEventFootprint(componentFootprint)\r\n ]);\r\n };\r\n HelperRenderer.prototype.renderEventDraggingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-dragging', isTouch ? null : this.view.opt('dragOpacity'));\r\n };\r\n HelperRenderer.prototype.renderEventResizingFootprints = function (eventFootprints, sourceSeg, isTouch) {\r\n this.renderEventFootprints(eventFootprints, sourceSeg, 'fc-resizing');\r\n };\r\n HelperRenderer.prototype.renderEventFootprints = function (eventFootprints, sourceSeg, extraClassNames, opacity) {\r\n var segs = this.component.eventFootprintsToSegs(eventFootprints);\r\n var classNames = 'fc-helper ' + (extraClassNames || '');\r\n var i;\r\n // assigns each seg's el and returns a subset of segs that were rendered\r\n segs = this.eventRenderer.renderFgSegEls(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.addClass(classNames);\r\n }\r\n if (opacity != null) {\r\n for (i = 0; i < segs.length; i++) {\r\n segs[i].el.css('opacity', opacity);\r\n }\r\n }\r\n this.helperEls = this.renderSegs(segs, sourceSeg);\r\n };\r\n /*\r\n Must return all mock event elements\r\n */\r\n HelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n // Subclasses must implement\r\n };\r\n HelperRenderer.prototype.unrender = function () {\r\n if (this.helperEls) {\r\n this.helperEls.remove();\r\n this.helperEls = null;\r\n }\r\n };\r\n HelperRenderer.prototype.fabricateEventFootprint = function (componentFootprint) {\r\n var calendar = this.view.calendar;\r\n var eventDateProfile = calendar.footprintToDateProfile(componentFootprint);\r\n var dummyEvent = new SingleEventDef_1.default(new EventSource_1.default(calendar));\r\n var dummyInstance;\r\n dummyEvent.dateProfile = eventDateProfile;\r\n dummyInstance = dummyEvent.buildInstance();\r\n return new EventFootprint_1.default(componentFootprint, dummyEvent, dummyInstance);\r\n };\r\n return HelperRenderer;\r\n}());\r\nexports.default = HelperRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 59 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar EventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventPointing, _super);\r\n function EventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /*\r\n component must implement:\r\n - publiclyTrigger\r\n */\r\n EventPointing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'click', this.handleClick.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseenter', this.handleMouseover.bind(this));\r\n component.bindSegHandlerToEl(el, 'mouseleave', this.handleMouseout.bind(this));\r\n };\r\n EventPointing.prototype.handleClick = function (seg, ev) {\r\n var res = this.component.publiclyTrigger('eventClick', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n if (res === false) {\r\n ev.preventDefault();\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused over\r\n EventPointing.prototype.handleMouseover = function (seg, ev) {\r\n if (!GlobalEmitter_1.default.get().shouldIgnoreMouse() &&\r\n !this.mousedOverSeg) {\r\n this.mousedOverSeg = seg;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.addClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseover', {\r\n context: seg.el[0],\r\n args: [seg.footprint.getEventLegacy(), ev, this.view]\r\n });\r\n }\r\n };\r\n // Updates internal state and triggers handlers for when an event element is moused out.\r\n // Can be given no arguments, in which case it will mouseout the segment that was previously moused over.\r\n EventPointing.prototype.handleMouseout = function (seg, ev) {\r\n if (this.mousedOverSeg) {\r\n this.mousedOverSeg = null;\r\n // TODO: move to EventSelecting's responsibility\r\n if (this.view.isEventDefResizable(seg.footprint.eventDef)) {\r\n seg.el.removeClass('fc-allow-mouse-resize');\r\n }\r\n this.component.publiclyTrigger('eventMouseout', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev || {},\r\n this.view\r\n ]\r\n });\r\n }\r\n };\r\n EventPointing.prototype.end = function () {\r\n if (this.mousedOverSeg) {\r\n this.handleMouseout(this.mousedOverSeg);\r\n }\r\n };\r\n return EventPointing;\r\n}(Interaction_1.default));\r\nexports.default = EventPointing;\r\n\r\n\r\n/***/ }),\r\n/* 60 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar DateClicking_1 = __webpack_require__(245);\r\nvar DateSelecting_1 = __webpack_require__(225);\r\nvar EventPointing_1 = __webpack_require__(59);\r\nvar EventDragging_1 = __webpack_require__(224);\r\nvar EventResizing_1 = __webpack_require__(223);\r\nvar ExternalDropping_1 = __webpack_require__(222);\r\nvar StandardInteractionsMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardInteractionsMixin, _super);\r\n function StandardInteractionsMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardInteractionsMixin;\r\n}(Mixin_1.default));\r\nexports.default = StandardInteractionsMixin;\r\nStandardInteractionsMixin.prototype.dateClickingClass = DateClicking_1.default;\r\nStandardInteractionsMixin.prototype.dateSelectingClass = DateSelecting_1.default;\r\nStandardInteractionsMixin.prototype.eventPointingClass = EventPointing_1.default;\r\nStandardInteractionsMixin.prototype.eventDraggingClass = EventDragging_1.default;\r\nStandardInteractionsMixin.prototype.eventResizingClass = EventResizing_1.default;\r\nStandardInteractionsMixin.prototype.externalDroppingClass = ExternalDropping_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 61 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar CoordCache_1 = __webpack_require__(53);\r\nvar Popover_1 = __webpack_require__(249);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventFootprint_1 = __webpack_require__(36);\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nvar DayGridEventRenderer_1 = __webpack_require__(250);\r\nvar DayGridHelperRenderer_1 = __webpack_require__(251);\r\nvar DayGridFillRenderer_1 = __webpack_require__(252);\r\n/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGrid, _super);\r\n function DayGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.cellWeekNumbersVisible = false; // display week numbers in day cell?\r\n _this.bottomCoordPadding = 0; // hack for extending the hit area for the last row of the coordinate grid\r\n // isRigid determines whether the individual rows should ignore the contents and be a constant height.\r\n // Relies on the view's colCnt and rowCnt. In the future, this component should probably be self-sufficient.\r\n _this.isRigid = false;\r\n _this.hasAllDayBusinessHours = true;\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n DayGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByRow(componentFootprint.unzonedRange);\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (this.isRTL) {\r\n seg.leftCol = this.daysPerRow - 1 - seg.lastRowDayIndex;\r\n seg.rightCol = this.daysPerRow - 1 - seg.firstRowDayIndex;\r\n }\r\n else {\r\n seg.leftCol = seg.firstRowDayIndex;\r\n seg.rightCol = seg.lastRowDayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderGrid();\r\n };\r\n DayGrid.prototype.unrenderDates = function () {\r\n this.removeSegPopover();\r\n };\r\n // Renders the rows and columns into the component's `this.el`, which should already be assigned.\r\n DayGrid.prototype.renderGrid = function () {\r\n var view = this.view;\r\n var rowCnt = this.rowCnt;\r\n var colCnt = this.colCnt;\r\n var html = '';\r\n var row;\r\n var col;\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n for (row = 0; row < rowCnt; row++) {\r\n html += this.renderDayRowHtml(row, this.isRigid);\r\n }\r\n this.el.html(html);\r\n this.rowEls = this.el.find('.fc-row');\r\n this.cellEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.rowCoordCache = new CoordCache_1.default({\r\n els: this.rowEls,\r\n isVertical: true\r\n });\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.cellEls.slice(0, this.colCnt),\r\n isHorizontal: true\r\n });\r\n // trigger dayRender with each cell's element\r\n for (row = 0; row < rowCnt; row++) {\r\n for (col = 0; col < colCnt; col++) {\r\n this.publiclyTrigger('dayRender', {\r\n context: view,\r\n args: [\r\n this.getCellDate(row, col),\r\n this.getCellEl(row, col),\r\n view\r\n ]\r\n });\r\n }\r\n }\r\n };\r\n // Generates the HTML for a single row, which is a div that wraps a table.\r\n // `row` is the row number.\r\n DayGrid.prototype.renderDayRowHtml = function (row, isRigid) {\r\n var theme = this.view.calendar.theme;\r\n var classes = ['fc-row', 'fc-week', theme.getClass('dayRow')];\r\n if (isRigid) {\r\n classes.push('fc-rigid');\r\n }\r\n return '' +\r\n '
' +\r\n '
' +\r\n '' +\r\n this.renderBgTrHtml(row) +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n (this.getIsNumbersVisible() ?\r\n '' +\r\n this.renderNumberTrHtml(row) +\r\n '' :\r\n '') +\r\n '
' +\r\n '
' +\r\n '
';\r\n };\r\n DayGrid.prototype.getIsNumbersVisible = function () {\r\n return this.getIsDayNumbersVisible() || this.cellWeekNumbersVisible;\r\n };\r\n DayGrid.prototype.getIsDayNumbersVisible = function () {\r\n return this.rowCnt > 1;\r\n };\r\n /* Grid Number Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.renderNumberTrHtml = function (row) {\r\n return '' +\r\n '' +\r\n (this.isRTL ? '' : this.renderNumberIntroHtml(row)) +\r\n this.renderNumberCellsHtml(row) +\r\n (this.isRTL ? this.renderNumberIntroHtml(row) : '') +\r\n '';\r\n };\r\n DayGrid.prototype.renderNumberIntroHtml = function (row) {\r\n return this.renderIntroHtml();\r\n };\r\n DayGrid.prototype.renderNumberCellsHtml = function (row) {\r\n var htmls = [];\r\n var col;\r\n var date;\r\n for (col = 0; col < this.colCnt; col++) {\r\n date = this.getCellDate(row, col);\r\n htmls.push(this.renderNumberCellHtml(date));\r\n }\r\n return htmls.join('');\r\n };\r\n // Generates the HTML for the s of the \"number\" row in the DayGrid's content skeleton.\r\n // The number row will only exist if either day numbers or week numbers are turned on.\r\n DayGrid.prototype.renderNumberCellHtml = function (date) {\r\n var view = this.view;\r\n var html = '';\r\n var isDateValid = this.dateProfile.activeUnzonedRange.containsDate(date); // TODO: called too frequently. cache somehow.\r\n var isDayNumberVisible = this.getIsDayNumbersVisible() && isDateValid;\r\n var classes;\r\n var weekCalcFirstDoW;\r\n if (!isDayNumberVisible && !this.cellWeekNumbersVisible) {\r\n // no numbers in day cell (week number must be along the side)\r\n return ''; // will create an empty space above events :(\r\n }\r\n classes = this.getDayClasses(date);\r\n classes.unshift('fc-day-top');\r\n if (this.cellWeekNumbersVisible) {\r\n // To determine the day of week number change under ISO, we cannot\r\n // rely on moment.js methods such as firstDayOfWeek() or weekday(),\r\n // because they rely on the locale's dow (possibly overridden by\r\n // our firstDay option), which may not be Monday. We cannot change\r\n // dow, because that would affect the calendar start day as well.\r\n if (date._locale._fullCalendar_weekCalc === 'ISO') {\r\n weekCalcFirstDoW = 1; // Monday by ISO 8601 definition\r\n }\r\n else {\r\n weekCalcFirstDoW = date._locale.firstDayOfWeek();\r\n }\r\n }\r\n html += '';\r\n if (this.cellWeekNumbersVisible && (date.day() === weekCalcFirstDoW)) {\r\n html += view.buildGotoAnchorHtml({ date: date, type: 'week' }, { 'class': 'fc-week-number' }, date.format('w') // inner HTML\r\n );\r\n }\r\n if (isDayNumberVisible) {\r\n html += view.buildGotoAnchorHtml(date, { 'class': 'fc-day-number' }, date.format('D') // inner HTML\r\n );\r\n }\r\n html += '';\r\n return html;\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.rowCoordCache.build();\r\n this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding; // hack\r\n };\r\n DayGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n this.rowCoordCache.clear();\r\n };\r\n DayGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n if (this.colCoordCache.isLeftInBounds(leftOffset) && this.rowCoordCache.isTopInBounds(topOffset)) {\r\n var col = this.colCoordCache.getHorizontalIndex(leftOffset);\r\n var row = this.rowCoordCache.getVerticalIndex(topOffset);\r\n if (row != null && col != null) {\r\n return this.getCellHit(row, col);\r\n }\r\n }\r\n };\r\n DayGrid.prototype.getHitFootprint = function (hit) {\r\n var range = this.getCellRange(hit.row, hit.col);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(range.start, range.end), true // all-day?\r\n );\r\n };\r\n DayGrid.prototype.getHitEl = function (hit) {\r\n return this.getCellEl(hit.row, hit.col);\r\n };\r\n /* Cell System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // FYI: the first column is the leftmost column, regardless of date\r\n DayGrid.prototype.getCellHit = function (row, col) {\r\n return {\r\n row: row,\r\n col: col,\r\n component: this,\r\n left: this.colCoordCache.getLeftOffset(col),\r\n right: this.colCoordCache.getRightOffset(col),\r\n top: this.rowCoordCache.getTopOffset(row),\r\n bottom: this.rowCoordCache.getBottomOffset(row)\r\n };\r\n };\r\n DayGrid.prototype.getCellEl = function (row, col) {\r\n return this.cellEls.eq(row * this.colCnt + col);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Unrenders all events currently rendered on the grid\r\n DayGrid.prototype.executeEventUnrender = function () {\r\n this.removeSegPopover(); // removes the \"more..\" events popover\r\n _super.prototype.executeEventUnrender.call(this);\r\n };\r\n // Retrieves all rendered segment objects currently rendered on the grid\r\n DayGrid.prototype.getOwnEventSegs = function () {\r\n // append the segments from the \"more...\" popover\r\n return _super.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs || []);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event or external element being dragged.\r\n // `eventLocation` has zoned start and end (optional)\r\n DayGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n // render drags from OTHER components as helpers\r\n if (eventFootprints.length && seg && seg.component !== this) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n return true; // signal helpers rendered\r\n }\r\n };\r\n // Unrenders any visual indication of a hovering event\r\n DayGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n DayGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders a visual indication of an event being resized\r\n DayGrid.prototype.unrenderEventResize = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* More+ Link Popover\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DayGrid.prototype.removeSegPopover = function () {\r\n if (this.segPopover) {\r\n this.segPopover.hide(); // in handler, will call segPopover's removeElement\r\n }\r\n };\r\n // Limits the number of \"levels\" (vertically stacking layers of events) for each row of the grid.\r\n // `levelLimit` can be false (don't limit), a number, or true (should be computed).\r\n DayGrid.prototype.limitRows = function (levelLimit) {\r\n var rowStructs = this.eventRenderer.rowStructs || [];\r\n var row; // row #\r\n var rowLevelLimit;\r\n for (row = 0; row < rowStructs.length; row++) {\r\n this.unlimitRow(row);\r\n if (!levelLimit) {\r\n rowLevelLimit = false;\r\n }\r\n else if (typeof levelLimit === 'number') {\r\n rowLevelLimit = levelLimit;\r\n }\r\n else {\r\n rowLevelLimit = this.computeRowLevelLimit(row);\r\n }\r\n if (rowLevelLimit !== false) {\r\n this.limitRow(row, rowLevelLimit);\r\n }\r\n }\r\n };\r\n // Computes the number of levels a row will accomodate without going outside its bounds.\r\n // Assumes the row is \"rigid\" (maintains a constant height regardless of what is inside).\r\n // `row` is the row number.\r\n DayGrid.prototype.computeRowLevelLimit = function (row) {\r\n var rowEl = this.rowEls.eq(row); // the containing \"fake\" row div\r\n var rowHeight = rowEl.height(); // TODO: cache somehow?\r\n var trEls = this.eventRenderer.rowStructs[row].tbodyEl.children();\r\n var i;\r\n var trEl;\r\n var trHeight;\r\n function iterInnerHeights(i, childNode) {\r\n trHeight = Math.max(trHeight, $(childNode).outerHeight());\r\n }\r\n // Reveal one level at a time and stop when we find one out of bounds\r\n for (i = 0; i < trEls.length; i++) {\r\n trEl = trEls.eq(i).removeClass('fc-limited'); // reset to original state (reveal)\r\n // with rowspans>1 and IE8, trEl.outerHeight() would return the height of the largest cell,\r\n // so instead, find the tallest inner content element.\r\n trHeight = 0;\r\n trEl.find('> td > :first-child').each(iterInnerHeights);\r\n if (trEl.position().top + trHeight > rowHeight) {\r\n return i;\r\n }\r\n }\r\n return false; // should not limit at all\r\n };\r\n // Limits the given grid row to the maximum number of levels and injects \"more\" links if necessary.\r\n // `row` is the row number.\r\n // `levelLimit` is a number for the maximum (inclusive) number of levels allowed.\r\n DayGrid.prototype.limitRow = function (row, levelLimit) {\r\n var _this = this;\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n var moreNodes = []; // array of \"more\"
links and DOM nodes\r\n var col = 0; // col #, left-to-right (not chronologically)\r\n var levelSegs; // array of segment objects in the last allowable level, ordered left-to-right\r\n var cellMatrix; // a matrix (by level, then column) of all jQuery elements in the row\r\n var limitedNodes; // array of temporarily hidden level and segment DOM nodes\r\n var i;\r\n var seg;\r\n var segsBelow; // array of segment objects below `seg` in the current `col`\r\n var totalSegsBelow; // total number of segments below `seg` in any of the columns `seg` occupies\r\n var colSegsBelow; // array of segment arrays, below seg, one for each column (offset from segs's first column)\r\n var td;\r\n var rowspan;\r\n var segMoreNodes; // array of \"more\" cells that will stand-in for the current seg's cell\r\n var j;\r\n var moreTd;\r\n var moreWrap;\r\n var moreLink;\r\n // Iterates through empty level cells and places \"more\" links inside if need be\r\n var emptyCellsUntil = function (endCol) {\r\n while (col < endCol) {\r\n segsBelow = _this.getCellSegs(row, col, levelLimit);\r\n if (segsBelow.length) {\r\n td = cellMatrix[levelLimit - 1][col];\r\n moreLink = _this.renderMoreLink(row, col, segsBelow);\r\n moreWrap = $('
').append(moreLink);\r\n td.append(moreWrap);\r\n moreNodes.push(moreWrap[0]);\r\n }\r\n col++;\r\n }\r\n };\r\n if (levelLimit && levelLimit < rowStruct.segLevels.length) {\r\n levelSegs = rowStruct.segLevels[levelLimit - 1];\r\n cellMatrix = rowStruct.cellMatrix;\r\n limitedNodes = rowStruct.tbodyEl.children().slice(levelLimit) // get level elements past the limit\r\n .addClass('fc-limited').get(); // hide elements and get a simple DOM-nodes array\r\n // iterate though segments in the last allowable level\r\n for (i = 0; i < levelSegs.length; i++) {\r\n seg = levelSegs[i];\r\n emptyCellsUntil(seg.leftCol); // process empty cells before the segment\r\n // determine *all* segments below `seg` that occupy the same columns\r\n colSegsBelow = [];\r\n totalSegsBelow = 0;\r\n while (col <= seg.rightCol) {\r\n segsBelow = this.getCellSegs(row, col, levelLimit);\r\n colSegsBelow.push(segsBelow);\r\n totalSegsBelow += segsBelow.length;\r\n col++;\r\n }\r\n if (totalSegsBelow) {\r\n td = cellMatrix[levelLimit - 1][seg.leftCol]; // the segment's parent cell\r\n rowspan = td.attr('rowspan') || 1;\r\n segMoreNodes = [];\r\n // make a replacement for each column the segment occupies. will be one for each colspan\r\n for (j = 0; j < colSegsBelow.length; j++) {\r\n moreTd = $('').attr('rowspan', rowspan);\r\n segsBelow = colSegsBelow[j];\r\n moreLink = this.renderMoreLink(row, seg.leftCol + j, [seg].concat(segsBelow) // count seg as hidden too\r\n );\r\n moreWrap = $('
').append(moreLink);\r\n moreTd.append(moreWrap);\r\n segMoreNodes.push(moreTd[0]);\r\n moreNodes.push(moreTd[0]);\r\n }\r\n td.addClass('fc-limited').after($(segMoreNodes)); // hide original and inject replacements\r\n limitedNodes.push(td[0]);\r\n }\r\n }\r\n emptyCellsUntil(this.colCnt); // finish off the level\r\n rowStruct.moreEls = $(moreNodes); // for easy undoing later\r\n rowStruct.limitedEls = $(limitedNodes); // for easy undoing later\r\n }\r\n };\r\n // Reveals all levels and removes all \"more\"-related elements for a grid's row.\r\n // `row` is a row number.\r\n DayGrid.prototype.unlimitRow = function (row) {\r\n var rowStruct = this.eventRenderer.rowStructs[row];\r\n if (rowStruct.moreEls) {\r\n rowStruct.moreEls.remove();\r\n rowStruct.moreEls = null;\r\n }\r\n if (rowStruct.limitedEls) {\r\n rowStruct.limitedEls.removeClass('fc-limited');\r\n rowStruct.limitedEls = null;\r\n }\r\n };\r\n // Renders an element that represents hidden event element for a cell.\r\n // Responsible for attaching click handler as well.\r\n DayGrid.prototype.renderMoreLink = function (row, col, hiddenSegs) {\r\n var _this = this;\r\n var view = this.view;\r\n return $('')\r\n .text(this.getMoreLinkText(hiddenSegs.length))\r\n .on('click', function (ev) {\r\n var clickOption = _this.opt('eventLimitClick');\r\n var date = _this.getCellDate(row, col);\r\n var moreEl = $(ev.currentTarget);\r\n var dayEl = _this.getCellEl(row, col);\r\n var allSegs = _this.getCellSegs(row, col);\r\n // rescope the segments to be within the cell's date\r\n var reslicedAllSegs = _this.resliceDaySegs(allSegs, date);\r\n var reslicedHiddenSegs = _this.resliceDaySegs(hiddenSegs, date);\r\n if (typeof clickOption === 'function') {\r\n // the returned value can be an atomic option\r\n clickOption = _this.publiclyTrigger('eventLimitClick', {\r\n context: view,\r\n args: [\r\n {\r\n date: date.clone(),\r\n dayEl: dayEl,\r\n moreEl: moreEl,\r\n segs: reslicedAllSegs,\r\n hiddenSegs: reslicedHiddenSegs\r\n },\r\n ev,\r\n view\r\n ]\r\n });\r\n }\r\n if (clickOption === 'popover') {\r\n _this.showSegPopover(row, col, moreEl, reslicedAllSegs);\r\n }\r\n else if (typeof clickOption === 'string') {\r\n view.calendar.zoomTo(date, clickOption);\r\n }\r\n });\r\n };\r\n // Reveals the popover that displays all events within a cell\r\n DayGrid.prototype.showSegPopover = function (row, col, moreLink, segs) {\r\n var _this = this;\r\n var view = this.view;\r\n var moreWrap = moreLink.parent(); // the
wrapper around the \r\n var topEl; // the element we want to match the top coordinate of\r\n var options;\r\n if (this.rowCnt === 1) {\r\n topEl = view.el; // will cause the popover to cover any sort of header\r\n }\r\n else {\r\n topEl = this.rowEls.eq(row); // will align with top of row\r\n }\r\n options = {\r\n className: 'fc-more-popover ' + view.calendar.theme.getClass('popover'),\r\n content: this.renderSegPopoverContent(row, col, segs),\r\n parentEl: view.el,\r\n top: topEl.offset().top,\r\n autoHide: true,\r\n viewportConstrain: this.opt('popoverViewportConstrain'),\r\n hide: function () {\r\n // kill everything when the popover is hidden\r\n // notify events to be removed\r\n if (_this.popoverSegs) {\r\n _this.triggerBeforeEventSegsDestroyed(_this.popoverSegs);\r\n }\r\n _this.segPopover.removeElement();\r\n _this.segPopover = null;\r\n _this.popoverSegs = null;\r\n }\r\n };\r\n // Determine horizontal coordinate.\r\n // We use the moreWrap instead of the to avoid border confusion.\r\n if (this.isRTL) {\r\n options.right = moreWrap.offset().left + moreWrap.outerWidth() + 1; // +1 to be over cell border\r\n }\r\n else {\r\n options.left = moreWrap.offset().left - 1; // -1 to be over cell border\r\n }\r\n this.segPopover = new Popover_1.default(options);\r\n this.segPopover.show();\r\n // the popover doesn't live within the grid's container element, and thus won't get the event\r\n // delegated-handlers for free. attach event-related handlers to the popover.\r\n this.bindAllSegHandlersToEl(this.segPopover.el);\r\n this.triggerAfterEventSegsRendered(segs);\r\n };\r\n // Builds the inner DOM contents of the segment popover\r\n DayGrid.prototype.renderSegPopoverContent = function (row, col, segs) {\r\n var view = this.view;\r\n var theme = view.calendar.theme;\r\n var title = this.getCellDate(row, col).format(this.opt('dayPopoverFormat'));\r\n var content = $('
' +\r\n '' +\r\n '' +\r\n util_1.htmlEscape(title) +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
');\r\n var segContainer = content.find('.fc-event-container');\r\n var i;\r\n // render each seg's `el` and only return the visible segs\r\n segs = this.eventRenderer.renderFgSegEls(segs, true); // disableResizing=true\r\n this.popoverSegs = segs;\r\n for (i = 0; i < segs.length; i++) {\r\n // because segments in the popover are not part of a grid coordinate system, provide a hint to any\r\n // grids that want to do drag-n-drop about which cell it came from\r\n this.hitsNeeded();\r\n segs[i].hit = this.getCellHit(row, col);\r\n this.hitsNotNeeded();\r\n segContainer.append(segs[i].el);\r\n }\r\n return content;\r\n };\r\n // Given the events within an array of segment objects, reslice them to be in a single day\r\n DayGrid.prototype.resliceDaySegs = function (segs, dayDate) {\r\n var dayStart = dayDate.clone();\r\n var dayEnd = dayStart.clone().add(1, 'days');\r\n var dayRange = new UnzonedRange_1.default(dayStart, dayEnd);\r\n var newSegs = [];\r\n var i;\r\n var seg;\r\n var slicedRange;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n slicedRange = seg.footprint.componentFootprint.unzonedRange.intersect(dayRange);\r\n if (slicedRange) {\r\n newSegs.push($.extend({}, seg, {\r\n footprint: new EventFootprint_1.default(new ComponentFootprint_1.default(slicedRange, seg.footprint.componentFootprint.isAllDay), seg.footprint.eventDef, seg.footprint.eventInstance),\r\n isStart: seg.isStart && slicedRange.isStart,\r\n isEnd: seg.isEnd && slicedRange.isEnd\r\n }));\r\n }\r\n }\r\n // force an order because eventsToSegs doesn't guarantee one\r\n // TODO: research if still needed\r\n this.eventRenderer.sortEventSegs(newSegs);\r\n return newSegs;\r\n };\r\n // Generates the text that should be inside a \"more\" link, given the number of events it represents\r\n DayGrid.prototype.getMoreLinkText = function (num) {\r\n var opt = this.opt('eventLimitText');\r\n if (typeof opt === 'function') {\r\n return opt(num);\r\n }\r\n else {\r\n return '+' + num + ' ' + opt;\r\n }\r\n };\r\n // Returns segments within a given cell.\r\n // If `startLevel` is specified, returns only events including and below that level. Otherwise returns all segs.\r\n DayGrid.prototype.getCellSegs = function (row, col, startLevel) {\r\n var segMatrix = this.eventRenderer.rowStructs[row].segMatrix;\r\n var level = startLevel || 0;\r\n var segs = [];\r\n var seg;\r\n while (level < segMatrix.length) {\r\n seg = segMatrix[level][col];\r\n if (seg) {\r\n segs.push(seg);\r\n }\r\n level++;\r\n }\r\n return segs;\r\n };\r\n return DayGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = DayGrid;\r\nDayGrid.prototype.eventRendererClass = DayGridEventRenderer_1.default;\r\nDayGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nDayGrid.prototype.helperRendererClass = DayGridHelperRenderer_1.default;\r\nDayGrid.prototype.fillRendererClass = DayGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(DayGrid);\r\nDayTableMixin_1.default.mixInto(DayGrid);\r\n\r\n\r\n/***/ }),\r\n/* 62 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar View_1 = __webpack_require__(41);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(228);\r\nvar DayGrid_1 = __webpack_require__(61);\r\n/* An abstract class for the \"basic\" views, as well as month view. Renders one or more rows of day cells.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// It is a manager for a DayGrid subcomponent, which does most of the heavy lifting.\r\n// It is responsible for managing width/height.\r\nvar BasicView = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicView, _super);\r\n function BasicView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.dayGrid = _this.instantiateDayGrid();\r\n _this.dayGrid.isRigid = _this.hasRigidRows();\r\n if (_this.opt('weekNumbers')) {\r\n if (_this.opt('weekNumbersWithinDays')) {\r\n _this.dayGrid.cellWeekNumbersVisible = true;\r\n _this.dayGrid.colWeekNumbersVisible = false;\r\n }\r\n else {\r\n _this.dayGrid.cellWeekNumbersVisible = false;\r\n _this.dayGrid.colWeekNumbersVisible = true;\r\n }\r\n }\r\n _this.addChild(_this.dayGrid);\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Generates the DayGrid object this view needs. Draws from this.dayGridClass\r\n BasicView.prototype.instantiateDayGrid = function () {\r\n // generate a subclass on the fly with BasicView-specific behavior\r\n // TODO: cache this subclass\r\n var subclass = makeDayGridSubclass(this.dayGridClass);\r\n return new subclass(this);\r\n };\r\n BasicView.prototype.executeDateRender = function (dateProfile) {\r\n this.dayGrid.breakOnWeeks = /year|month|week/.test(dateProfile.currentRangeUnit);\r\n _super.prototype.executeDateRender.call(this, dateProfile);\r\n };\r\n BasicView.prototype.renderSkeleton = function () {\r\n var dayGridContainerEl;\r\n var dayGridEl;\r\n this.el.addClass('fc-basic-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n dayGridContainerEl = this.scroller.el.addClass('fc-day-grid-container');\r\n dayGridEl = $('
').appendTo(dayGridContainerEl);\r\n this.el.find('.fc-body > tr > td').append(dayGridContainerEl);\r\n this.dayGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.dayGrid.setElement(dayGridEl);\r\n };\r\n BasicView.prototype.unrenderSkeleton = function () {\r\n this.dayGrid.removeElement();\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid component will render inside of a container defined by this HTML.\r\n BasicView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '' +\r\n (this.opt('columnHeader') ?\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
 
';\r\n };\r\n // Generates an HTML attribute string for setting the width of the week number column, if it is known\r\n BasicView.prototype.weekNumberStyleAttr = function () {\r\n if (this.weekNumberWidth != null) {\r\n return 'style=\"width:' + this.weekNumberWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n // Determines whether each row should have a constant height\r\n BasicView.prototype.hasRigidRows = function () {\r\n var eventLimit = this.opt('eventLimit');\r\n return eventLimit && typeof eventLimit !== 'number';\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Refreshes the horizontal dimensions of the view\r\n BasicView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit = this.opt('eventLimit');\r\n var headRowEl = this.dayGrid.headContainerEl.find('.fc-row');\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n // hack to give the view some height prior to dayGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS dayGrid.\r\n if (!this.dayGrid.rowEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n if (this.dayGrid.colWeekNumbersVisible) {\r\n // Make sure all week number cells running down the side have the same width.\r\n // Record the width for cells created later.\r\n this.weekNumberWidth = util_1.matchCellWidths(this.el.find('.fc-week-number'));\r\n }\r\n // reset all heights to be natural\r\n this.scroller.clear();\r\n util_1.uncompensateScroll(headRowEl);\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n // is the event limit a constant level number?\r\n if (eventLimit && typeof eventLimit === 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels first so the height can redistribute after\r\n }\r\n // distribute the height to the rows\r\n // (totalHeight is a \"recommended\" value if isAuto)\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.setGridHeight(scrollerHeight, isAuto);\r\n // is the event limit dynamically calculated?\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n this.dayGrid.limitRows(eventLimit); // limit the levels after the grid's row heights have been set\r\n }\r\n if (!isAuto) {\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) {\r\n util_1.compensateScroll(headRowEl, scrollbarWidths);\r\n // doing the scrollbar compensation might have created text overflow which created more height. redo\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n BasicView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n // Sets the height of just the DayGrid component in this view\r\n BasicView.prototype.setGridHeight = function (height, isAuto) {\r\n if (isAuto) {\r\n util_1.undistributeHeight(this.dayGrid.rowEls); // let the rows be their natural height with no expanding\r\n }\r\n else {\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, true); // true = compensate for height-hogging rows\r\n }\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n BasicView.prototype.computeInitialDateScroll = function () {\r\n return { top: 0 };\r\n };\r\n BasicView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n BasicView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n return BasicView;\r\n}(View_1.default));\r\nexports.default = BasicView;\r\nBasicView.prototype.dateProfileGeneratorClass = BasicViewDateProfileGenerator_1.default;\r\nBasicView.prototype.dayGridClass = DayGrid_1.default;\r\n// customize the rendering behavior of BasicView's dayGrid\r\nfunction makeDayGridSubclass(SuperClass) {\r\n return /** @class */ (function (_super) {\r\n tslib_1.__extends(SubClass, _super);\r\n function SubClass() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.colWeekNumbersVisible = false; // display week numbers along the side?\r\n return _this;\r\n }\r\n // Generates the HTML that will go before the day-of week header cells\r\n SubClass.prototype.renderHeadIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '' +\r\n '' + // needed for matchCellWidths\r\n util_1.htmlEscape(this.opt('weekNumberTitle')) +\r\n '' +\r\n '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that will go before content-skeleton cells that display the day/week numbers\r\n SubClass.prototype.renderNumberIntroHtml = function (row) {\r\n var view = this.view;\r\n var weekStart = this.getCellDate(row, 0);\r\n if (this.colWeekNumbersVisible) {\r\n return '' +\r\n '' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt === 1 }, weekStart.format('w') // inner HTML\r\n ) +\r\n '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before the day bg cells for each day-row\r\n SubClass.prototype.renderBgIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n // Generates the HTML that goes before every other type of row generated by DayGrid.\r\n // Affects helper-skeleton and highlight-skeleton rows.\r\n SubClass.prototype.renderIntroHtml = function () {\r\n var view = this.view;\r\n if (this.colWeekNumbersVisible) {\r\n return '';\r\n }\r\n return '';\r\n };\r\n SubClass.prototype.getIsNumbersVisible = function () {\r\n return DayGrid_1.default.prototype.getIsNumbersVisible.apply(this, arguments) || this.colWeekNumbersVisible;\r\n };\r\n return SubClass;\r\n }(SuperClass));\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 63 */,\r\n/* 64 */,\r\n/* 65 */,\r\n/* 66 */,\r\n/* 67 */,\r\n/* 68 */,\r\n/* 69 */,\r\n/* 70 */,\r\n/* 71 */,\r\n/* 72 */,\r\n/* 73 */,\r\n/* 74 */,\r\n/* 75 */,\r\n/* 76 */,\r\n/* 77 */,\r\n/* 78 */,\r\n/* 79 */,\r\n/* 80 */,\r\n/* 81 */,\r\n/* 82 */,\r\n/* 83 */,\r\n/* 84 */,\r\n/* 85 */,\r\n/* 86 */,\r\n/* 87 */,\r\n/* 88 */,\r\n/* 89 */,\r\n/* 90 */,\r\n/* 91 */,\r\n/* 92 */,\r\n/* 93 */,\r\n/* 94 */,\r\n/* 95 */,\r\n/* 96 */,\r\n/* 97 */,\r\n/* 98 */,\r\n/* 99 */,\r\n/* 100 */,\r\n/* 101 */,\r\n/* 102 */,\r\n/* 103 */,\r\n/* 104 */,\r\n/* 105 */,\r\n/* 106 */,\r\n/* 107 */,\r\n/* 108 */,\r\n/* 109 */,\r\n/* 110 */,\r\n/* 111 */,\r\n/* 112 */,\r\n/* 113 */,\r\n/* 114 */,\r\n/* 115 */,\r\n/* 116 */,\r\n/* 117 */,\r\n/* 118 */,\r\n/* 119 */,\r\n/* 120 */,\r\n/* 121 */,\r\n/* 122 */,\r\n/* 123 */,\r\n/* 124 */,\r\n/* 125 */,\r\n/* 126 */,\r\n/* 127 */,\r\n/* 128 */,\r\n/* 129 */,\r\n/* 130 */,\r\n/* 131 */,\r\n/* 132 */,\r\n/* 133 */,\r\n/* 134 */,\r\n/* 135 */,\r\n/* 136 */,\r\n/* 137 */,\r\n/* 138 */,\r\n/* 139 */,\r\n/* 140 */,\r\n/* 141 */,\r\n/* 142 */,\r\n/* 143 */,\r\n/* 144 */,\r\n/* 145 */,\r\n/* 146 */,\r\n/* 147 */,\r\n/* 148 */,\r\n/* 149 */,\r\n/* 150 */,\r\n/* 151 */,\r\n/* 152 */,\r\n/* 153 */,\r\n/* 154 */,\r\n/* 155 */,\r\n/* 156 */,\r\n/* 157 */,\r\n/* 158 */,\r\n/* 159 */,\r\n/* 160 */,\r\n/* 161 */,\r\n/* 162 */,\r\n/* 163 */,\r\n/* 164 */,\r\n/* 165 */,\r\n/* 166 */,\r\n/* 167 */,\r\n/* 168 */,\r\n/* 169 */,\r\n/* 170 */,\r\n/* 171 */,\r\n/* 172 */,\r\n/* 173 */,\r\n/* 174 */,\r\n/* 175 */,\r\n/* 176 */,\r\n/* 177 */,\r\n/* 178 */,\r\n/* 179 */,\r\n/* 180 */,\r\n/* 181 */,\r\n/* 182 */,\r\n/* 183 */,\r\n/* 184 */,\r\n/* 185 */,\r\n/* 186 */,\r\n/* 187 */,\r\n/* 188 */,\r\n/* 189 */,\r\n/* 190 */,\r\n/* 191 */,\r\n/* 192 */,\r\n/* 193 */,\r\n/* 194 */,\r\n/* 195 */,\r\n/* 196 */,\r\n/* 197 */,\r\n/* 198 */,\r\n/* 199 */,\r\n/* 200 */,\r\n/* 201 */,\r\n/* 202 */,\r\n/* 203 */,\r\n/* 204 */,\r\n/* 205 */,\r\n/* 206 */,\r\n/* 207 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar util_1 = __webpack_require__(35);\r\nvar Constraints = /** @class */ (function () {\r\n function Constraints(eventManager, _calendar) {\r\n this.eventManager = eventManager;\r\n this._calendar = _calendar;\r\n }\r\n Constraints.prototype.opt = function (name) {\r\n return this._calendar.opt(name);\r\n };\r\n /*\r\n determines if eventInstanceGroup is allowed,\r\n in relation to other EVENTS and business hours.\r\n */\r\n Constraints.prototype.isEventInstanceGroupAllowed = function (eventInstanceGroup) {\r\n var eventDef = eventInstanceGroup.getEventDef();\r\n var eventFootprints = this.eventRangesToEventFootprints(eventInstanceGroup.getAllEventRanges());\r\n var i;\r\n var peerEventInstances = this.getPeerEventInstances(eventDef);\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var constraintVal = eventDef.getConstraint();\r\n var overlapVal = eventDef.getOverlap();\r\n var eventAllowFunc = this.opt('eventAllow');\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (!this.isFootprintAllowed(eventFootprints[i].componentFootprint, peerEventFootprints, constraintVal, overlapVal, eventFootprints[i].eventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (eventAllowFunc) {\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventAllowFunc(eventFootprints[i].componentFootprint.toLegacy(this._calendar), eventFootprints[i].getEventLegacy()) === false) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n Constraints.prototype.getPeerEventInstances = function (eventDef) {\r\n return this.eventManager.getEventInstancesWithoutId(eventDef.id);\r\n };\r\n Constraints.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n var peerEventInstances = this.eventManager.getEventInstances();\r\n var peerEventRanges = peerEventInstances.map(util_1.eventInstanceToEventRange);\r\n var peerEventFootprints = this.eventRangesToEventFootprints(peerEventRanges);\r\n var selectAllowFunc;\r\n if (this.isFootprintAllowed(componentFootprint, peerEventFootprints, this.opt('selectConstraint'), this.opt('selectOverlap'))) {\r\n selectAllowFunc = this.opt('selectAllow');\r\n if (selectAllowFunc) {\r\n return selectAllowFunc(componentFootprint.toLegacy(this._calendar)) !== false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.isFootprintAllowed = function (componentFootprint, peerEventFootprints, constraintVal, overlapVal, subjectEventInstance // optional\r\n ) {\r\n var constraintFootprints; // ComponentFootprint[]\r\n var overlapEventFootprints; // EventFootprint[]\r\n if (constraintVal != null) {\r\n constraintFootprints = this.constraintValToFootprints(constraintVal, componentFootprint.isAllDay);\r\n if (!this.isFootprintWithinConstraints(componentFootprint, constraintFootprints)) {\r\n return false;\r\n }\r\n }\r\n overlapEventFootprints = this.collectOverlapEventFootprints(peerEventFootprints, componentFootprint);\r\n if (overlapVal === false) {\r\n if (overlapEventFootprints.length) {\r\n return false;\r\n }\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!isOverlapsAllowedByFunc(overlapEventFootprints, overlapVal, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n if (subjectEventInstance) {\r\n if (!isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n // Constraint\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.isFootprintWithinConstraints = function (componentFootprint, constraintFootprints) {\r\n var i;\r\n for (i = 0; i < constraintFootprints.length; i++) {\r\n if (this.footprintContainsFootprint(constraintFootprints[i], componentFootprint)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Constraints.prototype.constraintValToFootprints = function (constraintVal, isAllDay) {\r\n var eventInstances;\r\n if (constraintVal === 'businessHours') {\r\n return this.buildCurrentBusinessFootprints(isAllDay);\r\n }\r\n else if (typeof constraintVal === 'object') {\r\n eventInstances = this.parseEventDefToInstances(constraintVal); // handles recurring events\r\n if (!eventInstances) {\r\n return this.parseFootprints(constraintVal);\r\n }\r\n else {\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n }\r\n else if (constraintVal != null) {\r\n eventInstances = this.eventManager.getEventInstancesWithId(constraintVal);\r\n return this.eventInstancesToFootprints(eventInstances);\r\n }\r\n };\r\n // returns ComponentFootprint[]\r\n // uses current view's range\r\n Constraints.prototype.buildCurrentBusinessFootprints = function (isAllDay) {\r\n var view = this._calendar.view;\r\n var businessHourGenerator = view.get('businessHourGenerator');\r\n var unzonedRange = view.dateProfile.activeUnzonedRange;\r\n var eventInstanceGroup = businessHourGenerator.buildEventInstanceGroup(isAllDay, unzonedRange);\r\n if (eventInstanceGroup) {\r\n return this.eventInstancesToFootprints(eventInstanceGroup.eventInstances);\r\n }\r\n else {\r\n return [];\r\n }\r\n };\r\n // conversion util\r\n Constraints.prototype.eventInstancesToFootprints = function (eventInstances) {\r\n var eventRanges = eventInstances.map(util_1.eventInstanceToEventRange);\r\n var eventFootprints = this.eventRangesToEventFootprints(eventRanges);\r\n return eventFootprints.map(util_1.eventFootprintToComponentFootprint);\r\n };\r\n // Overlap\r\n // ------------------------------------------------------------------------------------------------\r\n Constraints.prototype.collectOverlapEventFootprints = function (peerEventFootprints, targetFootprint) {\r\n var overlapEventFootprints = [];\r\n var i;\r\n for (i = 0; i < peerEventFootprints.length; i++) {\r\n if (this.footprintsIntersect(targetFootprint, peerEventFootprints[i].componentFootprint)) {\r\n overlapEventFootprints.push(peerEventFootprints[i]);\r\n }\r\n }\r\n return overlapEventFootprints;\r\n };\r\n // Conversion: eventDefs -> eventInstances -> eventRanges -> eventFootprints -> componentFootprints\r\n // ------------------------------------------------------------------------------------------------\r\n // NOTE: this might seem like repetitive code with the Grid class, however, this code is related to\r\n // constraints whereas the Grid code is related to rendering. Each approach might want to convert\r\n // eventRanges -> eventFootprints in a different way. Regardless, there are opportunities to make\r\n // this more DRY.\r\n /*\r\n Returns false on invalid input.\r\n */\r\n Constraints.prototype.parseEventDefToInstances = function (eventInput) {\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, new EventSource_1.default(this._calendar));\r\n if (!eventDef) {\r\n return false;\r\n }\r\n return eventDef.buildInstances(eventManager.currentPeriod.unzonedRange);\r\n };\r\n Constraints.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var i;\r\n var eventFootprints = [];\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// footprints\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n Constraints.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_1.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /*\r\n Parses footprints directly.\r\n Very similar to EventDateProfile::parse :(\r\n */\r\n Constraints.prototype.parseFootprints = function (rawInput) {\r\n var start;\r\n var end;\r\n if (rawInput.start) {\r\n start = this._calendar.moment(rawInput.start);\r\n if (!start.isValid()) {\r\n start = null;\r\n }\r\n }\r\n if (rawInput.end) {\r\n end = this._calendar.moment(rawInput.end);\r\n if (!end.isValid()) {\r\n end = null;\r\n }\r\n }\r\n return [\r\n new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), (start && !start.hasTime()) || (end && !end.hasTime()) // isAllDay\r\n )\r\n ];\r\n };\r\n // Footprint Utils\r\n // ----------------------------------------------------------------------------------------\r\n Constraints.prototype.footprintContainsFootprint = function (outerFootprint, innerFootprint) {\r\n return outerFootprint.unzonedRange.containsRange(innerFootprint.unzonedRange);\r\n };\r\n Constraints.prototype.footprintsIntersect = function (footprint0, footprint1) {\r\n return footprint0.unzonedRange.intersectsWith(footprint1.unzonedRange);\r\n };\r\n return Constraints;\r\n}());\r\nexports.default = Constraints;\r\n// optional subjectEventInstance\r\nfunction isOverlapsAllowedByFunc(overlapEventFootprints, overlapFunc, subjectEventInstance) {\r\n var i;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n if (!overlapFunc(overlapEventFootprints[i].eventInstance.toLegacy(), subjectEventInstance ? subjectEventInstance.toLegacy() : null)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\nfunction isOverlapEventInstancesAllowed(overlapEventFootprints, subjectEventInstance) {\r\n var subjectLegacyInstance = subjectEventInstance.toLegacy();\r\n var i;\r\n var overlapEventInstance;\r\n var overlapEventDef;\r\n var overlapVal;\r\n for (i = 0; i < overlapEventFootprints.length; i++) {\r\n overlapEventInstance = overlapEventFootprints[i].eventInstance;\r\n overlapEventDef = overlapEventInstance.def;\r\n // don't need to pass in calendar, because don't want to consider global eventOverlap property,\r\n // because we already considered that earlier in the process.\r\n overlapVal = overlapEventDef.getOverlap();\r\n if (overlapVal === false) {\r\n return false;\r\n }\r\n else if (typeof overlapVal === 'function') {\r\n if (!overlapVal(overlapEventInstance.toLegacy(), subjectLegacyInstance)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 208 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/*\r\nUSAGE:\r\n import { default as ParsableModelMixin, ParsableModelInterface } from './ParsableModelMixin'\r\nin class:\r\n applyProps: ParsableModelInterface['applyProps']\r\n applyManualStandardProps: ParsableModelInterface['applyManualStandardProps']\r\n applyMiscProps: ParsableModelInterface['applyMiscProps']\r\n isStandardProp: ParsableModelInterface['isStandardProp']\r\n static defineStandardProps = ParsableModelMixin.defineStandardProps\r\n static copyVerbatimStandardProps = ParsableModelMixin.copyVerbatimStandardProps\r\nafter class:\r\n ParsableModelMixin.mixInto(TheClass)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar Mixin_1 = __webpack_require__(14);\r\nvar ParsableModelMixin = /** @class */ (function (_super) {\r\n tslib_1.__extends(ParsableModelMixin, _super);\r\n function ParsableModelMixin() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ParsableModelMixin.defineStandardProps = function (propDefs) {\r\n var proto = this.prototype;\r\n if (!proto.hasOwnProperty('standardPropMap')) {\r\n proto.standardPropMap = Object.create(proto.standardPropMap);\r\n }\r\n util_1.copyOwnProps(propDefs, proto.standardPropMap);\r\n };\r\n ParsableModelMixin.copyVerbatimStandardProps = function (src, dest) {\r\n var map = this.prototype.standardPropMap;\r\n var propName;\r\n for (propName in map) {\r\n if (src[propName] != null && // in the src object?\r\n map[propName] === true // false means \"copy verbatim\"\r\n ) {\r\n dest[propName] = src[propName];\r\n }\r\n }\r\n };\r\n /*\r\n Returns true/false for success.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyProps = function (rawProps) {\r\n var standardPropMap = this.standardPropMap;\r\n var manualProps = {};\r\n var miscProps = {};\r\n var propName;\r\n for (propName in rawProps) {\r\n if (standardPropMap[propName] === true) {\r\n this[propName] = rawProps[propName];\r\n }\r\n else if (standardPropMap[propName] === false) {\r\n manualProps[propName] = rawProps[propName];\r\n }\r\n else {\r\n miscProps[propName] = rawProps[propName];\r\n }\r\n }\r\n this.applyMiscProps(miscProps);\r\n return this.applyManualStandardProps(manualProps);\r\n };\r\n /*\r\n If subclasses override, they must call this supermethod and return the boolean response.\r\n Meant to be only called ONCE, at object creation.\r\n */\r\n ParsableModelMixin.prototype.applyManualStandardProps = function (rawProps) {\r\n return true;\r\n };\r\n /*\r\n Can be called even after initial object creation.\r\n */\r\n ParsableModelMixin.prototype.applyMiscProps = function (rawProps) {\r\n // subclasses can implement\r\n };\r\n /*\r\n TODO: why is this a method when defineStandardProps is static\r\n */\r\n ParsableModelMixin.prototype.isStandardProp = function (propName) {\r\n return propName in this.standardPropMap;\r\n };\r\n return ParsableModelMixin;\r\n}(Mixin_1.default));\r\nexports.default = ParsableModelMixin;\r\nParsableModelMixin.prototype.standardPropMap = {}; // will be cloned by defineStandardProps\r\n\r\n\r\n/***/ }),\r\n/* 209 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventInstance = /** @class */ (function () {\r\n function EventInstance(def, dateProfile) {\r\n this.def = def;\r\n this.dateProfile = dateProfile;\r\n }\r\n EventInstance.prototype.toLegacy = function () {\r\n var dateProfile = this.dateProfile;\r\n var obj = this.def.toLegacy();\r\n obj.start = dateProfile.start.clone();\r\n obj.end = dateProfile.end ? dateProfile.end.clone() : null;\r\n return obj;\r\n };\r\n return EventInstance;\r\n}());\r\nexports.default = EventInstance;\r\n\r\n\r\n/***/ }),\r\n/* 210 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar EventDef_1 = __webpack_require__(34);\r\nvar EventInstance_1 = __webpack_require__(209);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar RecurringEventDef = /** @class */ (function (_super) {\r\n tslib_1.__extends(RecurringEventDef, _super);\r\n function RecurringEventDef() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RecurringEventDef.prototype.isAllDay = function () {\r\n return !this.startTime && !this.endTime;\r\n };\r\n RecurringEventDef.prototype.buildInstances = function (unzonedRange) {\r\n var calendar = this.source.calendar;\r\n var unzonedDate = unzonedRange.getStart();\r\n var unzonedEnd = unzonedRange.getEnd();\r\n var zonedDayStart;\r\n var instanceStart;\r\n var instanceEnd;\r\n var instances = [];\r\n while (unzonedDate.isBefore(unzonedEnd)) {\r\n // if everyday, or this particular day-of-week\r\n if (!this.dowHash || this.dowHash[unzonedDate.day()]) {\r\n zonedDayStart = calendar.applyTimezone(unzonedDate);\r\n instanceStart = zonedDayStart.clone();\r\n instanceEnd = null;\r\n if (this.startTime) {\r\n instanceStart.time(this.startTime);\r\n }\r\n else {\r\n instanceStart.stripTime();\r\n }\r\n if (this.endTime) {\r\n instanceEnd = zonedDayStart.clone().time(this.endTime);\r\n }\r\n instances.push(new EventInstance_1.default(this, // definition\r\n new EventDateProfile_1.default(instanceStart, instanceEnd, calendar)));\r\n }\r\n unzonedDate.add(1, 'days');\r\n }\r\n return instances;\r\n };\r\n RecurringEventDef.prototype.setDow = function (dowNumbers) {\r\n if (!this.dowHash) {\r\n this.dowHash = {};\r\n }\r\n for (var i = 0; i < dowNumbers.length; i++) {\r\n this.dowHash[dowNumbers[i]] = true;\r\n }\r\n };\r\n RecurringEventDef.prototype.clone = function () {\r\n var def = _super.prototype.clone.call(this);\r\n if (def.startTime) {\r\n def.startTime = moment.duration(this.startTime);\r\n }\r\n if (def.endTime) {\r\n def.endTime = moment.duration(this.endTime);\r\n }\r\n if (this.dowHash) {\r\n def.dowHash = $.extend({}, this.dowHash);\r\n }\r\n return def;\r\n };\r\n return RecurringEventDef;\r\n}(EventDef_1.default));\r\nexports.default = RecurringEventDef;\r\n/*\r\nHACK to work with TypeScript mixins\r\nNOTE: if super-method fails, should still attempt to apply\r\n*/\r\nRecurringEventDef.prototype.applyProps = function (rawProps) {\r\n var superSuccess = EventDef_1.default.prototype.applyProps.call(this, rawProps);\r\n if (rawProps.start) {\r\n this.startTime = moment.duration(rawProps.start);\r\n }\r\n if (rawProps.end) {\r\n this.endTime = moment.duration(rawProps.end);\r\n }\r\n if (rawProps.dow) {\r\n this.setDow(rawProps.dow);\r\n }\r\n return superSuccess;\r\n};\r\n// Parsing\r\n// ---------------------------------------------------------------------------------------------------------------------\r\nRecurringEventDef.defineStandardProps({\r\n start: false,\r\n end: false,\r\n dow: false\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 211 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventRange = /** @class */ (function () {\r\n function EventRange(unzonedRange, eventDef, eventInstance) {\r\n this.unzonedRange = unzonedRange;\r\n this.eventDef = eventDef;\r\n if (eventInstance) {\r\n this.eventInstance = eventInstance;\r\n }\r\n }\r\n return EventRange;\r\n}());\r\nexports.default = EventRange;\r\n\r\n\r\n/***/ }),\r\n/* 212 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(35);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar RecurringEventDef_1 = __webpack_require__(210);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar BUSINESS_HOUR_EVENT_DEFAULTS = {\r\n start: '09:00',\r\n end: '17:00',\r\n dow: [1, 2, 3, 4, 5],\r\n rendering: 'inverse-background'\r\n // classNames are defined in businessHoursSegClasses\r\n};\r\nvar BusinessHourGenerator = /** @class */ (function () {\r\n function BusinessHourGenerator(rawComplexDef, calendar) {\r\n this.rawComplexDef = rawComplexDef;\r\n this.calendar = calendar;\r\n }\r\n BusinessHourGenerator.prototype.buildEventInstanceGroup = function (isAllDay, unzonedRange) {\r\n var eventDefs = this.buildEventDefs(isAllDay);\r\n var eventInstanceGroup;\r\n if (eventDefs.length) {\r\n eventInstanceGroup = new EventInstanceGroup_1.default(util_1.eventDefsToEventInstances(eventDefs, unzonedRange));\r\n // so that inverse-background rendering can happen even when no eventRanges in view\r\n eventInstanceGroup.explicitEventDef = eventDefs[0];\r\n return eventInstanceGroup;\r\n }\r\n };\r\n BusinessHourGenerator.prototype.buildEventDefs = function (isAllDay) {\r\n var rawComplexDef = this.rawComplexDef;\r\n var rawDefs = [];\r\n var requireDow = false;\r\n var i;\r\n var defs = [];\r\n if (rawComplexDef === true) {\r\n rawDefs = [{}]; // will get BUSINESS_HOUR_EVENT_DEFAULTS verbatim\r\n }\r\n else if ($.isPlainObject(rawComplexDef)) {\r\n rawDefs = [rawComplexDef];\r\n }\r\n else if ($.isArray(rawComplexDef)) {\r\n rawDefs = rawComplexDef;\r\n requireDow = true; // every sub-definition NEEDS a day-of-week\r\n }\r\n for (i = 0; i < rawDefs.length; i++) {\r\n if (!requireDow || rawDefs[i].dow) {\r\n defs.push(this.buildEventDef(isAllDay, rawDefs[i]));\r\n }\r\n }\r\n return defs;\r\n };\r\n BusinessHourGenerator.prototype.buildEventDef = function (isAllDay, rawDef) {\r\n var fullRawDef = $.extend({}, BUSINESS_HOUR_EVENT_DEFAULTS, rawDef);\r\n if (isAllDay) {\r\n fullRawDef.start = null;\r\n fullRawDef.end = null;\r\n }\r\n return RecurringEventDef_1.default.parse(fullRawDef, new EventSource_1.default(this.calendar) // dummy source\r\n );\r\n };\r\n return BusinessHourGenerator;\r\n}());\r\nexports.default = BusinessHourGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 213 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar StandardTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(StandardTheme, _super);\r\n function StandardTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return StandardTheme;\r\n}(Theme_1.default));\r\nexports.default = StandardTheme;\r\nStandardTheme.prototype.classes = {\r\n widget: 'fc-unthemed',\r\n widgetHeader: 'fc-widget-header',\r\n widgetContent: 'fc-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'fc-button',\r\n cornerLeft: 'fc-corner-left',\r\n cornerRight: 'fc-corner-right',\r\n stateDefault: 'fc-state-default',\r\n stateActive: 'fc-state-active',\r\n stateDisabled: 'fc-state-disabled',\r\n stateHover: 'fc-state-hover',\r\n stateDown: 'fc-state-down',\r\n popoverHeader: 'fc-widget-header',\r\n popoverContent: 'fc-widget-content',\r\n // day grid\r\n headerRow: 'fc-widget-header',\r\n dayRow: 'fc-widget-content',\r\n // list view\r\n listView: 'fc-widget-content'\r\n};\r\nStandardTheme.prototype.baseIconClass = 'fc-icon';\r\nStandardTheme.prototype.iconClasses = {\r\n close: 'fc-icon-x',\r\n prev: 'fc-icon-left-single-arrow',\r\n next: 'fc-icon-right-single-arrow',\r\n prevYear: 'fc-icon-left-double-arrow',\r\n nextYear: 'fc-icon-right-double-arrow'\r\n};\r\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons';\r\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\r\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\r\n\r\n\r\n/***/ }),\r\n/* 214 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar JqueryUiTheme = /** @class */ (function (_super) {\r\n tslib_1.__extends(JqueryUiTheme, _super);\r\n function JqueryUiTheme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return JqueryUiTheme;\r\n}(Theme_1.default));\r\nexports.default = JqueryUiTheme;\r\nJqueryUiTheme.prototype.classes = {\r\n widget: 'ui-widget',\r\n widgetHeader: 'ui-widget-header',\r\n widgetContent: 'ui-widget-content',\r\n buttonGroup: 'fc-button-group',\r\n button: 'ui-button',\r\n cornerLeft: 'ui-corner-left',\r\n cornerRight: 'ui-corner-right',\r\n stateDefault: 'ui-state-default',\r\n stateActive: 'ui-state-active',\r\n stateDisabled: 'ui-state-disabled',\r\n stateHover: 'ui-state-hover',\r\n stateDown: 'ui-state-down',\r\n today: 'ui-state-highlight',\r\n popoverHeader: 'ui-widget-header',\r\n popoverContent: 'ui-widget-content',\r\n // day grid\r\n headerRow: 'ui-widget-header',\r\n dayRow: 'ui-widget-content',\r\n // list view\r\n listView: 'ui-widget-content'\r\n};\r\nJqueryUiTheme.prototype.baseIconClass = 'ui-icon';\r\nJqueryUiTheme.prototype.iconClasses = {\r\n close: 'ui-icon-closethick',\r\n prev: 'ui-icon-circle-triangle-w',\r\n next: 'ui-icon-circle-triangle-e',\r\n prevYear: 'ui-icon-seek-prev',\r\n nextYear: 'ui-icon-seek-next'\r\n};\r\nJqueryUiTheme.prototype.iconOverrideOption = 'themeButtonIcons';\r\nJqueryUiTheme.prototype.iconOverrideCustomButtonOption = 'themeIcon';\r\nJqueryUiTheme.prototype.iconOverridePrefix = 'ui-icon-';\r\n\r\n\r\n/***/ }),\r\n/* 215 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar FuncEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(FuncEventSource, _super);\r\n function FuncEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n FuncEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if ($.isFunction(rawInput.events)) {\r\n rawProps = rawInput;\r\n }\r\n else if ($.isFunction(rawInput)) {\r\n rawProps = { events: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n FuncEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.func.call(_this.calendar, start.clone(), end.clone(), timezone, function (rawEventDefs) {\r\n _this.calendar.popLoading();\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n });\r\n });\r\n };\r\n FuncEventSource.prototype.getPrimitive = function () {\r\n return this.func;\r\n };\r\n FuncEventSource.prototype.applyManualStandardProps = function (rawProps) {\r\n var superSuccess = _super.prototype.applyManualStandardProps.call(this, rawProps);\r\n this.func = rawProps.events;\r\n return superSuccess;\r\n };\r\n return FuncEventSource;\r\n}(EventSource_1.default));\r\nexports.default = FuncEventSource;\r\nFuncEventSource.defineStandardProps({\r\n events: false // don't automatically transfer\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 216 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar JsonFeedEventSource = /** @class */ (function (_super) {\r\n tslib_1.__extends(JsonFeedEventSource, _super);\r\n function JsonFeedEventSource() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n JsonFeedEventSource.parse = function (rawInput, calendar) {\r\n var rawProps;\r\n // normalize raw input\r\n if (typeof rawInput.url === 'string') {\r\n rawProps = rawInput;\r\n }\r\n else if (typeof rawInput === 'string') {\r\n rawProps = { url: rawInput };\r\n }\r\n if (rawProps) {\r\n return EventSource_1.default.parse.call(this, rawProps, calendar);\r\n }\r\n return false;\r\n };\r\n JsonFeedEventSource.prototype.fetch = function (start, end, timezone) {\r\n var _this = this;\r\n var ajaxSettings = this.ajaxSettings;\r\n var onSuccess = ajaxSettings.success;\r\n var onError = ajaxSettings.error;\r\n var requestParams = this.buildRequestParams(start, end, timezone);\r\n // todo: eventually handle the promise's then,\r\n // don't intercept success/error\r\n // tho will be a breaking API change\r\n this.calendar.pushLoading();\r\n return Promise_1.default.construct(function (onResolve, onReject) {\r\n $.ajax($.extend({}, // destination\r\n JsonFeedEventSource.AJAX_DEFAULTS, ajaxSettings, {\r\n url: _this.url,\r\n data: requestParams,\r\n success: function (rawEventDefs, status, xhr) {\r\n var callbackRes;\r\n _this.calendar.popLoading();\r\n if (rawEventDefs) {\r\n callbackRes = util_1.applyAll(onSuccess, _this, [rawEventDefs, status, xhr]); // redirect `this`\r\n if ($.isArray(callbackRes)) {\r\n rawEventDefs = callbackRes;\r\n }\r\n onResolve(_this.parseEventDefs(rawEventDefs));\r\n }\r\n else {\r\n onReject();\r\n }\r\n },\r\n error: function (xhr, statusText, errorThrown) {\r\n _this.calendar.popLoading();\r\n util_1.applyAll(onError, _this, [xhr, statusText, errorThrown]); // redirect `this`\r\n onReject();\r\n }\r\n }));\r\n });\r\n };\r\n JsonFeedEventSource.prototype.buildRequestParams = function (start, end, timezone) {\r\n var calendar = this.calendar;\r\n var ajaxSettings = this.ajaxSettings;\r\n var startParam;\r\n var endParam;\r\n var timezoneParam;\r\n var customRequestParams;\r\n var params = {};\r\n startParam = this.startParam;\r\n if (startParam == null) {\r\n startParam = calendar.opt('startParam');\r\n }\r\n endParam = this.endParam;\r\n if (endParam == null) {\r\n endParam = calendar.opt('endParam');\r\n }\r\n timezoneParam = this.timezoneParam;\r\n if (timezoneParam == null) {\r\n timezoneParam = calendar.opt('timezoneParam');\r\n }\r\n // retrieve any outbound GET/POST $.ajax data from the options\r\n if ($.isFunction(ajaxSettings.data)) {\r\n // supplied as a function that returns a key/value object\r\n customRequestParams = ajaxSettings.data();\r\n }\r\n else {\r\n // probably supplied as a straight key/value object\r\n customRequestParams = ajaxSettings.data || {};\r\n }\r\n $.extend(params, customRequestParams);\r\n/////////////// convert to UTC\r\n// params[startParam] = start.format();\r\n// params[endParam] = end.format();\r\n params[startParam] = start.toISOString();\r\n params[endParam] = end.toISOString();\r\n if (timezone && timezone !== 'local') {\r\n params[timezoneParam] = timezone;\r\n }\r\n return params;\r\n };\r\n JsonFeedEventSource.prototype.getPrimitive = function () {\r\n return this.url;\r\n };\r\n JsonFeedEventSource.prototype.applyMiscProps = function (rawProps) {\r\n this.ajaxSettings = rawProps;\r\n };\r\n JsonFeedEventSource.AJAX_DEFAULTS = {\r\n dataType: 'json',\r\n cache: false\r\n };\r\n return JsonFeedEventSource;\r\n}(EventSource_1.default));\r\nexports.default = JsonFeedEventSource;\r\nJsonFeedEventSource.defineStandardProps({\r\n // automatically transfer (true)...\r\n url: true,\r\n startParam: true,\r\n endParam: true,\r\n timezoneParam: true\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 217 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar TaskQueue = /** @class */ (function () {\r\n function TaskQueue() {\r\n this.q = [];\r\n this.isPaused = false;\r\n this.isRunning = false;\r\n }\r\n TaskQueue.prototype.queue = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n this.q.push.apply(this.q, args); // append\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.pause = function () {\r\n this.isPaused = true;\r\n };\r\n TaskQueue.prototype.resume = function () {\r\n this.isPaused = false;\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.getIsIdle = function () {\r\n return !this.isRunning && !this.isPaused;\r\n };\r\n TaskQueue.prototype.tryStart = function () {\r\n if (!this.isRunning && this.canRunNext()) {\r\n this.isRunning = true;\r\n this.trigger('start');\r\n this.runRemaining();\r\n }\r\n };\r\n TaskQueue.prototype.canRunNext = function () {\r\n return !this.isPaused && this.q.length;\r\n };\r\n TaskQueue.prototype.runRemaining = function () {\r\n var _this = this;\r\n var task;\r\n var res;\r\n do {\r\n task = this.q.shift(); // always freshly reference q. might have been reassigned.\r\n res = this.runTask(task);\r\n if (res && res.then) {\r\n res.then(function () {\r\n if (_this.canRunNext()) {\r\n _this.runRemaining();\r\n }\r\n });\r\n return; // prevent marking as stopped\r\n }\r\n } while (this.canRunNext());\r\n this.trigger('stop'); // not really a 'stop' ... more of a 'drained'\r\n this.isRunning = false;\r\n // if 'stop' handler added more tasks.... TODO: write test for this\r\n this.tryStart();\r\n };\r\n TaskQueue.prototype.runTask = function (task) {\r\n return task(); // task *is* the function, but subclasses can change the format of a task\r\n };\r\n return TaskQueue;\r\n}());\r\nexports.default = TaskQueue;\r\nEmitterMixin_1.default.mixInto(TaskQueue);\r\n\r\n\r\n/***/ }),\r\n/* 218 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar TaskQueue_1 = __webpack_require__(217);\r\nvar RenderQueue = /** @class */ (function (_super) {\r\n tslib_1.__extends(RenderQueue, _super);\r\n function RenderQueue(waitsByNamespace) {\r\n var _this = _super.call(this) || this;\r\n _this.waitsByNamespace = waitsByNamespace || {};\r\n return _this;\r\n }\r\n RenderQueue.prototype.queue = function (taskFunc, namespace, type) {\r\n var task = {\r\n func: taskFunc,\r\n namespace: namespace,\r\n type: type\r\n };\r\n var waitMs;\r\n if (namespace) {\r\n waitMs = this.waitsByNamespace[namespace];\r\n }\r\n if (this.waitNamespace) {\r\n if (namespace === this.waitNamespace && waitMs != null) {\r\n this.delayWait(waitMs);\r\n }\r\n else {\r\n this.clearWait();\r\n this.tryStart();\r\n }\r\n }\r\n if (this.compoundTask(task)) {\r\n if (!this.waitNamespace && waitMs != null) {\r\n this.startWait(namespace, waitMs);\r\n }\r\n else {\r\n this.tryStart();\r\n }\r\n }\r\n };\r\n RenderQueue.prototype.startWait = function (namespace, waitMs) {\r\n this.waitNamespace = namespace;\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.delayWait = function (waitMs) {\r\n clearTimeout(this.waitId);\r\n this.spawnWait(waitMs);\r\n };\r\n RenderQueue.prototype.spawnWait = function (waitMs) {\r\n var _this = this;\r\n this.waitId = setTimeout(function () {\r\n _this.waitNamespace = null;\r\n _this.tryStart();\r\n }, waitMs);\r\n };\r\n RenderQueue.prototype.clearWait = function () {\r\n if (this.waitNamespace) {\r\n clearTimeout(this.waitId);\r\n this.waitId = null;\r\n this.waitNamespace = null;\r\n }\r\n };\r\n RenderQueue.prototype.canRunNext = function () {\r\n if (!_super.prototype.canRunNext.call(this)) {\r\n return false;\r\n }\r\n // waiting for a certain namespace to stop receiving tasks?\r\n if (this.waitNamespace) {\r\n var q = this.q;\r\n // if there was a different namespace task in the meantime,\r\n // that forces all previously-waiting tasks to suddenly execute.\r\n // TODO: find a way to do this in constant time.\r\n for (var i = 0; i < q.length; i++) {\r\n if (q[i].namespace !== this.waitNamespace) {\r\n return true; // allow execution\r\n }\r\n }\r\n return false;\r\n }\r\n return true;\r\n };\r\n RenderQueue.prototype.runTask = function (task) {\r\n task.func();\r\n };\r\n RenderQueue.prototype.compoundTask = function (newTask) {\r\n var q = this.q;\r\n var shouldAppend = true;\r\n var i;\r\n var task;\r\n if (newTask.namespace && newTask.type === 'destroy') {\r\n // remove all init/add/remove ops with same namespace, regardless of order\r\n for (i = q.length - 1; i >= 0; i--) {\r\n task = q[i];\r\n switch (task.type) {\r\n case 'init':\r\n shouldAppend = false;\r\n // the latest destroy is cancelled out by not doing the init\r\n /* falls through */\r\n case 'add':\r\n /* falls through */\r\n case 'remove':\r\n q.splice(i, 1); // remove task\r\n }\r\n }\r\n }\r\n if (shouldAppend) {\r\n q.push(newTask);\r\n }\r\n return shouldAppend;\r\n };\r\n return RenderQueue;\r\n}(TaskQueue_1.default));\r\nexports.default = RenderQueue;\r\n\r\n\r\n/***/ }),\r\n/* 219 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar date_formatting_1 = __webpack_require__(47);\r\nvar Component_1 = __webpack_require__(237);\r\nvar util_2 = __webpack_require__(35);\r\nvar DateComponent = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateComponent, _super);\r\n function DateComponent(_view, _options) {\r\n var _this = _super.call(this) || this;\r\n _this.isRTL = false; // frequently accessed options\r\n _this.hitsNeededDepth = 0; // necessary because multiple callers might need the same hits\r\n _this.hasAllDayBusinessHours = false; // TODO: unify with largeUnit and isTimeScale?\r\n _this.isDatesRendered = false;\r\n // hack to set options prior to the this.opt calls\r\n if (_view) {\r\n _this['view'] = _view;\r\n }\r\n if (_options) {\r\n _this['options'] = _options;\r\n }\r\n _this.uid = String(DateComponent.guid++);\r\n _this.childrenByUid = {};\r\n _this.nextDayThreshold = moment.duration(_this.opt('nextDayThreshold'));\r\n _this.isRTL = _this.opt('isRTL');\r\n if (_this.fillRendererClass) {\r\n _this.fillRenderer = new _this.fillRendererClass(_this);\r\n }\r\n if (_this.eventRendererClass) {\r\n _this.eventRenderer = new _this.eventRendererClass(_this, _this.fillRenderer);\r\n }\r\n if (_this.helperRendererClass && _this.eventRenderer) {\r\n _this.helperRenderer = new _this.helperRendererClass(_this, _this.eventRenderer);\r\n }\r\n if (_this.businessHourRendererClass && _this.fillRenderer) {\r\n _this.businessHourRenderer = new _this.businessHourRendererClass(_this, _this.fillRenderer);\r\n }\r\n return _this;\r\n }\r\n DateComponent.prototype.addChild = function (child) {\r\n if (!this.childrenByUid[child.uid]) {\r\n this.childrenByUid[child.uid] = child;\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateComponent.prototype.removeChild = function (child) {\r\n if (this.childrenByUid[child.uid]) {\r\n delete this.childrenByUid[child.uid];\r\n return true;\r\n }\r\n return false;\r\n };\r\n // TODO: only do if isInDom?\r\n // TODO: make part of Component, along with children/batch-render system?\r\n DateComponent.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n this.callChildren('updateSize', arguments);\r\n };\r\n // Options\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.opt = function (name) {\r\n return this._getView().opt(name); // default implementation\r\n };\r\n DateComponent.prototype.publiclyTrigger = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.publiclyTrigger.apply(calendar, args);\r\n };\r\n DateComponent.prototype.hasPublicHandlers = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var calendar = this._getCalendar();\r\n return calendar.hasPublicHandlers.apply(calendar, args);\r\n };\r\n // Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeDateRender = function (dateProfile) {\r\n this.dateProfile = dateProfile; // for rendering\r\n this.renderDates(dateProfile);\r\n this.isDatesRendered = true;\r\n this.callChildren('executeDateRender', arguments);\r\n };\r\n DateComponent.prototype.executeDateUnrender = function () {\r\n this.callChildren('executeDateUnrender', arguments);\r\n this.dateProfile = null;\r\n this.unrenderDates();\r\n this.isDatesRendered = false;\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.renderDates = function (dateProfile) {\r\n // subclasses should implement\r\n };\r\n // date-cell content only\r\n DateComponent.prototype.unrenderDates = function () {\r\n // subclasses should override\r\n };\r\n // Now-Indicator\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Returns a string unit, like 'second' or 'minute' that defined how often the current time indicator\r\n // should be refreshed. If something falsy is returned, no time indicator is rendered at all.\r\n DateComponent.prototype.getNowIndicatorUnit = function () {\r\n // subclasses should implement\r\n };\r\n // Renders a current time indicator at the given datetime\r\n DateComponent.prototype.renderNowIndicator = function (date) {\r\n this.callChildren('renderNowIndicator', arguments);\r\n };\r\n // Undoes the rendering actions from renderNowIndicator\r\n DateComponent.prototype.unrenderNowIndicator = function () {\r\n this.callChildren('unrenderNowIndicator', arguments);\r\n };\r\n // Business Hours\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.renderBusinessHours = function (businessHourGenerator) {\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.render(businessHourGenerator);\r\n }\r\n this.callChildren('renderBusinessHours', arguments);\r\n };\r\n // Unrenders previously-rendered business-hours\r\n DateComponent.prototype.unrenderBusinessHours = function () {\r\n this.callChildren('unrenderBusinessHours', arguments);\r\n if (this.businessHourRenderer) {\r\n this.businessHourRenderer.unrender();\r\n }\r\n };\r\n // Event Displaying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.executeEventRender = function (eventsPayload) {\r\n if (this.eventRenderer) {\r\n this.eventRenderer.rangeUpdated(); // poorly named now\r\n this.eventRenderer.render(eventsPayload);\r\n }\r\n else if (this['renderEvents']) {\r\n this['renderEvents'](convertEventsPayloadToLegacyArray(eventsPayload));\r\n }\r\n this.callChildren('executeEventRender', arguments);\r\n };\r\n DateComponent.prototype.executeEventUnrender = function () {\r\n this.callChildren('executeEventUnrender', arguments);\r\n if (this.eventRenderer) {\r\n this.eventRenderer.unrender();\r\n }\r\n else if (this['destroyEvents']) {\r\n this['destroyEvents']();\r\n }\r\n };\r\n DateComponent.prototype.getBusinessHourSegs = function () {\r\n var segs = this.getOwnBusinessHourSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getBusinessHourSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnBusinessHourSegs = function () {\r\n if (this.businessHourRenderer) {\r\n return this.businessHourRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n DateComponent.prototype.getEventSegs = function () {\r\n var segs = this.getOwnEventSegs();\r\n this.iterChildren(function (child) {\r\n segs.push.apply(segs, child.getEventSegs());\r\n });\r\n return segs;\r\n };\r\n DateComponent.prototype.getOwnEventSegs = function () {\r\n if (this.eventRenderer) {\r\n return this.eventRenderer.getSegs();\r\n }\r\n return [];\r\n };\r\n // Event Rendering Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.triggerAfterEventsRendered = function () {\r\n this.triggerAfterEventSegsRendered(this.getEventSegs());\r\n this.publiclyTrigger('eventAfterAllRender', {\r\n context: this,\r\n args: [this]\r\n });\r\n };\r\n DateComponent.prototype.triggerAfterEventSegsRendered = function (segs) {\r\n var _this = this;\r\n // an optimization, because getEventLegacy is expensive\r\n if (this.hasPublicHandlers('eventAfterRender')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) {\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventAfterRender', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n DateComponent.prototype.triggerBeforeEventsDestroyed = function () {\r\n this.triggerBeforeEventSegsDestroyed(this.getEventSegs());\r\n };\r\n DateComponent.prototype.triggerBeforeEventSegsDestroyed = function (segs) {\r\n var _this = this;\r\n if (this.hasPublicHandlers('eventDestroy')) {\r\n segs.forEach(function (seg) {\r\n var legacy;\r\n if (seg.el) {\r\n legacy = seg.footprint.getEventLegacy();\r\n _this.publiclyTrigger('eventDestroy', {\r\n context: legacy,\r\n args: [legacy, seg.el, _this]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n // Event Rendering Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Hides all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.showEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', '');\r\n }\r\n });\r\n this.callChildren('showEventsWithId', arguments);\r\n };\r\n // Shows all rendered event segments linked to the given event\r\n // RECURSIVE with subcomponents\r\n DateComponent.prototype.hideEventsWithId = function (eventDefId) {\r\n this.getEventSegs().forEach(function (seg) {\r\n if (seg.footprint.eventDef.id === eventDefId &&\r\n seg.el // necessary?\r\n ) {\r\n seg.el.css('visibility', 'hidden');\r\n }\r\n });\r\n this.callChildren('hideEventsWithId', arguments);\r\n };\r\n // Drag-n-Drop Rendering (for both events and external elements)\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of a event or external-element drag over the given drop zone.\r\n // If an external-element, seg will be `null`.\r\n // Must return elements used for any mock events.\r\n DateComponent.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var renderedHelper = false;\r\n this.iterChildren(function (child) {\r\n if (child.renderDrag(eventFootprints, seg, isTouch)) {\r\n renderedHelper = true;\r\n }\r\n });\r\n return renderedHelper;\r\n };\r\n // Unrenders a visual indication of an event or external-element being dragged.\r\n DateComponent.prototype.unrenderDrag = function () {\r\n this.callChildren('unrenderDrag', arguments);\r\n };\r\n // Event Resizing\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of an event being resized.\r\n DateComponent.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.callChildren('renderEventResize', arguments);\r\n };\r\n // Unrenders a visual indication of an event being resized.\r\n DateComponent.prototype.unrenderEventResize = function () {\r\n this.callChildren('unrenderEventResize', arguments);\r\n };\r\n // Selection\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders a visual indication of the selection\r\n // TODO: rename to `renderSelection` after legacy is gone\r\n DateComponent.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n this.renderHighlight(componentFootprint);\r\n this.callChildren('renderSelectionFootprint', arguments);\r\n };\r\n // Unrenders a visual indication of selection\r\n DateComponent.prototype.unrenderSelection = function () {\r\n this.unrenderHighlight();\r\n this.callChildren('unrenderSelection', arguments);\r\n };\r\n // Highlight\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // Renders an emphasis on the given date range. Given a span (unzoned start/end and other misc data)\r\n DateComponent.prototype.renderHighlight = function (componentFootprint) {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.renderFootprint('highlight', componentFootprint, {\r\n getClasses: function () {\r\n return ['fc-highlight'];\r\n }\r\n });\r\n }\r\n this.callChildren('renderHighlight', arguments);\r\n };\r\n // Unrenders the emphasis on a date range\r\n DateComponent.prototype.unrenderHighlight = function () {\r\n if (this.fillRenderer) {\r\n this.fillRenderer.unrender('highlight');\r\n }\r\n this.callChildren('unrenderHighlight', arguments);\r\n };\r\n // Hit Areas\r\n // ---------------------------------------------------------------------------------------------------------------\r\n // just because all DateComponents support this interface\r\n // doesn't mean they need to have their own internal coord system. they can defer to sub-components.\r\n DateComponent.prototype.hitsNeeded = function () {\r\n if (!(this.hitsNeededDepth++)) {\r\n this.prepareHits();\r\n }\r\n this.callChildren('hitsNeeded', arguments);\r\n };\r\n DateComponent.prototype.hitsNotNeeded = function () {\r\n if (this.hitsNeededDepth && !(--this.hitsNeededDepth)) {\r\n this.releaseHits();\r\n }\r\n this.callChildren('hitsNotNeeded', arguments);\r\n };\r\n DateComponent.prototype.prepareHits = function () {\r\n // subclasses can implement\r\n };\r\n DateComponent.prototype.releaseHits = function () {\r\n // subclasses can implement\r\n };\r\n // Given coordinates from the topleft of the document, return data about the date-related area underneath.\r\n // Can return an object with arbitrary properties (although top/right/left/bottom are encouraged).\r\n // Must have a `grid` property, a reference to this current grid. TODO: avoid this\r\n // The returned object will be processed by getHitFootprint and getHitEl.\r\n DateComponent.prototype.queryHit = function (leftOffset, topOffset) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n var hit;\r\n for (uid in childrenByUid) {\r\n hit = childrenByUid[uid].queryHit(leftOffset, topOffset);\r\n if (hit) {\r\n break;\r\n }\r\n }\r\n return hit;\r\n };\r\n DateComponent.prototype.getSafeHitFootprint = function (hit) {\r\n var footprint = this.getHitFootprint(hit);\r\n if (!this.dateProfile.activeUnzonedRange.containsRange(footprint.unzonedRange)) {\r\n return null;\r\n }\r\n return footprint;\r\n };\r\n DateComponent.prototype.getHitFootprint = function (hit) {\r\n // what about being abstract!?\r\n };\r\n // Given position-level information about a date-related area within the grid,\r\n // should return a jQuery element that best represents it. passed to dayClick callback.\r\n DateComponent.prototype.getHitEl = function (hit) {\r\n // what about being abstract!?\r\n };\r\n /* Converting eventRange -> eventFootprint\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventRangesToEventFootprints = function (eventRanges) {\r\n var eventFootprints = [];\r\n var i;\r\n for (i = 0; i < eventRanges.length; i++) {\r\n eventFootprints.push.apply(// append\r\n eventFootprints, this.eventRangeToEventFootprints(eventRanges[i]));\r\n }\r\n return eventFootprints;\r\n };\r\n DateComponent.prototype.eventRangeToEventFootprints = function (eventRange) {\r\n return [util_2.eventRangeToEventFootprint(eventRange)];\r\n };\r\n /* Converting componentFootprint/eventFootprint -> segs\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n DateComponent.prototype.eventFootprintsToSegs = function (eventFootprints) {\r\n var segs = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n segs.push.apply(segs, this.eventFootprintToSegs(eventFootprints[i]));\r\n }\r\n return segs;\r\n };\r\n // Given an event's span (unzoned start/end and other misc data), and the event itself,\r\n // slices into segments and attaches event-derived properties to them.\r\n // eventSpan - { start, end, isStart, isEnd, otherthings... }\r\n DateComponent.prototype.eventFootprintToSegs = function (eventFootprint) {\r\n var unzonedRange = eventFootprint.componentFootprint.unzonedRange;\r\n var segs;\r\n var i;\r\n var seg;\r\n segs = this.componentFootprintToSegs(eventFootprint.componentFootprint);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (!unzonedRange.isStart) {\r\n seg.isStart = false;\r\n }\r\n if (!unzonedRange.isEnd) {\r\n seg.isEnd = false;\r\n }\r\n seg.footprint = eventFootprint;\r\n // TODO: rename to seg.eventFootprint\r\n }\r\n return segs;\r\n };\r\n DateComponent.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n return [];\r\n };\r\n // Utils\r\n // ---------------------------------------------------------------------------------------------------------------\r\n DateComponent.prototype.callChildren = function (methodName, args) {\r\n this.iterChildren(function (child) {\r\n child[methodName].apply(child, args);\r\n });\r\n };\r\n DateComponent.prototype.iterChildren = function (func) {\r\n var childrenByUid = this.childrenByUid;\r\n var uid;\r\n for (uid in childrenByUid) {\r\n func(childrenByUid[uid]);\r\n }\r\n };\r\n DateComponent.prototype._getCalendar = function () {\r\n var t = this;\r\n return t.calendar || t.view.calendar;\r\n };\r\n DateComponent.prototype._getView = function () {\r\n return this.view;\r\n };\r\n DateComponent.prototype._getDateProfile = function () {\r\n return this._getView().get('dateProfile');\r\n };\r\n // Generates HTML for an anchor to another view into the calendar.\r\n // Will either generate an
tag or a non-clickable tag, depending on enabled settings.\r\n // `gotoOptions` can either be a moment input, or an object with the form:\r\n // { date, type, forceOff }\r\n // `type` is a view-type like \"day\" or \"week\". default value is \"day\".\r\n // `attrs` and `innerHtml` are use to generate the rest of the HTML tag.\r\n DateComponent.prototype.buildGotoAnchorHtml = function (gotoOptions, attrs, innerHtml) {\r\n var date;\r\n var type;\r\n var forceOff;\r\n var finalOptions;\r\n if ($.isPlainObject(gotoOptions)) {\r\n date = gotoOptions.date;\r\n type = gotoOptions.type;\r\n forceOff = gotoOptions.forceOff;\r\n }\r\n else {\r\n date = gotoOptions; // a single moment input\r\n }\r\n date = moment_ext_1.default(date); // if a string, parse it\r\n finalOptions = {\r\n date: date.format('YYYY-MM-DD'),\r\n type: type || 'day'\r\n };\r\n if (typeof attrs === 'string') {\r\n innerHtml = attrs;\r\n attrs = null;\r\n }\r\n attrs = attrs ? ' ' + util_1.attrsToStr(attrs) : ''; // will have a leading space\r\n innerHtml = innerHtml || '';\r\n if (!forceOff && this.opt('navLinks')) {\r\n return '' +\r\n innerHtml +\r\n '';\r\n }\r\n else {\r\n return '' +\r\n innerHtml +\r\n '';\r\n }\r\n };\r\n DateComponent.prototype.getAllDayHtml = function () {\r\n return this.opt('allDayHtml') || util_1.htmlEscape(this.opt('allDayText'));\r\n };\r\n // Computes HTML classNames for a single-day element\r\n DateComponent.prototype.getDayClasses = function (date, noThemeHighlight) {\r\n var view = this._getView();\r\n var classes = [];\r\n var today;\r\n if (!this.dateProfile.activeUnzonedRange.containsDate(date)) {\r\n classes.push('fc-disabled-day'); // TODO: jQuery UI theme?\r\n }\r\n else {\r\n classes.push('fc-' + util_1.dayIDs[date.day()]);\r\n if (view.isDateInOtherMonth(date, this.dateProfile)) {\r\n classes.push('fc-other-month');\r\n }\r\n today = view.calendar.getNow();\r\n if (date.isSame(today, 'day')) {\r\n classes.push('fc-today');\r\n if (noThemeHighlight !== true) {\r\n classes.push(view.calendar.theme.getClass('today'));\r\n }\r\n }\r\n else if (date < today) {\r\n classes.push('fc-past');\r\n }\r\n else {\r\n classes.push('fc-future');\r\n }\r\n }\r\n return classes;\r\n };\r\n // Utility for formatting a range. Accepts a range object, formatting string, and optional separator.\r\n // Displays all-day ranges naturally, with an inclusive end. Takes the current isRTL into account.\r\n // The timezones of the dates within `range` will be respected.\r\n DateComponent.prototype.formatRange = function (range, isAllDay, formatStr, separator) {\r\n var end = range.end;\r\n if (isAllDay) {\r\n end = end.clone().subtract(1); // convert to inclusive. last ms of previous day\r\n }\r\n return date_formatting_1.formatRange(range.start, end, formatStr, separator, this.isRTL);\r\n };\r\n // Compute the number of the give units in the \"current\" range.\r\n // Will return a floating-point number. Won't round.\r\n DateComponent.prototype.currentRangeAs = function (unit) {\r\n return this._getDateProfile().currentUnzonedRange.as(unit);\r\n };\r\n // Returns the date range of the full days the given range visually appears to occupy.\r\n // Returns a plain object with start/end, NOT an UnzonedRange!\r\n DateComponent.prototype.computeDayRange = function (unzonedRange) {\r\n var calendar = this._getCalendar();\r\n var startDay = calendar.msToUtcMoment(unzonedRange.startMs, true); // the beginning of the day the range starts\r\n var end = calendar.msToUtcMoment(unzonedRange.endMs);\r\n var endTimeMS = +end.time(); // # of milliseconds into `endDay`\r\n var endDay = end.clone().stripTime(); // the beginning of the day the range exclusively ends\r\n // If the end time is actually inclusively part of the next day and is equal to or\r\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\r\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\r\n if (endTimeMS && endTimeMS >= this.nextDayThreshold) {\r\n endDay.add(1, 'days');\r\n }\r\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\r\n if (endDay <= startDay) {\r\n endDay = startDay.clone().add(1, 'days');\r\n }\r\n return { start: startDay, end: endDay };\r\n };\r\n // Does the given range visually appear to occupy more than one day?\r\n DateComponent.prototype.isMultiDayRange = function (unzonedRange) {\r\n var dayRange = this.computeDayRange(unzonedRange);\r\n return dayRange.end.diff(dayRange.start, 'days') > 1;\r\n };\r\n DateComponent.guid = 0; // TODO: better system for this?\r\n return DateComponent;\r\n}(Component_1.default));\r\nexports.default = DateComponent;\r\n// legacy\r\nfunction convertEventsPayloadToLegacyArray(eventsPayload) {\r\n var eventDefId;\r\n var eventInstances;\r\n var legacyEvents = [];\r\n var i;\r\n for (eventDefId in eventsPayload) {\r\n eventInstances = eventsPayload[eventDefId].eventInstances;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n legacyEvents.push(eventInstances[i].toLegacy());\r\n }\r\n }\r\n return legacyEvents;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 220 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar Iterator_1 = __webpack_require__(238);\r\nvar GlobalEmitter_1 = __webpack_require__(21);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Toolbar_1 = __webpack_require__(239);\r\nvar OptionsManager_1 = __webpack_require__(240);\r\nvar ViewSpecManager_1 = __webpack_require__(241);\r\nvar Constraints_1 = __webpack_require__(207);\r\nvar locale_1 = __webpack_require__(31);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar EventDateProfile_1 = __webpack_require__(17);\r\nvar EventManager_1 = __webpack_require__(242);\r\nvar BusinessHourGenerator_1 = __webpack_require__(212);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar EventDefParser_1 = __webpack_require__(49);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nvar Calendar = /** @class */ (function () {\r\n function Calendar(el, overrides) {\r\n this.loadingLevel = 0; // number of simultaneous loading tasks\r\n this.ignoreUpdateViewSize = 0;\r\n this.freezeContentHeightDepth = 0;\r\n // declare the current calendar instance relies on GlobalEmitter. needed for garbage collection.\r\n // unneeded() is called in destroy.\r\n GlobalEmitter_1.default.needed();\r\n this.el = el;\r\n this.viewsByType = {};\r\n this.optionsManager = new OptionsManager_1.default(this, overrides);\r\n this.viewSpecManager = new ViewSpecManager_1.default(this.optionsManager, this);\r\n this.initMomentInternals(); // needs to happen after options hash initialized\r\n this.initCurrentDate();\r\n this.initEventManager();\r\n this.constraints = new Constraints_1.default(this.eventManager, this);\r\n this.constructed();\r\n }\r\n Calendar.prototype.constructed = function () {\r\n // useful for monkeypatching. used?\r\n };\r\n Calendar.prototype.getView = function () {\r\n return this.view;\r\n };\r\n Calendar.prototype.publiclyTrigger = function (name, triggerInfo) {\r\n var optHandler = this.opt(name);\r\n var context;\r\n var args;\r\n if ($.isPlainObject(triggerInfo)) {\r\n context = triggerInfo.context;\r\n args = triggerInfo.args;\r\n }\r\n else if ($.isArray(triggerInfo)) {\r\n args = triggerInfo;\r\n }\r\n if (context == null) {\r\n context = this.el[0]; // fallback context\r\n }\r\n if (!args) {\r\n args = [];\r\n }\r\n this.triggerWith(name, context, args); // Emitter's method\r\n if (optHandler) {\r\n return optHandler.apply(context, args);\r\n }\r\n };\r\n Calendar.prototype.hasPublicHandlers = function (name) {\r\n return this.hasHandlers(name) ||\r\n this.opt(name); // handler specified in options\r\n };\r\n // Options Public API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // public getter/setter\r\n Calendar.prototype.option = function (name, value) {\r\n var newOptionHash;\r\n if (typeof name === 'string') {\r\n if (value === undefined) {\r\n return this.optionsManager.get(name);\r\n }\r\n else {\r\n newOptionHash = {};\r\n newOptionHash[name] = value;\r\n this.optionsManager.add(newOptionHash);\r\n }\r\n }\r\n else if (typeof name === 'object') {\r\n this.optionsManager.add(name);\r\n }\r\n };\r\n // private getter\r\n Calendar.prototype.opt = function (name) {\r\n return this.optionsManager.get(name);\r\n };\r\n // View\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Given a view name for a custom view or a standard view, creates a ready-to-go View object\r\n Calendar.prototype.instantiateView = function (viewType) {\r\n var spec = this.viewSpecManager.getViewSpec(viewType);\r\n if (!spec) {\r\n throw new Error(\"View type \\\"\" + viewType + \"\\\" is not valid\");\r\n }\r\n return new spec['class'](this, spec);\r\n };\r\n // Returns a boolean about whether the view is okay to instantiate at some point\r\n Calendar.prototype.isValidViewType = function (viewType) {\r\n return Boolean(this.viewSpecManager.getViewSpec(viewType));\r\n };\r\n Calendar.prototype.changeView = function (viewName, dateOrRange) {\r\n if (dateOrRange) {\r\n if (dateOrRange.start && dateOrRange.end) {\r\n this.optionsManager.recordOverrides({\r\n visibleRange: dateOrRange\r\n });\r\n }\r\n else {\r\n this.currentDate = this.moment(dateOrRange).stripZone(); // just like gotoDate\r\n }\r\n }\r\n this.renderView(viewName);\r\n };\r\n // Forces navigation to a view for the given date.\r\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\r\n Calendar.prototype.zoomTo = function (newDate, viewType) {\r\n var spec;\r\n viewType = viewType || 'day'; // day is default zoom\r\n spec = this.viewSpecManager.getViewSpec(viewType) ||\r\n this.viewSpecManager.getUnitViewSpec(viewType);\r\n this.currentDate = newDate.clone();\r\n this.renderView(spec ? spec.type : null);\r\n };\r\n // Current Date\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initCurrentDate = function () {\r\n var defaultDateInput = this.opt('defaultDate');\r\n // compute the initial ambig-timezone date\r\n if (defaultDateInput != null) {\r\n this.currentDate = this.moment(defaultDateInput).stripZone();\r\n }\r\n else {\r\n this.currentDate = this.getNow(); // getNow already returns unzoned\r\n }\r\n };\r\n Calendar.prototype.prev = function () {\r\n var view = this.view;\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n if (prevInfo.isValid) {\r\n this.currentDate = prevInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.next = function () {\r\n var view = this.view;\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n if (nextInfo.isValid) {\r\n this.currentDate = nextInfo.date;\r\n this.renderView();\r\n }\r\n };\r\n Calendar.prototype.prevYear = function () {\r\n this.currentDate.add(-1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.nextYear = function () {\r\n this.currentDate.add(1, 'years');\r\n this.renderView();\r\n };\r\n Calendar.prototype.today = function () {\r\n this.currentDate = this.getNow(); // should deny like prev/next?\r\n this.renderView();\r\n };\r\n Calendar.prototype.gotoDate = function (zonedDateInput) {\r\n this.currentDate = this.moment(zonedDateInput).stripZone();\r\n this.renderView();\r\n };\r\n Calendar.prototype.incrementDate = function (delta) {\r\n this.currentDate.add(moment.duration(delta));\r\n this.renderView();\r\n };\r\n // for external API\r\n Calendar.prototype.getDate = function () {\r\n return this.applyTimezone(this.currentDate); // infuse the calendar's timezone\r\n };\r\n // Loading Triggering\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // Should be called when any type of async data fetching begins\r\n Calendar.prototype.pushLoading = function () {\r\n if (!(this.loadingLevel++)) {\r\n this.publiclyTrigger('loading', [true, this.view]);\r\n }\r\n };\r\n // Should be called when any type of async data fetching completes\r\n Calendar.prototype.popLoading = function () {\r\n if (!(--this.loadingLevel)) {\r\n this.publiclyTrigger('loading', [false, this.view]);\r\n }\r\n };\r\n // High-level Rendering\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.render = function () {\r\n if (!this.contentEl) {\r\n this.initialRender();\r\n }\r\n else if (this.elementVisible()) {\r\n // mainly for the public API\r\n this.calcSize();\r\n this.updateViewSize();\r\n }\r\n };\r\n Calendar.prototype.initialRender = function () {\r\n var _this = this;\r\n var el = this.el;\r\n el.addClass('fc');\r\n // event delegation for nav links\r\n el.on('click.fc', 'a[data-goto]', function (ev) {\r\n var anchorEl = $(ev.currentTarget);\r\n var gotoOptions = anchorEl.data('goto'); // will automatically parse JSON\r\n var date = _this.moment(gotoOptions.date);\r\n var viewType = gotoOptions.type;\r\n // property like \"navLinkDayClick\". might be a string or a function\r\n var customAction = _this.view.opt('navLink' + util_1.capitaliseFirstLetter(viewType) + 'Click');\r\n if (typeof customAction === 'function') {\r\n customAction(date, ev);\r\n }\r\n else {\r\n if (typeof customAction === 'string') {\r\n viewType = customAction;\r\n }\r\n _this.zoomTo(date, viewType);\r\n }\r\n });\r\n // called immediately, and upon option change\r\n this.optionsManager.watch('settingTheme', ['?theme', '?themeSystem'], function (opts) {\r\n var themeClass = ThemeRegistry_1.getThemeSystemClass(opts.themeSystem || opts.theme);\r\n var theme = new themeClass(_this.optionsManager);\r\n var widgetClass = theme.getClass('widget');\r\n _this.theme = theme;\r\n if (widgetClass) {\r\n el.addClass(widgetClass);\r\n }\r\n }, function () {\r\n var widgetClass = _this.theme.getClass('widget');\r\n _this.theme = null;\r\n if (widgetClass) {\r\n el.removeClass(widgetClass);\r\n }\r\n });\r\n this.optionsManager.watch('settingBusinessHourGenerator', ['?businessHours'], function (deps) {\r\n _this.businessHourGenerator = new BusinessHourGenerator_1.default(deps.businessHours, _this);\r\n if (_this.view) {\r\n _this.view.set('businessHourGenerator', _this.businessHourGenerator);\r\n }\r\n }, function () {\r\n _this.businessHourGenerator = null;\r\n });\r\n // called immediately, and upon option change.\r\n // HACK: locale often affects isRTL, so we explicitly listen to that too.\r\n this.optionsManager.watch('applyingDirClasses', ['?isRTL', '?locale'], function (opts) {\r\n el.toggleClass('fc-ltr', !opts.isRTL);\r\n el.toggleClass('fc-rtl', opts.isRTL);\r\n });\r\n this.contentEl = $(\"
\").prependTo(el);\r\n this.initToolbars();\r\n this.renderHeader();\r\n this.renderFooter();\r\n this.renderView(this.opt('defaultView'));\r\n if (this.opt('handleWindowResize')) {\r\n $(window).resize(this.windowResizeProxy = util_1.debounce(// prevents rapid calls\r\n this.windowResize.bind(this), this.opt('windowResizeDelay')));\r\n }\r\n };\r\n Calendar.prototype.destroy = function () {\r\n if (this.view) {\r\n this.clearView();\r\n }\r\n this.toolbarsManager.proxyCall('removeElement');\r\n this.contentEl.remove();\r\n this.el.removeClass('fc fc-ltr fc-rtl');\r\n // removes theme-related root className\r\n this.optionsManager.unwatch('settingTheme');\r\n this.optionsManager.unwatch('settingBusinessHourGenerator');\r\n this.el.off('.fc'); // unbind nav link handlers\r\n if (this.windowResizeProxy) {\r\n $(window).unbind('resize', this.windowResizeProxy);\r\n this.windowResizeProxy = null;\r\n }\r\n GlobalEmitter_1.default.unneeded();\r\n };\r\n Calendar.prototype.elementVisible = function () {\r\n return this.el.is(':visible');\r\n };\r\n // Render Queue\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.bindViewHandlers = function (view) {\r\n var _this = this;\r\n view.watch('titleForCalendar', ['title'], function (deps) {\r\n if (view === _this.view) {\r\n _this.setToolbarsTitle(deps.title);\r\n }\r\n });\r\n view.watch('dateProfileForCalendar', ['dateProfile'], function (deps) {\r\n if (view === _this.view) {\r\n _this.currentDate = deps.dateProfile.date; // might have been constrained by view dates\r\n _this.updateToolbarButtons(deps.dateProfile);\r\n }\r\n });\r\n };\r\n Calendar.prototype.unbindViewHandlers = function (view) {\r\n view.unwatch('titleForCalendar');\r\n view.unwatch('dateProfileForCalendar');\r\n };\r\n // View Rendering\r\n // -----------------------------------------------------------------------------------\r\n // Renders a view because of a date change, view-type change, or for the first time.\r\n // If not given a viewType, keep the current view but render different dates.\r\n // Accepts an optional scroll state to restore to.\r\n Calendar.prototype.renderView = function (viewType) {\r\n var oldView = this.view;\r\n var newView;\r\n this.freezeContentHeight();\r\n if (oldView && viewType && oldView.type !== viewType) {\r\n this.clearView();\r\n }\r\n // if viewType changed, or the view was never created, create a fresh view\r\n if (!this.view && viewType) {\r\n newView = this.view =\r\n this.viewsByType[viewType] ||\r\n (this.viewsByType[viewType] = this.instantiateView(viewType));\r\n this.bindViewHandlers(newView);\r\n newView.startBatchRender(); // so that setElement+setDate rendering are joined\r\n newView.setElement($(\"
\").appendTo(this.contentEl));\r\n this.toolbarsManager.proxyCall('activateButton', viewType);\r\n }\r\n if (this.view) {\r\n // prevent unnecessary change firing\r\n if (this.view.get('businessHourGenerator') !== this.businessHourGenerator) {\r\n this.view.set('businessHourGenerator', this.businessHourGenerator);\r\n }\r\n this.view.setDate(this.currentDate);\r\n if (newView) {\r\n newView.stopBatchRender();\r\n }\r\n }\r\n this.thawContentHeight();\r\n };\r\n // Unrenders the current view and reflects this change in the Header.\r\n // Unregsiters the `view`, but does not remove from viewByType hash.\r\n Calendar.prototype.clearView = function () {\r\n var currentView = this.view;\r\n this.toolbarsManager.proxyCall('deactivateButton', currentView.type);\r\n this.unbindViewHandlers(currentView);\r\n currentView.removeElement();\r\n currentView.unsetDate(); // so bindViewHandlers doesn't fire with old values next time\r\n this.view = null;\r\n };\r\n // Destroys the view, including the view object. Then, re-instantiates it and renders it.\r\n // Maintains the same scroll state.\r\n // TODO: maintain any other user-manipulated state.\r\n Calendar.prototype.reinitView = function () {\r\n var oldView = this.view;\r\n var scroll = oldView.queryScroll(); // wouldn't be so complicated if Calendar owned the scroll\r\n this.freezeContentHeight();\r\n this.clearView();\r\n this.calcSize();\r\n this.renderView(oldView.type); // needs the type to freshly render\r\n this.view.applyScroll(scroll);\r\n this.thawContentHeight();\r\n };\r\n // Resizing\r\n // -----------------------------------------------------------------------------------\r\n Calendar.prototype.getSuggestedViewHeight = function () {\r\n if (this.suggestedViewHeight == null) {\r\n this.calcSize();\r\n }\r\n return this.suggestedViewHeight;\r\n };\r\n Calendar.prototype.isHeightAuto = function () {\r\n return this.opt('contentHeight') === 'auto' || this.opt('height') === 'auto';\r\n };\r\n Calendar.prototype.updateViewSize = function (isResize) {\r\n if (isResize === void 0) { isResize = false; }\r\n var view = this.view;\r\n var scroll;\r\n if (!this.ignoreUpdateViewSize && view) {\r\n if (isResize) {\r\n this.calcSize();\r\n scroll = view.queryScroll();\r\n }\r\n this.ignoreUpdateViewSize++;\r\n view.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), isResize);\r\n this.ignoreUpdateViewSize--;\r\n if (isResize) {\r\n view.applyScroll(scroll);\r\n }\r\n return true; // signal success\r\n }\r\n };\r\n Calendar.prototype.calcSize = function () {\r\n if (this.elementVisible()) {\r\n this._calcSize();\r\n }\r\n };\r\n Calendar.prototype._calcSize = function () {\r\n var contentHeightInput = this.opt('contentHeight');\r\n var heightInput = this.opt('height');\r\n if (typeof contentHeightInput === 'number') {\r\n this.suggestedViewHeight = contentHeightInput;\r\n }\r\n else if (typeof contentHeightInput === 'function') {\r\n this.suggestedViewHeight = contentHeightInput();\r\n }\r\n else if (typeof heightInput === 'number') {\r\n this.suggestedViewHeight = heightInput - this.queryToolbarsHeight();\r\n }\r\n else if (typeof heightInput === 'function') {\r\n this.suggestedViewHeight = heightInput() - this.queryToolbarsHeight();\r\n }\r\n else if (heightInput === 'parent') {\r\n this.suggestedViewHeight = this.el.parent().height() - this.queryToolbarsHeight();\r\n }\r\n else {\r\n this.suggestedViewHeight = Math.round(this.contentEl.width() /\r\n Math.max(this.opt('aspectRatio'), .5));\r\n }\r\n };\r\n Calendar.prototype.windowResize = function (ev) {\r\n if (\r\n // the purpose: so we don't process jqui \"resize\" events that have bubbled up\r\n // cast to any because .target, which is Element, can't be compared to window for some reason.\r\n ev.target === window &&\r\n this.view &&\r\n this.view.isDatesRendered) {\r\n if (this.updateViewSize(true)) {\r\n this.publiclyTrigger('windowResize', [this.view]);\r\n }\r\n }\r\n };\r\n /* Height \"Freezing\"\r\n -----------------------------------------------------------------------------*/\r\n Calendar.prototype.freezeContentHeight = function () {\r\n if (!(this.freezeContentHeightDepth++)) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n Calendar.prototype.forceFreezeContentHeight = function () {\r\n this.contentEl.css({\r\n width: '100%',\r\n height: this.contentEl.height(),\r\n overflow: 'hidden'\r\n });\r\n };\r\n Calendar.prototype.thawContentHeight = function () {\r\n this.freezeContentHeightDepth--;\r\n // always bring back to natural height\r\n this.contentEl.css({\r\n width: '',\r\n height: '',\r\n overflow: ''\r\n });\r\n // but if there are future thaws, re-freeze\r\n if (this.freezeContentHeightDepth) {\r\n this.forceFreezeContentHeight();\r\n }\r\n };\r\n // Toolbar\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initToolbars = function () {\r\n this.header = new Toolbar_1.default(this, this.computeHeaderOptions());\r\n this.footer = new Toolbar_1.default(this, this.computeFooterOptions());\r\n this.toolbarsManager = new Iterator_1.default([this.header, this.footer]);\r\n };\r\n Calendar.prototype.computeHeaderOptions = function () {\r\n return {\r\n extraClasses: 'fc-header-toolbar',\r\n layout: this.opt('header')\r\n };\r\n };\r\n Calendar.prototype.computeFooterOptions = function () {\r\n return {\r\n extraClasses: 'fc-footer-toolbar',\r\n layout: this.opt('footer')\r\n };\r\n };\r\n // can be called repeatedly and Header will rerender\r\n Calendar.prototype.renderHeader = function () {\r\n var header = this.header;\r\n header.setToolbarOptions(this.computeHeaderOptions());\r\n header.render();\r\n if (header.el) {\r\n this.el.prepend(header.el);\r\n }\r\n };\r\n // can be called repeatedly and Footer will rerender\r\n Calendar.prototype.renderFooter = function () {\r\n var footer = this.footer;\r\n footer.setToolbarOptions(this.computeFooterOptions());\r\n footer.render();\r\n if (footer.el) {\r\n this.el.append(footer.el);\r\n }\r\n };\r\n Calendar.prototype.setToolbarsTitle = function (title) {\r\n this.toolbarsManager.proxyCall('updateTitle', title);\r\n };\r\n Calendar.prototype.updateToolbarButtons = function (dateProfile) {\r\n var now = this.getNow();\r\n var view = this.view;\r\n var todayInfo = view.dateProfileGenerator.build(now);\r\n var prevInfo = view.dateProfileGenerator.buildPrev(view.get('dateProfile'));\r\n var nextInfo = view.dateProfileGenerator.buildNext(view.get('dateProfile'));\r\n this.toolbarsManager.proxyCall((todayInfo.isValid && !dateProfile.currentUnzonedRange.containsDate(now)) ?\r\n 'enableButton' :\r\n 'disableButton', 'today');\r\n this.toolbarsManager.proxyCall(prevInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'prev');\r\n this.toolbarsManager.proxyCall(nextInfo.isValid ?\r\n 'enableButton' :\r\n 'disableButton', 'next');\r\n };\r\n Calendar.prototype.queryToolbarsHeight = function () {\r\n return this.toolbarsManager.items.reduce(function (accumulator, toolbar) {\r\n var toolbarHeight = toolbar.el ? toolbar.el.outerHeight(true) : 0; // includes margin\r\n return accumulator + toolbarHeight;\r\n }, 0);\r\n };\r\n // Selection\r\n // -----------------------------------------------------------------------------------------------------------------\r\n // this public method receives start/end dates in any format, with any timezone\r\n Calendar.prototype.select = function (zonedStartInput, zonedEndInput) {\r\n this.view.select(this.buildSelectFootprint.apply(this, arguments));\r\n };\r\n Calendar.prototype.unselect = function () {\r\n if (this.view) {\r\n this.view.unselect();\r\n }\r\n };\r\n // Given arguments to the select method in the API, returns a span (unzoned start/end and other info)\r\n Calendar.prototype.buildSelectFootprint = function (zonedStartInput, zonedEndInput) {\r\n var start = this.moment(zonedStartInput).stripZone();\r\n var end;\r\n if (zonedEndInput) {\r\n end = this.moment(zonedEndInput).stripZone();\r\n }\r\n else if (start.hasTime()) {\r\n end = start.clone().add(this.defaultTimedEventDuration);\r\n }\r\n else {\r\n end = start.clone().add(this.defaultAllDayEventDuration);\r\n }\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), !start.hasTime());\r\n };\r\n // Date Utils\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initMomentInternals = function () {\r\n var _this = this;\r\n this.defaultAllDayEventDuration = moment.duration(this.opt('defaultAllDayEventDuration'));\r\n this.defaultTimedEventDuration = moment.duration(this.opt('defaultTimedEventDuration'));\r\n // Called immediately, and when any of the options change.\r\n // Happens before any internal objects rebuild or rerender, because this is very core.\r\n this.optionsManager.watch('buildingMomentLocale', [\r\n '?locale', '?monthNames', '?monthNamesShort', '?dayNames', '?dayNamesShort',\r\n '?firstDay', '?weekNumberCalculation'\r\n ], function (opts) {\r\n var weekNumberCalculation = opts.weekNumberCalculation;\r\n var firstDay = opts.firstDay;\r\n var _week;\r\n // normalize\r\n if (weekNumberCalculation === 'iso') {\r\n weekNumberCalculation = 'ISO'; // normalize\r\n }\r\n var localeData = Object.create(// make a cheap copy\r\n locale_1.getMomentLocaleData(opts.locale) // will fall back to en\r\n );\r\n if (opts.monthNames) {\r\n localeData._months = opts.monthNames;\r\n }\r\n if (opts.monthNamesShort) {\r\n localeData._monthsShort = opts.monthNamesShort;\r\n }\r\n if (opts.dayNames) {\r\n localeData._weekdays = opts.dayNames;\r\n }\r\n if (opts.dayNamesShort) {\r\n localeData._weekdaysShort = opts.dayNamesShort;\r\n }\r\n if (firstDay == null && weekNumberCalculation === 'ISO') {\r\n firstDay = 1;\r\n }\r\n if (firstDay != null) {\r\n _week = Object.create(localeData._week); // _week: { dow: # }\r\n _week.dow = firstDay;\r\n localeData._week = _week;\r\n }\r\n if (weekNumberCalculation === 'ISO' ||\r\n weekNumberCalculation === 'local' ||\r\n typeof weekNumberCalculation === 'function') {\r\n localeData._fullCalendar_weekCalc = weekNumberCalculation; // moment-ext will know what to do with it\r\n }\r\n _this.localeData = localeData;\r\n // If the internal current date object already exists, move to new locale.\r\n // We do NOT need to do this technique for event dates, because this happens when converting to \"segments\".\r\n if (_this.currentDate) {\r\n _this.localizeMoment(_this.currentDate); // sets to localeData\r\n }\r\n });\r\n };\r\n // Builds a moment using the settings of the current calendar: timezone and locale.\r\n // Accepts anything the vanilla moment() constructor accepts.\r\n Calendar.prototype.moment = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var mom;\r\n if (this.opt('timezone') === 'local') {\r\n mom = moment_ext_1.default.apply(null, args);\r\n // Force the moment to be local, because momentExt doesn't guarantee it.\r\n if (mom.hasTime()) {\r\n mom.local();\r\n }\r\n }\r\n else if (this.opt('timezone') === 'UTC') {\r\n mom = moment_ext_1.default.utc.apply(null, args); // process as UTC\r\n }\r\n else {\r\n mom = moment_ext_1.default.parseZone.apply(null, args); // let the input decide the zone\r\n }\r\n this.localizeMoment(mom); // TODO\r\n return mom;\r\n };\r\n Calendar.prototype.msToMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n else {\r\n mom = this.applyTimezone(mom); // may or may not apply locale\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n Calendar.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n var mom = moment_ext_1.default.utc(ms); // TODO: optimize by using Date.UTC\r\n if (forceAllDay) {\r\n mom.stripTime();\r\n }\r\n this.localizeMoment(mom);\r\n return mom;\r\n };\r\n // Updates the given moment's locale settings to the current calendar locale settings.\r\n Calendar.prototype.localizeMoment = function (mom) {\r\n mom._locale = this.localeData;\r\n };\r\n // Returns a boolean about whether or not the calendar knows how to calculate\r\n // the timezone offset of arbitrary dates in the current timezone.\r\n Calendar.prototype.getIsAmbigTimezone = function () {\r\n return this.opt('timezone') !== 'local' && this.opt('timezone') !== 'UTC';\r\n };\r\n // Returns a copy of the given date in the current timezone. Has no effect on dates without times.\r\n Calendar.prototype.applyTimezone = function (date) {\r\n if (!date.hasTime()) {\r\n return date.clone();\r\n }\r\n var zonedDate = this.moment(date.toArray());\r\n var timeAdjust = date.time().asMilliseconds() - zonedDate.time().asMilliseconds();\r\n var adjustedZonedDate;\r\n // Safari sometimes has problems with this coersion when near DST. Adjust if necessary. (bug #2396)\r\n if (timeAdjust) {\r\n adjustedZonedDate = zonedDate.clone().add(timeAdjust); // add milliseconds\r\n if (date.time().asMilliseconds() - adjustedZonedDate.time().asMilliseconds() === 0) {\r\n zonedDate = adjustedZonedDate;\r\n }\r\n }\r\n return zonedDate;\r\n };\r\n /*\r\n Assumes the footprint is non-open-ended.\r\n */\r\n Calendar.prototype.footprintToDateProfile = function (componentFootprint, ignoreEnd) {\r\n if (ignoreEnd === void 0) { ignoreEnd = false; }\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs);\r\n var end;\r\n if (!ignoreEnd) {\r\n end = moment_ext_1.default.utc(componentFootprint.unzonedRange.endMs);\r\n }\r\n if (componentFootprint.isAllDay) {\r\n start.stripTime();\r\n if (end) {\r\n end.stripTime();\r\n }\r\n }\r\n else {\r\n start = this.applyTimezone(start);\r\n if (end) {\r\n end = this.applyTimezone(end);\r\n }\r\n }\r\n return new EventDateProfile_1.default(start, end, this);\r\n };\r\n // Returns a moment for the current date, as defined by the client's computer or from the `now` option.\r\n // Will return an moment with an ambiguous timezone.\r\n Calendar.prototype.getNow = function () {\r\n var now = this.opt('now');\r\n if (typeof now === 'function') {\r\n now = now();\r\n }\r\n return this.moment(now).stripZone();\r\n };\r\n // Produces a human-readable string for the given duration.\r\n // Side-effect: changes the locale of the given duration.\r\n Calendar.prototype.humanizeDuration = function (duration) {\r\n return duration.locale(this.opt('locale')).humanize();\r\n };\r\n // will return `null` if invalid range\r\n Calendar.prototype.parseUnzonedRange = function (rangeInput) {\r\n var start = null;\r\n var end = null;\r\n if (rangeInput.start) {\r\n start = this.moment(rangeInput.start).stripZone();\r\n }\r\n if (rangeInput.end) {\r\n end = this.moment(rangeInput.end).stripZone();\r\n }\r\n if (!start && !end) {\r\n return null;\r\n }\r\n if (start && end && end.isBefore(start)) {\r\n return null;\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Event-Date Utilities\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.initEventManager = function () {\r\n var _this = this;\r\n var eventManager = new EventManager_1.default(this);\r\n var rawSources = this.opt('eventSources') || [];\r\n var singleRawSource = this.opt('events');\r\n this.eventManager = eventManager;\r\n if (singleRawSource) {\r\n rawSources.unshift(singleRawSource);\r\n }\r\n eventManager.on('release', function (eventsPayload) {\r\n _this.trigger('eventsReset', eventsPayload);\r\n });\r\n eventManager.freeze();\r\n rawSources.forEach(function (rawSource) {\r\n var source = EventSourceParser_1.default.parse(rawSource, _this);\r\n if (source) {\r\n eventManager.addSource(source);\r\n }\r\n });\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.requestEvents = function (start, end) {\r\n return this.eventManager.requestEvents(start, end, this.opt('timezone'), !this.opt('lazyFetching'));\r\n };\r\n // Get an event's normalized end date. If not present, calculate it from the defaults.\r\n Calendar.prototype.getEventEnd = function (event) {\r\n if (event.end) {\r\n return event.end.clone();\r\n }\r\n else {\r\n return this.getDefaultEventEnd(event.allDay, event.start);\r\n }\r\n };\r\n // Given an event's allDay status and start date, return what its fallback end date should be.\r\n // TODO: rename to computeDefaultEventEnd\r\n Calendar.prototype.getDefaultEventEnd = function (allDay, zonedStart) {\r\n var end = zonedStart.clone();\r\n if (allDay) {\r\n end.stripTime().add(this.defaultAllDayEventDuration);\r\n }\r\n else {\r\n end.add(this.defaultTimedEventDuration);\r\n }\r\n if (this.getIsAmbigTimezone()) {\r\n end.stripZone(); // we don't know what the tzo should be\r\n }\r\n return end;\r\n };\r\n // Public Events API\r\n // -----------------------------------------------------------------------------------------------------------------\r\n Calendar.prototype.rerenderEvents = function () {\r\n this.view.flash('displayingEvents');\r\n };\r\n Calendar.prototype.refetchEvents = function () {\r\n this.eventManager.refetchAllSources();\r\n };\r\n Calendar.prototype.renderEvents = function (eventInputs, isSticky) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventInputs.length; i++) {\r\n this.renderEvent(eventInputs[i], isSticky);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.renderEvent = function (eventInput, isSticky) {\r\n if (isSticky === void 0) { isSticky = false; }\r\n var eventManager = this.eventManager;\r\n var eventDef = EventDefParser_1.default.parse(eventInput, eventInput.source || eventManager.stickySource);\r\n if (eventDef) {\r\n eventManager.addEventDef(eventDef, isSticky);\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.removeEvents = function (legacyQuery) {\r\n var eventManager = this.eventManager;\r\n var legacyInstances = [];\r\n var idMap = {};\r\n var eventDef;\r\n var i;\r\n if (legacyQuery == null) {\r\n eventManager.removeAllEventDefs(); // persist=true\r\n }\r\n else {\r\n eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyInstances.push(eventInstance.toLegacy());\r\n });\r\n legacyInstances = filterLegacyEventInstances(legacyInstances, legacyQuery);\r\n // compute unique IDs\r\n for (i = 0; i < legacyInstances.length; i++) {\r\n eventDef = this.eventManager.getEventDefByUid(legacyInstances[i]._id);\r\n idMap[eventDef.id] = true;\r\n }\r\n eventManager.freeze();\r\n for (i in idMap) {\r\n eventManager.removeEventDefsById(i); // persist=true\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n // legacyQuery operates on legacy event instance objects\r\n Calendar.prototype.clientEvents = function (legacyQuery) {\r\n var legacyEventInstances = [];\r\n this.eventManager.getEventInstances().forEach(function (eventInstance) {\r\n legacyEventInstances.push(eventInstance.toLegacy());\r\n });\r\n return filterLegacyEventInstances(legacyEventInstances, legacyQuery);\r\n };\r\n Calendar.prototype.updateEvents = function (eventPropsArray) {\r\n this.eventManager.freeze();\r\n for (var i = 0; i < eventPropsArray.length; i++) {\r\n this.updateEvent(eventPropsArray[i]);\r\n }\r\n this.eventManager.thaw();\r\n };\r\n Calendar.prototype.updateEvent = function (eventProps) {\r\n var eventDef = this.eventManager.getEventDefByUid(eventProps._id);\r\n var eventInstance;\r\n var eventDefMutation;\r\n if (eventDef instanceof SingleEventDef_1.default) {\r\n eventInstance = eventDef.buildInstance();\r\n eventDefMutation = EventDefMutation_1.default.createFromRawProps(eventInstance, eventProps, // raw props\r\n null // largeUnit -- who uses it?\r\n );\r\n this.eventManager.mutateEventsWithId(eventDef.id, eventDefMutation); // will release\r\n }\r\n };\r\n // Public Event Sources API\r\n // ------------------------------------------------------------------------------------\r\n Calendar.prototype.getEventSources = function () {\r\n return this.eventManager.otherSources.slice(); // clone\r\n };\r\n Calendar.prototype.getEventSourceById = function (id) {\r\n return this.eventManager.getSourceById(EventSource_1.default.normalizeId(id));\r\n };\r\n Calendar.prototype.addEventSource = function (sourceInput) {\r\n var source = EventSourceParser_1.default.parse(sourceInput, this);\r\n if (source) {\r\n this.eventManager.addSource(source);\r\n }\r\n };\r\n Calendar.prototype.removeEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources;\r\n var i;\r\n if (sourceMultiQuery == null) {\r\n this.eventManager.removeAllSources();\r\n }\r\n else {\r\n sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n }\r\n };\r\n Calendar.prototype.removeEventSource = function (sourceQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.querySources(sourceQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.removeSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n Calendar.prototype.refetchEventSources = function (sourceMultiQuery) {\r\n var eventManager = this.eventManager;\r\n var sources = eventManager.multiQuerySources(sourceMultiQuery);\r\n var i;\r\n eventManager.freeze();\r\n for (i = 0; i < sources.length; i++) {\r\n eventManager.refetchSource(sources[i]);\r\n }\r\n eventManager.thaw();\r\n };\r\n // not for internal use. use options module directly instead.\r\n Calendar.defaults = options_1.globalDefaults;\r\n Calendar.englishDefaults = options_1.englishDefaults;\r\n Calendar.rtlDefaults = options_1.rtlDefaults;\r\n return Calendar;\r\n}());\r\nexports.default = Calendar;\r\nEmitterMixin_1.default.mixInto(Calendar);\r\nListenerMixin_1.default.mixInto(Calendar);\r\nfunction filterLegacyEventInstances(legacyEventInstances, legacyQuery) {\r\n if (legacyQuery == null) {\r\n return legacyEventInstances;\r\n }\r\n else if ($.isFunction(legacyQuery)) {\r\n return legacyEventInstances.filter(legacyQuery);\r\n }\r\n else {\r\n legacyQuery += ''; // normalize to string\r\n return legacyEventInstances.filter(function (legacyEventInstance) {\r\n // soft comparison because id not be normalized to string\r\n // tslint:disable-next-line\r\n return legacyEventInstance.id == legacyQuery ||\r\n legacyEventInstance._id === legacyQuery; // can specify internal id, but must exactly match\r\n });\r\n }\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 221 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator = /** @class */ (function () {\r\n function DateProfileGenerator(_view) {\r\n this._view = _view;\r\n }\r\n DateProfileGenerator.prototype.opt = function (name) {\r\n return this._view.opt(name);\r\n };\r\n DateProfileGenerator.prototype.trimHiddenDays = function (unzonedRange) {\r\n return this._view.trimHiddenDays(unzonedRange);\r\n };\r\n DateProfileGenerator.prototype.msToUtcMoment = function (ms, forceAllDay) {\r\n return this._view.calendar.msToUtcMoment(ms, forceAllDay);\r\n };\r\n /* Date Range Computation\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\r\n DateProfileGenerator.prototype.buildPrev = function (currentDateProfile) {\r\n var prevDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .subtract(currentDateProfile.dateIncrement);\r\n return this.build(prevDate, -1);\r\n };\r\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\r\n DateProfileGenerator.prototype.buildNext = function (currentDateProfile) {\r\n var nextDate = currentDateProfile.date.clone()\r\n .startOf(currentDateProfile.currentRangeUnit)\r\n .add(currentDateProfile.dateIncrement);\r\n return this.build(nextDate, 1);\r\n };\r\n // Builds a structure holding dates/ranges for rendering around the given date.\r\n // Optional direction param indicates whether the date is being incremented/decremented\r\n // from its previous value. decremented = -1, incremented = 1 (default).\r\n DateProfileGenerator.prototype.build = function (date, direction, forceToValid) {\r\n if (forceToValid === void 0) { forceToValid = false; }\r\n var isDateAllDay = !date.hasTime();\r\n var validUnzonedRange;\r\n var minTime = null;\r\n var maxTime = null;\r\n var currentInfo;\r\n var isRangeAllDay;\r\n var renderUnzonedRange;\r\n var activeUnzonedRange;\r\n var isValid;\r\n validUnzonedRange = this.buildValidRange();\r\n validUnzonedRange = this.trimHiddenDays(validUnzonedRange);\r\n if (forceToValid) {\r\n date = this.msToUtcMoment(validUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n currentInfo = this.buildCurrentRangeInfo(date, direction);\r\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\r\n renderUnzonedRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.unzonedRange), currentInfo.unit, isRangeAllDay);\r\n renderUnzonedRange = this.trimHiddenDays(renderUnzonedRange);\r\n activeUnzonedRange = renderUnzonedRange.clone();\r\n if (!this.opt('showNonCurrentDates')) {\r\n activeUnzonedRange = activeUnzonedRange.intersect(currentInfo.unzonedRange);\r\n }\r\n minTime = moment.duration(this.opt('minTime'));\r\n maxTime = moment.duration(this.opt('maxTime'));\r\n activeUnzonedRange = this.adjustActiveRange(activeUnzonedRange, minTime, maxTime);\r\n activeUnzonedRange = activeUnzonedRange.intersect(validUnzonedRange); // might return null\r\n if (activeUnzonedRange) {\r\n date = this.msToUtcMoment(activeUnzonedRange.constrainDate(date), // returns MS\r\n isDateAllDay);\r\n }\r\n // it's invalid if the originally requested date is not contained,\r\n // or if the range is completely outside of the valid range.\r\n isValid = currentInfo.unzonedRange.intersectsWith(validUnzonedRange);\r\n return {\r\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\r\n // an object with optional start and end properties.\r\n validUnzonedRange: validUnzonedRange,\r\n // range the view is formally responsible for.\r\n // for example, a month view might have 1st-31st, excluding padded dates\r\n currentUnzonedRange: currentInfo.unzonedRange,\r\n // name of largest unit being displayed, like \"month\" or \"week\"\r\n currentRangeUnit: currentInfo.unit,\r\n isRangeAllDay: isRangeAllDay,\r\n // dates that display events and accept drag-n-drop\r\n // will be `null` if no dates accept events\r\n activeUnzonedRange: activeUnzonedRange,\r\n // date range with a rendered skeleton\r\n // includes not-active days that need some sort of DOM\r\n renderUnzonedRange: renderUnzonedRange,\r\n // Duration object that denotes the first visible time of any given day\r\n minTime: minTime,\r\n // Duration object that denotes the exclusive visible end time of any given day\r\n maxTime: maxTime,\r\n isValid: isValid,\r\n date: date,\r\n // how far the current date will move for a prev/next operation\r\n dateIncrement: this.buildDateIncrement(currentInfo.duration)\r\n // pass a fallback (might be null) ^\r\n };\r\n };\r\n // Builds an object with optional start/end properties.\r\n // Indicates the minimum/maximum dates to display.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildValidRange = function () {\r\n return this._view.getUnzonedRangeOption('validRange', this._view.calendar.getNow()) ||\r\n new UnzonedRange_1.default(); // completely open-ended\r\n };\r\n // Builds a structure with info about the \"current\" range, the range that is\r\n // highlighted as being the current month for example.\r\n // See build() for a description of `direction`.\r\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCurrentRangeInfo = function (date, direction) {\r\n var viewSpec = this._view.viewSpec;\r\n var duration = null;\r\n var unit = null;\r\n var unzonedRange = null;\r\n var dayCount;\r\n if (viewSpec.duration) {\r\n duration = viewSpec.duration;\r\n unit = viewSpec.durationUnit;\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n else if ((dayCount = this.opt('dayCount'))) {\r\n unit = 'day';\r\n unzonedRange = this.buildRangeFromDayCount(date, direction, dayCount);\r\n }\r\n else if ((unzonedRange = this.buildCustomVisibleRange(date))) {\r\n unit = util_1.computeGreatestUnit(unzonedRange.getStart(), unzonedRange.getEnd());\r\n }\r\n else {\r\n duration = this.getFallbackDuration();\r\n unit = util_1.computeGreatestUnit(duration);\r\n unzonedRange = this.buildRangeFromDuration(date, direction, duration, unit);\r\n }\r\n return { duration: duration, unit: unit, unzonedRange: unzonedRange };\r\n };\r\n DateProfileGenerator.prototype.getFallbackDuration = function () {\r\n return moment.duration({ days: 1 });\r\n };\r\n // Returns a new activeUnzonedRange to have time values (un-ambiguate)\r\n // minTime or maxTime causes the range to expand.\r\n DateProfileGenerator.prototype.adjustActiveRange = function (unzonedRange, minTime, maxTime) {\r\n var start = unzonedRange.getStart();\r\n var end = unzonedRange.getEnd();\r\n if (this._view.usesMinMaxTime) {\r\n if (minTime < 0) {\r\n start.time(0).add(minTime);\r\n }\r\n if (maxTime > 24 * 60 * 60 * 1000) {\r\n end.time(maxTime - (24 * 60 * 60 * 1000));\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds the \"current\" range when it is specified as an explicit duration.\r\n // `unit` is the already-computed computeGreatestUnit value of duration.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDuration = function (date, direction, duration, unit) {\r\n var alignment = this.opt('dateAlignment');\r\n var dateIncrementInput;\r\n var dateIncrementDuration;\r\n var start;\r\n var end;\r\n var res;\r\n // compute what the alignment should be\r\n if (!alignment) {\r\n dateIncrementInput = this.opt('dateIncrement');\r\n if (dateIncrementInput) {\r\n dateIncrementDuration = moment.duration(dateIncrementInput);\r\n // use the smaller of the two units\r\n if (dateIncrementDuration < duration) {\r\n alignment = util_1.computeDurationGreatestUnit(dateIncrementDuration, dateIncrementInput);\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n else {\r\n alignment = unit;\r\n }\r\n }\r\n // if the view displays a single day or smaller\r\n if (duration.as('days') <= 1) {\r\n if (this._view.isHiddenDay(start)) {\r\n start = this._view.skipHiddenDays(start, direction);\r\n start.startOf('day');\r\n }\r\n }\r\n function computeRes() {\r\n start = date.clone().startOf(alignment);\r\n end = start.clone().add(duration);\r\n res = new UnzonedRange_1.default(start, end);\r\n }\r\n computeRes();\r\n // if range is completely enveloped by hidden days, go past the hidden days\r\n if (!this.trimHiddenDays(res)) {\r\n date = this._view.skipHiddenDays(date, direction);\r\n computeRes();\r\n }\r\n return res;\r\n };\r\n // Builds the \"current\" range when a dayCount is specified.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildRangeFromDayCount = function (date, direction, dayCount) {\r\n var customAlignment = this.opt('dateAlignment');\r\n var runningCount = 0;\r\n var start = date.clone();\r\n var end;\r\n if (customAlignment) {\r\n start.startOf(customAlignment);\r\n }\r\n start.startOf('day');\r\n start = this._view.skipHiddenDays(start, direction);\r\n end = start.clone();\r\n do {\r\n end.add(1, 'day');\r\n if (!this._view.isHiddenDay(end)) {\r\n runningCount++;\r\n }\r\n } while (runningCount < dayCount);\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n // Builds a normalized range object for the \"visible\" range,\r\n // which is a way to define the currentUnzonedRange and activeUnzonedRange at the same time.\r\n // TODO: accept a MS-time instead of a moment `date`?\r\n DateProfileGenerator.prototype.buildCustomVisibleRange = function (date) {\r\n var visibleUnzonedRange = this._view.getUnzonedRangeOption('visibleRange', this._view.calendar.applyTimezone(date) // correct zone. also generates new obj that avoids mutations\r\n );\r\n if (visibleUnzonedRange && (visibleUnzonedRange.startMs == null || visibleUnzonedRange.endMs == null)) {\r\n return null;\r\n }\r\n return visibleUnzonedRange;\r\n };\r\n // Computes the range that will represent the element/cells for *rendering*,\r\n // but which may have voided days/times.\r\n // not responsible for trimming hidden days.\r\n DateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n return currentUnzonedRange.clone();\r\n };\r\n // Compute the duration value that should be added/substracted to the current date\r\n // when a prev/next operation happens.\r\n DateProfileGenerator.prototype.buildDateIncrement = function (fallback) {\r\n var dateIncrementInput = this.opt('dateIncrement');\r\n var customAlignment;\r\n if (dateIncrementInput) {\r\n return moment.duration(dateIncrementInput);\r\n }\r\n else if ((customAlignment = this.opt('dateAlignment'))) {\r\n return moment.duration(1, customAlignment);\r\n }\r\n else if (fallback) {\r\n return fallback;\r\n }\r\n else {\r\n return moment.duration({ days: 1 });\r\n }\r\n };\r\n return DateProfileGenerator;\r\n}());\r\nexports.default = DateProfileGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 222 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar exportHooks = __webpack_require__(16);\r\nvar util_1 = __webpack_require__(4);\r\nvar moment_ext_1 = __webpack_require__(10);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar ExternalDropping = /** @class */ (function (_super) {\r\n tslib_1.__extends(ExternalDropping, _super);\r\n function ExternalDropping() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.isDragging = false; // jqui-dragging an external element? boolean\r\n return _this;\r\n }\r\n /*\r\n component impements:\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - isExternalInstanceGroupAllowed\r\n - renderDrag\r\n - unrenderDrag\r\n */\r\n ExternalDropping.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n ExternalDropping.prototype.bindToDocument = function () {\r\n this.listenTo($(document), {\r\n dragstart: this.handleDragStart,\r\n sortstart: this.handleDragStart // jqui\r\n });\r\n };\r\n ExternalDropping.prototype.unbindFromDocument = function () {\r\n this.stopListeningTo($(document));\r\n };\r\n // Called when a jQuery UI drag is initiated anywhere in the DOM\r\n ExternalDropping.prototype.handleDragStart = function (ev, ui) {\r\n var el;\r\n var accept;\r\n if (this.opt('droppable')) {\r\n el = $((ui ? ui.item : null) || ev.target);\r\n // Test that the dragged element passes the dropAccept selector or filter function.\r\n // FYI, the default is \"*\" (matches all)\r\n accept = this.opt('dropAccept');\r\n if ($.isFunction(accept) ? accept.call(el[0], el) : el.is(accept)) {\r\n if (!this.isDragging) {\r\n this.listenToExternalDrag(el, ev, ui);\r\n }\r\n }\r\n }\r\n };\r\n // Called when a jQuery UI drag starts and it needs to be monitored for dropping\r\n ExternalDropping.prototype.listenToExternalDrag = function (el, ev, ui) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var meta = getDraggedElMeta(el); // extra data about event drop, including possible event to create\r\n var singleEventDef; // a null value signals an unsuccessful drag\r\n // listener that tracks mouse movement over date-associated pixel regions\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n interactionStart: function () {\r\n _this.isDragging = true;\r\n },\r\n hitOver: function (hit) {\r\n var isAllowed = true;\r\n var hitFootprint = hit.component.getSafeHitFootprint(hit); // hit might not belong to this grid\r\n var mutatedEventInstanceGroup;\r\n if (hitFootprint) {\r\n singleEventDef = _this.computeExternalDrop(hitFootprint, meta);\r\n if (singleEventDef) {\r\n mutatedEventInstanceGroup = new EventInstanceGroup_1.default(singleEventDef.buildInstances());\r\n isAllowed = meta.eventProps ? // isEvent?\r\n component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup) :\r\n component.isExternalInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n singleEventDef = null;\r\n util_1.disableCursor();\r\n }\r\n if (singleEventDef) {\r\n component.renderDrag(// called without a seg parameter\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, view.calendar)));\r\n }\r\n },\r\n hitOut: function () {\r\n singleEventDef = null; // signal unsuccessful\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n component.unrenderDrag();\r\n },\r\n interactionEnd: function (ev) {\r\n if (singleEventDef) {\r\n view.reportExternalDrop(singleEventDef, Boolean(meta.eventProps), // isEvent\r\n Boolean(meta.stick), // isSticky\r\n el, ev, ui);\r\n }\r\n _this.isDragging = false;\r\n _this.dragListener = null;\r\n }\r\n });\r\n dragListener.startDrag(ev); // start listening immediately\r\n };\r\n // Given a hit to be dropped upon, and misc data associated with the jqui drag (guaranteed to be a plain object),\r\n // returns the zoned start/end dates for the event that would result from the hypothetical drop. end might be null.\r\n // Returning a null value signals an invalid drop hit.\r\n // DOES NOT consider overlap/constraint.\r\n // Assumes both footprints are non-open-ended.\r\n ExternalDropping.prototype.computeExternalDrop = function (componentFootprint, meta) {\r\n var calendar = this.view.calendar;\r\n var start = moment_ext_1.default.utc(componentFootprint.unzonedRange.startMs).stripZone();\r\n var end;\r\n var eventDef;\r\n if (componentFootprint.isAllDay) {\r\n // if dropped on an all-day span, and element's metadata specified a time, set it\r\n if (meta.startTime) {\r\n start.time(meta.startTime);\r\n }\r\n else {\r\n start.stripTime();\r\n }\r\n }\r\n if (meta.duration) {\r\n end = start.clone().add(meta.duration);\r\n }\r\n start = calendar.applyTimezone(start);\r\n if (end) {\r\n end = calendar.applyTimezone(end);\r\n }\r\n eventDef = SingleEventDef_1.default.parse($.extend({}, meta.eventProps, {\r\n start: start,\r\n end: end\r\n }), new EventSource_1.default(calendar));\r\n return eventDef;\r\n };\r\n return ExternalDropping;\r\n}(Interaction_1.default));\r\nexports.default = ExternalDropping;\r\nListenerMixin_1.default.mixInto(ExternalDropping);\r\n/* External-Dragging-Element Data\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Require all HTML5 data-* attributes used by FullCalendar to have this prefix.\r\n// A value of '' will query attributes like data-event. A value of 'fc' will query attributes like data-fc-event.\r\nexportHooks.dataAttrPrefix = '';\r\n// Given a jQuery element that might represent a dragged FullCalendar event, returns an intermediate data structure\r\n// to be used for Event Object creation.\r\n// A defined `.eventProps`, even when empty, indicates that an event should be created.\r\nfunction getDraggedElMeta(el) {\r\n var prefix = exportHooks.dataAttrPrefix;\r\n var eventProps; // properties for creating the event, not related to date/time\r\n var startTime; // a Duration\r\n var duration;\r\n var stick;\r\n if (prefix) {\r\n prefix += '-';\r\n }\r\n eventProps = el.data(prefix + 'event') || null;\r\n if (eventProps) {\r\n if (typeof eventProps === 'object') {\r\n eventProps = $.extend({}, eventProps); // make a copy\r\n }\r\n else {\r\n eventProps = {};\r\n }\r\n // pluck special-cased date/time properties\r\n startTime = eventProps.start;\r\n if (startTime == null) {\r\n startTime = eventProps.time;\r\n } // accept 'time' as well\r\n duration = eventProps.duration;\r\n stick = eventProps.stick;\r\n delete eventProps.start;\r\n delete eventProps.time;\r\n delete eventProps.duration;\r\n delete eventProps.stick;\r\n }\r\n // fallback to standalone attribute values for each of the date/time properties\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'start');\r\n }\r\n if (startTime == null) {\r\n startTime = el.data(prefix + 'time');\r\n } // accept 'time' as well\r\n if (duration == null) {\r\n duration = el.data(prefix + 'duration');\r\n }\r\n if (stick == null) {\r\n stick = el.data(prefix + 'stick');\r\n }\r\n // massage into correct data types\r\n startTime = startTime != null ? moment.duration(startTime) : null;\r\n duration = duration != null ? moment.duration(duration) : null;\r\n stick = Boolean(stick);\r\n return { eventProps: eventProps, startTime: startTime, duration: duration, stick: stick };\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 223 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar EventResizing = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventResizing, _super);\r\n /*\r\n component impements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n - getSafeHitFootprint\r\n */\r\n function EventResizing(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isResizing = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventResizing.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventResizing.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMouseDown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventResizing.prototype.handleMouseDown = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventResizing.prototype.handleTouchStart = function (seg, ev) {\r\n if (this.component.canStartResize(seg, ev)) {\r\n this.buildDragListener(seg, $(ev.target).is('.fc-start-resizer'))\r\n .startInteraction(ev);\r\n }\r\n };\r\n // Creates a listener that tracks the user as they resize an event segment.\r\n // Generic enough to work with any type of Grid.\r\n EventResizing.prototype.buildDragListener = function (seg, isStart) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance;\r\n var isDragging;\r\n var resizeMutation; // zoned event date properties. falsy if invalid resize\r\n // Tracks mouse movement over the *grid's* coordinate map\r\n var dragListener = this.dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n interactionStart: function () {\r\n isDragging = false;\r\n },\r\n dragStart: function (ev) {\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segResizeStart(seg, ev);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origHitFootprint = component.getSafeHitFootprint(origHit);\r\n var hitFootprint = component.getSafeHitFootprint(hit);\r\n var mutatedEventInstanceGroup;\r\n if (origHitFootprint && hitFootprint) {\r\n resizeMutation = isStart ?\r\n _this.computeEventStartResizeMutation(origHitFootprint, hitFootprint, seg.footprint) :\r\n _this.computeEventEndResizeMutation(origHitFootprint, hitFootprint, seg.footprint);\r\n if (resizeMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, resizeMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n resizeMutation = null;\r\n util_1.disableCursor();\r\n }\r\n else if (resizeMutation.isEmpty()) {\r\n // no change. (FYI, event dates might have zones)\r\n resizeMutation = null;\r\n }\r\n if (resizeMutation) {\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n view.renderEventResize(component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg);\r\n }\r\n },\r\n hitOut: function () {\r\n resizeMutation = null;\r\n },\r\n hitDone: function () {\r\n view.unrenderEventResize(seg);\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n if (isDragging) {\r\n _this.segResizeStop(seg, ev);\r\n }\r\n if (resizeMutation) {\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventResize(eventInstance, resizeMutation, el, ev);\r\n }\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment resizing starts\r\n EventResizing.prototype.segResizeStart = function (seg, ev) {\r\n this.isResizing = true;\r\n this.component.publiclyTrigger('eventResizeStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment resizing stops\r\n EventResizing.prototype.segResizeStop = function (seg, ev) {\r\n this.isResizing = false;\r\n this.component.publiclyTrigger('eventResizeStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Returns new date-information for an event segment being resized from its start\r\n EventResizing.prototype.computeEventStartResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var startDelta = this.component.diffDates(endFootprint.unzonedRange.getStart(), startFootprint.unzonedRange.getStart());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getStart().add(startDelta) < origRange.getEnd()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setStartDelta(startDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n // Returns new date-information for an event segment being resized from its end\r\n EventResizing.prototype.computeEventEndResizeMutation = function (startFootprint, endFootprint, origEventFootprint) {\r\n var origRange = origEventFootprint.componentFootprint.unzonedRange;\r\n var endDelta = this.component.diffDates(endFootprint.unzonedRange.getEnd(), startFootprint.unzonedRange.getEnd());\r\n var dateMutation;\r\n var eventDefMutation;\r\n if (origRange.getEnd().add(endDelta) > origRange.getStart()) {\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.setEndDelta(endDelta);\r\n eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(dateMutation);\r\n return eventDefMutation;\r\n }\r\n return false;\r\n };\r\n return EventResizing;\r\n}(Interaction_1.default));\r\nexports.default = EventResizing;\r\n\r\n\r\n/***/ }),\r\n/* 224 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventDefMutation_1 = __webpack_require__(37);\r\nvar EventDefDateMutation_1 = __webpack_require__(50);\r\nvar DragListener_1 = __webpack_require__(54);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar MouseFollower_1 = __webpack_require__(244);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar EventDragging = /** @class */ (function (_super) {\r\n tslib_1.__extends(EventDragging, _super);\r\n /*\r\n component implements:\r\n - bindSegHandlerToEl\r\n - publiclyTrigger\r\n - diffDates\r\n - eventRangesToEventFootprints\r\n - isEventInstanceGroupAllowed\r\n */\r\n function EventDragging(component, eventPointing) {\r\n var _this = _super.call(this, component) || this;\r\n _this.isDragging = false;\r\n _this.eventPointing = eventPointing;\r\n return _this;\r\n }\r\n EventDragging.prototype.end = function () {\r\n if (this.dragListener) {\r\n this.dragListener.endInteraction();\r\n }\r\n };\r\n EventDragging.prototype.getSelectionDelay = function () {\r\n var delay = this.opt('eventLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n EventDragging.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n component.bindSegHandlerToEl(el, 'mousedown', this.handleMousedown.bind(this));\r\n component.bindSegHandlerToEl(el, 'touchstart', this.handleTouchStart.bind(this));\r\n };\r\n EventDragging.prototype.handleMousedown = function (seg, ev) {\r\n if (!this.component.shouldIgnoreMouse() &&\r\n this.component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, { distance: 5 });\r\n }\r\n };\r\n EventDragging.prototype.handleTouchStart = function (seg, ev) {\r\n var component = this.component;\r\n var settings = {\r\n delay: this.view.isEventDefSelected(seg.footprint.eventDef) ? // already selected?\r\n 0 : this.getSelectionDelay()\r\n };\r\n if (component.canStartDrag(seg, ev)) {\r\n this.buildDragListener(seg).startInteraction(ev, settings);\r\n }\r\n else if (component.canStartSelection(seg, ev)) {\r\n this.buildSelectListener(seg).startInteraction(ev, settings);\r\n }\r\n };\r\n // seg isn't draggable, but let's use a generic DragListener\r\n // simply for the delay, so it can be selected.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildSelectListener = function (seg) {\r\n var _this = this;\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n var dragListener = this.dragListener = new DragListener_1.default({\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n },\r\n interactionEnd: function (ev) {\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Builds a listener that will track user-dragging on an event segment.\r\n // Generic enough to work with any type of Grid.\r\n // Has side effect of setting/unsetting `dragListener`\r\n EventDragging.prototype.buildDragListener = function (seg) {\r\n var _this = this;\r\n var component = this.component;\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var eventManager = calendar.eventManager;\r\n var el = seg.el;\r\n var eventDef = seg.footprint.eventDef;\r\n var eventInstance = seg.footprint.eventInstance; // null for inverse-background events\r\n var isDragging;\r\n var mouseFollower; // A clone of the original element that will move with the mouse\r\n var eventDefMutation;\r\n if (this.dragListener) {\r\n return this.dragListener;\r\n }\r\n // Tracks mouse movement over the *view's* coordinate map. Allows dragging and dropping between subcomponents\r\n // of the view.\r\n var dragListener = this.dragListener = new HitDragListener_1.default(view, {\r\n scroll: this.opt('dragScroll'),\r\n subjectEl: el,\r\n subjectCenter: true,\r\n interactionStart: function (ev) {\r\n seg.component = component; // for renderDrag\r\n isDragging = false;\r\n mouseFollower = new MouseFollower_1.default(seg.el, {\r\n additionalClass: 'fc-dragging',\r\n parentEl: view.el,\r\n opacity: dragListener.isTouch ? null : _this.opt('dragOpacity'),\r\n revertDuration: _this.opt('dragRevertDuration'),\r\n zIndex: 2 // one above the .fc-view\r\n });\r\n mouseFollower.hide(); // don't show until we know this is a real drag\r\n mouseFollower.start(ev);\r\n },\r\n dragStart: function (ev) {\r\n if (dragListener.isTouch &&\r\n !view.isEventDefSelected(eventDef) &&\r\n eventInstance) {\r\n // if not previously selected, will fire after a delay. then, select the event\r\n view.selectEventInstance(eventInstance);\r\n }\r\n isDragging = true;\r\n // ensure a mouseout on the manipulated event has been reported\r\n _this.eventPointing.handleMouseout(seg, ev);\r\n _this.segDragStart(seg, ev);\r\n view.hideEventsWithId(seg.footprint.eventDef.id);\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var isAllowed = true;\r\n var origFootprint;\r\n var footprint;\r\n var mutatedEventInstanceGroup;\r\n // starting hit could be forced (DayGrid.limit)\r\n if (seg.hit) {\r\n origHit = seg.hit;\r\n }\r\n // hit might not belong to this grid, so query origin grid\r\n origFootprint = origHit.component.getSafeHitFootprint(origHit);\r\n footprint = hit.component.getSafeHitFootprint(hit);\r\n if (origFootprint && footprint) {\r\n eventDefMutation = _this.computeEventDropMutation(origFootprint, footprint, eventDef);\r\n if (eventDefMutation) {\r\n mutatedEventInstanceGroup = eventManager.buildMutatedEventInstanceGroup(eventDef.id, eventDefMutation);\r\n isAllowed = component.isEventInstanceGroupAllowed(mutatedEventInstanceGroup);\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n }\r\n else {\r\n isAllowed = false;\r\n }\r\n if (!isAllowed) {\r\n eventDefMutation = null;\r\n util_1.disableCursor();\r\n }\r\n // if a valid drop location, have the subclass render a visual indication\r\n if (eventDefMutation &&\r\n view.renderDrag(// truthy if rendered something\r\n component.eventRangesToEventFootprints(mutatedEventInstanceGroup.sliceRenderRanges(component.dateProfile.renderUnzonedRange, calendar)), seg, dragListener.isTouch)) {\r\n mouseFollower.hide(); // if the subclass is already using a mock event \"helper\", hide our own\r\n }\r\n else {\r\n mouseFollower.show(); // otherwise, have the helper follow the mouse (no snapping)\r\n }\r\n if (isOrig) {\r\n // needs to have moved hits to be a valid drop\r\n eventDefMutation = null;\r\n }\r\n },\r\n hitOut: function () {\r\n view.unrenderDrag(seg); // unrender whatever was done in renderDrag\r\n mouseFollower.show(); // show in case we are moving out of all hits\r\n eventDefMutation = null;\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev) {\r\n delete seg.component; // prevent side effects\r\n // do revert animation if hasn't changed. calls a callback when finished (whether animation or not)\r\n mouseFollower.stop(!eventDefMutation, function () {\r\n if (isDragging) {\r\n view.unrenderDrag(seg);\r\n _this.segDragStop(seg, ev);\r\n }\r\n view.showEventsWithId(seg.footprint.eventDef.id);\r\n if (eventDefMutation) {\r\n // no need to re-show original, will rerender all anyways. esp important if eventRenderWait\r\n view.reportEventDrop(eventInstance, eventDefMutation, el, ev);\r\n }\r\n });\r\n _this.dragListener = null;\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Called before event segment dragging starts\r\n EventDragging.prototype.segDragStart = function (seg, ev) {\r\n this.isDragging = true;\r\n this.component.publiclyTrigger('eventDragStart', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // Called after event segment dragging stops\r\n EventDragging.prototype.segDragStop = function (seg, ev) {\r\n this.isDragging = false;\r\n this.component.publiclyTrigger('eventDragStop', {\r\n context: seg.el[0],\r\n args: [\r\n seg.footprint.getEventLegacy(),\r\n ev,\r\n {},\r\n this.view\r\n ]\r\n });\r\n };\r\n // DOES NOT consider overlap/constraint\r\n EventDragging.prototype.computeEventDropMutation = function (startFootprint, endFootprint, eventDef) {\r\n var eventDefMutation = new EventDefMutation_1.default();\r\n eventDefMutation.setDateMutation(this.computeEventDateMutation(startFootprint, endFootprint));\r\n return eventDefMutation;\r\n };\r\n EventDragging.prototype.computeEventDateMutation = function (startFootprint, endFootprint) {\r\n var date0 = startFootprint.unzonedRange.getStart();\r\n var date1 = endFootprint.unzonedRange.getStart();\r\n var clearEnd = false;\r\n var forceTimed = false;\r\n var forceAllDay = false;\r\n var dateDelta;\r\n var dateMutation;\r\n if (startFootprint.isAllDay !== endFootprint.isAllDay) {\r\n clearEnd = true;\r\n if (endFootprint.isAllDay) {\r\n forceAllDay = true;\r\n date0.stripTime();\r\n }\r\n else {\r\n forceTimed = true;\r\n }\r\n }\r\n dateDelta = this.component.diffDates(date1, date0);\r\n dateMutation = new EventDefDateMutation_1.default();\r\n dateMutation.clearEnd = clearEnd;\r\n dateMutation.forceTimed = forceTimed;\r\n dateMutation.forceAllDay = forceAllDay;\r\n dateMutation.setDateDelta(dateDelta);\r\n return dateMutation;\r\n };\r\n return EventDragging;\r\n}(Interaction_1.default));\r\nexports.default = EventDragging;\r\n\r\n\r\n/***/ }),\r\n/* 225 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar DateSelecting = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateSelecting, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - renderHighlight\r\n - unrenderHighlight\r\n */\r\n function DateSelecting(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateSelecting.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateSelecting.prototype.getDelay = function () {\r\n var delay = this.opt('selectLongPressDelay');\r\n if (delay == null) {\r\n delay = this.opt('longPressDelay'); // fallback\r\n }\r\n return delay;\r\n };\r\n DateSelecting.prototype.bindToEl = function (el) {\r\n var _this = this;\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev, {\r\n distance: _this.opt('selectMinDistance')\r\n });\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (_this.opt('selectable') && !component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev, {\r\n delay: _this.getDelay()\r\n });\r\n }\r\n });\r\n util_1.preventSelection(el);\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day selecting.\r\n DateSelecting.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var selectionFootprint; // null if invalid selection\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n selectionFootprint = null;\r\n },\r\n dragStart: function (ev) {\r\n _this.view.unselect(ev); // since we could be rendering a new selection, we want to clear any old one\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n var origHitFootprint;\r\n var hitFootprint;\r\n if (origHit) {\r\n origHitFootprint = component.getSafeHitFootprint(origHit);\r\n hitFootprint = component.getSafeHitFootprint(hit);\r\n if (origHitFootprint && hitFootprint) {\r\n selectionFootprint = _this.computeSelection(origHitFootprint, hitFootprint);\r\n }\r\n else {\r\n selectionFootprint = null;\r\n }\r\n if (selectionFootprint) {\r\n component.renderSelectionFootprint(selectionFootprint);\r\n }\r\n else if (selectionFootprint === false) {\r\n util_1.disableCursor();\r\n }\r\n }\r\n },\r\n hitOut: function () {\r\n selectionFootprint = null;\r\n component.unrenderSelection();\r\n },\r\n hitDone: function () {\r\n util_1.enableCursor();\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n if (!isCancelled && selectionFootprint) {\r\n // the selection will already have been rendered. just report it\r\n _this.view.reportSelection(selectionFootprint, ev);\r\n }\r\n }\r\n });\r\n return dragListener;\r\n };\r\n // Given the first and last date-spans of a selection, returns another date-span object.\r\n // Subclasses can override and provide additional data in the span object. Will be passed to renderSelectionFootprint().\r\n // Will return false if the selection is invalid and this should be indicated to the user.\r\n // Will return null/undefined if a selection invalid but no error should be reported.\r\n DateSelecting.prototype.computeSelection = function (footprint0, footprint1) {\r\n var wholeFootprint = this.computeSelectionFootprint(footprint0, footprint1);\r\n if (wholeFootprint && !this.isSelectionFootprintAllowed(wholeFootprint)) {\r\n return false;\r\n }\r\n return wholeFootprint;\r\n };\r\n // Given two spans, must return the combination of the two.\r\n // TODO: do this separation of concerns (combining VS validation) for event dnd/resize too.\r\n // Assumes both footprints are non-open-ended.\r\n DateSelecting.prototype.computeSelectionFootprint = function (footprint0, footprint1) {\r\n var ms = [\r\n footprint0.unzonedRange.startMs,\r\n footprint0.unzonedRange.endMs,\r\n footprint1.unzonedRange.startMs,\r\n footprint1.unzonedRange.endMs\r\n ];\r\n ms.sort(util_1.compareNumbers);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(ms[0], ms[3]), footprint0.isAllDay);\r\n };\r\n DateSelecting.prototype.isSelectionFootprintAllowed = function (componentFootprint) {\r\n return this.component.dateProfile.validUnzonedRange.containsRange(componentFootprint.unzonedRange) &&\r\n this.view.calendar.constraints.isSelectionFootprintAllowed(componentFootprint);\r\n };\r\n return DateSelecting;\r\n}(Interaction_1.default));\r\nexports.default = DateSelecting;\r\n\r\n\r\n/***/ }),\r\n/* 226 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar View_1 = __webpack_require__(41);\r\nvar TimeGrid_1 = __webpack_require__(227);\r\nvar DayGrid_1 = __webpack_require__(61);\r\nvar AGENDA_ALL_DAY_EVENT_LIMIT = 5;\r\nvar agendaTimeGridMethods;\r\nvar agendaDayGridMethods;\r\n/* An abstract class for all agenda-related views. Displays one more columns with time slots running vertically.\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// Is a manager for the TimeGrid subcomponent and possibly the DayGrid subcomponent (if allDaySlot is on).\r\n// Responsible for managing width/height.\r\nvar AgendaView = /** @class */ (function (_super) {\r\n tslib_1.__extends(AgendaView, _super);\r\n function AgendaView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.usesMinMaxTime = true; // indicates that minTime/maxTime affects rendering\r\n _this.timeGrid = _this.instantiateTimeGrid();\r\n _this.addChild(_this.timeGrid);\r\n if (_this.opt('allDaySlot')) {\r\n _this.dayGrid = _this.instantiateDayGrid(); // the all-day subcomponent of this view\r\n _this.addChild(_this.dayGrid);\r\n }\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n // Instantiates the TimeGrid object this view needs. Draws from this.timeGridClass\r\n AgendaView.prototype.instantiateTimeGrid = function () {\r\n var timeGrid = new this.timeGridClass(this);\r\n util_1.copyOwnProps(agendaTimeGridMethods, timeGrid);\r\n return timeGrid;\r\n };\r\n // Instantiates the DayGrid object this view might need. Draws from this.dayGridClass\r\n AgendaView.prototype.instantiateDayGrid = function () {\r\n var dayGrid = new this.dayGridClass(this);\r\n util_1.copyOwnProps(agendaDayGridMethods, dayGrid);\r\n return dayGrid;\r\n };\r\n /* Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.renderSkeleton = function () {\r\n var timeGridWrapEl;\r\n var timeGridEl;\r\n this.el.addClass('fc-agenda-view').html(this.renderSkeletonHtml());\r\n this.scroller.render();\r\n timeGridWrapEl = this.scroller.el.addClass('fc-time-grid-container');\r\n timeGridEl = $('
').appendTo(timeGridWrapEl);\r\n this.el.find('.fc-body > tr > td').append(timeGridWrapEl);\r\n this.timeGrid.headContainerEl = this.el.find('.fc-head-container');\r\n this.timeGrid.setElement(timeGridEl);\r\n if (this.dayGrid) {\r\n this.dayGrid.setElement(this.el.find('.fc-day-grid'));\r\n // have the day-grid extend it's coordinate area over the
dividing the two grids\r\n this.dayGrid.bottomCoordPadding = this.dayGrid.el.next('hr').outerHeight();\r\n }\r\n };\r\n AgendaView.prototype.unrenderSkeleton = function () {\r\n this.timeGrid.removeElement();\r\n if (this.dayGrid) {\r\n this.dayGrid.removeElement();\r\n }\r\n this.scroller.destroy();\r\n };\r\n // Builds the HTML skeleton for the view.\r\n // The day-grid and time-grid components will render inside containers defined by this HTML.\r\n AgendaView.prototype.renderSkeletonHtml = function () {\r\n var theme = this.calendar.theme;\r\n return '' +\r\n '' +\r\n (this.opt('columnHeader') ?\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
 
' +\r\n (this.dayGrid ?\r\n '
' +\r\n '
' :\r\n '') +\r\n '
';\r\n };\r\n // Generates an HTML attribute string for setting the width of the axis, if it is known\r\n AgendaView.prototype.axisStyleAttr = function () {\r\n if (this.axisWidth != null) {\r\n return 'style=\"width:' + this.axisWidth + 'px\"';\r\n }\r\n return '';\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.getNowIndicatorUnit = function () {\r\n return this.timeGrid.getNowIndicatorUnit();\r\n };\r\n /* Dimensions\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Adjusts the vertical dimensions of the view to the specified values\r\n AgendaView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n var eventLimit;\r\n var scrollerHeight;\r\n var scrollbarWidths;\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n // make all axis cells line up, and record the width so newly created axis cells will have it\r\n this.axisWidth = util_1.matchCellWidths(this.el.find('.fc-axis'));\r\n // hack to give the view some height prior to timeGrid's columns being rendered\r\n // TODO: separate setting height from scroller VS timeGrid.\r\n if (!this.timeGrid.colEls) {\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n return;\r\n }\r\n // set of fake row elements that must compensate when scroller has scrollbars\r\n var noScrollRowEls = this.el.find('.fc-row:not(.fc-scroller *)');\r\n // reset all dimensions back to the original state\r\n this.timeGrid.bottomRuleEl.hide(); // .show() will be called later if this
is necessary\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n util_1.uncompensateScroll(noScrollRowEls);\r\n // limit number of events in the all-day area\r\n if (this.dayGrid) {\r\n this.dayGrid.removeSegPopover(); // kill the \"more\" popover if displayed\r\n eventLimit = this.opt('eventLimit');\r\n if (eventLimit && typeof eventLimit !== 'number') {\r\n eventLimit = AGENDA_ALL_DAY_EVENT_LIMIT; // make sure \"auto\" goes to a real number\r\n }\r\n if (eventLimit) {\r\n this.dayGrid.limitRows(eventLimit);\r\n }\r\n }\r\n if (!isAuto) {\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n scrollbarWidths = this.scroller.getScrollbarWidths();\r\n if (scrollbarWidths.left || scrollbarWidths.right) {\r\n // make the all-day and header rows lines up\r\n util_1.compensateScroll(noScrollRowEls, scrollbarWidths);\r\n // the scrollbar compensation might have changed text flow, which might affect height, so recalculate\r\n // and reapply the desired height to the scroller.\r\n scrollerHeight = this.computeScrollerHeight(totalHeight);\r\n this.scroller.setHeight(scrollerHeight);\r\n }\r\n // guarantees the same scrollbar widths\r\n this.scroller.lockOverflow(scrollbarWidths);\r\n // if there's any space below the slats, show the horizontal rule.\r\n // this won't cause any new overflow, because lockOverflow already called.\r\n if (this.timeGrid.getTotalSlatHeight() < scrollerHeight) {\r\n this.timeGrid.bottomRuleEl.show();\r\n }\r\n }\r\n };\r\n // given a desired total height of the view, returns what the height of the scroller should be\r\n AgendaView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n /* Scroll\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Computes the initial pre-configured scroll state prior to allowing the user to change it\r\n AgendaView.prototype.computeInitialDateScroll = function () {\r\n var scrollTime = moment.duration(this.opt('scrollTime'));\r\n var top = this.timeGrid.computeTimeTop(scrollTime);\r\n // zoom can give weird floating-point values. rather scroll a little bit further\r\n top = Math.ceil(top);\r\n if (top) {\r\n top++; // to overcome top border that slots beyond the first have. looks better\r\n }\r\n return { top: top };\r\n };\r\n AgendaView.prototype.queryDateScroll = function () {\r\n return { top: this.scroller.getScrollTop() };\r\n };\r\n AgendaView.prototype.applyDateScroll = function (scroll) {\r\n if (scroll.top !== undefined) {\r\n this.scroller.setScrollTop(scroll.top);\r\n }\r\n };\r\n /* Hit Areas\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // forward all hit-related method calls to the grids (dayGrid might not be defined)\r\n AgendaView.prototype.getHitFootprint = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitFootprint(hit);\r\n };\r\n AgendaView.prototype.getHitEl = function (hit) {\r\n // TODO: hit.component is set as a hack to identify where the hit came from\r\n return hit.component.getHitEl(hit);\r\n };\r\n /* Event Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n AgendaView.prototype.executeEventRender = function (eventsPayload) {\r\n var dayEventsPayload = {};\r\n var timedEventsPayload = {};\r\n var id;\r\n var eventInstanceGroup;\r\n // separate the events into all-day and timed\r\n for (id in eventsPayload) {\r\n eventInstanceGroup = eventsPayload[id];\r\n if (eventInstanceGroup.getEventDef().isAllDay()) {\r\n dayEventsPayload[id] = eventInstanceGroup;\r\n }\r\n else {\r\n timedEventsPayload[id] = eventInstanceGroup;\r\n }\r\n }\r\n this.timeGrid.executeEventRender(timedEventsPayload);\r\n if (this.dayGrid) {\r\n this.dayGrid.executeEventRender(dayEventsPayload);\r\n }\r\n };\r\n /* Dragging/Resizing Routing\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n AgendaView.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n var renderedHelper = false;\r\n renderedHelper = this.timeGrid.renderDrag(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n renderedHelper = this.dayGrid.renderDrag(groups.allDay, seg, isTouch) || renderedHelper;\r\n }\r\n return renderedHelper;\r\n };\r\n AgendaView.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n var groups = groupEventFootprintsByAllDay(eventFootprints);\r\n this.timeGrid.renderEventResize(groups.timed, seg, isTouch);\r\n if (this.dayGrid) {\r\n this.dayGrid.renderEventResize(groups.allDay, seg, isTouch);\r\n }\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection\r\n AgendaView.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (!componentFootprint.isAllDay) {\r\n this.timeGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n else if (this.dayGrid) {\r\n this.dayGrid.renderSelectionFootprint(componentFootprint);\r\n }\r\n };\r\n return AgendaView;\r\n}(View_1.default));\r\nexports.default = AgendaView;\r\nAgendaView.prototype.timeGridClass = TimeGrid_1.default;\r\nAgendaView.prototype.dayGridClass = DayGrid_1.default;\r\n// Will customize the rendering behavior of the AgendaView's timeGrid\r\nagendaTimeGridMethods = {\r\n // Generates the HTML that will go before the day-of week header cells\r\n renderHeadIntroHtml: function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var weekStart = calendar.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, true);\r\n var weekText;\r\n if (this.opt('weekNumbers')) {\r\n weekText = weekStart.format(this.opt('smallWeekFormat'));\r\n return '' +\r\n '' +\r\n view.buildGotoAnchorHtml(// aside from link, important for matchCellWidths\r\n { date: weekStart, type: 'week', forceOff: this.colCnt > 1 }, util_1.htmlEscape(weekText) // inner HTML\r\n ) +\r\n '';\r\n }\r\n else {\r\n return '';\r\n }\r\n },\r\n // Generates the HTML that goes before the bg of the TimeGrid slot area. Long vertical column.\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n }\r\n};\r\n// Will customize the rendering behavior of the AgendaView's dayGrid\r\nagendaDayGridMethods = {\r\n // Generates the HTML that goes before the all-day cells\r\n renderBgIntroHtml: function () {\r\n var view = this.view;\r\n return '' +\r\n '' +\r\n '' + // needed for matchCellWidths\r\n view.getAllDayHtml() +\r\n '' +\r\n '';\r\n },\r\n // Generates the HTML that goes before all other types of cells.\r\n // Affects content-skeleton, helper-skeleton, highlight-skeleton for both the time-grid and day-grid.\r\n renderIntroHtml: function () {\r\n var view = this.view;\r\n return '';\r\n }\r\n};\r\nfunction groupEventFootprintsByAllDay(eventFootprints) {\r\n var allDay = [];\r\n var timed = [];\r\n var i;\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n if (eventFootprints[i].componentFootprint.isAllDay) {\r\n allDay.push(eventFootprints[i]);\r\n }\r\n else {\r\n timed.push(eventFootprints[i]);\r\n }\r\n }\r\n return { allDay: allDay, timed: timed };\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 227 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar InteractiveDateComponent_1 = __webpack_require__(40);\r\nvar BusinessHourRenderer_1 = __webpack_require__(56);\r\nvar StandardInteractionsMixin_1 = __webpack_require__(60);\r\nvar DayTableMixin_1 = __webpack_require__(55);\r\nvar CoordCache_1 = __webpack_require__(53);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar ComponentFootprint_1 = __webpack_require__(12);\r\nvar TimeGridEventRenderer_1 = __webpack_require__(246);\r\nvar TimeGridHelperRenderer_1 = __webpack_require__(247);\r\nvar TimeGridFillRenderer_1 = __webpack_require__(248);\r\n/* A component that renders one or more columns of vertical time slots\r\n----------------------------------------------------------------------------------------------------------------------*/\r\n// We mixin DayTable, even though there is only a single row of days\r\n// potential nice values for the slot-duration and interval-duration\r\n// from largest to smallest\r\nvar AGENDA_STOCK_SUB_DURATIONS = [\r\n { hours: 1 },\r\n { minutes: 30 },\r\n { minutes: 15 },\r\n { seconds: 30 },\r\n { seconds: 15 }\r\n];\r\nvar TimeGrid = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGrid, _super);\r\n function TimeGrid(view) {\r\n var _this = _super.call(this, view) || this;\r\n _this.processOptions();\r\n return _this;\r\n }\r\n // Slices up the given span (unzoned start/end with other misc data) into an array of segments\r\n TimeGrid.prototype.componentFootprintToSegs = function (componentFootprint) {\r\n var segs = this.sliceRangeByTimes(componentFootprint.unzonedRange);\r\n var i;\r\n for (i = 0; i < segs.length; i++) {\r\n if (this.isRTL) {\r\n segs[i].col = this.daysPerRow - 1 - segs[i].dayIndex;\r\n }\r\n else {\r\n segs[i].col = segs[i].dayIndex;\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Date Handling\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.sliceRangeByTimes = function (unzonedRange) {\r\n var segs = [];\r\n var segRange;\r\n var dayIndex;\r\n for (dayIndex = 0; dayIndex < this.daysPerRow; dayIndex++) {\r\n segRange = unzonedRange.intersect(this.dayRanges[dayIndex]);\r\n if (segRange) {\r\n segs.push({\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n });\r\n }\r\n }\r\n return segs;\r\n };\r\n /* Options\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Parses various options into properties of this object\r\n TimeGrid.prototype.processOptions = function () {\r\n var slotDuration = this.opt('slotDuration');\r\n var snapDuration = this.opt('snapDuration');\r\n var input;\r\n slotDuration = moment.duration(slotDuration);\r\n snapDuration = snapDuration ? moment.duration(snapDuration) : slotDuration;\r\n this.slotDuration = slotDuration;\r\n this.snapDuration = snapDuration;\r\n this.snapsPerSlot = slotDuration / snapDuration; // TODO: ensure an integer multiple?\r\n // might be an array value (for TimelineView).\r\n // if so, getting the most granular entry (the last one probably).\r\n input = this.opt('slotLabelFormat');\r\n if ($.isArray(input)) {\r\n input = input[input.length - 1];\r\n }\r\n this.labelFormat = input ||\r\n this.opt('smallTimeFormat'); // the computed default\r\n input = this.opt('slotLabelInterval');\r\n this.labelInterval = input ?\r\n moment.duration(input) :\r\n this.computeLabelInterval(slotDuration);\r\n };\r\n // Computes an automatic value for slotLabelInterval\r\n TimeGrid.prototype.computeLabelInterval = function (slotDuration) {\r\n var i;\r\n var labelInterval;\r\n var slotsPerLabel;\r\n // find the smallest stock label interval that results in more than one slots-per-label\r\n for (i = AGENDA_STOCK_SUB_DURATIONS.length - 1; i >= 0; i--) {\r\n labelInterval = moment.duration(AGENDA_STOCK_SUB_DURATIONS[i]);\r\n slotsPerLabel = util_1.divideDurationByDuration(labelInterval, slotDuration);\r\n if (util_1.isInt(slotsPerLabel) && slotsPerLabel > 1) {\r\n return labelInterval;\r\n }\r\n }\r\n return moment.duration(slotDuration); // fall back. clone\r\n };\r\n /* Date Rendering\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.renderDates = function (dateProfile) {\r\n this.dateProfile = dateProfile;\r\n this.updateDayTable();\r\n this.renderSlats();\r\n this.renderColumns();\r\n };\r\n TimeGrid.prototype.unrenderDates = function () {\r\n // this.unrenderSlats(); // don't need this because repeated .html() calls clear\r\n this.unrenderColumns();\r\n };\r\n TimeGrid.prototype.renderSkeleton = function () {\r\n var theme = this.view.calendar.theme;\r\n this.el.html('
' +\r\n '
' +\r\n '
');\r\n this.bottomRuleEl = this.el.find('hr');\r\n };\r\n TimeGrid.prototype.renderSlats = function () {\r\n var theme = this.view.calendar.theme;\r\n this.slatContainerEl = this.el.find('> .fc-slats')\r\n .html(// avoids needing ::unrenderSlats()\r\n '' +\r\n this.renderSlatRowHtml() +\r\n '
');\r\n this.slatEls = this.slatContainerEl.find('tr');\r\n this.slatCoordCache = new CoordCache_1.default({\r\n els: this.slatEls,\r\n isVertical: true\r\n });\r\n };\r\n // Generates the HTML for the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\r\n TimeGrid.prototype.renderSlatRowHtml = function () {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var isRTL = this.isRTL;\r\n var dateProfile = this.dateProfile;\r\n var html = '';\r\n var slotTime = moment.duration(+dateProfile.minTime); // wish there was .clone() for durations\r\n var slotIterator = moment.duration(0);\r\n var slotDate; // will be on the view's first day, but we only care about its time\r\n var isLabeled;\r\n var axisHtml;\r\n // Calculate the time for each slot\r\n while (slotTime < dateProfile.maxTime) {\r\n slotDate = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs).time(slotTime);\r\n isLabeled = util_1.isInt(util_1.divideDurationByDuration(slotIterator, this.labelInterval));\r\n axisHtml =\r\n '' +\r\n (isLabeled ?\r\n '' + // for matchCellWidths\r\n util_1.htmlEscape(slotDate.format(this.labelFormat)) +\r\n '' :\r\n '') +\r\n '';\r\n html +=\r\n '' +\r\n (!isRTL ? axisHtml : '') +\r\n '' +\r\n (isRTL ? axisHtml : '') +\r\n '';\r\n slotTime.add(this.slotDuration);\r\n slotIterator.add(this.slotDuration);\r\n }\r\n return html;\r\n };\r\n TimeGrid.prototype.renderColumns = function () {\r\n var dateProfile = this.dateProfile;\r\n var theme = this.view.calendar.theme;\r\n this.dayRanges = this.dayDates.map(function (dayDate) {\r\n return new UnzonedRange_1.default(dayDate.clone().add(dateProfile.minTime), dayDate.clone().add(dateProfile.maxTime));\r\n });\r\n if (this.headContainerEl) {\r\n this.headContainerEl.html(this.renderHeadHtml());\r\n }\r\n this.el.find('> .fc-bg').html('' +\r\n this.renderBgTrHtml(0) + // row=0\r\n '
');\r\n this.colEls = this.el.find('.fc-day, .fc-disabled-day');\r\n this.colCoordCache = new CoordCache_1.default({\r\n els: this.colEls,\r\n isHorizontal: true\r\n });\r\n this.renderContentSkeleton();\r\n };\r\n TimeGrid.prototype.unrenderColumns = function () {\r\n this.unrenderContentSkeleton();\r\n };\r\n /* Content Skeleton\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders the DOM that the view's content will live in\r\n TimeGrid.prototype.renderContentSkeleton = function () {\r\n var cellHtml = '';\r\n var i;\r\n var skeletonEl;\r\n for (i = 0; i < this.colCnt; i++) {\r\n cellHtml +=\r\n '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '';\r\n }\r\n skeletonEl = this.contentSkeletonEl = $('
' +\r\n '' +\r\n '' + cellHtml + '' +\r\n '
' +\r\n '
');\r\n this.colContainerEls = skeletonEl.find('.fc-content-col');\r\n this.helperContainerEls = skeletonEl.find('.fc-helper-container');\r\n this.fgContainerEls = skeletonEl.find('.fc-event-container:not(.fc-helper-container)');\r\n this.bgContainerEls = skeletonEl.find('.fc-bgevent-container');\r\n this.highlightContainerEls = skeletonEl.find('.fc-highlight-container');\r\n this.businessContainerEls = skeletonEl.find('.fc-business-container');\r\n this.bookendCells(skeletonEl.find('tr')); // TODO: do this on string level\r\n this.el.append(skeletonEl);\r\n };\r\n TimeGrid.prototype.unrenderContentSkeleton = function () {\r\n if (this.contentSkeletonEl) {\r\n this.contentSkeletonEl.remove();\r\n this.contentSkeletonEl = null;\r\n this.colContainerEls = null;\r\n this.helperContainerEls = null;\r\n this.fgContainerEls = null;\r\n this.bgContainerEls = null;\r\n this.highlightContainerEls = null;\r\n this.businessContainerEls = null;\r\n }\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's col\r\n TimeGrid.prototype.groupSegsByCol = function (segs) {\r\n var segsByCol = [];\r\n var i;\r\n for (i = 0; i < this.colCnt; i++) {\r\n segsByCol.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segsByCol[segs[i].col].push(segs[i]);\r\n }\r\n return segsByCol;\r\n };\r\n // Given segments grouped by column, insert the segments' elements into a parallel array of container\r\n // elements, each living within a column.\r\n TimeGrid.prototype.attachSegsByCol = function (segsByCol, containerEls) {\r\n var col;\r\n var segs;\r\n var i;\r\n for (col = 0; col < this.colCnt; col++) {\r\n segs = segsByCol[col];\r\n for (i = 0; i < segs.length; i++) {\r\n containerEls.eq(col).append(segs[i].el);\r\n }\r\n }\r\n };\r\n /* Now Indicator\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.getNowIndicatorUnit = function () {\r\n return 'minute'; // will refresh on the minute\r\n };\r\n TimeGrid.prototype.renderNowIndicator = function (date) {\r\n // HACK: if date columns not ready for some reason (scheduler)\r\n if (!this.colContainerEls) {\r\n return;\r\n }\r\n // seg system might be overkill, but it handles scenario where line needs to be rendered\r\n // more than once because of columns with the same date (resources columns for example)\r\n var segs = this.componentFootprintToSegs(new ComponentFootprint_1.default(new UnzonedRange_1.default(date, date.valueOf() + 1), // protect against null range\r\n false // all-day\r\n ));\r\n var top = this.computeDateTop(date, date);\r\n var nodes = [];\r\n var i;\r\n // render lines within the columns\r\n for (i = 0; i < segs.length; i++) {\r\n nodes.push($('
')\r\n .css('top', top)\r\n .appendTo(this.colContainerEls.eq(segs[i].col))[0]);\r\n }\r\n // render an arrow over the axis\r\n if (segs.length > 0) {\r\n nodes.push($('
')\r\n .css('top', top)\r\n .appendTo(this.el.find('.fc-content-skeleton'))[0]);\r\n }\r\n this.nowIndicatorEls = $(nodes);\r\n };\r\n TimeGrid.prototype.unrenderNowIndicator = function () {\r\n if (this.nowIndicatorEls) {\r\n this.nowIndicatorEls.remove();\r\n this.nowIndicatorEls = null;\r\n }\r\n };\r\n /* Coordinates\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.slatCoordCache.build();\r\n if (isResize) {\r\n this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs || []));\r\n }\r\n };\r\n TimeGrid.prototype.getTotalSlatHeight = function () {\r\n return this.slatContainerEl.outerHeight();\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given date.\r\n // `ms` can be a millisecond UTC time OR a UTC moment.\r\n // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\r\n TimeGrid.prototype.computeDateTop = function (ms, startOfDayDate) {\r\n return this.computeTimeTop(moment.duration(ms - startOfDayDate.clone().stripTime()));\r\n };\r\n // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\r\n TimeGrid.prototype.computeTimeTop = function (time) {\r\n var len = this.slatEls.length;\r\n var dateProfile = this.dateProfile;\r\n var slatCoverage = (time - dateProfile.minTime) / this.slotDuration; // floating-point value of # of slots covered\r\n var slatIndex;\r\n var slatRemainder;\r\n // compute a floating-point number for how many slats should be progressed through.\r\n // from 0 to number of slats (inclusive)\r\n // constrained because minTime/maxTime might be customized.\r\n slatCoverage = Math.max(0, slatCoverage);\r\n slatCoverage = Math.min(len, slatCoverage);\r\n // an integer index of the furthest whole slat\r\n // from 0 to number slats (*exclusive*, so len-1)\r\n slatIndex = Math.floor(slatCoverage);\r\n slatIndex = Math.min(slatIndex, len - 1);\r\n // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\r\n // could be 1.0 if slatCoverage is covering *all* the slots\r\n slatRemainder = slatCoverage - slatIndex;\r\n return this.slatCoordCache.getTopPosition(slatIndex) +\r\n this.slatCoordCache.getHeight(slatIndex) * slatRemainder;\r\n };\r\n // Refreshes the CSS top/bottom coordinates for each segment element.\r\n // Works when called after initial render, after a window resize/zoom for example.\r\n TimeGrid.prototype.updateSegVerticals = function (segs) {\r\n this.computeSegVerticals(segs);\r\n this.assignSegVerticals(segs);\r\n };\r\n // For each segment in an array, computes and assigns its top and bottom properties\r\n TimeGrid.prototype.computeSegVerticals = function (segs) {\r\n var eventMinHeight = this.opt('agendaEventMinHeight');\r\n var i;\r\n var seg;\r\n var dayDate;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n dayDate = this.dayDates[seg.dayIndex];\r\n seg.top = this.computeDateTop(seg.startMs, dayDate);\r\n seg.bottom = Math.max(seg.top + eventMinHeight, this.computeDateTop(seg.endMs, dayDate));\r\n }\r\n };\r\n // Given segments that already have their top/bottom properties computed, applies those values to\r\n // the segments' elements.\r\n TimeGrid.prototype.assignSegVerticals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateSegVerticalCss(seg));\r\n }\r\n };\r\n // Generates an object with CSS properties for the top/bottom coordinates of a segment element\r\n TimeGrid.prototype.generateSegVerticalCss = function (seg) {\r\n return {\r\n top: seg.top,\r\n bottom: -seg.bottom // flipped because needs to be space beyond bottom edge of event container\r\n };\r\n };\r\n /* Hit System\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n TimeGrid.prototype.prepareHits = function () {\r\n this.colCoordCache.build();\r\n this.slatCoordCache.build();\r\n };\r\n TimeGrid.prototype.releaseHits = function () {\r\n this.colCoordCache.clear();\r\n // NOTE: don't clear slatCoordCache because we rely on it for computeTimeTop\r\n };\r\n TimeGrid.prototype.queryHit = function (leftOffset, topOffset) {\r\n var snapsPerSlot = this.snapsPerSlot;\r\n var colCoordCache = this.colCoordCache;\r\n var slatCoordCache = this.slatCoordCache;\r\n if (colCoordCache.isLeftInBounds(leftOffset) && slatCoordCache.isTopInBounds(topOffset)) {\r\n var colIndex = colCoordCache.getHorizontalIndex(leftOffset);\r\n var slatIndex = slatCoordCache.getVerticalIndex(topOffset);\r\n if (colIndex != null && slatIndex != null) {\r\n var slatTop = slatCoordCache.getTopOffset(slatIndex);\r\n var slatHeight = slatCoordCache.getHeight(slatIndex);\r\n var partial = (topOffset - slatTop) / slatHeight; // floating point number between 0 and 1\r\n var localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\r\n var snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\r\n var snapTop = slatTop + (localSnapIndex / snapsPerSlot) * slatHeight;\r\n var snapBottom = slatTop + ((localSnapIndex + 1) / snapsPerSlot) * slatHeight;\r\n return {\r\n col: colIndex,\r\n snap: snapIndex,\r\n component: this,\r\n left: colCoordCache.getLeftOffset(colIndex),\r\n right: colCoordCache.getRightOffset(colIndex),\r\n top: snapTop,\r\n bottom: snapBottom\r\n };\r\n }\r\n }\r\n };\r\n TimeGrid.prototype.getHitFootprint = function (hit) {\r\n var start = this.getCellDate(0, hit.col); // row=0\r\n var time = this.computeSnapTime(hit.snap); // pass in the snap-index\r\n var end;\r\n start.time(time);\r\n end = start.clone().add(this.snapDuration);\r\n return new ComponentFootprint_1.default(new UnzonedRange_1.default(start, end), false // all-day?\r\n );\r\n };\r\n // Given a row number of the grid, representing a \"snap\", returns a time (Duration) from its start-of-day\r\n TimeGrid.prototype.computeSnapTime = function (snapIndex) {\r\n return moment.duration(this.dateProfile.minTime + this.snapDuration * snapIndex);\r\n };\r\n TimeGrid.prototype.getHitEl = function (hit) {\r\n return this.colEls.eq(hit.col);\r\n };\r\n /* Event Drag Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being dragged over the specified date(s).\r\n // A returned value of `true` signals that a mock \"helper\" event has been rendered.\r\n TimeGrid.prototype.renderDrag = function (eventFootprints, seg, isTouch) {\r\n var i;\r\n if (seg) {\r\n if (eventFootprints.length) {\r\n this.helperRenderer.renderEventDraggingFootprints(eventFootprints, seg, isTouch);\r\n // signal that a helper has been rendered\r\n return true;\r\n }\r\n }\r\n else {\r\n for (i = 0; i < eventFootprints.length; i++) {\r\n this.renderHighlight(eventFootprints[i].componentFootprint);\r\n }\r\n }\r\n };\r\n // Unrenders any visual indication of an event being dragged\r\n TimeGrid.prototype.unrenderDrag = function () {\r\n this.unrenderHighlight();\r\n this.helperRenderer.unrender();\r\n };\r\n /* Event Resize Visualization\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of an event being resized\r\n TimeGrid.prototype.renderEventResize = function (eventFootprints, seg, isTouch) {\r\n this.helperRenderer.renderEventResizingFootprints(eventFootprints, seg, isTouch);\r\n };\r\n // Unrenders any visual indication of an event being resized\r\n TimeGrid.prototype.unrenderEventResize = function () {\r\n this.helperRenderer.unrender();\r\n };\r\n /* Selection\r\n ------------------------------------------------------------------------------------------------------------------*/\r\n // Renders a visual indication of a selection. Overrides the default, which was to simply render a highlight.\r\n TimeGrid.prototype.renderSelectionFootprint = function (componentFootprint) {\r\n if (this.opt('selectHelper')) {\r\n this.helperRenderer.renderComponentFootprint(componentFootprint);\r\n }\r\n else {\r\n this.renderHighlight(componentFootprint);\r\n }\r\n };\r\n // Unrenders any visual indication of a selection\r\n TimeGrid.prototype.unrenderSelection = function () {\r\n this.helperRenderer.unrender();\r\n this.unrenderHighlight();\r\n };\r\n return TimeGrid;\r\n}(InteractiveDateComponent_1.default));\r\nexports.default = TimeGrid;\r\nTimeGrid.prototype.eventRendererClass = TimeGridEventRenderer_1.default;\r\nTimeGrid.prototype.businessHourRendererClass = BusinessHourRenderer_1.default;\r\nTimeGrid.prototype.helperRendererClass = TimeGridHelperRenderer_1.default;\r\nTimeGrid.prototype.fillRendererClass = TimeGridFillRenderer_1.default;\r\nStandardInteractionsMixin_1.default.mixInto(TimeGrid);\r\nDayTableMixin_1.default.mixInto(TimeGrid);\r\n\r\n\r\n/***/ }),\r\n/* 228 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar DateProfileGenerator_1 = __webpack_require__(221);\r\nvar BasicViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(BasicViewDateProfileGenerator, _super);\r\n function BasicViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n BasicViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay); // an UnzonedRange\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n // year and month views should be aligned with weeks. this is already done for week\r\n if (/^(year|month)$/.test(currentRangeUnit)) {\r\n start.startOf('week');\r\n // make end-of-week if not already\r\n if (end.weekday()) {\r\n end.add(1, 'week').startOf('week'); // exclusively move backwards\r\n }\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return BasicViewDateProfileGenerator;\r\n}(DateProfileGenerator_1.default));\r\nexports.default = BasicViewDateProfileGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 229 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar moment = __webpack_require__(0);\r\nvar util_1 = __webpack_require__(4);\r\nvar BasicView_1 = __webpack_require__(62);\r\nvar MonthViewDateProfileGenerator_1 = __webpack_require__(253);\r\n/* A month view with day cells running in rows (one-per-week) and columns\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MonthView = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthView, _super);\r\n function MonthView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Overrides the default BasicView behavior to have special multi-week auto-height logic\r\n MonthView.prototype.setGridHeight = function (height, isAuto) {\r\n // if auto, make the height of each row the height that it would be if there were 6 weeks\r\n if (isAuto) {\r\n height *= this.dayGrid.rowCnt / 6;\r\n }\r\n util_1.distributeHeight(this.dayGrid.rowEls, height, !isAuto); // if auto, don't compensate for height-hogging rows\r\n };\r\n MonthView.prototype.isDateInOtherMonth = function (date, dateProfile) {\r\n return date.month() !== moment.utc(dateProfile.currentUnzonedRange.startMs).month(); // TODO: optimize\r\n };\r\n return MonthView;\r\n}(BasicView_1.default));\r\nexports.default = MonthView;\r\nMonthView.prototype.dateProfileGeneratorClass = MonthViewDateProfileGenerator_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 230 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar View_1 = __webpack_require__(41);\r\nvar Scroller_1 = __webpack_require__(39);\r\nvar ListEventRenderer_1 = __webpack_require__(254);\r\nvar ListEventPointing_1 = __webpack_require__(255);\r\n/*\r\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\r\n*/\r\nvar ListView = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListView, _super);\r\n function ListView(calendar, viewSpec) {\r\n var _this = _super.call(this, calendar, viewSpec) || this;\r\n _this.segSelector = '.fc-list-item'; // which elements accept event actions\r\n _this.scroller = new Scroller_1.default({\r\n overflowX: 'hidden',\r\n overflowY: 'auto'\r\n });\r\n return _this;\r\n }\r\n ListView.prototype.renderSkeleton = function () {\r\n this.el.addClass('fc-list-view ' +\r\n this.calendar.theme.getClass('listView'));\r\n this.scroller.render();\r\n this.scroller.el.appendTo(this.el);\r\n this.contentEl = this.scroller.scrollEl; // shortcut\r\n };\r\n ListView.prototype.unrenderSkeleton = function () {\r\n this.scroller.destroy(); // will remove the Grid too\r\n };\r\n ListView.prototype.updateSize = function (totalHeight, isAuto, isResize) {\r\n _super.prototype.updateSize.call(this, totalHeight, isAuto, isResize);\r\n this.scroller.clear(); // sets height to 'auto' and clears overflow\r\n if (!isAuto) {\r\n this.scroller.setHeight(this.computeScrollerHeight(totalHeight));\r\n }\r\n };\r\n ListView.prototype.computeScrollerHeight = function (totalHeight) {\r\n return totalHeight -\r\n util_1.subtractInnerElHeight(this.el, this.scroller.el); // everything that's NOT the scroller\r\n };\r\n ListView.prototype.renderDates = function (dateProfile) {\r\n var calendar = this.calendar;\r\n var dayStart = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.startMs, true);\r\n var viewEnd = calendar.msToUtcMoment(dateProfile.renderUnzonedRange.endMs, true);\r\n var dayDates = [];\r\n var dayRanges = [];\r\n while (dayStart < viewEnd) {\r\n dayDates.push(dayStart.clone());\r\n dayRanges.push(new UnzonedRange_1.default(dayStart, dayStart.clone().add(1, 'day')));\r\n dayStart.add(1, 'day');\r\n }\r\n this.dayDates = dayDates;\r\n this.dayRanges = dayRanges;\r\n // all real rendering happens in EventRenderer\r\n };\r\n // slices by day\r\n ListView.prototype.componentFootprintToSegs = function (footprint) {\r\n var dayRanges = this.dayRanges;\r\n var dayIndex;\r\n var segRange;\r\n var seg;\r\n var segs = [];\r\n for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex++) {\r\n segRange = footprint.unzonedRange.intersect(dayRanges[dayIndex]);\r\n if (segRange) {\r\n seg = {\r\n startMs: segRange.startMs,\r\n endMs: segRange.endMs,\r\n isStart: segRange.isStart,\r\n isEnd: segRange.isEnd,\r\n dayIndex: dayIndex\r\n };\r\n segs.push(seg);\r\n // detect when footprint won't go fully into the next day,\r\n // and mutate the latest seg to the be the end.\r\n if (!seg.isEnd && !footprint.isAllDay &&\r\n dayIndex + 1 < dayRanges.length &&\r\n footprint.unzonedRange.endMs < dayRanges[dayIndex + 1].startMs + this.nextDayThreshold) {\r\n seg.endMs = footprint.unzonedRange.endMs;\r\n seg.isEnd = true;\r\n break;\r\n }\r\n }\r\n }\r\n return segs;\r\n };\r\n ListView.prototype.renderEmptyMessage = function () {\r\n this.contentEl.html('
' + // TODO: try less wraps\r\n '
' +\r\n '
' +\r\n util_1.htmlEscape(this.opt('noEventsMessage')) +\r\n '
' +\r\n '
' +\r\n '
');\r\n };\r\n // render the event segments in the view\r\n ListView.prototype.renderSegList = function (allSegs) {\r\n var segsByDay = this.groupSegsByDay(allSegs); // sparse array\r\n var dayIndex;\r\n var daySegs;\r\n var i;\r\n var tableEl = $('
');\r\n var tbodyEl = tableEl.find('tbody');\r\n for (dayIndex = 0; dayIndex < segsByDay.length; dayIndex++) {\r\n daySegs = segsByDay[dayIndex];\r\n if (daySegs) {\r\n // append a day header\r\n tbodyEl.append(this.dayHeaderHtml(this.dayDates[dayIndex]));\r\n this.eventRenderer.sortEventSegs(daySegs);\r\n for (i = 0; i < daySegs.length; i++) {\r\n tbodyEl.append(daySegs[i].el); // append event row\r\n }\r\n }\r\n }\r\n this.contentEl.empty().append(tableEl);\r\n };\r\n // Returns a sparse array of arrays, segs grouped by their dayIndex\r\n ListView.prototype.groupSegsByDay = function (segs) {\r\n var segsByDay = []; // sparse array\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = []))\r\n .push(seg);\r\n }\r\n return segsByDay;\r\n };\r\n // generates the HTML for the day headers that live amongst the event rows\r\n ListView.prototype.dayHeaderHtml = function (dayDate) {\r\n var mainFormat = this.opt('listDayFormat');\r\n var altFormat = this.opt('listDayAltFormat');\r\n return '' +\r\n '' +\r\n (mainFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-main' }, util_1.htmlEscape(dayDate.format(mainFormat)) // inner HTML\r\n ) :\r\n '') +\r\n (altFormat ?\r\n this.buildGotoAnchorHtml(dayDate, { 'class': 'fc-list-heading-alt' }, util_1.htmlEscape(dayDate.format(altFormat)) // inner HTML\r\n ) :\r\n '') +\r\n '' +\r\n '';\r\n };\r\n return ListView;\r\n}(View_1.default));\r\nexports.default = ListView;\r\nListView.prototype.eventRendererClass = ListEventRenderer_1.default;\r\nListView.prototype.eventPointingClass = ListEventPointing_1.default;\r\n\r\n\r\n/***/ }),\r\n/* 231 */,\r\n/* 232 */,\r\n/* 233 */,\r\n/* 234 */,\r\n/* 235 */,\r\n/* 236 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nvar $ = __webpack_require__(3);\r\nvar exportHooks = __webpack_require__(16);\r\nvar util_1 = __webpack_require__(4);\r\nvar Calendar_1 = __webpack_require__(220);\r\n// for intentional side-effects\r\n__webpack_require__(10);\r\n__webpack_require__(47);\r\n__webpack_require__(256);\r\n__webpack_require__(257);\r\n__webpack_require__(260);\r\n__webpack_require__(261);\r\n__webpack_require__(262);\r\n__webpack_require__(263);\r\n$.fullCalendar = exportHooks;\r\n$.fn.fullCalendar = function (options) {\r\n var args = Array.prototype.slice.call(arguments, 1); // for a possible method call\r\n var res = this; // what this function will return (this jQuery object by default)\r\n this.each(function (i, _element) {\r\n var element = $(_element);\r\n var calendar = element.data('fullCalendar'); // get the existing calendar object (if any)\r\n var singleRes; // the returned value of this single method call\r\n // a method call\r\n if (typeof options === 'string') {\r\n if (options === 'getCalendar') {\r\n if (!i) {\r\n res = calendar;\r\n }\r\n }\r\n else if (options === 'destroy') {\r\n if (calendar) {\r\n calendar.destroy();\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else if (!calendar) {\r\n util_1.warn('Attempting to call a FullCalendar method on an element with no calendar.');\r\n }\r\n else if ($.isFunction(calendar[options])) {\r\n singleRes = calendar[options].apply(calendar, args);\r\n if (!i) {\r\n res = singleRes; // record the first method call result\r\n }\r\n if (options === 'destroy') {\r\n element.removeData('fullCalendar');\r\n }\r\n }\r\n else {\r\n util_1.warn(\"'\" + options + \"' is an unknown FullCalendar method.\");\r\n }\r\n }\r\n else if (!calendar) {\r\n calendar = new Calendar_1.default(element, options);\r\n element.data('fullCalendar', calendar);\r\n calendar.render();\r\n }\r\n });\r\n return res;\r\n};\r\nmodule.exports = exportHooks;\r\n\r\n\r\n/***/ }),\r\n/* 237 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Model_1 = __webpack_require__(48);\r\nvar Component = /** @class */ (function (_super) {\r\n tslib_1.__extends(Component, _super);\r\n function Component() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Component.prototype.setElement = function (el) {\r\n this.el = el;\r\n this.bindGlobalHandlers();\r\n this.renderSkeleton();\r\n this.set('isInDom', true);\r\n };\r\n Component.prototype.removeElement = function () {\r\n this.unset('isInDom');\r\n this.unrenderSkeleton();\r\n this.unbindGlobalHandlers();\r\n this.el.remove();\r\n // NOTE: don't null-out this.el in case the View was destroyed within an API callback.\r\n // We don't null-out the View's other jQuery element references upon destroy,\r\n // so we shouldn't kill this.el either.\r\n };\r\n Component.prototype.bindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n Component.prototype.unbindGlobalHandlers = function () {\r\n // subclasses can override\r\n };\r\n /*\r\n NOTE: Can't have a `render` method. Read the deprecation notice in View::executeDateRender\r\n */\r\n // Renders the basic structure of the view before any content is rendered\r\n Component.prototype.renderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n // Unrenders the basic structure of the view\r\n Component.prototype.unrenderSkeleton = function () {\r\n // subclasses should implement\r\n };\r\n return Component;\r\n}(Model_1.default));\r\nexports.default = Component;\r\n\r\n\r\n/***/ }),\r\n/* 238 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar Iterator = /** @class */ (function () {\r\n function Iterator(items) {\r\n this.items = items || [];\r\n }\r\n /* Calls a method on every item passing the arguments through */\r\n Iterator.prototype.proxyCall = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var results = [];\r\n this.items.forEach(function (item) {\r\n results.push(item[methodName].apply(item, args));\r\n });\r\n return results;\r\n };\r\n return Iterator;\r\n}());\r\nexports.default = Iterator;\r\n\r\n\r\n/***/ }),\r\n/* 239 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\n/* Toolbar with buttons and title\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar Toolbar = /** @class */ (function () {\r\n function Toolbar(calendar, toolbarOptions) {\r\n this.el = null; // mirrors local `el`\r\n this.viewsWithButtons = [];\r\n this.calendar = calendar;\r\n this.toolbarOptions = toolbarOptions;\r\n }\r\n // method to update toolbar-specific options, not calendar-wide options\r\n Toolbar.prototype.setToolbarOptions = function (newToolbarOptions) {\r\n this.toolbarOptions = newToolbarOptions;\r\n };\r\n // can be called repeatedly and will rerender\r\n Toolbar.prototype.render = function () {\r\n var sections = this.toolbarOptions.layout;\r\n var el = this.el;\r\n if (sections) {\r\n if (!el) {\r\n el = this.el = $(\"
\");\r\n }\r\n else {\r\n el.empty();\r\n }\r\n el.append(this.renderSection('left'))\r\n .append(this.renderSection('right'))\r\n .append(this.renderSection('center'))\r\n .append('
');\r\n }\r\n else {\r\n this.removeElement();\r\n }\r\n };\r\n Toolbar.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n Toolbar.prototype.renderSection = function (position) {\r\n var _this = this;\r\n var calendar = this.calendar;\r\n var theme = calendar.theme;\r\n var optionsManager = calendar.optionsManager;\r\n var viewSpecManager = calendar.viewSpecManager;\r\n var sectionEl = $('
');\r\n var buttonStr = this.toolbarOptions.layout[position];\r\n var calendarCustomButtons = optionsManager.get('customButtons') || {};\r\n var calendarButtonTextOverrides = optionsManager.overrides.buttonText || {};\r\n var calendarButtonText = optionsManager.get('buttonText') || {};\r\n if (buttonStr) {\r\n $.each(buttonStr.split(' '), function (i, buttonGroupStr) {\r\n var groupChildren = $();\r\n var isOnlyButtons = true;\r\n var groupEl;\r\n $.each(buttonGroupStr.split(','), function (j, buttonName) {\r\n var customButtonProps;\r\n var viewSpec;\r\n var buttonClick;\r\n var buttonIcon; // only one of these will be set\r\n var buttonText; // \"\r\n var buttonInnerHtml;\r\n var buttonClasses;\r\n var buttonEl;\r\n var buttonAriaAttr;\r\n if (buttonName === 'title') {\r\n groupChildren = groupChildren.add($('

 

')); // we always want it to take up height\r\n isOnlyButtons = false;\r\n }\r\n else {\r\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\r\n buttonClick = function (ev) {\r\n if (customButtonProps.click) {\r\n customButtonProps.click.call(buttonEl[0], ev);\r\n }\r\n };\r\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = customButtonProps.text);\r\n }\r\n else if ((viewSpec = viewSpecManager.getViewSpec(buttonName))) {\r\n _this.viewsWithButtons.push(buttonName);\r\n buttonClick = function () {\r\n calendar.changeView(buttonName);\r\n };\r\n (buttonText = viewSpec.buttonTextOverride) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = viewSpec.buttonTextDefault);\r\n }\r\n else if (calendar[buttonName]) {\r\n buttonClick = function () {\r\n calendar[buttonName]();\r\n };\r\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\r\n (buttonIcon = theme.getIconClass(buttonName)) ||\r\n (buttonText = calendarButtonText[buttonName]);\r\n // ^ everything else is considered default\r\n }\r\n if (buttonClick) {\r\n buttonClasses = [\r\n 'fc-' + buttonName + '-button',\r\n theme.getClass('button'),\r\n theme.getClass('stateDefault')\r\n ];\r\n if (buttonText) {\r\n buttonInnerHtml = util_1.htmlEscape(buttonText);\r\n buttonAriaAttr = '';\r\n }\r\n else if (buttonIcon) {\r\n buttonInnerHtml = \"\";\r\n buttonAriaAttr = ' aria-label=\"' + buttonName + '\"';\r\n }\r\n buttonEl = $(// type=\"button\" so that it doesn't submit a form\r\n '')\r\n .click(function (ev) {\r\n // don't process clicks for disabled buttons\r\n if (!buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonClick(ev);\r\n // after the click action, if the button becomes the \"active\" tab, or disabled,\r\n // it should never have a hover class, so remove it now.\r\n if (buttonEl.hasClass(theme.getClass('stateActive')) ||\r\n buttonEl.hasClass(theme.getClass('stateDisabled'))) {\r\n buttonEl.removeClass(theme.getClass('stateHover'));\r\n }\r\n }\r\n })\r\n .mousedown(function () {\r\n // the *down* effect (mouse pressed in).\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateDown'));\r\n })\r\n .mouseup(function () {\r\n // undo the *down* effect\r\n buttonEl.removeClass(theme.getClass('stateDown'));\r\n })\r\n .hover(function () {\r\n // the *hover* effect.\r\n // only on buttons that are not the \"active\" tab, or disabled\r\n buttonEl\r\n .not('.' + theme.getClass('stateActive'))\r\n .not('.' + theme.getClass('stateDisabled'))\r\n .addClass(theme.getClass('stateHover'));\r\n }, function () {\r\n // undo the *hover* effect\r\n buttonEl\r\n .removeClass(theme.getClass('stateHover'))\r\n .removeClass(theme.getClass('stateDown')); // if mouseleave happens before mouseup\r\n });\r\n groupChildren = groupChildren.add(buttonEl);\r\n }\r\n }\r\n });\r\n if (isOnlyButtons) {\r\n groupChildren\r\n .first().addClass(theme.getClass('cornerLeft')).end()\r\n .last().addClass(theme.getClass('cornerRight')).end();\r\n }\r\n if (groupChildren.length > 1) {\r\n groupEl = $('
');\r\n if (isOnlyButtons) {\r\n groupEl.addClass(theme.getClass('buttonGroup'));\r\n }\r\n groupEl.append(groupChildren);\r\n sectionEl.append(groupEl);\r\n }\r\n else {\r\n sectionEl.append(groupChildren); // 1 or 0 children\r\n }\r\n });\r\n }\r\n return sectionEl;\r\n };\r\n Toolbar.prototype.updateTitle = function (text) {\r\n if (this.el) {\r\n this.el.find('h2').text(text);\r\n }\r\n };\r\n Toolbar.prototype.activateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .addClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.deactivateButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .removeClass(this.calendar.theme.getClass('stateActive'));\r\n }\r\n };\r\n Toolbar.prototype.disableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', true)\r\n .addClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.enableButton = function (buttonName) {\r\n if (this.el) {\r\n this.el.find('.fc-' + buttonName + '-button')\r\n .prop('disabled', false)\r\n .removeClass(this.calendar.theme.getClass('stateDisabled'));\r\n }\r\n };\r\n Toolbar.prototype.getViewsWithButtons = function () {\r\n return this.viewsWithButtons;\r\n };\r\n return Toolbar;\r\n}());\r\nexports.default = Toolbar;\r\n\r\n\r\n/***/ }),\r\n/* 240 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar locale_1 = __webpack_require__(31);\r\nvar Model_1 = __webpack_require__(48);\r\nvar OptionsManager = /** @class */ (function (_super) {\r\n tslib_1.__extends(OptionsManager, _super);\r\n function OptionsManager(_calendar, overrides) {\r\n var _this = _super.call(this) || this;\r\n _this._calendar = _calendar;\r\n _this.overrides = $.extend({}, overrides); // make a copy\r\n _this.dynamicOverrides = {};\r\n _this.compute();\r\n return _this;\r\n }\r\n OptionsManager.prototype.add = function (newOptionHash) {\r\n var optionCnt = 0;\r\n var optionName;\r\n this.recordOverrides(newOptionHash); // will trigger this model's watchers\r\n for (optionName in newOptionHash) {\r\n optionCnt++;\r\n }\r\n // special-case handling of single option change.\r\n // if only one option change, `optionName` will be its name.\r\n if (optionCnt === 1) {\r\n if (optionName === 'height' || optionName === 'contentHeight' || optionName === 'aspectRatio') {\r\n this._calendar.updateViewSize(true); // isResize=true\r\n return;\r\n }\r\n else if (optionName === 'defaultDate') {\r\n return; // can't change date this way. use gotoDate instead\r\n }\r\n else if (optionName === 'businessHours') {\r\n return; // this model already reacts to this\r\n }\r\n else if (/^(event|select)(Overlap|Constraint|Allow)$/.test(optionName)) {\r\n return; // doesn't affect rendering. only interactions.\r\n }\r\n else if (optionName === 'timezone') {\r\n this._calendar.view.flash('initialEvents');\r\n return;\r\n }\r\n }\r\n // catch-all. rerender the header and footer and rebuild/rerender the current view\r\n this._calendar.renderHeader();\r\n this._calendar.renderFooter();\r\n // even non-current views will be affected by this option change. do before rerender\r\n // TODO: detangle\r\n this._calendar.viewsByType = {};\r\n this._calendar.reinitView();\r\n };\r\n // Computes the flattened options hash for the calendar and assigns to `this.options`.\r\n // Assumes this.overrides and this.dynamicOverrides have already been initialized.\r\n OptionsManager.prototype.compute = function () {\r\n var locale;\r\n var localeDefaults;\r\n var isRTL;\r\n var dirDefaults;\r\n var rawOptions;\r\n locale = util_1.firstDefined(// explicit locale option given?\r\n this.dynamicOverrides.locale, this.overrides.locale);\r\n localeDefaults = locale_1.localeOptionHash[locale];\r\n if (!localeDefaults) {\r\n locale = options_1.globalDefaults.locale;\r\n localeDefaults = locale_1.localeOptionHash[locale] || {};\r\n }\r\n isRTL = util_1.firstDefined(// based on options computed so far, is direction RTL?\r\n this.dynamicOverrides.isRTL, this.overrides.isRTL, localeDefaults.isRTL, options_1.globalDefaults.isRTL);\r\n dirDefaults = isRTL ? options_1.rtlDefaults : {};\r\n this.dirDefaults = dirDefaults;\r\n this.localeDefaults = localeDefaults;\r\n rawOptions = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n dirDefaults,\r\n localeDefaults,\r\n this.overrides,\r\n this.dynamicOverrides\r\n ]);\r\n locale_1.populateInstanceComputableOptions(rawOptions); // fill in gaps with computed options\r\n this.reset(rawOptions);\r\n };\r\n // stores the new options internally, but does not rerender anything.\r\n OptionsManager.prototype.recordOverrides = function (newOptionHash) {\r\n var optionName;\r\n for (optionName in newOptionHash) {\r\n this.dynamicOverrides[optionName] = newOptionHash[optionName];\r\n }\r\n this._calendar.viewSpecManager.clearCache(); // the dynamic override invalidates the options in this cache, so just clear it\r\n this.compute(); // this.options needs to be recomputed after the dynamic override\r\n };\r\n return OptionsManager;\r\n}(Model_1.default));\r\nexports.default = OptionsManager;\r\n\r\n\r\n/***/ }),\r\n/* 241 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar moment = __webpack_require__(0);\r\nvar $ = __webpack_require__(3);\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar util_1 = __webpack_require__(4);\r\nvar options_1 = __webpack_require__(32);\r\nvar locale_1 = __webpack_require__(31);\r\nvar ViewSpecManager = /** @class */ (function () {\r\n function ViewSpecManager(optionsManager, _calendar) {\r\n this.optionsManager = optionsManager;\r\n this._calendar = _calendar;\r\n this.clearCache();\r\n }\r\n ViewSpecManager.prototype.clearCache = function () {\r\n this.viewSpecCache = {};\r\n };\r\n // Gets information about how to create a view. Will use a cache.\r\n ViewSpecManager.prototype.getViewSpec = function (viewType) {\r\n var cache = this.viewSpecCache;\r\n return cache[viewType] || (cache[viewType] = this.buildViewSpec(viewType));\r\n };\r\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\r\n // Preference is given to views that have corresponding buttons.\r\n ViewSpecManager.prototype.getUnitViewSpec = function (unit) {\r\n var viewTypes;\r\n var i;\r\n var spec;\r\n if ($.inArray(unit, util_1.unitsDesc) !== -1) {\r\n // put views that have buttons first. there will be duplicates, but oh well\r\n viewTypes = this._calendar.header.getViewsWithButtons(); // TODO: include footer as well?\r\n $.each(ViewRegistry_1.viewHash, function (viewType) {\r\n viewTypes.push(viewType);\r\n });\r\n for (i = 0; i < viewTypes.length; i++) {\r\n spec = this.getViewSpec(viewTypes[i]);\r\n if (spec) {\r\n if (spec.singleUnit === unit) {\r\n return spec;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n // Builds an object with information on how to create a given view\r\n ViewSpecManager.prototype.buildViewSpec = function (requestedViewType) {\r\n var viewOverrides = this.optionsManager.overrides.views || {};\r\n var specChain = []; // for the view. lowest to highest priority\r\n var defaultsChain = []; // for the view. lowest to highest priority\r\n var overridesChain = []; // for the view. lowest to highest priority\r\n var viewType = requestedViewType;\r\n var spec; // for the view\r\n var overrides; // for the view\r\n var durationInput;\r\n var duration;\r\n var unit;\r\n // iterate from the specific view definition to a more general one until we hit an actual View class\r\n while (viewType) {\r\n spec = ViewRegistry_1.viewHash[viewType];\r\n overrides = viewOverrides[viewType];\r\n viewType = null; // clear. might repopulate for another iteration\r\n if (typeof spec === 'function') {\r\n spec = { 'class': spec };\r\n }\r\n if (spec) {\r\n specChain.unshift(spec);\r\n defaultsChain.unshift(spec.defaults || {});\r\n durationInput = durationInput || spec.duration;\r\n viewType = viewType || spec.type;\r\n }\r\n if (overrides) {\r\n overridesChain.unshift(overrides); // view-specific option hashes have options at zero-level\r\n durationInput = durationInput || overrides.duration;\r\n viewType = viewType || overrides.type;\r\n }\r\n }\r\n spec = util_1.mergeProps(specChain);\r\n spec.type = requestedViewType;\r\n if (!spec['class']) {\r\n return false;\r\n }\r\n // fall back to top-level `duration` option\r\n durationInput = durationInput ||\r\n this.optionsManager.dynamicOverrides.duration ||\r\n this.optionsManager.overrides.duration;\r\n if (durationInput) {\r\n duration = moment.duration(durationInput);\r\n if (duration.valueOf()) {\r\n unit = util_1.computeDurationGreatestUnit(duration, durationInput);\r\n spec.duration = duration;\r\n spec.durationUnit = unit;\r\n // view is a single-unit duration, like \"week\" or \"day\"\r\n // incorporate options for this. lowest priority\r\n if (duration.as(unit) === 1) {\r\n spec.singleUnit = unit;\r\n overridesChain.unshift(viewOverrides[unit] || {});\r\n }\r\n }\r\n }\r\n spec.defaults = options_1.mergeOptions(defaultsChain);\r\n spec.overrides = options_1.mergeOptions(overridesChain);\r\n this.buildViewSpecOptions(spec);\r\n this.buildViewSpecButtonText(spec, requestedViewType);\r\n return spec;\r\n };\r\n // Builds and assigns a view spec's options object from its already-assigned defaults and overrides\r\n ViewSpecManager.prototype.buildViewSpecOptions = function (spec) {\r\n var optionsManager = this.optionsManager;\r\n spec.options = options_1.mergeOptions([\r\n options_1.globalDefaults,\r\n spec.defaults,\r\n optionsManager.dirDefaults,\r\n optionsManager.localeDefaults,\r\n optionsManager.overrides,\r\n spec.overrides,\r\n optionsManager.dynamicOverrides // dynamically set via setter. highest precedence\r\n ]);\r\n locale_1.populateInstanceComputableOptions(spec.options);\r\n };\r\n // Computes and assigns a view spec's buttonText-related options\r\n ViewSpecManager.prototype.buildViewSpecButtonText = function (spec, requestedViewType) {\r\n var optionsManager = this.optionsManager;\r\n // given an options object with a possible `buttonText` hash, lookup the buttonText for the\r\n // requested view, falling back to a generic unit entry like \"week\" or \"day\"\r\n function queryButtonText(options) {\r\n var buttonText = options.buttonText || {};\r\n return buttonText[requestedViewType] ||\r\n // view can decide to look up a certain key\r\n (spec.buttonTextKey ? buttonText[spec.buttonTextKey] : null) ||\r\n // a key like \"month\"\r\n (spec.singleUnit ? buttonText[spec.singleUnit] : null);\r\n }\r\n // highest to lowest priority\r\n spec.buttonTextOverride =\r\n queryButtonText(optionsManager.dynamicOverrides) ||\r\n queryButtonText(optionsManager.overrides) || // constructor-specified buttonText lookup hash takes precedence\r\n spec.overrides.buttonText; // `buttonText` for view-specific options is a string\r\n // highest to lowest priority. mirrors buildViewSpecOptions\r\n spec.buttonTextDefault =\r\n queryButtonText(optionsManager.localeDefaults) ||\r\n queryButtonText(optionsManager.dirDefaults) ||\r\n spec.defaults.buttonText || // a single string. from ViewSubclass.defaults\r\n queryButtonText(options_1.globalDefaults) ||\r\n (spec.duration ? this._calendar.humanizeDuration(spec.duration) : null) || // like \"3 days\"\r\n requestedViewType; // fall back to given view name\r\n };\r\n return ViewSpecManager;\r\n}());\r\nexports.default = ViewSpecManager;\r\n\r\n\r\n/***/ }),\r\n/* 242 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventPeriod_1 = __webpack_require__(243);\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nvar EventSource_1 = __webpack_require__(6);\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar SingleEventDef_1 = __webpack_require__(13);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar EventManager = /** @class */ (function () {\r\n function EventManager(calendar) {\r\n this.calendar = calendar;\r\n this.stickySource = new ArrayEventSource_1.default(calendar);\r\n this.otherSources = [];\r\n }\r\n EventManager.prototype.requestEvents = function (start, end, timezone, force) {\r\n if (force ||\r\n !this.currentPeriod ||\r\n !this.currentPeriod.isWithinRange(start, end) ||\r\n timezone !== this.currentPeriod.timezone) {\r\n this.setPeriod(// will change this.currentPeriod\r\n new EventPeriod_1.default(start, end, timezone));\r\n }\r\n return this.currentPeriod.whenReleased();\r\n };\r\n // Source Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.addSource = function (eventSource) {\r\n this.otherSources.push(eventSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.requestSource(eventSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeSource = function (doomedSource) {\r\n util_1.removeExact(this.otherSources, doomedSource);\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeSource(doomedSource); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllSources = function () {\r\n this.otherSources = [];\r\n if (this.currentPeriod) {\r\n this.currentPeriod.purgeAllSources(); // might release\r\n }\r\n };\r\n // Source Refetching\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.refetchSource = function (eventSource) {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeSource(eventSource);\r\n currentPeriod.requestSource(eventSource);\r\n currentPeriod.thaw();\r\n }\r\n };\r\n EventManager.prototype.refetchAllSources = function () {\r\n var currentPeriod = this.currentPeriod;\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n currentPeriod.purgeAllSources();\r\n currentPeriod.requestSources(this.getSources());\r\n currentPeriod.thaw();\r\n }\r\n };\r\n // Source Querying\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getSources = function () {\r\n return [this.stickySource].concat(this.otherSources);\r\n };\r\n // like querySources, but accepts multple match criteria (like multiple IDs)\r\n EventManager.prototype.multiQuerySources = function (matchInputs) {\r\n // coerce into an array\r\n if (!matchInputs) {\r\n matchInputs = [];\r\n }\r\n else if (!$.isArray(matchInputs)) {\r\n matchInputs = [matchInputs];\r\n }\r\n var matchingSources = [];\r\n var i;\r\n // resolve raw inputs to real event source objects\r\n for (i = 0; i < matchInputs.length; i++) {\r\n matchingSources.push.apply(// append\r\n matchingSources, this.querySources(matchInputs[i]));\r\n }\r\n return matchingSources;\r\n };\r\n // matchInput can either by a real event source object, an ID, or the function/URL for the source.\r\n // returns an array of matching source objects.\r\n EventManager.prototype.querySources = function (matchInput) {\r\n var sources = this.otherSources;\r\n var i;\r\n var source;\r\n // given a proper event source object\r\n for (i = 0; i < sources.length; i++) {\r\n source = sources[i];\r\n if (source === matchInput) {\r\n return [source];\r\n }\r\n }\r\n // an ID match\r\n source = this.getSourceById(EventSource_1.default.normalizeId(matchInput));\r\n if (source) {\r\n return [source];\r\n }\r\n // parse as an event source\r\n matchInput = EventSourceParser_1.default.parse(matchInput, this.calendar);\r\n if (matchInput) {\r\n return $.grep(sources, function (source) {\r\n return isSourcesEquivalent(matchInput, source);\r\n });\r\n }\r\n };\r\n /*\r\n ID assumed to already be normalized\r\n */\r\n EventManager.prototype.getSourceById = function (id) {\r\n return $.grep(this.otherSources, function (source) {\r\n return source.id && source.id === id;\r\n })[0];\r\n };\r\n // Event-Period\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.setPeriod = function (eventPeriod) {\r\n if (this.currentPeriod) {\r\n this.unbindPeriod(this.currentPeriod);\r\n this.currentPeriod = null;\r\n }\r\n this.currentPeriod = eventPeriod;\r\n this.bindPeriod(eventPeriod);\r\n eventPeriod.requestSources(this.getSources());\r\n };\r\n EventManager.prototype.bindPeriod = function (eventPeriod) {\r\n this.listenTo(eventPeriod, 'release', function (eventsPayload) {\r\n this.trigger('release', eventsPayload);\r\n });\r\n };\r\n EventManager.prototype.unbindPeriod = function (eventPeriod) {\r\n this.stopListeningTo(eventPeriod);\r\n };\r\n // Event Getting/Adding/Removing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.getEventDefByUid = function (uid) {\r\n if (this.currentPeriod) {\r\n return this.currentPeriod.getEventDefByUid(uid);\r\n }\r\n };\r\n EventManager.prototype.addEventDef = function (eventDef, isSticky) {\r\n if (isSticky) {\r\n this.stickySource.addEventDef(eventDef);\r\n }\r\n if (this.currentPeriod) {\r\n this.currentPeriod.addEventDef(eventDef); // might release\r\n }\r\n };\r\n EventManager.prototype.removeEventDefsById = function (eventId) {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeEventDefsById(eventId);\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeEventDefsById(eventId); // might release\r\n }\r\n };\r\n EventManager.prototype.removeAllEventDefs = function () {\r\n this.getSources().forEach(function (eventSource) {\r\n eventSource.removeAllEventDefs();\r\n });\r\n if (this.currentPeriod) {\r\n this.currentPeriod.removeAllEventDefs();\r\n }\r\n };\r\n // Event Mutating\r\n // -----------------------------------------------------------------------------------------------------------------\r\n /*\r\n Returns an undo function.\r\n */\r\n EventManager.prototype.mutateEventsWithId = function (eventDefId, eventDefMutation) {\r\n var currentPeriod = this.currentPeriod;\r\n var eventDefs;\r\n var undoFuncs = [];\r\n if (currentPeriod) {\r\n currentPeriod.freeze();\r\n eventDefs = currentPeriod.getEventDefsById(eventDefId);\r\n eventDefs.forEach(function (eventDef) {\r\n // add/remove esp because id might change\r\n currentPeriod.removeEventDef(eventDef);\r\n undoFuncs.push(eventDefMutation.mutateSingle(eventDef));\r\n currentPeriod.addEventDef(eventDef);\r\n });\r\n currentPeriod.thaw();\r\n return function () {\r\n currentPeriod.freeze();\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n currentPeriod.removeEventDef(eventDefs[i]);\r\n undoFuncs[i]();\r\n currentPeriod.addEventDef(eventDefs[i]);\r\n }\r\n currentPeriod.thaw();\r\n };\r\n }\r\n return function () { };\r\n };\r\n /*\r\n copies and then mutates\r\n */\r\n EventManager.prototype.buildMutatedEventInstanceGroup = function (eventDefId, eventDefMutation) {\r\n var eventDefs = this.getEventDefsById(eventDefId);\r\n var i;\r\n var defCopy;\r\n var allInstances = [];\r\n for (i = 0; i < eventDefs.length; i++) {\r\n defCopy = eventDefs[i].clone();\r\n if (defCopy instanceof SingleEventDef_1.default) {\r\n eventDefMutation.mutateSingle(defCopy);\r\n allInstances.push.apply(allInstances, // append\r\n defCopy.buildInstances());\r\n }\r\n }\r\n return new EventInstanceGroup_1.default(allInstances);\r\n };\r\n // Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventManager.prototype.freeze = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.freeze();\r\n }\r\n };\r\n EventManager.prototype.thaw = function () {\r\n if (this.currentPeriod) {\r\n this.currentPeriod.thaw();\r\n }\r\n };\r\n // methods that simply forward to EventPeriod\r\n EventManager.prototype.getEventDefsById = function (eventDefId) {\r\n return this.currentPeriod.getEventDefsById(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstances = function () {\r\n return this.currentPeriod.getEventInstances();\r\n };\r\n EventManager.prototype.getEventInstancesWithId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithId(eventDefId);\r\n };\r\n EventManager.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n return this.currentPeriod.getEventInstancesWithoutId(eventDefId);\r\n };\r\n return EventManager;\r\n}());\r\nexports.default = EventManager;\r\nEmitterMixin_1.default.mixInto(EventManager);\r\nListenerMixin_1.default.mixInto(EventManager);\r\nfunction isSourcesEquivalent(source0, source1) {\r\n return source0.getPrimitive() === source1.getPrimitive();\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 243 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar Promise_1 = __webpack_require__(20);\r\nvar EmitterMixin_1 = __webpack_require__(11);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar EventInstanceGroup_1 = __webpack_require__(18);\r\nvar EventPeriod = /** @class */ (function () {\r\n function EventPeriod(start, end, timezone) {\r\n this.pendingCnt = 0;\r\n this.freezeDepth = 0;\r\n this.stuntedReleaseCnt = 0;\r\n this.releaseCnt = 0;\r\n this.start = start;\r\n this.end = end;\r\n this.timezone = timezone;\r\n this.unzonedRange = new UnzonedRange_1.default(start.clone().stripZone(), end.clone().stripZone());\r\n this.requestsByUid = {};\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n }\r\n EventPeriod.prototype.isWithinRange = function (start, end) {\r\n // TODO: use a range util function?\r\n return !start.isBefore(this.start) && !end.isAfter(this.end);\r\n };\r\n // Requesting and Purging\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.requestSources = function (sources) {\r\n this.freeze();\r\n for (var i = 0; i < sources.length; i++) {\r\n this.requestSource(sources[i]);\r\n }\r\n this.thaw();\r\n };\r\n EventPeriod.prototype.requestSource = function (source) {\r\n var _this = this;\r\n var request = { source: source, status: 'pending', eventDefs: null };\r\n this.requestsByUid[source.uid] = request;\r\n this.pendingCnt += 1;\r\n source.fetch(this.start, this.end, this.timezone).then(function (eventDefs) {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'completed';\r\n request.eventDefs = eventDefs;\r\n _this.addEventDefs(eventDefs);\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n }, function () {\r\n if (request.status !== 'cancelled') {\r\n request.status = 'failed';\r\n _this.pendingCnt--;\r\n _this.tryRelease();\r\n }\r\n });\r\n };\r\n EventPeriod.prototype.purgeSource = function (source) {\r\n var request = this.requestsByUid[source.uid];\r\n if (request) {\r\n delete this.requestsByUid[source.uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n this.pendingCnt--;\r\n this.tryRelease();\r\n }\r\n else if (request.status === 'completed') {\r\n request.eventDefs.forEach(this.removeEventDef.bind(this));\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.purgeAllSources = function () {\r\n var requestsByUid = this.requestsByUid;\r\n var uid;\r\n var request;\r\n var completedCnt = 0;\r\n for (uid in requestsByUid) {\r\n request = requestsByUid[uid];\r\n if (request.status === 'pending') {\r\n request.status = 'cancelled';\r\n }\r\n else if (request.status === 'completed') {\r\n completedCnt++;\r\n }\r\n }\r\n this.requestsByUid = {};\r\n this.pendingCnt = 0;\r\n if (completedCnt) {\r\n this.removeAllEventDefs(); // might release\r\n }\r\n };\r\n // Event Definitions\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventDefByUid = function (eventDefUid) {\r\n return this.eventDefsByUid[eventDefUid];\r\n };\r\n EventPeriod.prototype.getEventDefsById = function (eventDefId) {\r\n var a = this.eventDefsById[eventDefId];\r\n if (a) {\r\n return a.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.addEventDefs = function (eventDefs) {\r\n for (var i = 0; i < eventDefs.length; i++) {\r\n this.addEventDef(eventDefs[i]);\r\n }\r\n };\r\n EventPeriod.prototype.addEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefId = eventDef.id;\r\n var eventDefs = eventDefsById[eventDefId] || (eventDefsById[eventDefId] = []);\r\n var eventInstances = eventDef.buildInstances(this.unzonedRange);\r\n var i;\r\n eventDefs.push(eventDef);\r\n this.eventDefsByUid[eventDef.uid] = eventDef;\r\n for (i = 0; i < eventInstances.length; i++) {\r\n this.addEventInstance(eventInstances[i], eventDefId);\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDefsById = function (eventDefId) {\r\n var _this = this;\r\n this.getEventDefsById(eventDefId).forEach(function (eventDef) {\r\n _this.removeEventDef(eventDef);\r\n });\r\n };\r\n EventPeriod.prototype.removeAllEventDefs = function () {\r\n var isEmpty = $.isEmptyObject(this.eventDefsByUid);\r\n this.eventDefsByUid = {};\r\n this.eventDefsById = {};\r\n this.eventInstanceGroupsById = {};\r\n if (!isEmpty) {\r\n this.tryRelease();\r\n }\r\n };\r\n EventPeriod.prototype.removeEventDef = function (eventDef) {\r\n var eventDefsById = this.eventDefsById;\r\n var eventDefs = eventDefsById[eventDef.id];\r\n delete this.eventDefsByUid[eventDef.uid];\r\n if (eventDefs) {\r\n util_1.removeExact(eventDefs, eventDef);\r\n if (!eventDefs.length) {\r\n delete eventDefsById[eventDef.id];\r\n }\r\n this.removeEventInstancesForDef(eventDef);\r\n }\r\n };\r\n // Event Instances\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.getEventInstances = function () {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n eventInstances.push.apply(eventInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n return eventInstances;\r\n };\r\n EventPeriod.prototype.getEventInstancesWithId = function (eventDefId) {\r\n var eventInstanceGroup = this.eventInstanceGroupsById[eventDefId];\r\n if (eventInstanceGroup) {\r\n return eventInstanceGroup.eventInstances.slice(); // clone\r\n }\r\n return [];\r\n };\r\n EventPeriod.prototype.getEventInstancesWithoutId = function (eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var matchingInstances = [];\r\n var id;\r\n for (id in eventInstanceGroupsById) {\r\n if (id !== eventDefId) {\r\n matchingInstances.push.apply(matchingInstances, // append\r\n eventInstanceGroupsById[id].eventInstances);\r\n }\r\n }\r\n return matchingInstances;\r\n };\r\n EventPeriod.prototype.addEventInstance = function (eventInstance, eventDefId) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDefId] ||\r\n (eventInstanceGroupsById[eventDefId] = new EventInstanceGroup_1.default());\r\n eventInstanceGroup.eventInstances.push(eventInstance);\r\n this.tryRelease();\r\n };\r\n EventPeriod.prototype.removeEventInstancesForDef = function (eventDef) {\r\n var eventInstanceGroupsById = this.eventInstanceGroupsById;\r\n var eventInstanceGroup = eventInstanceGroupsById[eventDef.id];\r\n var removeCnt;\r\n if (eventInstanceGroup) {\r\n removeCnt = util_1.removeMatching(eventInstanceGroup.eventInstances, function (currentEventInstance) {\r\n return currentEventInstance.def === eventDef;\r\n });\r\n if (!eventInstanceGroup.eventInstances.length) {\r\n delete eventInstanceGroupsById[eventDef.id];\r\n }\r\n if (removeCnt) {\r\n this.tryRelease();\r\n }\r\n }\r\n };\r\n // Releasing and Freezing\r\n // -----------------------------------------------------------------------------------------------------------------\r\n EventPeriod.prototype.tryRelease = function () {\r\n if (!this.pendingCnt) {\r\n if (!this.freezeDepth) {\r\n this.release();\r\n }\r\n else {\r\n this.stuntedReleaseCnt++;\r\n }\r\n }\r\n };\r\n EventPeriod.prototype.release = function () {\r\n this.releaseCnt++;\r\n this.trigger('release', this.eventInstanceGroupsById);\r\n };\r\n EventPeriod.prototype.whenReleased = function () {\r\n var _this = this;\r\n if (this.releaseCnt) {\r\n return Promise_1.default.resolve(this.eventInstanceGroupsById);\r\n }\r\n else {\r\n return Promise_1.default.construct(function (onResolve) {\r\n _this.one('release', onResolve);\r\n });\r\n }\r\n };\r\n EventPeriod.prototype.freeze = function () {\r\n if (!(this.freezeDepth++)) {\r\n this.stuntedReleaseCnt = 0;\r\n }\r\n };\r\n EventPeriod.prototype.thaw = function () {\r\n if (!(--this.freezeDepth) && this.stuntedReleaseCnt && !this.pendingCnt) {\r\n this.release();\r\n }\r\n };\r\n return EventPeriod;\r\n}());\r\nexports.default = EventPeriod;\r\nEmitterMixin_1.default.mixInto(EventPeriod);\r\n\r\n\r\n/***/ }),\r\n/* 244 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\n/* Creates a clone of an element and lets it track the mouse as it moves\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar MouseFollower = /** @class */ (function () {\r\n function MouseFollower(sourceEl, options) {\r\n this.isFollowing = false;\r\n this.isHidden = false;\r\n this.isAnimating = false; // doing the revert animation?\r\n this.options = options = options || {};\r\n this.sourceEl = sourceEl;\r\n this.parentEl = options.parentEl ? $(options.parentEl) : sourceEl.parent(); // default to sourceEl's parent\r\n }\r\n // Causes the element to start following the mouse\r\n MouseFollower.prototype.start = function (ev) {\r\n if (!this.isFollowing) {\r\n this.isFollowing = true;\r\n this.y0 = util_1.getEvY(ev);\r\n this.x0 = util_1.getEvX(ev);\r\n this.topDelta = 0;\r\n this.leftDelta = 0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n if (util_1.getEvIsTouch(ev)) {\r\n this.listenTo($(document), 'touchmove', this.handleMove);\r\n }\r\n else {\r\n this.listenTo($(document), 'mousemove', this.handleMove);\r\n }\r\n }\r\n };\r\n // Causes the element to stop following the mouse. If shouldRevert is true, will animate back to original position.\r\n // `callback` gets invoked when the animation is complete. If no animation, it is invoked immediately.\r\n MouseFollower.prototype.stop = function (shouldRevert, callback) {\r\n var _this = this;\r\n var revertDuration = this.options.revertDuration;\r\n var complete = function () {\r\n _this.isAnimating = false;\r\n _this.removeElement();\r\n _this.top0 = _this.left0 = null; // reset state for future updatePosition calls\r\n if (callback) {\r\n callback();\r\n }\r\n };\r\n if (this.isFollowing && !this.isAnimating) {\r\n this.isFollowing = false;\r\n this.stopListeningTo($(document));\r\n if (shouldRevert && revertDuration && !this.isHidden) {\r\n this.isAnimating = true;\r\n this.el.animate({\r\n top: this.top0,\r\n left: this.left0\r\n }, {\r\n duration: revertDuration,\r\n complete: complete\r\n });\r\n }\r\n else {\r\n complete();\r\n }\r\n }\r\n };\r\n // Gets the tracking element. Create it if necessary\r\n MouseFollower.prototype.getEl = function () {\r\n var el = this.el;\r\n if (!el) {\r\n el = this.el = this.sourceEl.clone()\r\n .addClass(this.options.additionalClass || '')\r\n .css({\r\n position: 'absolute',\r\n visibility: '',\r\n display: this.isHidden ? 'none' : '',\r\n margin: 0,\r\n right: 'auto',\r\n bottom: 'auto',\r\n width: this.sourceEl.width(),\r\n height: this.sourceEl.height(),\r\n opacity: this.options.opacity || '',\r\n zIndex: this.options.zIndex\r\n });\r\n // we don't want long taps or any mouse interaction causing selection/menus.\r\n // would use preventSelection(), but that prevents selectstart, causing problems.\r\n el.addClass('fc-unselectable');\r\n el.appendTo(this.parentEl);\r\n }\r\n return el;\r\n };\r\n // Removes the tracking element if it has already been created\r\n MouseFollower.prototype.removeElement = function () {\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n };\r\n // Update the CSS position of the tracking element\r\n MouseFollower.prototype.updatePosition = function () {\r\n var sourceOffset;\r\n var origin;\r\n this.getEl(); // ensure this.el\r\n // make sure origin info was computed\r\n if (this.top0 == null) {\r\n sourceOffset = this.sourceEl.offset();\r\n origin = this.el.offsetParent().offset();\r\n this.top0 = sourceOffset.top - origin.top;\r\n this.left0 = sourceOffset.left - origin.left;\r\n }\r\n this.el.css({\r\n top: this.top0 + this.topDelta,\r\n left: this.left0 + this.leftDelta\r\n });\r\n };\r\n // Gets called when the user moves the mouse\r\n MouseFollower.prototype.handleMove = function (ev) {\r\n this.topDelta = util_1.getEvY(ev) - this.y0;\r\n this.leftDelta = util_1.getEvX(ev) - this.x0;\r\n if (!this.isHidden) {\r\n this.updatePosition();\r\n }\r\n };\r\n // Temporarily makes the tracking element invisible. Can be called before following starts\r\n MouseFollower.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.isHidden = true;\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n }\r\n };\r\n // Show the tracking element after it has been temporarily hidden\r\n MouseFollower.prototype.show = function () {\r\n if (this.isHidden) {\r\n this.isHidden = false;\r\n this.updatePosition();\r\n this.getEl().show();\r\n }\r\n };\r\n return MouseFollower;\r\n}());\r\nexports.default = MouseFollower;\r\nListenerMixin_1.default.mixInto(MouseFollower);\r\n\r\n\r\n/***/ }),\r\n/* 245 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar HitDragListener_1 = __webpack_require__(23);\r\nvar Interaction_1 = __webpack_require__(15);\r\nvar DateClicking = /** @class */ (function (_super) {\r\n tslib_1.__extends(DateClicking, _super);\r\n /*\r\n component must implement:\r\n - bindDateHandlerToEl\r\n - getSafeHitFootprint\r\n - getHitEl\r\n */\r\n function DateClicking(component) {\r\n var _this = _super.call(this, component) || this;\r\n _this.dragListener = _this.buildDragListener();\r\n return _this;\r\n }\r\n DateClicking.prototype.end = function () {\r\n this.dragListener.endInteraction();\r\n };\r\n DateClicking.prototype.bindToEl = function (el) {\r\n var component = this.component;\r\n var dragListener = this.dragListener;\r\n component.bindDateHandlerToEl(el, 'mousedown', function (ev) {\r\n if (!component.shouldIgnoreMouse()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n component.bindDateHandlerToEl(el, 'touchstart', function (ev) {\r\n if (!component.shouldIgnoreTouch()) {\r\n dragListener.startInteraction(ev);\r\n }\r\n });\r\n };\r\n // Creates a listener that tracks the user's drag across day elements, for day clicking.\r\n DateClicking.prototype.buildDragListener = function () {\r\n var _this = this;\r\n var component = this.component;\r\n var dayClickHit; // null if invalid dayClick\r\n var dragListener = new HitDragListener_1.default(component, {\r\n scroll: this.opt('dragScroll'),\r\n interactionStart: function () {\r\n dayClickHit = dragListener.origHit;\r\n },\r\n hitOver: function (hit, isOrig, origHit) {\r\n // if user dragged to another cell at any point, it can no longer be a dayClick\r\n if (!isOrig) {\r\n dayClickHit = null;\r\n }\r\n },\r\n hitOut: function () {\r\n dayClickHit = null;\r\n },\r\n interactionEnd: function (ev, isCancelled) {\r\n var componentFootprint;\r\n if (!isCancelled && dayClickHit) {\r\n componentFootprint = component.getSafeHitFootprint(dayClickHit);\r\n if (componentFootprint) {\r\n _this.view.triggerDayClick(componentFootprint, component.getHitEl(dayClickHit), ev);\r\n }\r\n }\r\n }\r\n });\r\n // because dragListener won't be called with any time delay, \"dragging\" will begin immediately,\r\n // which will kill any touchmoving/scrolling. Prevent this.\r\n dragListener.shouldCancelTouchScroll = false;\r\n dragListener.scrollAlwaysKills = true;\r\n return dragListener;\r\n };\r\n return DateClicking;\r\n}(Interaction_1.default));\r\nexports.default = DateClicking;\r\n\r\n\r\n/***/ }),\r\n/* 246 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\r\n/*\r\nOnly handles foreground segs.\r\nDoes not own rendering. Use for low-level util methods by TimeGrid.\r\n*/\r\nvar TimeGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridEventRenderer, _super);\r\n function TimeGridEventRenderer(timeGrid, fillRenderer) {\r\n var _this = _super.call(this, timeGrid, fillRenderer) || this;\r\n _this.timeGrid = timeGrid;\r\n return _this;\r\n }\r\n TimeGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n this.renderFgSegsIntoContainers(segs, this.timeGrid.fgContainerEls);\r\n };\r\n // Given an array of foreground segments, render a DOM element for each, computes position,\r\n // and attaches to the column inner-container elements.\r\n TimeGridEventRenderer.prototype.renderFgSegsIntoContainers = function (segs, containerEls) {\r\n var segsByCol;\r\n var col;\r\n segsByCol = this.timeGrid.groupSegsByCol(segs);\r\n for (col = 0; col < this.timeGrid.colCnt; col++) {\r\n this.updateFgSegCoords(segsByCol[col]);\r\n }\r\n this.timeGrid.attachSegsByCol(segsByCol, containerEls);\r\n };\r\n TimeGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n if (this.fgSegs) {\r\n this.fgSegs.forEach(function (seg) {\r\n seg.el.remove();\r\n });\r\n }\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n TimeGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('noMeridiemTimeFormat'); // like \"6:30\" (no AM/PM)\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n TimeGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return true;\r\n };\r\n // Renders the HTML for a single event segment's default rendering\r\n TimeGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var componentFootprint = seg.footprint.componentFootprint;\r\n var isAllDay = componentFootprint.isAllDay;\r\n var eventDef = seg.footprint.eventDef;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeText;\r\n var fullTimeText; // more verbose time text. for the print stylesheet\r\n var startTimeText; // just the start time text\r\n classes.unshift('fc-time-grid-event', 'fc-v-event');\r\n // if the event appears to span more than one day...\r\n if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n // Don't display time text on segments that run entirely through a day.\r\n // That would appear as midnight-midnight and would look dumb.\r\n // Otherwise, display the time text for the *segment's* times (like 6pm-midnight or midnight-10am)\r\n if (seg.isStart || seg.isEnd) {\r\n var zonedStart = calendar.msToMoment(seg.startMs);\r\n var zonedEnd = calendar.msToMoment(seg.endMs);\r\n timeText = this._getTimeText(zonedStart, zonedEnd, isAllDay);\r\n fullTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, 'LT');\r\n startTimeText = this._getTimeText(zonedStart, zonedEnd, isAllDay, null, false); // displayEnd=false\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeText = this.getTimeText(seg.footprint);\r\n fullTimeText = this.getTimeText(seg.footprint, 'LT');\r\n startTimeText = this.getTimeText(seg.footprint, null, false); // displayEnd=false\r\n }\r\n return '' +\r\n '
' +\r\n (timeText ?\r\n '
' +\r\n '' + util_1.htmlEscape(timeText) + '' +\r\n '
' :\r\n '') +\r\n (eventDef.title ?\r\n '
' +\r\n util_1.htmlEscape(eventDef.title) +\r\n '
' :\r\n '') +\r\n '
' +\r\n '
' +\r\n /* TODO: write CSS for this\r\n (isResizableFromStart ?\r\n '
' :\r\n ''\r\n ) +\r\n */\r\n (isResizableFromEnd ?\r\n '
' :\r\n '') +\r\n '';\r\n };\r\n // Given segments that are assumed to all live in the *same column*,\r\n // compute their verical/horizontal coordinates and assign to their elements.\r\n TimeGridEventRenderer.prototype.updateFgSegCoords = function (segs) {\r\n this.timeGrid.computeSegVerticals(segs); // horizontals relies on this\r\n this.computeFgSegHorizontals(segs); // compute horizontal coordinates, z-index's, and reorder the array\r\n this.timeGrid.assignSegVerticals(segs);\r\n this.assignFgSegHorizontals(segs);\r\n };\r\n // Given an array of segments that are all in the same column, sets the backwardCoord and forwardCoord on each.\r\n // NOTE: Also reorders the given array by date!\r\n TimeGridEventRenderer.prototype.computeFgSegHorizontals = function (segs) {\r\n var levels;\r\n var level0;\r\n var i;\r\n this.sortEventSegs(segs); // order by certain criteria\r\n levels = buildSlotSegLevels(segs);\r\n computeForwardSlotSegs(levels);\r\n if ((level0 = levels[0])) {\r\n for (i = 0; i < level0.length; i++) {\r\n computeSlotSegPressures(level0[i]);\r\n }\r\n for (i = 0; i < level0.length; i++) {\r\n this.computeFgSegForwardBack(level0[i], 0, 0);\r\n }\r\n }\r\n };\r\n // Calculate seg.forwardCoord and seg.backwardCoord for the segment, where both values range\r\n // from 0 to 1. If the calendar is left-to-right, the seg.backwardCoord maps to \"left\" and\r\n // seg.forwardCoord maps to \"right\" (via percentage). Vice-versa if the calendar is right-to-left.\r\n //\r\n // The segment might be part of a \"series\", which means consecutive segments with the same pressure\r\n // who's width is unknown until an edge has been hit. `seriesBackwardPressure` is the number of\r\n // segments behind this one in the current series, and `seriesBackwardCoord` is the starting\r\n // coordinate of the first segment in the series.\r\n TimeGridEventRenderer.prototype.computeFgSegForwardBack = function (seg, seriesBackwardPressure, seriesBackwardCoord) {\r\n var forwardSegs = seg.forwardSegs;\r\n var i;\r\n if (seg.forwardCoord === undefined) {\r\n if (!forwardSegs.length) {\r\n // if there are no forward segments, this segment should butt up against the edge\r\n seg.forwardCoord = 1;\r\n }\r\n else {\r\n // sort highest pressure first\r\n this.sortForwardSegs(forwardSegs);\r\n // this segment's forwardCoord will be calculated from the backwardCoord of the\r\n // highest-pressure forward segment.\r\n this.computeFgSegForwardBack(forwardSegs[0], seriesBackwardPressure + 1, seriesBackwardCoord);\r\n seg.forwardCoord = forwardSegs[0].backwardCoord;\r\n }\r\n // calculate the backwardCoord from the forwardCoord. consider the series\r\n seg.backwardCoord = seg.forwardCoord -\r\n (seg.forwardCoord - seriesBackwardCoord) / // available width for series\r\n (seriesBackwardPressure + 1); // # of segments in the series\r\n // use this segment's coordinates to computed the coordinates of the less-pressurized\r\n // forward segments\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n this.computeFgSegForwardBack(forwardSegs[i], 0, seg.forwardCoord);\r\n }\r\n }\r\n };\r\n TimeGridEventRenderer.prototype.sortForwardSegs = function (forwardSegs) {\r\n forwardSegs.sort(util_1.proxy(this, 'compareForwardSegs'));\r\n };\r\n // A cmp function for determining which forward segment to rely on more when computing coordinates.\r\n TimeGridEventRenderer.prototype.compareForwardSegs = function (seg1, seg2) {\r\n // put higher-pressure first\r\n return seg2.forwardPressure - seg1.forwardPressure ||\r\n // put segments that are closer to initial edge first (and favor ones with no coords yet)\r\n (seg1.backwardCoord || 0) - (seg2.backwardCoord || 0) ||\r\n // do normal sorting...\r\n this.compareEventSegs(seg1, seg2);\r\n };\r\n // Given foreground event segments that have already had their position coordinates computed,\r\n // assigns position-related CSS values to their elements.\r\n TimeGridEventRenderer.prototype.assignFgSegHorizontals = function (segs) {\r\n var i;\r\n var seg;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n seg.el.css(this.generateFgSegHorizontalCss(seg));\r\n // if the height is short, add a className for alternate styling\r\n if (seg.bottom - seg.top < 30) {\r\n seg.el.addClass('fc-short');\r\n }\r\n }\r\n };\r\n // Generates an object with CSS properties/values that should be applied to an event segment element.\r\n // Contains important positioning-related properties that should be applied to any event element, customized or not.\r\n TimeGridEventRenderer.prototype.generateFgSegHorizontalCss = function (seg) {\r\n var shouldOverlap = this.opt('slotEventOverlap');\r\n var backwardCoord = seg.backwardCoord; // the left side if LTR. the right side if RTL. floating-point\r\n var forwardCoord = seg.forwardCoord; // the right side if LTR. the left side if RTL. floating-point\r\n var props = this.timeGrid.generateSegVerticalCss(seg); // get top/bottom first\r\n var isRTL = this.timeGrid.isRTL;\r\n var left; // amount of space from left edge, a fraction of the total width\r\n var right; // amount of space from right edge, a fraction of the total width\r\n if (shouldOverlap) {\r\n // double the width, but don't go beyond the maximum forward coordinate (1.0)\r\n forwardCoord = Math.min(1, backwardCoord + (forwardCoord - backwardCoord) * 2);\r\n }\r\n if (isRTL) {\r\n left = 1 - forwardCoord;\r\n right = backwardCoord;\r\n }\r\n else {\r\n left = backwardCoord;\r\n right = 1 - forwardCoord;\r\n }\r\n props.zIndex = seg.level + 1; // convert from 0-base to 1-based\r\n props.left = left * 100 + '%';\r\n props.right = right * 100 + '%';\r\n if (shouldOverlap && seg.forwardPressure) {\r\n // add padding to the edge so that forward stacked events don't cover the resizer's icon\r\n props[isRTL ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\r\n }\r\n return props;\r\n };\r\n return TimeGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = TimeGridEventRenderer;\r\n// Builds an array of segments \"levels\". The first level will be the leftmost tier of segments if the calendar is\r\n// left-to-right, or the rightmost if the calendar is right-to-left. Assumes the segments are already ordered by date.\r\nfunction buildSlotSegLevels(segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // go through all the levels and stop on the first level where there are no collisions\r\n for (j = 0; j < levels.length; j++) {\r\n if (!computeSlotSegCollisions(seg, levels[j]).length) {\r\n break;\r\n }\r\n }\r\n seg.level = j;\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n return levels;\r\n}\r\n// For every segment, figure out the other segments that are in subsequent\r\n// levels that also occupy the same vertical space. Accumulate in seg.forwardSegs\r\nfunction computeForwardSlotSegs(levels) {\r\n var i;\r\n var level;\r\n var j;\r\n var seg;\r\n var k;\r\n for (i = 0; i < levels.length; i++) {\r\n level = levels[i];\r\n for (j = 0; j < level.length; j++) {\r\n seg = level[j];\r\n seg.forwardSegs = [];\r\n for (k = i + 1; k < levels.length; k++) {\r\n computeSlotSegCollisions(seg, levels[k], seg.forwardSegs);\r\n }\r\n }\r\n }\r\n}\r\n// Figure out which path forward (via seg.forwardSegs) results in the longest path until\r\n// the furthest edge is reached. The number of segments in this path will be seg.forwardPressure\r\nfunction computeSlotSegPressures(seg) {\r\n var forwardSegs = seg.forwardSegs;\r\n var forwardPressure = 0;\r\n var i;\r\n var forwardSeg;\r\n if (seg.forwardPressure === undefined) {\r\n for (i = 0; i < forwardSegs.length; i++) {\r\n forwardSeg = forwardSegs[i];\r\n // figure out the child's maximum forward path\r\n computeSlotSegPressures(forwardSeg);\r\n // either use the existing maximum, or use the child's forward pressure\r\n // plus one (for the forwardSeg itself)\r\n forwardPressure = Math.max(forwardPressure, 1 + forwardSeg.forwardPressure);\r\n }\r\n seg.forwardPressure = forwardPressure;\r\n }\r\n}\r\n// Find all the segments in `otherSegs` that vertically collide with `seg`.\r\n// Append into an optionally-supplied `results` array and return.\r\nfunction computeSlotSegCollisions(seg, otherSegs, results) {\r\n if (results === void 0) { results = []; }\r\n for (var i = 0; i < otherSegs.length; i++) {\r\n if (isSlotSegCollision(seg, otherSegs[i])) {\r\n results.push(otherSegs[i]);\r\n }\r\n }\r\n return results;\r\n} \t\r\n// Do these segments occupy the same vertical space?\r\nfunction isSlotSegCollision(seg1, seg2) {\r\n/////////////// stop physics of segments\r\n// return seg1.bottom > seg2.top && seg1.top < seg2.bottom;\r\n return 0;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 247 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nvar TimeGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridHelperRenderer, _super);\r\n function TimeGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var i;\r\n var seg;\r\n var sourceEl;\r\n // TODO: not good to call eventRenderer this way\r\n this.eventRenderer.renderFgSegsIntoContainers(segs, this.component.helperContainerEls);\r\n // Try to make the segment that is in the same row as sourceSeg look the same\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n if (sourceSeg && sourceSeg.col === seg.col) {\r\n sourceEl = sourceSeg.el;\r\n seg.el.css({\r\n left: sourceEl.css('left'),\r\n right: sourceEl.css('right'),\r\n 'margin-left': sourceEl.css('margin-left'),\r\n 'margin-right': sourceEl.css('margin-right')\r\n });\r\n }\r\n helperNodes.push(seg.el[0]);\r\n }\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return TimeGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = TimeGridHelperRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 248 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nvar TimeGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(TimeGridFillRenderer, _super);\r\n function TimeGridFillRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TimeGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var timeGrid = this.component;\r\n var containerEls;\r\n // TODO: more efficient lookup\r\n if (type === 'bgEvent') {\r\n containerEls = timeGrid.bgContainerEls;\r\n }\r\n else if (type === 'businessHours') {\r\n containerEls = timeGrid.businessContainerEls;\r\n }\r\n else if (type === 'highlight') {\r\n containerEls = timeGrid.highlightContainerEls;\r\n }\r\n timeGrid.updateSegVerticals(segs);\r\n timeGrid.attachSegsByCol(timeGrid.groupSegsByCol(segs), containerEls);\r\n return segs.map(function (seg) {\r\n return seg.el[0];\r\n });\r\n };\r\n return TimeGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = TimeGridFillRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 249 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n/* A rectangular panel that is absolutely positioned over other content\r\n------------------------------------------------------------------------------------------------------------------------\r\nOptions:\r\n - className (string)\r\n - content (HTML string or jQuery element set)\r\n - parentEl\r\n - top\r\n - left\r\n - right (the x coord of where the right edge should be. not a \"CSS\" right)\r\n - autoHide (boolean)\r\n - show (callback)\r\n - hide (callback)\r\n*/\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar ListenerMixin_1 = __webpack_require__(7);\r\nvar Popover = /** @class */ (function () {\r\n function Popover(options) {\r\n this.isHidden = true;\r\n this.margin = 10; // the space required between the popover and the edges of the scroll container\r\n this.options = options || {};\r\n }\r\n // Shows the popover on the specified position. Renders it if not already\r\n Popover.prototype.show = function () {\r\n if (this.isHidden) {\r\n if (!this.el) {\r\n this.render();\r\n }\r\n this.el.show();\r\n this.position();\r\n this.isHidden = false;\r\n this.trigger('show');\r\n }\r\n };\r\n // Hides the popover, through CSS, but does not remove it from the DOM\r\n Popover.prototype.hide = function () {\r\n if (!this.isHidden) {\r\n this.el.hide();\r\n this.isHidden = true;\r\n this.trigger('hide');\r\n }\r\n };\r\n // Creates `this.el` and renders content inside of it\r\n Popover.prototype.render = function () {\r\n var _this = this;\r\n var options = this.options;\r\n this.el = $('
')\r\n .addClass(options.className || '')\r\n .css({\r\n // position initially to the top left to avoid creating scrollbars\r\n top: 0,\r\n left: 0\r\n })\r\n .append(options.content)\r\n .appendTo(options.parentEl);\r\n // when a click happens on anything inside with a 'fc-close' className, hide the popover\r\n this.el.on('click', '.fc-close', function () {\r\n _this.hide();\r\n });\r\n if (options.autoHide) {\r\n this.listenTo($(document), 'mousedown', this.documentMousedown);\r\n }\r\n };\r\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\r\n Popover.prototype.documentMousedown = function (ev) {\r\n // only hide the popover if the click happened outside the popover\r\n if (this.el && !$(ev.target).closest(this.el).length) {\r\n this.hide();\r\n }\r\n };\r\n // Hides and unregisters any handlers\r\n Popover.prototype.removeElement = function () {\r\n this.hide();\r\n if (this.el) {\r\n this.el.remove();\r\n this.el = null;\r\n }\r\n this.stopListeningTo($(document), 'mousedown');\r\n };\r\n // Positions the popover optimally, using the top/left/right options\r\n Popover.prototype.position = function () {\r\n var options = this.options;\r\n var origin = this.el.offsetParent().offset();\r\n var width = this.el.outerWidth();\r\n var height = this.el.outerHeight();\r\n var windowEl = $(window);\r\n var viewportEl = util_1.getScrollParent(this.el);\r\n var viewportTop;\r\n var viewportLeft;\r\n var viewportOffset;\r\n var top; // the \"position\" (not \"offset\") values for the popover\r\n var left; //\r\n // compute top and left\r\n top = options.top || 0;\r\n if (options.left !== undefined) {\r\n left = options.left;\r\n }\r\n else if (options.right !== undefined) {\r\n left = options.right - width; // derive the left value from the right value\r\n }\r\n else {\r\n left = 0;\r\n }\r\n if (viewportEl.is(window) || viewportEl.is(document)) {\r\n viewportEl = windowEl;\r\n viewportTop = 0; // the window is always at the top left\r\n viewportLeft = 0; // (and .offset() won't work if called here)\r\n }\r\n else {\r\n viewportOffset = viewportEl.offset();\r\n viewportTop = viewportOffset.top;\r\n viewportLeft = viewportOffset.left;\r\n }\r\n // if the window is scrolled, it causes the visible area to be further down\r\n viewportTop += windowEl.scrollTop();\r\n viewportLeft += windowEl.scrollLeft();\r\n // constrain to the view port. if constrained by two edges, give precedence to top/left\r\n if (options.viewportConstrain !== false) {\r\n top = Math.min(top, viewportTop + viewportEl.outerHeight() - height - this.margin);\r\n top = Math.max(top, viewportTop + this.margin);\r\n left = Math.min(left, viewportLeft + viewportEl.outerWidth() - width - this.margin);\r\n left = Math.max(left, viewportLeft + this.margin);\r\n }\r\n this.el.css({\r\n top: top - origin.top,\r\n left: left - origin.left\r\n });\r\n };\r\n // Triggers a callback. Calls a function in the option hash of the same name.\r\n // Arguments beyond the first `name` are forwarded on.\r\n // TODO: better code reuse for this. Repeat code\r\n Popover.prototype.trigger = function (name) {\r\n if (this.options[name]) {\r\n this.options[name].apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n };\r\n return Popover;\r\n}());\r\nexports.default = Popover;\r\nListenerMixin_1.default.mixInto(Popover);\r\n\r\n\r\n/***/ }),\r\n/* 250 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\r\n/* Event-rendering methods for the DayGrid class\r\n----------------------------------------------------------------------------------------------------------------------*/\r\nvar DayGridEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridEventRenderer, _super);\r\n function DayGridEventRenderer(dayGrid, fillRenderer) {\r\n var _this = _super.call(this, dayGrid, fillRenderer) || this;\r\n _this.dayGrid = dayGrid;\r\n return _this;\r\n }\r\n DayGridEventRenderer.prototype.renderBgRanges = function (eventRanges) {\r\n // don't render timed background events\r\n eventRanges = $.grep(eventRanges, function (eventRange) {\r\n return eventRange.eventDef.isAllDay();\r\n });\r\n _super.prototype.renderBgRanges.call(this, eventRanges);\r\n };\r\n // Renders the given foreground event segments onto the grid\r\n DayGridEventRenderer.prototype.renderFgSegs = function (segs) {\r\n var rowStructs = this.rowStructs = this.renderSegRows(segs);\r\n // append to each row's content skeleton\r\n this.dayGrid.rowEls.each(function (i, rowNode) {\r\n $(rowNode).find('.fc-content-skeleton > table').append(rowStructs[i].tbodyEl);\r\n });\r\n };\r\n // Unrenders all currently rendered foreground event segments\r\n DayGridEventRenderer.prototype.unrenderFgSegs = function () {\r\n var rowStructs = this.rowStructs || [];\r\n var rowStruct;\r\n while ((rowStruct = rowStructs.pop())) {\r\n rowStruct.tbodyEl.remove();\r\n }\r\n this.rowStructs = null;\r\n };\r\n // Uses the given events array to generate elements that should be appended to each row's content skeleton.\r\n // Returns an array of rowStruct objects (see the bottom of `renderSegRow`).\r\n // PRECONDITION: each segment shoud already have a rendered and assigned `.el`\r\n DayGridEventRenderer.prototype.renderSegRows = function (segs) {\r\n var rowStructs = [];\r\n var segRows;\r\n var row;\r\n segRows = this.groupSegRows(segs); // group into nested arrays\r\n // iterate each row of segment groupings\r\n for (row = 0; row < segRows.length; row++) {\r\n rowStructs.push(this.renderSegRow(row, segRows[row]));\r\n }\r\n return rowStructs;\r\n };\r\n // Given a row # and an array of segments all in the same row, render a element, a skeleton that contains\r\n // the segments. Returns object with a bunch of internal data about how the render was calculated.\r\n // NOTE: modifies rowSegs\r\n DayGridEventRenderer.prototype.renderSegRow = function (row, rowSegs) {\r\n var colCnt = this.dayGrid.colCnt;\r\n var segLevels = this.buildSegLevels(rowSegs); // group into sub-arrays of levels\r\n var levelCnt = Math.max(1, segLevels.length); // ensure at least one level\r\n var tbody = $('');\r\n var segMatrix = []; // lookup for which segments are rendered into which level+col cells\r\n var cellMatrix = []; // lookup for all elements of the level+col matrix\r\n var loneCellMatrix = []; // lookup for elements that only take up a single column\r\n var i;\r\n var levelSegs;\r\n var col;\r\n var tr;\r\n var j;\r\n var seg;\r\n var td;\r\n // populates empty cells from the current column (`col`) to `endCol`\r\n function emptyCellsUntil(endCol) {\r\n while (col < endCol) {\r\n // try to grab a cell from the level above and extend its rowspan. otherwise, create a fresh cell\r\n td = (loneCellMatrix[i - 1] || [])[col];\r\n if (td) {\r\n td.attr('rowspan', parseInt(td.attr('rowspan') || 1, 10) + 1);\r\n }\r\n else {\r\n td = $('');\r\n tr.append(td);\r\n }\r\n cellMatrix[i][col] = td;\r\n loneCellMatrix[i][col] = td;\r\n col++;\r\n }\r\n }\r\n for (i = 0; i < levelCnt; i++) {\r\n levelSegs = segLevels[i];\r\n col = 0;\r\n tr = $('');\r\n segMatrix.push([]);\r\n cellMatrix.push([]);\r\n loneCellMatrix.push([]);\r\n // levelCnt might be 1 even though there are no actual levels. protect against this.\r\n // this single empty row is useful for styling.\r\n if (levelSegs) {\r\n for (j = 0; j < levelSegs.length; j++) {\r\n seg = levelSegs[j];\r\n emptyCellsUntil(seg.leftCol);\r\n // create a container that occupies or more columns. append the event element.\r\n td = $('').append(seg.el);\r\n if (seg.leftCol !== seg.rightCol) {\r\n td.attr('colspan', seg.rightCol - seg.leftCol + 1);\r\n }\r\n else {\r\n loneCellMatrix[i][col] = td;\r\n }\r\n while (col <= seg.rightCol) {\r\n cellMatrix[i][col] = td;\r\n segMatrix[i][col] = seg;\r\n col++;\r\n }\r\n tr.append(td);\r\n }\r\n }\r\n emptyCellsUntil(colCnt); // finish off the row\r\n this.dayGrid.bookendCells(tr);\r\n tbody.append(tr);\r\n }\r\n return {\r\n row: row,\r\n tbodyEl: tbody,\r\n cellMatrix: cellMatrix,\r\n segMatrix: segMatrix,\r\n segLevels: segLevels,\r\n segs: rowSegs\r\n };\r\n };\r\n // Stacks a flat array of segments, which are all assumed to be in the same row, into subarrays of vertical levels.\r\n // NOTE: modifies segs\r\n DayGridEventRenderer.prototype.buildSegLevels = function (segs) {\r\n var levels = [];\r\n var i;\r\n var seg;\r\n var j;\r\n // Give preference to elements with certain criteria, so they have\r\n // a chance to be closer to the top.\r\n this.sortEventSegs(segs);\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n // loop through levels, starting with the topmost, until the segment doesn't collide with other segments\r\n for (j = 0; j < levels.length; j++) {\r\n if (!isDaySegCollision(seg, levels[j])) {\r\n break;\r\n }\r\n }\r\n // `j` now holds the desired subrow index\r\n seg.level = j;\r\n // create new level array if needed and append segment\r\n (levels[j] || (levels[j] = [])).push(seg);\r\n }\r\n // order segments left-to-right. very important if calendar is RTL\r\n for (j = 0; j < levels.length; j++) {\r\n levels[j].sort(compareDaySegCols);\r\n }\r\n return levels;\r\n };\r\n // Given a flat array of segments, return an array of sub-arrays, grouped by each segment's row\r\n DayGridEventRenderer.prototype.groupSegRows = function (segs) {\r\n var segRows = [];\r\n var i;\r\n for (i = 0; i < this.dayGrid.rowCnt; i++) {\r\n segRows.push([]);\r\n }\r\n for (i = 0; i < segs.length; i++) {\r\n segRows[segs[i].row].push(segs[i]);\r\n }\r\n return segRows;\r\n };\r\n // Computes a default event time formatting string if `timeFormat` is not explicitly defined\r\n DayGridEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('extraSmallTimeFormat'); // like \"6p\" or \"6:30p\"\r\n };\r\n // Computes a default `displayEventEnd` value if one is not expliclty defined\r\n DayGridEventRenderer.prototype.computeDisplayEventEnd = function () {\r\n return this.dayGrid.colCnt === 1; // we'll likely have space if there's only one day\r\n };\r\n // Builds the HTML to be used for the default element for an individual segment\r\n DayGridEventRenderer.prototype.fgSegHtml = function (seg, disableResizing) {\r\n var view = this.view;\r\n var eventDef = seg.footprint.eventDef;\r\n var isAllDay = seg.footprint.componentFootprint.isAllDay;\r\n var isDraggable = view.isEventDefDraggable(eventDef);\r\n var isResizableFromStart = !disableResizing && isAllDay &&\r\n seg.isStart && view.isEventDefResizableFromStart(eventDef);\r\n var isResizableFromEnd = !disableResizing && isAllDay &&\r\n seg.isEnd && view.isEventDefResizableFromEnd(eventDef);\r\n var classes = this.getSegClasses(seg, isDraggable, isResizableFromStart || isResizableFromEnd);\r\n var skinCss = util_1.cssToStr(this.getSkinCss(eventDef));\r\n var timeHtml = '';\r\n var timeText;\r\n var titleHtml;\r\n classes.unshift('fc-day-grid-event', 'fc-h-event');\r\n // Only display a timed events time if it is the starting segment\r\n if (seg.isStart) {\r\n timeText = this.getTimeText(seg.footprint);\r\n if (timeText) {\r\n timeHtml = '' + util_1.htmlEscape(timeText) + '';\r\n }\r\n }\r\n titleHtml =\r\n '' +\r\n (util_1.htmlEscape(eventDef.title || '') || ' ') + // we always want one line of height\r\n '';\r\n return '' +\r\n '
' +\r\n (this.dayGrid.isRTL ?\r\n titleHtml + ' ' + timeHtml : // put a natural space in between\r\n timeHtml + ' ' + titleHtml //\r\n ) +\r\n '
' +\r\n (isResizableFromStart ?\r\n '
' :\r\n '') +\r\n (isResizableFromEnd ?\r\n '
' :\r\n '') +\r\n '';\r\n };\r\n return DayGridEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = DayGridEventRenderer;\r\n// Computes whether two segments' columns collide. They are assumed to be in the same row.\r\nfunction isDaySegCollision(seg, otherSegs) {\r\n var i;\r\n var otherSeg;\r\n for (i = 0; i < otherSegs.length; i++) {\r\n otherSeg = otherSegs[i];\r\n if (otherSeg.leftCol <= seg.rightCol &&\r\n otherSeg.rightCol >= seg.leftCol) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n// A cmp function for determining the leftmost event\r\nfunction compareDaySegCols(a, b) {\r\n return a.leftCol - b.leftCol;\r\n}\r\n\r\n\r\n/***/ }),\r\n/* 251 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar HelperRenderer_1 = __webpack_require__(58);\r\nvar DayGridHelperRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridHelperRenderer, _super);\r\n function DayGridHelperRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Renders a mock \"helper\" event. `sourceSeg` is the associated internal segment object. It can be null.\r\n DayGridHelperRenderer.prototype.renderSegs = function (segs, sourceSeg) {\r\n var helperNodes = [];\r\n var rowStructs;\r\n // TODO: not good to call eventRenderer this way\r\n rowStructs = this.eventRenderer.renderSegRows(segs);\r\n // inject each new event skeleton into each associated row\r\n this.component.rowEls.each(function (row, rowNode) {\r\n var rowEl = $(rowNode); // the .fc-row\r\n var skeletonEl = $('
'); // will be absolutely positioned\r\n var skeletonTopEl;\r\n var skeletonTop;\r\n // If there is an original segment, match the top position. Otherwise, put it at the row's top level\r\n if (sourceSeg && sourceSeg.row === row) {\r\n skeletonTop = sourceSeg.el.position().top;\r\n }\r\n else {\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton tbody');\r\n if (!skeletonTopEl.length) {\r\n skeletonTopEl = rowEl.find('.fc-content-skeleton table');\r\n }\r\n skeletonTop = skeletonTopEl.position().top;\r\n }\r\n skeletonEl.css('top', skeletonTop)\r\n .find('table')\r\n .append(rowStructs[row].tbodyEl);\r\n rowEl.append(skeletonEl);\r\n helperNodes.push(skeletonEl[0]);\r\n });\r\n return $(helperNodes); // must return the elements rendered\r\n };\r\n return DayGridHelperRenderer;\r\n}(HelperRenderer_1.default));\r\nexports.default = DayGridHelperRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 252 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar FillRenderer_1 = __webpack_require__(57);\r\nvar DayGridFillRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(DayGridFillRenderer, _super);\r\n function DayGridFillRenderer() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.fillSegTag = 'td'; // override the default tag name\r\n return _this;\r\n }\r\n DayGridFillRenderer.prototype.attachSegEls = function (type, segs) {\r\n var nodes = [];\r\n var i;\r\n var seg;\r\n var skeletonEl;\r\n for (i = 0; i < segs.length; i++) {\r\n seg = segs[i];\r\n skeletonEl = this.renderFillRow(type, seg);\r\n this.component.rowEls.eq(seg.row).append(skeletonEl);\r\n nodes.push(skeletonEl[0]);\r\n }\r\n return nodes;\r\n };\r\n // Generates the HTML needed for one row of a fill. Requires the seg's el to be rendered.\r\n DayGridFillRenderer.prototype.renderFillRow = function (type, seg) {\r\n var colCnt = this.component.colCnt;\r\n var startCol = seg.leftCol;\r\n var endCol = seg.rightCol + 1;\r\n var className;\r\n var skeletonEl;\r\n var trEl;\r\n if (type === 'businessHours') {\r\n className = 'bgevent';\r\n }\r\n else {\r\n className = type.toLowerCase();\r\n }\r\n skeletonEl = $('
' +\r\n '
' +\r\n '
');\r\n trEl = skeletonEl.find('tr');\r\n if (startCol > 0) {\r\n trEl.append('');\r\n }\r\n trEl.append(seg.el.attr('colspan', endCol - startCol));\r\n if (endCol < colCnt) {\r\n trEl.append('');\r\n }\r\n this.component.bookendCells(trEl);\r\n return skeletonEl;\r\n };\r\n return DayGridFillRenderer;\r\n}(FillRenderer_1.default));\r\nexports.default = DayGridFillRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 253 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar BasicViewDateProfileGenerator_1 = __webpack_require__(228);\r\nvar UnzonedRange_1 = __webpack_require__(5);\r\nvar MonthViewDateProfileGenerator = /** @class */ (function (_super) {\r\n tslib_1.__extends(MonthViewDateProfileGenerator, _super);\r\n function MonthViewDateProfileGenerator() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // Computes the date range that will be rendered.\r\n MonthViewDateProfileGenerator.prototype.buildRenderRange = function (currentUnzonedRange, currentRangeUnit, isRangeAllDay) {\r\n var renderUnzonedRange = _super.prototype.buildRenderRange.call(this, currentUnzonedRange, currentRangeUnit, isRangeAllDay);\r\n var start = this.msToUtcMoment(renderUnzonedRange.startMs, isRangeAllDay);\r\n var end = this.msToUtcMoment(renderUnzonedRange.endMs, isRangeAllDay);\r\n var rowCnt;\r\n // ensure 6 weeks\r\n if (this.opt('fixedWeekCount')) {\r\n rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\r\n end.diff(start, 'weeks', true) // dontRound=true\r\n );\r\n end.add(6 - rowCnt, 'weeks');\r\n }\r\n return new UnzonedRange_1.default(start, end);\r\n };\r\n return MonthViewDateProfileGenerator;\r\n}(BasicViewDateProfileGenerator_1.default));\r\nexports.default = MonthViewDateProfileGenerator;\r\n\r\n\r\n/***/ }),\r\n/* 254 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar util_1 = __webpack_require__(4);\r\nvar EventRenderer_1 = __webpack_require__(42);\r\nvar ListEventRenderer = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventRenderer, _super);\r\n function ListEventRenderer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ListEventRenderer.prototype.renderFgSegs = function (segs) {\r\n if (!segs.length) {\r\n this.component.renderEmptyMessage();\r\n }\r\n else {\r\n this.component.renderSegList(segs);\r\n }\r\n };\r\n // generates the HTML for a single event row\r\n ListEventRenderer.prototype.fgSegHtml = function (seg) {\r\n var view = this.view;\r\n var calendar = view.calendar;\r\n var theme = calendar.theme;\r\n var eventFootprint = seg.footprint;\r\n var eventDef = eventFootprint.eventDef;\r\n var componentFootprint = eventFootprint.componentFootprint;\r\n var url = eventDef.url;\r\n var classes = ['fc-list-item'].concat(this.getClasses(eventDef));\r\n var bgColor = this.getBgColor(eventDef);\r\n var timeHtml;\r\n if (componentFootprint.isAllDay) {\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n else if (view.isMultiDayRange(componentFootprint.unzonedRange)) {\r\n if (seg.isStart || seg.isEnd) {\r\n timeHtml = util_1.htmlEscape(this._getTimeText(calendar.msToMoment(seg.startMs), calendar.msToMoment(seg.endMs), componentFootprint.isAllDay));\r\n }\r\n else {\r\n timeHtml = view.getAllDayHtml();\r\n }\r\n }\r\n else {\r\n // Display the normal time text for the *event's* times\r\n timeHtml = util_1.htmlEscape(this.getTimeText(eventFootprint));\r\n }\r\n if (url) {\r\n classes.push('fc-has-url');\r\n }\r\n return '' +\r\n (this.displayEventTime ?\r\n '' +\r\n (timeHtml || '') +\r\n '' :\r\n '') +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n util_1.htmlEscape(eventDef.title || '') +\r\n '' +\r\n '' +\r\n '';\r\n };\r\n // like \"4:00am\"\r\n ListEventRenderer.prototype.computeEventTimeFormat = function () {\r\n return this.opt('mediumTimeFormat');\r\n };\r\n return ListEventRenderer;\r\n}(EventRenderer_1.default));\r\nexports.default = ListEventRenderer;\r\n\r\n\r\n/***/ }),\r\n/* 255 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar $ = __webpack_require__(3);\r\nvar EventPointing_1 = __webpack_require__(59);\r\nvar ListEventPointing = /** @class */ (function (_super) {\r\n tslib_1.__extends(ListEventPointing, _super);\r\n function ListEventPointing() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n // for events with a url, the whole should be clickable,\r\n // but it's impossible to wrap with an tag. simulate this.\r\n ListEventPointing.prototype.handleClick = function (seg, ev) {\r\n var url;\r\n _super.prototype.handleClick.call(this, seg, ev); // might prevent the default action\r\n // not clicking on or within an with an href\r\n if (!$(ev.target).closest('a[href]').length) {\r\n url = seg.footprint.eventDef.url;\r\n if (url && !ev.isDefaultPrevented()) {\r\n window.location.href = url; // simulate link click\r\n }\r\n }\r\n };\r\n return ListEventPointing;\r\n}(EventPointing_1.default));\r\nexports.default = ListEventPointing;\r\n\r\n\r\n/***/ }),\r\n/* 256 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar EventSourceParser_1 = __webpack_require__(38);\r\nvar ArrayEventSource_1 = __webpack_require__(52);\r\nvar FuncEventSource_1 = __webpack_require__(215);\r\nvar JsonFeedEventSource_1 = __webpack_require__(216);\r\nEventSourceParser_1.default.registerClass(ArrayEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(FuncEventSource_1.default);\r\nEventSourceParser_1.default.registerClass(JsonFeedEventSource_1.default);\r\n\r\n\r\n/***/ }),\r\n/* 257 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ThemeRegistry_1 = __webpack_require__(51);\r\nvar StandardTheme_1 = __webpack_require__(213);\r\nvar JqueryUiTheme_1 = __webpack_require__(214);\r\nvar Bootstrap3Theme_1 = __webpack_require__(258);\r\nvar Bootstrap4Theme_1 = __webpack_require__(259);\r\nThemeRegistry_1.defineThemeSystem('standard', StandardTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('jquery-ui', JqueryUiTheme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap3', Bootstrap3Theme_1.default);\r\nThemeRegistry_1.defineThemeSystem('bootstrap4', Bootstrap4Theme_1.default);\r\n\r\n\r\n/***/ }),\r\n/* 258 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar Bootstrap3Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap3Theme, _super);\r\n function Bootstrap3Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap3Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap3Theme;\r\nBootstrap3Theme.prototype.classes = {\r\n widget: 'fc-bootstrap3',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-default',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'panel panel-default',\r\n popoverHeader: 'panel-heading',\r\n popoverContent: 'panel-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `panel` class b/c don't want margins/radius. only border color.\r\n headerRow: 'panel-default',\r\n dayRow: 'panel-default',\r\n // list view\r\n listView: 'panel panel-default'\r\n};\r\nBootstrap3Theme.prototype.baseIconClass = 'glyphicon';\r\nBootstrap3Theme.prototype.iconClasses = {\r\n close: 'glyphicon-remove',\r\n prev: 'glyphicon-chevron-left',\r\n next: 'glyphicon-chevron-right',\r\n prevYear: 'glyphicon-backward',\r\n nextYear: 'glyphicon-forward'\r\n};\r\nBootstrap3Theme.prototype.iconOverrideOption = 'bootstrapGlyphicons';\r\nBootstrap3Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapGlyphicon';\r\nBootstrap3Theme.prototype.iconOverridePrefix = 'glyphicon-';\r\n\r\n\r\n/***/ }),\r\n/* 259 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar tslib_1 = __webpack_require__(2);\r\nvar Theme_1 = __webpack_require__(19);\r\nvar Bootstrap4Theme = /** @class */ (function (_super) {\r\n tslib_1.__extends(Bootstrap4Theme, _super);\r\n function Bootstrap4Theme() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Bootstrap4Theme;\r\n}(Theme_1.default));\r\nexports.default = Bootstrap4Theme;\r\nBootstrap4Theme.prototype.classes = {\r\n widget: 'fc-bootstrap4',\r\n tableGrid: 'table-bordered',\r\n tableList: 'table',\r\n tableListHeading: 'table-active',\r\n buttonGroup: 'btn-group',\r\n button: 'btn btn-primary',\r\n stateActive: 'active',\r\n stateDisabled: 'disabled',\r\n today: 'alert alert-info',\r\n popover: 'card card-primary',\r\n popoverHeader: 'card-header',\r\n popoverContent: 'card-body',\r\n // day grid\r\n // for left/right border color when border is inset from edges (all-day in agenda view)\r\n // avoid `table` class b/c don't want margins/padding/structure. only border color.\r\n headerRow: 'table-bordered',\r\n dayRow: 'table-bordered',\r\n // list view\r\n listView: 'card card-primary'\r\n};\r\nBootstrap4Theme.prototype.baseIconClass = 'fa';\r\nBootstrap4Theme.prototype.iconClasses = {\r\n close: 'fa-times',\r\n prev: 'fa-chevron-left',\r\n next: 'fa-chevron-right',\r\n prevYear: 'fa-angle-double-left',\r\n nextYear: 'fa-angle-double-right'\r\n};\r\nBootstrap4Theme.prototype.iconOverrideOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverrideCustomButtonOption = 'bootstrapFontAwesome';\r\nBootstrap4Theme.prototype.iconOverridePrefix = 'fa-';\r\n\r\n\r\n/***/ }),\r\n/* 260 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar BasicView_1 = __webpack_require__(62);\r\nvar MonthView_1 = __webpack_require__(229);\r\nViewRegistry_1.defineView('basic', {\r\n 'class': BasicView_1.default\r\n});\r\nViewRegistry_1.defineView('basicDay', {\r\n type: 'basic',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('basicWeek', {\r\n type: 'basic',\r\n duration: { weeks: 1 }\r\n});\r\nViewRegistry_1.defineView('month', {\r\n 'class': MonthView_1.default,\r\n duration: { months: 1 },\r\n defaults: {\r\n fixedWeekCount: true\r\n }\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 261 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar AgendaView_1 = __webpack_require__(226);\r\nViewRegistry_1.defineView('agenda', {\r\n 'class': AgendaView_1.default,\r\n defaults: {\r\n allDaySlot: true,\r\n slotDuration: '00:30:00',\r\n slotEventOverlap: true // a bad name. confused with overlap/constraint system\r\n }\r\n});\r\nViewRegistry_1.defineView('agendaDay', {\r\n type: 'agenda',\r\n duration: { days: 1 }\r\n});\r\nViewRegistry_1.defineView('agendaWeek', {\r\n type: 'agenda',\r\n duration: { weeks: 1 }\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 262 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nvar ViewRegistry_1 = __webpack_require__(22);\r\nvar ListView_1 = __webpack_require__(230);\r\nViewRegistry_1.defineView('list', {\r\n 'class': ListView_1.default,\r\n buttonTextKey: 'list',\r\n defaults: {\r\n buttonText: 'list',\r\n listDayFormat: 'LL',\r\n noEventsMessage: 'No events to display'\r\n }\r\n});\r\nViewRegistry_1.defineView('listDay', {\r\n type: 'list',\r\n duration: { days: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd' // day-of-week is all we need. full date is probably in header\r\n }\r\n});\r\nViewRegistry_1.defineView('listWeek', {\r\n type: 'list',\r\n duration: { weeks: 1 },\r\n defaults: {\r\n listDayFormat: 'dddd',\r\n listDayAltFormat: 'LL'\r\n }\r\n});\r\nViewRegistry_1.defineView('listMonth', {\r\n type: 'list',\r\n duration: { month: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\nViewRegistry_1.defineView('listYear', {\r\n type: 'list',\r\n duration: { year: 1 },\r\n defaults: {\r\n listDayAltFormat: 'dddd' // day-of-week is nice-to-have\r\n }\r\n});\r\n\r\n\r\n/***/ }),\r\n/* 263 */\r\n/***/ (function(module, exports) {\r\n\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n\r\n\r\n/***/ })\r\n/******/ ]);\r\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./static/fullcalendar/fullcalendar.js\n// module id = 293\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('full-calendar-reserve',{attrs:{\"show-modal\":_vm.showModalReserve,\"startDate\":_vm.startDate,\"endDate\":_vm.endDate,\"resources-checkboxes\":_vm.resourcesCheckboxes,\"number-of-resources\":_vm.selectedResources.length,\"add-reservation\":_vm.addReservation},on:{\"close\":function($event){_vm.showModalReserve = false}}}),_vm._v(\" \"),_c('full-calendar-info',{attrs:{\"show-modal\":_vm.showModalInfo,\"reservation\":_vm.reservation,\"cancel\":_vm.cancelReservation,\"update\":_vm.updateReservation,\"refreshTasks\":_vm.refreshTasks,\"nodes\":_vm.nodes},on:{\"close\":function($event){_vm.showModalInfo = false},\"handleError\":_vm.handleError}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-74cfb89e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/reserve_resources/FullCalendar.vue\n// module id = 294\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3b70e2bc\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MySchedule.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./MySchedule.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./MySchedule.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3b70e2bc\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./MySchedule.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3b70e2bc\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/reserve_resources/MySchedule.vue\n// module id = 295\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"range-select-container\"},[_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"scale-transition\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-text-field',{staticClass:\"date-input\",attrs:{\"slot\":\"activator\",\"label\":\"Schedule start date\",\"prepend-icon\":\"event\",\"readonly\":\"\"},slot:\"activator\",model:{value:(_vm.picker),callback:function ($$v) {_vm.picker=$$v},expression:\"picker\"}}),_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.menu = false; _vm.changeSchedule()}},model:{value:(_vm.picker),callback:function ($$v) {_vm.picker=$$v},expression:\"picker\"}})],1),_vm._v(\" \"),_c('v-text-field',{staticClass:\"range-input\",attrs:{\"min\":\"1\",\"step\":\"1\",\"type\":\"number\",\"label\":\"Schedule range in days\"},on:{\"input\":function($event){return _vm.changeSchedule()}},model:{value:(_vm.range),callback:function ($$v) {_vm.range=$$v},expression:\"range\"}})],1),_vm._v(\" \"),_c('div',{key:_vm.tableKey,staticClass:\"container\"},[_c('div',{staticClass:\"left-table\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('table',[_c('tbody',_vm._l((_vm.tableContent.resources),function(resource){return _c('tr',{key:resource.id},[_c('td',{staticClass:\"first-column\",class:{selected: resource.selected}},[(!resource.selected)?_c('v-btn',{staticClass:\"small-button\",attrs:{\"fab\":\"\",\"dark\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){return _vm.toggle(resource)}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"add\")])],1):_vm._e(),_vm._v(\" \"),(resource.selected)?_c('v-btn',{staticClass:\"small-button\",attrs:{\"fab\":\"\",\"dark\":\"\",\"color\":\"blue\"},on:{\"click\":function($event){return _vm.toggle(resource)}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"remove\")])],1):_vm._e(),_vm._v(\"\\n \"+_vm._s(resource.name)+\"\\n \")],1)])}),0)])]),_vm._v(\" \"),_c('div',{staticClass:\"right-table\"},[_c('table',[_c('tbody',_vm._l((_vm.tableContent.header),function(header){return _c('th',{key:header.value},[_vm._v(_vm._s(header.value))])}),0)]),_vm._v(\" \"),_c('table',[_c('tbody',[_c('tr',_vm._l((_vm.tableContent.hours),function(hours){return _c('td',{key:hours.id,staticClass:\"hours\"},[_vm._v(_vm._s(hours.value))])}),0)])]),_vm._v(\" \"),_c('table',[_c('tbody',_vm._l((_vm.tableContent.resources),function(resource){return _c('tr',{key:resource.id},_vm._l((resource.slots),function(slots){return _c('td',{key:slots.id,class:{ 'reserved': slots.reserved, 'userReservation': slots.userReservation }},[_vm._v(_vm._s(slots.value))])}),0)}),0)])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tbody',[_c('th',{staticClass:\"first-column\"},[_vm._v(\"Resources\")])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',[_c('tbody',[_c('tr',[_c('td',{staticClass:\"first-column\"},[_vm._v(\"Hours\")])])])])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3b70e2bc\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/reserve_resources/MySchedule.vue\n// module id = 297\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('v-snackbar',{attrs:{\"color\":\"error\",\"bottom\":\"\",\"multi-line\":\"\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \"),_c('v-btn',{attrs:{\"color\":\"white\",\"flat\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},[_vm._v(\"\\n Close\\n \")])],1),_vm._v(\" \"),_c('section',{attrs:{\"id\":\"schedule_section\"}},[_c('MySchedule',{attrs:{\"parsed-nodes\":_vm.parsedNodes},on:{\"handleError\":function($event){return _vm.handleError.apply(void 0, arguments)},\"loadResources\":function($event){return _vm.loadResources.apply(void 0, arguments)}}})],1),_vm._v(\" \"),_c('section',{attrs:{\"id\":\"calendar_section\"}},[_c('FullCalendar',{attrs:{\"update-calendar\":_vm.updateCalendar,\"selected-resources\":_vm.selectedResources,\"nodes\":_vm.nodes},on:{\"handleError\":function($event){return _vm.handleError.apply(void 0, arguments)}}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4f2a7601\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/ReservationsOverview.vue\n// module id = 298\n// module chunks = 1","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./NodesOverview.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./NodesOverview.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-18fc6060\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./NodesOverview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/NodesOverview.vue\n// module id = 299\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-09be105e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./WatchGenerator.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./WatchGenerator.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./WatchGenerator.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-09be105e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./WatchGenerator.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/nodes_overview/WatchGenerator.vue\n// module id = 300\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-76d51dc2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./WatchBox.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./WatchBox.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./WatchBox.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-76d51dc2\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./WatchBox.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/nodes_overview/WatchBox.vue\n// module id = 306\n// module chunks = 1","var normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./LineChart.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./LineChart.vue\"\n/* template */\nvar __vue_template__ = null\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/nodes_overview/LineChart.vue\n// module id = 308\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"select_line\"},[_c('v-select',{staticClass:\"select_item\",attrs:{\"items\":_vm.nodes},model:{value:(_vm.selectedNode),callback:function ($$v) {_vm.selectedNode=$$v},expression:\"selectedNode\"}}),_vm._v(\" \"),_c('div',{staticClass:\"select_space\"}),_vm._v(\" \"),_c('v-select',{staticClass:\"select_item\",attrs:{\"items\":_vm.resourceTypes},model:{value:(_vm.selectedResourceType),callback:function ($$v) {_vm.selectedResourceType=$$v},expression:\"selectedResourceType\"}}),_vm._v(\" \"),_c('div',{staticClass:\"select_space\"}),_vm._v(\" \"),_c('v-select',{staticClass:\"select_item\",attrs:{\"items\":_vm.metrics},model:{value:(_vm.selectedMetric),callback:function ($$v) {_vm.selectedMetric=$$v},expression:\"selectedMetric\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"indigo\",\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"outline\":\"\"},on:{\"click\":function($event){return _vm.removeMe()}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"delete\")])],1)],1),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),(_vm.showProcesses === true)?_c('div',{staticClass:\"table_box\"},[_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.processes,\"item-key\":\"pid\",\"hide-actions\":\"\"},scopedSlots:_vm._u([{key:\"items\",fn:function(props){return [_c('tr',{on:{\"click\":function($event){props.expanded = !props.expanded}}},[_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.index))]),_vm._v(\" \"),_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.owner))]),_vm._v(\" \"),_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.pid))]),_vm._v(\" \"),_c('td',{staticClass:\"text-xs-right\"},[_vm._v(_vm._s(props.item.command))])])]}},{key:\"expand\",fn:function(props){return [_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-text',[_vm._v(\"GPU UUID: \"+_vm._s(props.item.uuid))])],1)]}}],null,false,51043860)})],1):_c('div',[_c('LineChart',{staticClass:\"chart_box\",attrs:{\"chart-data\":_vm.metricData,\"options\":_vm.metricOptions,\"rerender-chart\":_vm.rerenderChart,\"update-chart\":_vm.updateChart}})],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-76d51dc2\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/nodes_overview/WatchBox.vue\n// module id = 313\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.addWatch}},[_vm._v(\"\\n Add watch\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"watch_table\"},_vm._l((_vm.watches),function(watch){return _c('WatchBox',{key:watch.id,staticClass:\"watch_box\",attrs:{\"default-node\":watch.defaultNode,\"default-resource-type\":watch.defaultResourceType,\"default-metric\":watch.defaultMetric,\"resources-indexes\":_vm.resourcesIndexes,\"chart-datasets\":_vm.chartDatasets,\"update-chart\":_vm.updateChart,\"time\":_vm.time},on:{\"changeDefaultNode\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeDefaultNode.apply(void 0, [ watch.id ].concat( argsArray ))},\"changeDefaultResourceType\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeDefaultResourceType.apply(void 0, [ watch.id ].concat( argsArray ))},\"changeDefaultMetric\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeDefaultMetric.apply(void 0, [ watch.id ].concat( argsArray ))},\"deleteWatch\":function($event){return _vm.deleteWatch(watch.id)}}})}),1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-09be105e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/nodes_overview/WatchGenerator.vue\n// module id = 314\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('WatchGenerator')],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-18fc6060\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/NodesOverview.vue\n// module id = 315\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3aaf4402\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TasksOverview.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TasksOverview.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TasksOverview.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3aaf4402\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TasksOverview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/TasksOverview.vue\n// module id = 316\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1853547a\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TaskCreate.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskCreate.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskCreate.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1853547a\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TaskCreate.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-1853547a\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/tasks_overview/TaskCreate.vue\n// module id = 318\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-b07ebe7c\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TaskLine.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskLine.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskLine.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b07ebe7c\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TaskLine.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-b07ebe7c\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/tasks_overview/TaskLine.vue\n// module id = 320\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-d52c3886\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TaskLineParameter.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskLineParameter.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskLineParameter.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d52c3886\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TaskLineParameter.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/tasks_overview/TaskLineParameter.vue\n// module id = 322\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-text-field',{staticClass:\"task-input\",attrs:{\"label\":_vm.newParameter,\"small\":\"\"},model:{value:(_vm.newValue),callback:function ($$v) {_vm.newValue=$$v},expression:\"newValue\"}}),_vm._v(\" \"),_c('v-btn',{staticClass:\"remove-button\",attrs:{\"color\":\"indigo\",\"fab\":\"\",\"dark\":\"\",\"small\":\"\",\"outline\":\"\"},on:{\"click\":function($event){return _vm.removeMe()}}},[_c('v-icon',{attrs:{\"dark\":\"\"}},[_vm._v(\"delete\")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-d52c3886\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/tasks_overview/TaskLineParameter.vue\n// module id = 324\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-center\":\"\"}},[_c('div',{staticClass:\"task-preview\"},[_vm._v(\"\\n \"+_vm._s(_vm.taskPreview)+\"\\n \")])]),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-select',{staticClass:\"task-select\",attrs:{\"items\":_vm.hostnames,\"label\":\"Hostname\",\"small\":\"\"},model:{value:(_vm.newHost),callback:function ($$v) {_vm.newHost=$$v},expression:\"newHost\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-select',{staticClass:\"task-select\",attrs:{\"items\":_vm.hostResources,\"label\":\"Resource\",\"small\":\"\"},model:{value:(_vm.newResource),callback:function ($$v) {_vm.newResource=$$v},expression:\"newResource\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"task-input\",attrs:{\"label\":\"Command\",\"small\":\"\"},model:{value:(_vm.newCommand),callback:function ($$v) {_vm.newCommand=$$v},expression:\"newCommand\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},_vm._l((_vm.parameters),function(parameter){return _c('TaskLineParameter',{key:parameter.id,staticClass:\"task-input\",attrs:{\"parameter\":parameter.parameter,\"value\":parameter.value},on:{\"changeParameter\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeParameter.apply(void 0, [ parameter.id ].concat( argsArray ))},\"deleteParameter\":function($event){return _vm.deleteParameter(parameter.id)}}})}),1),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\"},on:{\"click\":function($event){return _vm.removeMe()}}},[_vm._v(\"\\n Remove task\\n \")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-b07ebe7c\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/tasks_overview/TaskLine.vue\n// module id = 325\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"80vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Create tasks\")]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({},on),[_vm._v(\"\\n info\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"CPU tasks can be run without making reservation.\\n \"),_c('br'),_vm._v(\"When you want to create a GPU task, you must\\n \"),_c('br'),_vm._v(\"first ensure that you are eligible to do so\\n \"),_c('br'),_vm._v(\"(having active reservation for that GPU).\\n \")])])],1),_vm._v(\" \"),_c('v-card-text',_vm._l((_vm.lines),function(line){return _c('TaskLine',{key:line.id,attrs:{\"hostnames\":_vm.hostnames,\"hosts\":_vm.hosts,\"host\":line.host,\"resource\":line.resource,\"command\":line.command,\"parameters\":line.parameters},on:{\"changeLine\":function($event){\nvar i = arguments.length, argsArray = Array(i);\nwhile ( i-- ) argsArray[i] = arguments[i];\nreturn _vm.changeLine.apply(void 0, [ line.id ].concat( argsArray ))},\"deleteLine\":function($event){return _vm.deleteLine(line.id)}}})}),1),_vm._v(\" \"),_c('v-card-text',[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"block\":\"\",\"small\":\"\"},on:{\"click\":_vm.copyLine}},[_vm._v(\"\\n Add task\\n \")])],1),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-text-field',{staticClass:\"parameter-name-input\",attrs:{\"label\":\"Parameter name\",\"small\":\"\"},model:{value:(_vm.newParameter),callback:function ($$v) {_vm.newParameter=$$v},expression:\"newParameter\"}}),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"round\":\"\"},on:{\"click\":_vm.addParameter}},[_vm._v(\"\\n Add parameter to all tasks\\n \")])],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.addTasks}},[_vm._v(\"\\n Create all tasks\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1853547a\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/tasks_overview/TaskCreate.vue\n// module id = 326\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-23f3faef\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TaskEdit.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskEdit.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskEdit.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-23f3faef\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TaskEdit.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-23f3faef\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/tasks_overview/TaskEdit.vue\n// module id = 327\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"80vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Edit task\")])]),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-text-field',{staticClass:\"host-input\",attrs:{\"label\":\"Hostname\",\"small\":\"\"},model:{value:(_vm.newHost),callback:function ($$v) {_vm.newHost=$$v},expression:\"newHost\"}}),_vm._v(\" \"),_c('span',{staticClass:\"space\"}),_vm._v(\" \"),_c('v-text-field',{staticClass:\"command-input\",attrs:{\"label\":\"Command\",\"small\":\"\"},model:{value:(_vm.newCommand),callback:function ($$v) {_vm.newCommand=$$v},expression:\"newCommand\"}})],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.changeTask}},[_vm._v(\"\\n Edit task\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-23f3faef\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/tasks_overview/TaskEdit.vue\n// module id = 329\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-54bcbb8f\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TaskSchedule.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskSchedule.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskSchedule.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-54bcbb8f\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TaskSchedule.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-54bcbb8f\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/tasks_overview/TaskSchedule.vue\n// module id = 330\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"40vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Schedule task\")])]),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-checkbox',{attrs:{\"label\":\"Set spawn time\"},model:{value:(_vm.spawn),callback:function ($$v) {_vm.spawn=$$v},expression:\"spawn\"}}),_vm._v(\" \"),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Spawn date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newSpawnDate),callback:function ($$v) {_vm.newSpawnDate=$$v},expression:\"newSpawnDate\"}},on))]}}]),model:{value:(_vm.spawnDateMenu),callback:function ($$v) {_vm.spawnDateMenu=$$v},expression:\"spawnDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.spawnDateMenu = false}},model:{value:(_vm.newSpawnDate),callback:function ($$v) {_vm.newSpawnDate=$$v},expression:\"newSpawnDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"spawnMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newSpawnTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newSpawnTime=$event},\"update:return-value\":function($event){_vm.newSpawnTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Spawn time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newSpawnTime),callback:function ($$v) {_vm.newSpawnTime=$$v},expression:\"newSpawnTime\"}},on))]}}]),model:{value:(_vm.spawnTimeMenu),callback:function ($$v) {_vm.spawnTimeMenu=$$v},expression:\"spawnTimeMenu\"}},[_vm._v(\" \"),(_vm.spawnTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.spawnMenu.save(_vm.newSpawnTime)}},model:{value:(_vm.newSpawnTime),callback:function ($$v) {_vm.newSpawnTime=$$v},expression:\"newSpawnTime\"}}):_vm._e()],1)],1),_vm._v(\" \"),_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-checkbox',{attrs:{\"label\":\"Set terminate time\"},model:{value:(_vm.terminate),callback:function ($$v) {_vm.terminate=$$v},expression:\"terminate\"}}),_vm._v(\" \"),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Terminate date\",\"prepend-icon\":\"event\"},model:{value:(_vm.newTerminateDate),callback:function ($$v) {_vm.newTerminateDate=$$v},expression:\"newTerminateDate\"}},on))]}}]),model:{value:(_vm.terminateDateMenu),callback:function ($$v) {_vm.terminateDateMenu=$$v},expression:\"terminateDateMenu\"}},[_vm._v(\" \"),_c('v-date-picker',{on:{\"input\":function($event){_vm.terminateDateMenu = false}},model:{value:(_vm.newTerminateDate),callback:function ($$v) {_vm.newTerminateDate=$$v},expression:\"newTerminateDate\"}})],1),_vm._v(\" \"),_c('v-menu',{ref:\"terminateMenu\",attrs:{\"close-on-content-click\":false,\"nudge-right\":40,\"return-value\":_vm.newTerminateTime,\"lazy\":\"\",\"transition\":\"none\",\"offset-y\":\"\",\"full-width\":\"\",\"max-width\":\"290px\",\"min-width\":\"290px\"},on:{\"update:returnValue\":function($event){_vm.newTerminateTime=$event},\"update:return-value\":function($event){_vm.newTerminateTime=$event}},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-text-field',_vm._g({attrs:{\"label\":\"Terminate time\",\"prepend-icon\":\"access_time\"},model:{value:(_vm.newTerminateTime),callback:function ($$v) {_vm.newTerminateTime=$$v},expression:\"newTerminateTime\"}},on))]}}]),model:{value:(_vm.terminateTimeMenu),callback:function ($$v) {_vm.terminateTimeMenu=$$v},expression:\"terminateTimeMenu\"}},[_vm._v(\" \"),(_vm.terminateTimeMenu)?_c('v-time-picker',{attrs:{\"full-width\":\"\",\"format\":\"24hr\"},on:{\"click:minute\":function($event){return _vm.$refs.terminateMenu.save(_vm.newTerminateTime)}},model:{value:(_vm.newTerminateTime),callback:function ($$v) {_vm.newTerminateTime=$$v},expression:\"newTerminateTime\"}}):_vm._e()],1)],1)],1),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\"},on:{\"click\":_vm.checkActionFlag}},[_vm._v(\"\\n Schedule task\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-54bcbb8f\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/tasks_overview/TaskSchedule.vue\n// module id = 332\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4d909ec3\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./TaskLog.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskLog.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./TaskLog.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d909ec3\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./TaskLog.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-4d909ec3\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/tasks_overview/TaskLog.vue\n// module id = 333\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"80vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Task log\")])]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n \"+_vm._s(_vm.path)+\"\\n \"),_c('div',{staticClass:\"log_box\"},_vm._l((_vm.lines),function(line,index){return _c('div',{key:index},[_vm._v(\"\\n \"+_vm._s(line)+\"\\n \")])}),0)]),_vm._v(\" \"),_c('v-card-text',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":_vm.close}},[_vm._v(\"\\n Close\\n \")])],1)],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4d909ec3\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/tasks_overview/TaskLog.vue\n// module id = 335\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('TaskCreate',{attrs:{\"show-modal\":_vm.showModalCreate,\"hostnames\":_vm.hostnames,\"hosts\":_vm.hosts,\"actionFlag\":_vm.actionFlag},on:{\"close\":function($event){_vm.showModalCreate = false},\"getTasks\":_vm.getTasks}}),_vm._v(\" \"),_c('TaskEdit',{attrs:{\"show-modal\":_vm.showModalEdit,\"taskId\":_vm.taskId,\"hostname\":_vm.newHostname,\"command\":_vm.newCommand,\"actionFlag\":_vm.actionFlag},on:{\"close\":function($event){_vm.showModalEdit = false},\"getTask\":function($event){return _vm.getTask.apply(void 0, arguments)},\"changeActionFlag\":function($event){return _vm.changeActionFlag.apply(void 0, arguments)},\"changeSnackbar\":function($event){return _vm.changeSnackbar.apply(void 0, arguments)}}}),_vm._v(\" \"),_c('TaskSchedule',{attrs:{\"show-modal\":_vm.showModalSchedule,\"taskId\":_vm.taskId,\"spawnTime\":_vm.newSpawnTime,\"terminateTime\":_vm.newTerminateTime,\"actionFlag\":_vm.actionFlag,\"multipleFlag\":_vm.multipleFlag,\"selected\":_vm.selected},on:{\"close\":function($event){_vm.showModalSchedule = false},\"updateTask\":function($event){return _vm.updateTask.apply(void 0, arguments)},\"changeActionFlag\":function($event){return _vm.changeActionFlag.apply(void 0, arguments)},\"changeSnackbar\":function($event){return _vm.changeSnackbar.apply(void 0, arguments)},\"handleError\":function($event){return _vm.handleError.apply(void 0, arguments)}}}),_vm._v(\" \"),_c('TaskLog',{attrs:{\"show-modal\":_vm.showModalLog,\"lines\":_vm.logs,\"path\":_vm.path},on:{\"close\":function($event){_vm.showModalLog = false}}}),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.showModalHowItWorks),callback:function ($$v) {_vm.showModalHowItWorks=$$v},expression:\"showModalHowItWorks\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline grey lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n How it works\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Your tasks are managed by `screen` program installed on each machine. You can attach\\n to/close them as they are running. Screen sessions created by TensorHive have custom\\n names so you won't be confused which is which.\"),_c('br'),_c('br'),_vm._v(\"\\n When your task command stops executing, screen session will disappear from `screen -ls`\\n but stdout produced your process will be redirected to a log file.\\n Logs are automatically gathered and stored on that machine under `~/TensorHiveLogs`\\n \")]),_vm._v(\" \"),_c('v-divider'),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"primary\",\"flat\":\"\"},on:{\"click\":function($event){_vm.showModalHowItWorks = false}}},[_vm._v(\"\\n Close\\n \")])],1)],1)],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"400\"},model:{value:(_vm.showModalRemove),callback:function ($$v) {_vm.showModalRemove=$$v},expression:\"showModalRemove\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline grey lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Do you want to remove this task?\\n \")]),_vm._v(\" \"),_c('v-card-actions',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModalRemove= false}}},[_vm._v(\"\\n No\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.removeTask()}}},[_vm._v(\"\\n Yes\\n \")])],1)],1)],1)],1),_vm._v(\" \"),_c('v-data-table',{key:_vm.tableKey,staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.tasks,\"pagination\":_vm.pagination,\"loading\":_vm.actionFlag,\"select-all\":\"\",\"item-key\":\"id\"},on:{\"update:pagination\":function($event){_vm.pagination=$event}},scopedSlots:_vm._u([{key:\"headers\",fn:function(props){return [_c('tr',[_c('th',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-start\":\"\"}},[_c('v-checkbox',{attrs:{\"input-value\":props.all,\"indeterminate\":props.indeterminate,\"primary\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleAll($event)}}}),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"right\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){_vm.showModalHowItWorks = true}}},on),[_vm._v(\"\\n info\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"How it works\")])])],1)],1),_vm._v(\" \"),_vm._l((props.headers),function(header){return _c('th',{key:header.text,class:['column sortable', _vm.pagination.descending ? 'desc' : 'asc', header.value === _vm.pagination.sortBy ? 'active' : ''],on:{\"click\":function($event){return _vm.changeSort(header.value)}}},[_c('v-icon',{attrs:{\"small\":\"\"}},[_vm._v(\"arrow_upward\")]),_vm._v(\"\\n \"+_vm._s(header.text)+\"\\n \")],1)})],2)]}},{key:\"items\",fn:function(props){return [_c('tr',{attrs:{\"active\":props.selected},on:{\"click\":function($event){props.selected = !props.selected}}},[_c('td',[_c('v-checkbox',{attrs:{\"input-value\":props.selected,\"primary\":\"\",\"hide-details\":\"\"}})],1),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.id))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.hostname))]),_vm._v(\" \"),_c('td',{staticClass:\"task-command\"},[_vm._v(_vm._s(props.item.command))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.pid))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.status))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.spawnAt)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.terminateAt)))]),_vm._v(\" \"),_c('td',[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.scheduleTasks(props.item)}}},on),[_vm._v(\"\\n schedule\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Schedule task\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.spawnTasks(props.item.id)}}},on),[_vm._v(\"\\n play_arrow\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Spawn task\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.terminateTasks(props.item.id, null)}}},on),[_vm._v(\"\\n stop\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Terminate task - does not guarantee that\\n \"),_c('br'),_vm._v(\" task will stop (depends on command)\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticStyle:{\"font-size\":\"20px\"},on:{\"click\":function($event){return _vm.terminateTasks(props.item.id, false)}}},on),[_vm._v(\"\\n 💀\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Kill task - use when command is more stubborn\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticStyle:{\"font-size\":\"20px\"},on:{\"click\":function($event){return _vm.getLog(props.item.id)}}},on),[_vm._v(\"\\n description\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Show log\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.editTask(props.item)}}},on),[_vm._v(\"\\n edit\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Edit task\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.showConfirmationDialog(props.item.id)}}},on),[_vm._v(\"\\n delete\\n \")])]}}],null,true)},[_vm._v(\" \"),_c('span',[_vm._v(\"Remove task\")])])],1)])]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},[_vm._v(\" \"),_c('v-progress-linear',{attrs:{\"indeterminate\":true},scopedSlots:_vm._u([{key:\"progress\",fn:function(){return undefined},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"text-xs-center pt-2\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.showModalCreate=true}}},[_vm._v(\"Create tasks\")]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.getTasks(true)}}},on),[_vm._v(\"\\n refresh\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Refresh\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.scheduleTasks(null)}}},on),[_vm._v(\"\\n schedule\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Schedule selected tasks\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.spawnTasks(null)}}},on),[_vm._v(\"\\n play_arrow\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Spawn selected tasks\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({on:{\"click\":function($event){return _vm.terminateTasks(null, null)}}},on),[_vm._v(\"\\n stop\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Terminate selected tasks - does not guarantee that\\n \"),_c('br'),_vm._v(\"task will stop (depends on command)\")])]),_vm._v(\" \"),_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nreturn [_c('v-icon',_vm._g({staticStyle:{\"font-size\":\"20px\"},on:{\"click\":function($event){return _vm.terminateTasks(null, false)}}},on),[_vm._v(\"\\n 💀\\n \")])]}}])},[_vm._v(\" \"),_c('span',[_vm._v(\"Kill selected tasks - use when command is more stubborn\")])])],1),_vm._v(\" \"),_c('v-snackbar',{attrs:{\"color\":\"amber\",\"bottom\":\"\",\"multi-line\":\"\"},model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('span',{staticStyle:{\"color\":\"black\"}},[_vm._v(\" Synchronization in progress. Actions are not allowed now. \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"black\",\"flat\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},[_vm._v(\"\\n Close\\n \")])],1),_vm._v(\" \"),_c('v-snackbar',{attrs:{\"color\":\"red\",\"bottom\":\"\",\"multi-line\":\"\"},model:{value:(_vm.snackbarError),callback:function ($$v) {_vm.snackbarError=$$v},expression:\"snackbarError\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \"),_c('v-btn',{attrs:{\"color\":\"black\",\"flat\":\"\"},on:{\"click\":function($event){_vm.snackbarError = false}}},[_vm._v(\"\\n Close\\n \")])],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3aaf4402\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/TasksOverview.vue\n// module id = 336\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"minimize\\\":true,\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3f0582b0\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./UsersOverview.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./UsersOverview.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./UsersOverview.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3f0582b0\\\",\\\"hasScoped\\\":true,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./UsersOverview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-3f0582b0\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/views/UsersOverview.vue\n// module id = 337\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"content\"},[_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.alert),callback:function ($$v) {_vm.alert=$$v},expression:\"alert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"info\"},model:{value:(_vm.created),callback:function ($$v) {_vm.created=$$v},expression:\"created\"}},[_vm._v(\"\\n User successfully created\\n \")]),_vm._v(\" \"),_c('v-layout',{attrs:{\"row\":\"\",\"justify-center\":\"\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"width\":\"50vw\"},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('v-card',[_c('v-card-title',[_c('span',{staticClass:\"headline\"},[_vm._v(\"Create new user\")])]),_vm._v(\" \"),_c('v-card-text',[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.createUser($event)}}},[_vm._v(\"\\n Username\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-user\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalUsername),expression:\"modalUsername\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalUsername\",\"placeholder\":\"Username\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalUsername)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalUsername=$event.target.value}}})]),_vm._v(\"\\n Email\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalEmail),expression:\"modalEmail\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalEmail\",\"placeholder\":\"Email\",\"type\":\"text\"},domProps:{\"value\":(_vm.modalEmail)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalEmail=$event.target.value}}})]),_vm._v(\"\\n Password\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword),expression:\"modalPassword\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword=$event.target.value}}})]),_vm._v(\"\\n Repeat password\\n \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.modalPassword2),expression:\"modalPassword2\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword2\",\"placeholder\":\"Password2\",\"type\":\"password\"},domProps:{\"value\":(_vm.modalPassword2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.modalPassword2=$event.target.value}}})]),_vm._v(\" \"),_c('v-alert',{attrs:{\"dismissible\":\"\",\"type\":\"error\"},model:{value:(_vm.modalAlert),callback:function ($$v) {_vm.modalAlert=$$v},expression:\"modalAlert\"}},[_vm._v(\"\\n \"+_vm._s(_vm.errorMessage)+\"\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"info\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModal=false}}},[_vm._v(\"\\n Cancel\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"type\":\"submit\"}},[_vm._v(\"\\n Create\\n \")])],1)])],1)],1)],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"width\":\"400\"},model:{value:(_vm.showModalRemove),callback:function ($$v) {_vm.showModalRemove=$$v},expression:\"showModalRemove\"}},[_c('v-card',[_c('v-card-title',{staticClass:\"headline grey lighten-2\",attrs:{\"primary-title\":\"\"}},[_vm._v(\"\\n Do you want to remove this user?\\n \")]),_vm._v(\" \"),_c('v-card-actions',[_c('v-layout',{attrs:{\"align-center\":\"\",\"justify-end\":\"\"}},[_c('v-btn',{attrs:{\"color\":\"error\",\"small\":\"\",\"outline\":\"\",\"round\":\"\"},on:{\"click\":function($event){_vm.showModalRemove= false}}},[_vm._v(\"\\n No\\n \")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"success\",\"round\":\"\"},on:{\"click\":function($event){return _vm.removeUser()}}},[_vm._v(\"\\n Yes\\n \")])],1)],1)],1)],1),_vm._v(\" \"),_c('div',[_c('div',{staticClass:\"text-xs-center pt-2\"},[_c('v-btn',{attrs:{\"color\":\"primary\"},on:{\"click\":function($event){_vm.showModal=true}}},[_vm._v(\"Create user\")])],1),_vm._v(\" \"),_c('v-dialog',{attrs:{\"max-width\":\"500px\"},model:{value:(_vm.dialog),callback:function ($$v) {_vm.dialog=$$v},expression:\"dialog\"}},[_c('v-card',[_c('v-card-text',[_c('v-card-text',[_vm._v(\"\\n Edit user\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Current username: \"+_vm._s(_vm.currentUser.username)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n New username\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.username),expression:\"user.username\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalUsername\",\"placeholder\":\"Username\",\"type\":\"text\"},domProps:{\"value\":(_vm.user.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"username\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Current email: \"+_vm._s(_vm.currentUser.email)+\"\\n \")]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n New email\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-envelope\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.email),expression:\"user.email\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalEmail\",\"placeholder\":\"Email\",\"type\":\"text\"},domProps:{\"value\":(_vm.user.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"email\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n New password\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword\",\"placeholder\":\"Password\",\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Repeat password\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"input-group\"},[_c('span',{staticClass:\"input-group-addon\"},[_c('i',{staticClass:\"fa fa-lock\"})]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password2),expression:\"user.password2\"}],staticClass:\"form-control\",attrs:{\"name\":\"modalPassword2\",\"placeholder\":\"Password2\",\"type\":\"password\"},domProps:{\"value\":(_vm.user.password2)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password2\", $event.target.value)}}})]),_vm._v(\" \"),_c('v-card-text',[_vm._v(\"\\n Account roles:\\n \")]),_vm._v(\" \"),_c('v-card-text',[_c('v-checkbox',{attrs:{\"label\":\"admin\"},model:{value:(_vm.adminCheckbox),callback:function ($$v) {_vm.adminCheckbox=$$v},expression:\"adminCheckbox\"}})],1)],1),_vm._v(\" \"),_c('v-card-actions',[_c('v-spacer'),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"flat\":\"\"},on:{\"click\":function($event){_vm.dialog = false}}},[_vm._v(\"Cancel\")]),_vm._v(\" \"),_c('v-btn',{attrs:{\"color\":\"blue darken-1\",\"flat\":\"\"},on:{\"click\":_vm.updateUser}},[_vm._v(\"Edit\")])],1)],1)],1),_vm._v(\" \"),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.users,\"search\":_vm.search,\"pagination\":_vm.pagination,\"item-key\":\"id\",\"hide-actions\":\"\"},on:{\"update:pagination\":function($event){_vm.pagination=$event}},scopedSlots:_vm._u([{key:\"items\",fn:function(props){return [_c('tr',[_c('td',[_vm._v(_vm._s(props.item.id))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.username))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.email))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(_vm.prettyDate(props.item.createdAt)))]),_vm._v(\" \"),_c('td',[_vm._v(_vm._s(props.item.role))]),_vm._v(\" \"),_c('td',[_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.editUser(props.item)}}},[_vm._v(\"\\n edit\\n \")]),_vm._v(\" \"),_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.showConfirmationDialog(props.item.id)}}},[_vm._v(\"\\n delete\\n \")])],1)])]}}])}),_vm._v(\" \"),_c('div',{staticClass:\"text-xs-center pt-2\"},[_c('v-pagination',{attrs:{\"length\":_vm.pages},model:{value:(_vm.pagination.page),callback:function ($$v) {_vm.$set(_vm.pagination, \"page\", $$v)},expression:\"pagination.page\"}})],1)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3f0582b0\",\"hasScoped\":true,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/views/UsersOverview.vue\n// module id = 339\n// module chunks = 1","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport state from './state'\nimport actions from './actions'\nimport mutations from './mutations'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state,\n actions,\n mutations\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","export default {\n callingAPI: false,\n searching: '',\n serverURI: 'http://10.110.1.136:8080',\n user: null,\n role: null,\n id: null,\n accessToken: null,\n refreshToken: null,\n userInfo: {\n messages: [{1: 'test', 2: 'test'}],\n notifications: [],\n tasks: []\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/state.js","export default {}\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/actions.js","export default {\n TOGGLE_LOADING (state) {\n state.callingAPI = !state.callingAPI\n },\n TOGGLE_SEARCHING (state) {\n state.searching = (state.searching === '') ? 'loading' : ''\n },\n SET_USER (state, user) {\n state.user = user\n },\n SET_ROLE (state, role) {\n state.role = role\n },\n SET_ID (state, id) {\n state.id = id\n },\n SET_ACCESS_TOKEN (state, token) {\n state.accessToken = token\n },\n SET_REFRESH_TOKEN (state, token) {\n state.refreshToken = token\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/mutations.js","const urlParser = document.createElement('a')\n\nexport function domain (url) {\n urlParser.href = url\n return urlParser.hostname\n}\n\nexport function count (arr) {\n return arr.length\n}\n\nexport function prettyDate (date) {\n var a = new Date(date)\n return a.toDateString()\n}\n\nexport function pluralize (time, label) {\n if (time === 1) {\n return time + label\n }\n\n return time + label + 's'\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/filters/index.js","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-535f2ac0\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/App.vue\n// module id = 346\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('v-app',[_c('router-view')],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-535f2ac0\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/App.vue\n// module id = 347\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/tensorhive/app/web/dist/static/js/manifest.2ae2e69a05c33dfc65f8.js.map b/tensorhive/app/web/dist/static/js/manifest.2ae2e69a05c33dfc65f8.js.map new file mode 100644 index 00000000..1574d3f6 --- /dev/null +++ b/tensorhive/app/web/dist/static/js/manifest.2ae2e69a05c33dfc65f8.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///static/js/manifest.2ae2e69a05c33dfc65f8.js","webpack:///webpack/bootstrap 4b527282f3f9687a4cba"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","2","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","p","oe","err","console","error"],"mappings":"CAAS,SAAUA,GCuCnB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAI,EAAAJ,EACAK,GAAA,EACAH,WAUA,OANAJ,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,GAAA,EAGAF,EAAAD,QA1DA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,GAAAX,GAAAY,EAAAC,EAAAT,EAAA,EAAAU,KACQV,EAAAK,EAAAM,OAAoBX,IAC5BQ,EAAAH,EAAAL,GACAY,EAAAJ,IACAE,EAAAG,KAAAD,EAAAJ,GAAA,IAEAI,EAAAJ,GAAA,CAEA,KAAAZ,IAAAU,GACAQ,OAAAC,UAAAC,eAAAd,KAAAI,EAAAV,KACAF,EAAAE,GAAAU,EAAAV,GAIA,KADAO,KAAAE,EAAAC,EAAAC,GACAG,EAAAC,QACAD,EAAAO,SAEA,IAAAV,EACA,IAAAP,EAAA,EAAYA,EAAAO,EAAAI,OAA2BX,IACvCS,EAAAd,IAAAuB,EAAAX,EAAAP,GAGA,OAAAS,GAIA,IAAAZ,MAGAe,GACAO,EAAA,EA6BAxB,GAAAyB,EAAA1B,EAGAC,EAAA0B,EAAAxB,EAGAF,EAAA2B,EAAA,SAAAxB,EAAAyB,EAAAC,GACA7B,EAAA8B,EAAA3B,EAAAyB,IACAT,OAAAY,eAAA5B,EAAAyB,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA7B,EAAAmC,EAAA,SAAA/B,GACA,GAAAyB,GAAAzB,KAAAgC,WACA,WAA2B,MAAAhC,GAAA,SAC3B,WAAiC,MAAAA,GAEjC,OADAJ,GAAA2B,EAAAE,EAAA,IAAAA,GACAA,GAIA7B,EAAA8B,EAAA,SAAAO,EAAAC,GAAsD,MAAAnB,QAAAC,UAAAC,eAAAd,KAAA8B,EAAAC,IAGtDtC,EAAAuC,EAAA,IAGAvC,EAAAwC,GAAA,SAAAC,GAA8D,KAApBC,SAAAC,MAAAF,GAAoBA","file":"static/js/manifest.2ae2e69a05c33dfc65f8.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t2: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([]);\n\n\n// WEBPACK FOOTER //\n// static/js/manifest.2ae2e69a05c33dfc65f8.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 4b527282f3f9687a4cba"],"sourceRoot":""} \ No newline at end of file diff --git a/tensorhive/app/web/dist/static/js/vendor.b294b2a46f10a4cef3a7.js b/tensorhive/app/web/dist/static/js/vendor.b294b2a46f10a4cef3a7.js new file mode 100644 index 00000000..9f256d9a --- /dev/null +++ b/tensorhive/app/web/dist/static/js/vendor.b294b2a46f10a4cef3a7.js @@ -0,0 +1,1414 @@ +webpackJsonp([0],[function(t,e,n){(function(t){!function(e,n){t.exports=n()}(0,function(){"use strict";function e(){return ji.apply(null,arguments)}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}function a(t){return void 0===t}function o(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function u(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function l(t,e){var n,i=[];for(n=0;n0)for(n=0;n0?"future":"past"];return T(n)?n(e):n.replace(/%s/i,e)}function I(t,e){var n=t.toLowerCase();Ni[n]=Ni[n+"s"]=Ni[e]=t}function H(t){return"string"==typeof t?Ni[t]||Ni[t.toLowerCase()]:void 0}function E(t){var e,n,i={};for(n in t)c(t,n)&&(e=H(n))&&(i[e]=t[n]);return i}function $(t,e){Wi[t]=e}function F(t){var e=[];for(var n in t)e.push({unit:n,priority:Wi[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function B(t,e,n){var i=""+Math.abs(t),r=e-i.length;return(t>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function N(t,e,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),t&&(qi[t]=r),e&&(qi[e[0]]=function(){return B(r.apply(this,arguments),e[1],e[2])}),n&&(qi[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function R(t){var e,n,i=t.match(Ri);for(e=0,n=i.length;e=0&&zi.test(t);)t=t.replace(zi,n),zi.lastIndex=0,i-=1;return t}function q(t,e,n){dr[t]=T(e)?e:function(t,i){return t&&n?n:e}}function J(t,e){return c(dr,t)?dr[t](e._strict,e._locale):new RegExp(G(t))}function G(t){return X(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,r){return e||n||i||r}))}function X(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function K(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),o(e)&&(i=function(t,n){n[e]=x(t)}),n=0;n=0?(o=new Date(t+400,e,n,i,r,s,a),isFinite(o.getFullYear())&&o.setFullYear(t)):o=new Date(t,e,n,i,r,s,a),o}function xt(t){var e;if(t<100&&t>=0){var n=Array.prototype.slice.call(arguments);n[0]=t+400,e=new Date(Date.UTC.apply(null,n)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Mt(t,e,n){var i=7+e-n;return-(7+xt(t,0,i).getUTCDay()-e)%7+i-1}function kt(t,e,n,i,r){var s,a,o=(7+n-i)%7,u=Mt(t,i,r),l=1+7*(e-1)+o+u;return l<=0?(s=t-1,a=tt(s)+l):l>tt(t)?(s=t+1,a=l-tt(t)):(s=t,a=l),{year:s,dayOfYear:a}}function wt(t,e,n){var i,r,s=Mt(t.year(),e,n),a=Math.floor((t.dayOfYear()-s-1)/7)+1;return a<1?(r=t.year()-1,i=a+Lt(r,e,n)):a>Lt(t.year(),e,n)?(i=a-Lt(t.year(),e,n),r=t.year()+1):(r=t.year(),i=a),{week:i,year:r}}function Lt(t,e,n){var i=Mt(t,e,n),r=Mt(t+1,e,n);return(tt(t)-i+r)/7}function Tt(t){return wt(t,this._week.dow,this._week.doy).week}function St(){return this._week.dow}function Dt(){return this._week.doy}function Yt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ct(t){var e=wt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ot(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function jt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Vt(t,e){return t.slice(e,7).concat(t.slice(0,e))}function At(t,e){var n=i(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Vt(n,this._week.dow):t?n[t.day()]:n}function Pt(t){return!0===t?Vt(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort}function It(t){return!0===t?Vt(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Ht(t,e,n){var i,r,s,a=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)s=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(s,"").toLocaleLowerCase();return n?"dddd"===e?(r=Mr.call(this._weekdaysParse,a),-1!==r?r:null):"ddd"===e?(r=Mr.call(this._shortWeekdaysParse,a),-1!==r?r:null):(r=Mr.call(this._minWeekdaysParse,a),-1!==r?r:null):"dddd"===e?-1!==(r=Mr.call(this._weekdaysParse,a))?r:-1!==(r=Mr.call(this._shortWeekdaysParse,a))?r:(r=Mr.call(this._minWeekdaysParse,a),-1!==r?r:null):"ddd"===e?-1!==(r=Mr.call(this._shortWeekdaysParse,a))?r:-1!==(r=Mr.call(this._weekdaysParse,a))?r:(r=Mr.call(this._minWeekdaysParse,a),-1!==r?r:null):-1!==(r=Mr.call(this._minWeekdaysParse,a))?r:-1!==(r=Mr.call(this._weekdaysParse,a))?r:(r=Mr.call(this._shortWeekdaysParse,a),-1!==r?r:null)}function Et(t,e,n){var i,r,s;if(this._weekdaysParseExact)return Ht.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=h([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(s="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(s.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function $t(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ot(t,this.localeData()),this.add(t-e,"d")):e}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Bt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=jt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Nt(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Vr),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Wt(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Ar),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Rt(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Pr),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function zt(){function t(t,e){return e.length-t.length}var e,n,i,r,s,a=[],o=[],u=[],l=[];for(e=0;e<7;e++)n=h([2e3,1]).day(e),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),s=this.weekdays(n,""),a.push(i),o.push(r),u.push(s),l.push(i),l.push(r),l.push(s);for(a.sort(t),o.sort(t),u.sort(t),l.sort(t),e=0;e<7;e++)o[e]=X(o[e]),u[e]=X(u[e]),l[e]=X(l[e]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Ut(){return this.hours()%12||12}function qt(){return this.hours()||24}function Jt(t,e){N(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Gt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Kt(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function Zt(t){return t?t.toLowerCase().replace("_","-"):t}function Qt(t){for(var e,n,i,r,s=0;s0;){if(i=te(r.slice(0,e).join("-")))return i;if(n&&n.length>=e&&M(r,n,!0)>=e-1)break;e--}s++}return Ir}function te(e){var i=null;if(!Fr[e]&&void 0!==t&&t&&t.exports)try{i=Ir._abbr;n(288)("./"+e),ee(i)}catch(t){}return Fr[e]}function ee(t,e){var n;return t&&(n=a(e)?re(t):ne(t,e),n?Ir=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Ir._abbr}function ne(t,e){if(null!==e){var n,i=$r;if(e.abbr=t,null!=Fr[t])L("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Fr[t]._config;else if(null!=e.parentLocale)if(null!=Fr[e.parentLocale])i=Fr[e.parentLocale]._config;else{if(null==(n=te(e.parentLocale)))return Br[e.parentLocale]||(Br[e.parentLocale]=[]),Br[e.parentLocale].push({name:t,config:e}),null;i=n._config}return Fr[t]=new Y(D(i,e)),Br[t]&&Br[t].forEach(function(t){ne(t.name,t.config)}),ee(t),Fr[t]}return delete Fr[t],null}function ie(t,e){if(null!=e){var n,i,r=$r;i=te(t),null!=i&&(r=i._config),e=D(r,e),n=new Y(e),n.parentLocale=Fr[t],Fr[t]=n,ee(t)}else null!=Fr[t]&&(null!=Fr[t].parentLocale?Fr[t]=Fr[t].parentLocale:null!=Fr[t]&&delete Fr[t]);return Fr[t]}function re(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Ir;if(!i(t)){if(e=te(t))return e;t=[t]}return Qt(t)}function se(){return Hi(Fr)}function ae(t){var e,n=t._a;return n&&-2===p(t).overflow&&(e=n[pr]<0||n[pr]>11?pr:n[mr]<1||n[mr]>lt(n[fr],n[pr])?mr:n[vr]<0||n[vr]>24||24===n[vr]&&(0!==n[_r]||0!==n[gr]||0!==n[yr])?vr:n[_r]<0||n[_r]>59?_r:n[gr]<0||n[gr]>59?gr:n[yr]<0||n[yr]>999?yr:-1,p(t)._overflowDayOfYear&&(emr)&&(e=mr),p(t)._overflowWeeks&&-1===e&&(e=br),p(t)._overflowWeekday&&-1===e&&(e=xr),p(t).overflow=e),t}function oe(t,e,n){return null!=t?t:null!=e?e:n}function ue(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function le(t){var e,n,i,r,s,a=[];if(!t._d){for(i=ue(t),t._w&&null==t._a[mr]&&null==t._a[pr]&&ce(t),null!=t._dayOfYear&&(s=oe(t._a[fr],i[fr]),(t._dayOfYear>tt(s)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=xt(s,0,t._dayOfYear),t._a[pr]=n.getUTCMonth(),t._a[mr]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=a[e]=i[e];for(;e<7;e++)t._a[e]=a[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[vr]&&0===t._a[_r]&&0===t._a[gr]&&0===t._a[yr]&&(t._nextDay=!0,t._a[vr]=0),t._d=(t._useUTC?xt:bt).apply(null,a),r=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[vr]=24),t._w&&void 0!==t._w.d&&t._w.d!==r&&(p(t).weekdayMismatch=!0)}}function ce(t){var e,n,i,r,s,a,o,u;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,a=4,n=oe(e.GG,t._a[fr],wt(Se(),1,4).year),i=oe(e.W,1),((r=oe(e.E,1))<1||r>7)&&(u=!0);else{s=t._locale._week.dow,a=t._locale._week.doy;var l=wt(Se(),s,a);n=oe(e.gg,t._a[fr],l.year),i=oe(e.w,l.week),null!=e.d?((r=e.d)<0||r>6)&&(u=!0):null!=e.e?(r=e.e+s,(e.e<0||e.e>6)&&(u=!0)):r=s}i<1||i>Lt(n,s,a)?p(t)._overflowWeeks=!0:null!=u?p(t)._overflowWeekday=!0:(o=kt(n,i,r,s,a),t._a[fr]=o.year,t._dayOfYear=o.dayOfYear)}function de(t){var e,n,i,r,s,a,o=t._i,u=Nr.exec(o)||Wr.exec(o);if(u){for(p(t).iso=!0,e=0,n=zr.length;e0&&p(t).unusedInput.push(a),o=o.slice(o.indexOf(i)+i.length),l+=i.length),qi[s]?(i?p(t).empty=!1:p(t).unusedTokens.push(s),Q(s,i,t)):t._strict&&!i&&p(t).unusedTokens.push(s);p(t).charsLeftOver=u-l,o.length>0&&p(t).unusedInput.push(o),t._a[vr]<=12&&!0===p(t).bigHour&&t._a[vr]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[vr]=be(t._locale,t._a[vr],t._meridiem),le(t),ae(t)}function be(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function xe(t){var e,n,i,r,s;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Je(){if(!a(this._isDSTShifted))return this._isDSTShifted;var t={};if(_(t,this),t=we(t),t._a){var e=t._isUTC?h(t._a):Se(t._a);this._isDSTShifted=this.isValid()&&M(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Ge(){return!!this.isValid()&&!this._isUTC}function Xe(){return!!this.isValid()&&this._isUTC}function Ke(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ze(t,e){var n,i,r,s=t,a=null;return Pe(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:o(t)?(s={},e?s[e]=t:s.milliseconds=t):(a=es.exec(t))?(n="-"===a[1]?-1:1,s={y:0,d:x(a[mr])*n,h:x(a[vr])*n,m:x(a[_r])*n,s:x(a[gr])*n,ms:x(Ie(1e3*a[yr]))*n}):(a=ns.exec(t))?(n="-"===a[1]?-1:1,s={y:Qe(a[2],n),M:Qe(a[3],n),w:Qe(a[4],n),d:Qe(a[5],n),h:Qe(a[6],n),m:Qe(a[7],n),s:Qe(a[8],n)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(r=en(Se(s.from),Se(s.to)),s={},s.ms=r.milliseconds,s.M=r.months),i=new Ae(s),Pe(t)&&c(t,"_locale")&&(i._locale=t._locale),i}function Qe(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function tn(t,e){var n={};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function en(t,e){var n;return t.isValid()&&e.isValid()?(e=$e(e,t),t.isBefore(e)?n=tn(t,e):(n=tn(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function nn(t,e){return function(n,i){var r,s;return null===i||isNaN(+i)||(L(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=n,n=i,i=s),n="string"==typeof n?+n:n,r=Ze(n,i),rn(this,r,t),this}}function rn(t,n,i,r){var s=n._milliseconds,a=Ie(n._days),o=Ie(n._months);t.isValid()&&(r=null==r||r,o&&pt(t,rt(t,"Month")+o*i),a&&st(t,"Date",rt(t,"Date")+a*i),s&&t._d.setTime(t._d.valueOf()+s*i),r&&e.updateOffset(t,a||o))}function sn(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function an(t,n){var i=t||Se(),r=$e(i,this).startOf("day"),s=e.calendarFormat(this,r)||"sameElse",a=n&&(T(n[s])?n[s].call(this,i):n[s]);return this.format(a||this.localeData().calendar(s,this,Se(i)))}function on(){return new g(this)}function un(t,e){var n=y(t)?t:Se(t);return!(!this.isValid()||!n.isValid())&&(e=H(e)||"millisecond","millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?z(n,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",z(n,"Z")):z(n,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function gn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r=e+'[")]';return this.format(n+i+"-MM-DD[T]HH:mm:ss.SSS"+r)}function yn(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=z(this,t);return this.localeData().postformat(n)}function bn(t,e){return this.isValid()&&(y(t)&&t.isValid()||Se(t).isValid())?Ze({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function xn(t){return this.from(Se(),t)}function Mn(t,e){return this.isValid()&&(y(t)&&t.isValid()||Se(t).isValid())?Ze({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function kn(t){return this.to(Se(),t)}function wn(t){var e;return void 0===t?this._locale._abbr:(e=re(t),null!=e&&(this._locale=e),this)}function Ln(){return this._locale}function Tn(t,e){return(t%e+e)%e}function Sn(t,e,n){return t<100&&t>=0?new Date(t+400,e,n)-ls:new Date(t,e,n).valueOf()}function Dn(t,e,n){return t<100&&t>=0?Date.UTC(t+400,e,n)-ls:Date.UTC(t,e,n)}function Yn(t){var n;if(void 0===(t=H(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?Dn:Sn;switch(t){case"year":n=i(this.year(),0,1);break;case"quarter":n=i(this.year(),this.month()-this.month()%3,1);break;case"month":n=i(this.year(),this.month(),1);break;case"week":n=i(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":n=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":n=i(this.year(),this.month(),this.date());break;case"hour":n=this._d.valueOf(),n-=Tn(n+(this._isUTC?0:this.utcOffset()*os),us);break;case"minute":n=this._d.valueOf(),n-=Tn(n,os);break;case"second":n=this._d.valueOf(),n-=Tn(n,as)}return this._d.setTime(n),e.updateOffset(this,!0),this}function Cn(t){var n;if(void 0===(t=H(t))||"millisecond"===t||!this.isValid())return this;var i=this._isUTC?Dn:Sn;switch(t){case"year":n=i(this.year()+1,0,1)-1;break;case"quarter":n=i(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":n=i(this.year(),this.month()+1,1)-1;break;case"week":n=i(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":n=i(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":n=i(this.year(),this.month(),this.date()+1)-1;break;case"hour":n=this._d.valueOf(),n+=us-Tn(n+(this._isUTC?0:this.utcOffset()*os),us)-1;break;case"minute":n=this._d.valueOf(),n+=os-Tn(n,os)-1;break;case"second":n=this._d.valueOf(),n+=as-Tn(n,as)-1}return this._d.setTime(n),e.updateOffset(this,!0),this}function On(){return this._d.valueOf()-6e4*(this._offset||0)}function jn(){return Math.floor(this.valueOf()/1e3)}function Vn(){return new Date(this.valueOf())}function An(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Pn(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function In(){return this.isValid()?this.toISOString():null}function Hn(){return m(this)}function En(){return d({},p(this))}function $n(){return p(this).overflow}function Fn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Bn(t,e){N(0,[t,t.length],0,e)}function Nn(t){return Un.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Wn(t){return Un.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Rn(){return Lt(this.year(),1,4)}function zn(){var t=this.localeData()._week;return Lt(this.year(),t.dow,t.doy)}function Un(t,e,n,i,r){var s;return null==t?wt(this,i,r).year:(s=Lt(t,i,r),e>s&&(e=s),qn.call(this,t,e,n,i,r))}function qn(t,e,n,i,r){var s=kt(t,e,n,i,r),a=xt(s.year,0,s.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function Jn(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Gn(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Xn(t,e){e[yr]=x(1e3*("0."+t))}function Kn(){return this._isUTC?"UTC":""}function Zn(){return this._isUTC?"Coordinated Universal Time":""}function Qn(t){return Se(1e3*t)}function ti(){return Se.apply(null,arguments).parseZone()}function ei(t){return t}function ni(t,e,n,i){var r=re(),s=h().set(i,e);return r[n](s,t)}function ii(t,e,n){if(o(t)&&(e=t,t=void 0),t=t||"",null!=e)return ni(t,e,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=ni(t,i,n,"month");return r}function ri(t,e,n,i){"boolean"==typeof t?(o(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,o(e)&&(n=e,e=void 0),e=e||"");var r=re(),s=t?r._week.dow:0;if(null!=n)return ni(e,(n+s)%7,i,"day");var a,u=[];for(a=0;a<7;a++)u[a]=ni(e,(a+s)%7,i,"day");return u}function si(t,e){return ii(t,e,"months")}function ai(t,e){return ii(t,e,"monthsShort")}function oi(t,e,n){return ri(t,e,n,"weekdays")}function ui(t,e,n){return ri(t,e,n,"weekdaysShort")}function li(t,e,n){return ri(t,e,n,"weekdaysMin")}function ci(){var t=this._data;return this._milliseconds=_s(this._milliseconds),this._days=_s(this._days),this._months=_s(this._months),t.milliseconds=_s(t.milliseconds),t.seconds=_s(t.seconds),t.minutes=_s(t.minutes),t.hours=_s(t.hours),t.months=_s(t.months),t.years=_s(t.years),this}function di(t,e,n,i){var r=Ze(e,n);return t._milliseconds+=i*r._milliseconds,t._days+=i*r._days,t._months+=i*r._months,t._bubble()}function hi(t,e){return di(this,t,e,1)}function fi(t,e){return di(this,t,e,-1)}function pi(t){return t<0?Math.floor(t):Math.ceil(t)}function mi(){var t,e,n,i,r,s=this._milliseconds,a=this._days,o=this._months,u=this._data;return s>=0&&a>=0&&o>=0||s<=0&&a<=0&&o<=0||(s+=864e5*pi(_i(o)+a),a=0,o=0),u.milliseconds=s%1e3,t=b(s/1e3),u.seconds=t%60,e=b(t/60),u.minutes=e%60,n=b(e/60),u.hours=n%24,a+=b(n/24),r=b(vi(a)),o+=r,a-=pi(_i(r)),i=b(o/12),o%=12,u.days=a,u.months=o,u.years=i,this}function vi(t){return 4800*t/146097}function _i(t){return 146097*t/4800}function gi(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if("month"===(t=H(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,n=this._months+vi(e),t){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(e=this._days+Math.round(_i(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function yi(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*x(this._months/12):NaN}function bi(t){return function(){return this.as(t)}}function xi(){return Ze(this)}function Mi(t){return t=H(t),this.isValid()?this[t+"s"]():NaN}function ki(t){return function(){return this.isValid()?this._data[t]:NaN}}function wi(){return b(this.days()/7)}function Li(t,e,n,i,r){return r.relativeTime(e||1,!!n,t,i)}function Ti(t,e,n){var i=Ze(t).abs(),r=As(i.as("s")),s=As(i.as("m")),a=As(i.as("h")),o=As(i.as("d")),u=As(i.as("M")),l=As(i.as("y")),c=r<=Ps.ss&&["s",r]||r0,c[4]=n,Li.apply(null,c)}function Si(t){return void 0===t?As:"function"==typeof t&&(As=t,!0)}function Di(t,e){return void 0!==Ps[t]&&(void 0===e?Ps[t]:(Ps[t]=e,"s"===t&&(Ps.ss=e-1),!0))}function Yi(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=Ti(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function Ci(t){return(t>0)-(t<0)||+t}function Oi(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=Is(this._milliseconds)/1e3,r=Is(this._days),s=Is(this._months);t=b(i/60),e=b(t/60),i%=60,t%=60,n=b(s/12),s%=12;var a=n,o=s,u=r,l=e,c=t,d=i?i.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var f=h<0?"-":"",p=Ci(this._months)!==Ci(h)?"-":"",m=Ci(this._days)!==Ci(h)?"-":"",v=Ci(this._milliseconds)!==Ci(h)?"-":"";return f+"P"+(a?p+a+"Y":"")+(o?p+o+"M":"")+(u?m+u+"D":"")+(l||c||d?"T":"")+(l?v+l+"H":"")+(c?v+c+"M":"")+(d?v+d+"S":"")}var ji,Vi;Vi=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var Mr,kr=it("FullYear",!0);Mr=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;ethis?this:t:v()}),Zr=function(){return Date.now?Date.now():+new Date},Qr=["year","quarter","month","week","day","hour","minute","second","millisecond"];He("Z",":"),He("ZZ",""),q("Z",ur),q("ZZ",ur),K(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Ee(ur,t)});var ts=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var es=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,ns=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;Ze.fn=Ae.prototype,Ze.invalid=Ve;var is=nn(1,"add"),rs=nn(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var ss=w("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)}),as=1e3,os=60*as,us=60*os,ls=3506328*us;N(0,["gg",2],0,function(){return this.weekYear()%100}),N(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Bn("gggg","weekYear"),Bn("ggggg","weekYear"),Bn("GGGG","isoWeekYear"),Bn("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),$("weekYear",1),$("isoWeekYear",1),q("G",ar),q("g",ar),q("GG",Qi,Gi),q("gg",Qi,Gi),q("GGGG",ir,Ki),q("gggg",ir,Ki),q("GGGGG",rr,Zi),q("ggggg",rr,Zi),Z(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=x(t)}),Z(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),N("Q",0,"Qo","quarter"),I("quarter","Q"),$("quarter",7),q("Q",Ji),K("Q",function(t,e){e[pr]=3*(x(t)-1)}),N("D",["DD",2],"Do","date"),I("date","D"),$("date",9),q("D",Qi),q("DD",Qi,Gi),q("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),K(["D","DD"],mr),K("Do",function(t,e){e[mr]=x(t.match(Qi)[0])});var cs=it("Date",!0);N("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),$("dayOfYear",4),q("DDD",nr),q("DDDD",Xi),K(["DDD","DDDD"],function(t,e,n){n._dayOfYear=x(t)}),N("m",["mm",2],0,"minute"),I("minute","m"),$("minute",14),q("m",Qi),q("mm",Qi,Gi),K(["m","mm"],_r);var ds=it("Minutes",!1);N("s",["ss",2],0,"second"),I("second","s"),$("second",15),q("s",Qi),q("ss",Qi,Gi),K(["s","ss"],gr);var hs=it("Seconds",!1);N("S",0,0,function(){return~~(this.millisecond()/100)}),N(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),N(0,["SSS",3],0,"millisecond"),N(0,["SSSS",4],0,function(){return 10*this.millisecond()}),N(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),N(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),N(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),N(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),N(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),I("millisecond","ms"),$("millisecond",16),q("S",nr,Ji),q("SS",nr,Gi),q("SSS",nr,Xi);var fs;for(fs="SSSS";fs.length<=9;fs+="S")q(fs,sr);for(fs="S";fs.length<=9;fs+="S")K(fs,Xn);var ps=it("Milliseconds",!1);N("z",0,0,"zoneAbbr"),N("zz",0,0,"zoneName");var ms=g.prototype;ms.add=is,ms.calendar=an,ms.clone=on,ms.diff=pn,ms.endOf=Cn,ms.format=yn,ms.from=bn,ms.fromNow=xn,ms.to=Mn,ms.toNow=kn,ms.get=at,ms.invalidAt=$n,ms.isAfter=un,ms.isBefore=ln,ms.isBetween=cn,ms.isSame=dn,ms.isSameOrAfter=hn,ms.isSameOrBefore=fn,ms.isValid=Hn,ms.lang=ss,ms.locale=wn,ms.localeData=Ln,ms.max=Kr,ms.min=Xr,ms.parsingFlags=En,ms.set=ot,ms.startOf=Yn,ms.subtract=rs,ms.toArray=An,ms.toObject=Pn,ms.toDate=Vn,ms.toISOString=_n,ms.inspect=gn,ms.toJSON=In,ms.toString=vn,ms.unix=jn,ms.valueOf=On,ms.creationData=Fn,ms.year=kr,ms.isLeapYear=nt,ms.weekYear=Nn,ms.isoWeekYear=Wn,ms.quarter=ms.quarters=Jn,ms.month=mt,ms.daysInMonth=vt,ms.week=ms.weeks=Yt,ms.isoWeek=ms.isoWeeks=Ct,ms.weeksInYear=zn,ms.isoWeeksInYear=Rn,ms.date=cs,ms.day=ms.days=$t,ms.weekday=Ft,ms.isoWeekday=Bt,ms.dayOfYear=Gn,ms.hour=ms.hours=Er,ms.minute=ms.minutes=ds,ms.second=ms.seconds=hs,ms.millisecond=ms.milliseconds=ps,ms.utcOffset=Be,ms.utc=We,ms.local=Re,ms.parseZone=ze,ms.hasAlignedHourOffset=Ue,ms.isDST=qe,ms.isLocal=Ge,ms.isUtcOffset=Xe,ms.isUtc=Ke,ms.isUTC=Ke,ms.zoneAbbr=Kn,ms.zoneName=Zn,ms.dates=w("dates accessor is deprecated. Use date instead.",cs),ms.months=w("months accessor is deprecated. Use month instead",mt),ms.years=w("years accessor is deprecated. Use year instead",kr),ms.zone=w("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ne),ms.isDSTShifted=w("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Je);var vs=Y.prototype;vs.calendar=C,vs.longDateFormat=O,vs.invalidDate=j,vs.ordinal=V,vs.preparse=ei,vs.postformat=ei,vs.relativeTime=A,vs.pastFuture=P,vs.set=S,vs.months=ct,vs.monthsShort=dt,vs.monthsParse=ft,vs.monthsRegex=gt,vs.monthsShortRegex=_t,vs.week=Tt,vs.firstDayOfYear=Dt,vs.firstDayOfWeek=St,vs.weekdays=At,vs.weekdaysMin=It,vs.weekdaysShort=Pt,vs.weekdaysParse=Et,vs.weekdaysRegex=Nt,vs.weekdaysShortRegex=Wt,vs.weekdaysMinRegex=Rt,vs.isPM=Xt,vs.meridiem=Kt,ee("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===x(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),e.lang=w("moment.lang is deprecated. Use moment.locale instead.",ee),e.langData=w("moment.langData is deprecated. Use moment.localeData instead.",re);var _s=Math.abs,gs=bi("ms"),ys=bi("s"),bs=bi("m"),xs=bi("h"),Ms=bi("d"),ks=bi("w"),ws=bi("M"),Ls=bi("Q"),Ts=bi("y"),Ss=ki("milliseconds"),Ds=ki("seconds"),Ys=ki("minutes"),Cs=ki("hours"),Os=ki("days"),js=ki("months"),Vs=ki("years"),As=Math.round,Ps={ss:44,s:45,m:45,h:22,d:26,M:11},Is=Math.abs,Hs=Ae.prototype;return Hs.isValid=je,Hs.abs=ci,Hs.add=hi,Hs.subtract=fi,Hs.as=gi,Hs.asMilliseconds=gs,Hs.asSeconds=ys,Hs.asMinutes=bs,Hs.asHours=xs,Hs.asDays=Ms,Hs.asWeeks=ks,Hs.asMonths=ws,Hs.asQuarters=Ls,Hs.asYears=Ts,Hs.valueOf=yi,Hs._bubble=mi,Hs.clone=xi,Hs.get=Mi,Hs.milliseconds=Ss,Hs.seconds=Ds,Hs.minutes=Ys,Hs.hours=Cs,Hs.days=Os,Hs.weeks=wi,Hs.months=js,Hs.years=Vs,Hs.humanize=Yi,Hs.toISOString=Oi,Hs.toString=Oi,Hs.toJSON=Oi,Hs.locale=wn,Hs.localeData=Ln,Hs.toIsoString=w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Oi),Hs.lang=ss,N("X",0,0,"unix"),N("x",0,0,"valueOf"),q("x",ar),q("X",lr),K("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),K("x",function(t,e,n){n._d=new Date(x(t))}),e.version="2.24.0",function(t){ji=t}(Se),e.fn=ms,e.min=Ye,e.max=Ce,e.now=Zr,e.utc=h,e.unix=Qn,e.months=si,e.isDate=u,e.locale=ee,e.invalid=v,e.duration=Ze,e.isMoment=y,e.weekdays=oi,e.parseZone=ti,e.localeData=re,e.isDuration=Pe,e.monthsShort=ai,e.weekdaysMin=li,e.defineLocale=ne,e.updateLocale=ie,e.locales=se,e.weekdaysShort=ui,e.normalizeUnits=H,e.relativeTimeRounding=Si,e.relativeTimeThreshold=Di,e.calendarFormat=sn,e.prototype=ms,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})}).call(e,n(60)(t))},function(t,e){t.exports=function(t,e,n,i,r,s){var a,o=t=t||{},u=typeof t.default;"object"!==u&&"function"!==u||(a=t,o=t.default);var l="function"==typeof o?o.options:o;e&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0),n&&(l.functional=!0),r&&(l._scopeId=r);var c;if(s?(c=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=c):i&&(c=i),c){var d=l.functional,h=d?l.render:l.beforeCreate;d?(l._injectStyles=c,l.render=function(t,e){return c.call(e),h(t,e)}):l.beforeCreate=h?[].concat(h,c):[c]}return{esModule:a,exports:o,options:l}}},,function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){"use strict";function i(t){return"[object Array]"===w.call(t)}function r(t){return"[object ArrayBuffer]"===w.call(t)}function s(t){return"undefined"!=typeof FormData&&t instanceof FormData}function a(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&t.buffer instanceof ArrayBuffer}function o(t){return"string"==typeof t}function u(t){return"number"==typeof t}function l(t){return void 0===t}function c(t){return null!==t&&"object"==typeof t}function d(t){return"[object Date]"===w.call(t)}function h(t){return"[object File]"===w.call(t)}function f(t){return"[object Blob]"===w.call(t)}function p(t){return"[object Function]"===w.call(t)}function m(t){return c(t)&&p(t.pipe)}function v(t){return"undefined"!=typeof URLSearchParams&&t instanceof URLSearchParams}function _(t){return t.replace(/^\s*/,"").replace(/\s*$/,"")}function g(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)}function y(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),i(t))for(var n=0,r=t.length;n0?i:n)(t)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e){t.exports=!0},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(10),r=n(3).document,s=i(r)&&i(r.createElement);t.exports=function(t){return s?r.createElement(t):{}}},function(t,e,n){var i=n(219),r=n(20);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(38)("keys"),r=n(39);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16).f,r=n(17),s=n(5)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,s)&&i(t,s,{configurable:!0,value:e})}},function(t,e,n){"use strict";function i(t){var e,n;this.promise=new t(function(t,i){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=i}),this.resolve=r(e),this.reject=r(n)}var r=n(15);t.exports.f=function(t){return new i(t)}},function(t,e,n){t.exports={default:n(241),__esModule:!0}},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function r(t){if(c===setTimeout)return setTimeout(t,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(t,0);try{return c(t,0)}catch(e){try{return c.call(null,t,0)}catch(e){return c.call(this,t,0)}}}function s(t){if(d===clearTimeout)return clearTimeout(t);if((d===i||!d)&&clearTimeout)return d=clearTimeout,clearTimeout(t);try{return d(t)}catch(e){try{return d.call(null,t)}catch(e){return d.call(this,t)}}}function a(){m&&f&&(m=!1,f.length?p=f.concat(p):v=-1,p.length&&o())}function o(){if(!m){var t=r(a);m=!0;for(var e=p.length;e;){for(f=p,p=[];++v1)for(var n=1;n=0&&Math.floor(e)===e&&isFinite(t)}function h(t){return r(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function f(t){return null==t?"":Array.isArray(t)||l(t)&&t.toString===ws?JSON.stringify(t,null,2):String(t)}function p(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),i=t.split(","),r=0;r-1)return t.splice(n,1)}}function _(t,e){return Ss.call(t,e)}function g(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}function y(t,e){function n(n){var i=arguments.length;return i?i>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function b(t,e){return t.bind(e)}function x(t,e){e=e||0;for(var n=t.length-e,i=new Array(n);n--;)i[n]=t[n+e];return i}function M(t,e){for(var n in e)t[n]=e[n];return t}function k(t){for(var e={},n=0;n-1)if(s&&!_(r,"default"))a=!1;else if(""===a||a===js(t)){var u=rt(String,r.type);(u<0||o0&&(a=xt(a,(e||"")+"_"+n),bt(a[0])&&bt(l)&&(c[u]=A(l.text+a[0].text),a.shift()),c.push.apply(c,a)):o(a)?bt(l)?c[u]=A(l.text+a):""!==a&&c.push(A(a)):bt(a)&&bt(l)?c[u]=A(l.text+a.text):(s(t._isVList)&&r(a.tag)&&i(a.key)&&r(e)&&(a.key="__vlist"+e+"_"+n+"__"),c.push(a)));return c}function Mt(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}function kt(t){var e=wt(t.$options.inject,t);e&&(I(!1),Object.keys(e).forEach(function(n){F(t,n,e[n])}),I(!0))}function wt(t,e){if(t){for(var n=Object.create(null),i=sa?Reflect.ownKeys(t):Object.keys(t),r=0;rNa&&Ha[n].id>t.id;)n--;Ha.splice(n+1,0,t)}else Ha.push(t);Fa||(Fa=!0,ct(we))}}function Ye(t,e,n){qa.get=function(){return this[e][n]},qa.set=function(t){this[e][n]=t},Object.defineProperty(t,n,qa)}function Ce(t){t._watchers=[];var e=t.$options;e.props&&Oe(t,e.props),e.methods&&Ee(t,e.methods),e.data?je(t):$(t._data={},!0),e.computed&&Ae(t,e.computed),e.watch&&e.watch!==Zs&&$e(t,e.watch)}function Oe(t,e){var n=t.$options.propsData||{},i=t._props={},r=t.$options._propKeys=[],s=!t.$parent;s||I(!1);for(var a in e)!function(s){r.push(s);var a=tt(s,e,n,t);F(i,s,a),s in t||Ye(t,"_props",s)}(a);I(!0)}function je(t){var e=t.$options.data;e=t._data="function"==typeof e?Ve(e,t):e||{},l(e)||(e={});for(var n=Object.keys(e),i=t.$options.props,r=(t.$options.methods,n.length);r--;){var s=n[r];i&&_(i,s)||D(s)||Ye(t,"_data",s)}$(e,!0)}function Ve(t,e){j();try{return t.call(e,e)}catch(t){return st(t,e,"data()"),{}}finally{V()}}function Ae(t,e){var n=t._computedWatchers=Object.create(null),i=ia();for(var r in e){var s=e[r],a="function"==typeof s?s:s.get;i||(n[r]=new Ua(t,a||w,w,Ja)),r in t||Pe(t,r,s)}}function Pe(t,e,n){var i=!ia();"function"==typeof n?(qa.get=i?Ie(e):He(n),qa.set=w):(qa.get=n.get?i&&!1!==n.cache?Ie(e):He(n.get):w,qa.set=n.set||w),Object.defineProperty(t,e,qa)}function Ie(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ua.target&&e.depend(),e.value}}function He(t){return function(){return t.call(this,this)}}function Ee(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?w:Vs(e[n],t)}function $e(t,e){for(var n in e){var i=e[n];if(Array.isArray(i))for(var r=0;r-1)return this;var n=x(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}function Ue(t){t.mixin=function(t){return this.options=Z(this.options,t),this}}function qe(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,i=n.cid,r=t._Ctor||(t._Ctor={});if(r[i])return r[i];var s=t.name||n.options.name,a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Z(n.options,t),a.super=n,a.options.props&&Je(a),a.options.computed&&Ge(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Hs.forEach(function(t){a[t]=n[t]}),s&&(a.options.components[s]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=M({},a.options),r[i]=a,a}}function Je(t){var e=t.options.props;for(var n in e)Ye(t.prototype,"_props",n)}function Ge(t){var e=t.options.computed;for(var n in e)Pe(t.prototype,n,e[n])}function Xe(t){Hs.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function Ke(t){return t&&(t.Ctor.options.name||t.tag)}function Ze(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!c(t)&&t.test(e)}function Qe(t,e){var n=t.cache,i=t.keys,r=t._vnode;for(var s in n){var a=n[s];if(a){var o=Ke(a.componentOptions);o&&!e(o)&&tn(n,s,i,r)}}}function tn(t,e,n,i){var r=t[e];!r||i&&r.tag===i.tag||r.componentInstance.$destroy(),t[e]=null,v(n,e)}function en(t){for(var e=t.data,n=t,i=t;r(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=nn(i.data,e));for(;r(n=n.parent);)n&&n.data&&(e=nn(e,n.data));return rn(e.staticClass,e.class)}function nn(t,e){return{staticClass:sn(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function rn(t,e){return r(t)||r(e)?sn(t,an(e)):""}function sn(t,e){return t?e?t+" "+e:t:e||""}function an(t){return Array.isArray(t)?on(t):u(t)?un(t):"string"==typeof t?t:""}function on(t){for(var e,n="",i=0,s=t.length;i-1?To[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:To[t]=/HTMLUnknownElement/.test(e.toString())}function dn(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function hn(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function fn(t,e){return document.createElementNS(xo[t],e)}function pn(t){return document.createTextNode(t)}function mn(t){return document.createComment(t)}function vn(t,e,n){t.insertBefore(e,n)}function _n(t,e){t.removeChild(e)}function gn(t,e){t.appendChild(e)}function yn(t){return t.parentNode}function bn(t){return t.nextSibling}function xn(t){return t.tagName}function Mn(t,e){t.textContent=e}function kn(t,e){t.setAttribute(e,"")}function wn(t,e){var n=t.data.ref;if(r(n)){var i=t.context,s=t.componentInstance||t.elm,a=i.$refs;e?Array.isArray(a[n])?v(a[n],s):a[n]===s&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(s)<0&&a[n].push(s):a[n]=[s]:a[n]=s}}function Ln(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&r(t.data)===r(e.data)&&Tn(t,e)||s(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&i(e.asyncFactory.error))}function Tn(t,e){if("input"!==t.tag)return!0;var n,i=r(n=t.data)&&r(n=n.attrs)&&n.type,s=r(n=e.data)&&r(n=n.attrs)&&n.type;return i===s||So(i)&&So(s)}function Sn(t,e,n){var i,s,a={};for(i=e;i<=n;++i)s=t[i].key,r(s)&&(a[s]=i);return a}function Dn(t,e){(t.data.directives||e.data.directives)&&Yn(t,e)}function Yn(t,e){var n,i,r,s=t===Co,a=e===Co,o=Cn(t.data.directives,t.context),u=Cn(e.data.directives,e.context),l=[],c=[];for(n in u)i=o[n],r=u[n],i?(r.oldValue=i.value,r.oldArg=i.arg,jn(r,"update",e,t),r.def&&r.def.componentUpdated&&c.push(r)):(jn(r,"bind",e,t),r.def&&r.def.inserted&&l.push(r));if(l.length){var d=function(){for(var n=0;n-1?Pn(t,e,n):vo(e)?bo(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):fo(e)?t.setAttribute(e,mo(e,n)):go(e)?bo(n)?t.removeAttributeNS(_o,yo(e)):t.setAttributeNS(_o,e,n):Pn(t,e,n)}function Pn(t,e,n){if(bo(n))t.removeAttribute(e);else{if(qs&&!Js&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var i=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",i)};t.addEventListener("input",i),t.__ieph=!0}t.setAttribute(e,n)}}function In(t,e){var n=e.elm,s=e.data,a=t.data;if(!(i(s.staticClass)&&i(s.class)&&(i(a)||i(a.staticClass)&&i(a.class)))){var o=en(e),u=n._transitionClasses;r(u)&&(o=sn(o,an(u))),o!==n._prevClass&&(n.setAttribute("class",o),n._prevClass=o)}}function Hn(t){function e(){(a||(a=[])).push(t.slice(p,r).trim()),p=r+1}var n,i,r,s,a,o=!1,u=!1,l=!1,c=!1,d=0,h=0,f=0,p=0;for(r=0;r=0&&" "===(v=t.charAt(m));m--);v&&Ho.test(v)||(c=!0)}}else void 0===s?(p=r+1,s=t.slice(0,r).trim()):e();if(void 0===s?s=t.slice(0,r).trim():0!==p&&e(),a)for(r=0;r-1?{exp:t.slice(0,no),key:'"'+t.slice(no+1)+'"'}:{exp:t,key:null};for(to=t,no=io=ro=0;!ni();)eo=ei(),ii(eo)?si(eo):91===eo&&ri(eo);return{exp:t.slice(0,io),key:t.slice(io+1,ro)}}function ei(){return to.charCodeAt(++no)}function ni(){return no>=Qa}function ii(t){return 34===t||39===t}function ri(t){var e=1;for(io=no;!ni();)if(t=ei(),ii(t))si(t);else if(91===t&&e++,93===t&&e--,0===e){ro=no;break}}function si(t){for(var e=t;!ni()&&(t=ei())!==e;);}function ai(t,e,n){so=n;var i=e.value,r=e.modifiers,s=t.tag,a=t.attrsMap.type;if(t.component)return Zn(t,i,r),!1;if("select"===s)li(t,i,r);else if("input"===s&&"checkbox"===a)oi(t,i,r);else if("input"===s&&"radio"===a)ui(t,i,r);else if("input"===s||"textarea"===s)ci(t,i,r);else if(!$s.isReservedTag(s))return Zn(t,i,r),!1;return!0}function oi(t,e,n){var i=n&&n.number,r=Jn(t,"value")||"null",s=Jn(t,"true-value")||"true",a=Jn(t,"false-value")||"false";Bn(t,"checked","Array.isArray("+e+")?_i("+e+","+r+")>-1"+("true"===s?":("+e+")":":_q("+e+","+s+")")),Un(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+s+"):("+a+");if(Array.isArray($$a)){var $$v="+(i?"_n("+r+")":r)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Qn(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Qn(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Qn(e,"$$c")+"}",null,!0)}function ui(t,e,n){var i=n&&n.number,r=Jn(t,"value")||"null";r=i?"_n("+r+")":r,Bn(t,"checked","_q("+e+","+r+")"),Un(t,"change",Qn(e,r),null,!0)}function li(t,e,n){var i=n&&n.number,r='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(i?"_n(val)":"val")+"})",s="var $$selectedVal = "+r+";";s=s+" "+Qn(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),Un(t,"change",s,null,!0)}function ci(t,e,n){var i=t.attrsMap.type,r=n||{},s=r.lazy,a=r.number,o=r.trim,u=!s&&"range"!==i,l=s?"change":"range"===i?Eo:"input",c="$event.target.value";o&&(c="$event.target.value.trim()"),a&&(c="_n("+c+")");var d=Qn(e,c);u&&(d="if($event.target.composing)return;"+d),Bn(t,"value","("+e+")"),Un(t,l,d,null,!0),(o||a)&&Un(t,"blur","$forceUpdate()")}function di(t){if(r(t[Eo])){var e=qs?"change":"input";t[e]=[].concat(t[Eo],t[e]||[]),delete t[Eo]}r(t[$o])&&(t.change=[].concat(t[$o],t.change||[]),delete t[$o])}function hi(t,e,n){var i=ao;return function r(){null!==e.apply(null,arguments)&&pi(t,r,n,i)}}function fi(t,e,n,i){if(Fo){var r=Wa,s=e;e=s._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=r||0===t.timeStamp||t.target.ownerDocument!==document)return s.apply(this,arguments)}}ao.addEventListener(t,e,Qs?{capture:n,passive:i}:n)}function pi(t,e,n,i){(i||ao).removeEventListener(t,e._wrapper||e,n)}function mi(t,e){if(!i(t.data.on)||!i(e.data.on)){var n=e.data.on||{},r=t.data.on||{};ao=e.elm,di(n),pt(n,r,fi,pi,hi,e.context),ao=void 0}}function vi(t,e){if(!i(t.data.domProps)||!i(e.data.domProps)){var n,s,a=e.elm,o=t.data.domProps||{},u=e.data.domProps||{};r(u.__ob__)&&(u=e.data.domProps=M({},u));for(n in o)i(u[n])&&(a[n]="");for(n in u){if(s=u[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),s===o[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=s;var l=i(s)?"":String(s);_i(a,l)&&(a.value=l)}else if("innerHTML"===n&&ko(a.tagName)&&i(a.innerHTML)){oo=oo||document.createElement("div"),oo.innerHTML=""+s+"";for(var c=oo.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;c.firstChild;)a.appendChild(c.firstChild)}else if(s!==o[n])try{a[n]=s}catch(t){}}}}function _i(t,e){return!t.composing&&("OPTION"===t.tagName||gi(t,e)||yi(t,e))}function gi(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}function yi(t,e){var n=t.value,i=t._vModifiers;if(r(i)){if(i.number)return p(n)!==p(e);if(i.trim)return n.trim()!==e.trim()}return n!==e}function bi(t){var e=xi(t.style);return t.staticStyle?M(t.staticStyle,e):e}function xi(t){return Array.isArray(t)?k(t):"string"==typeof t?Wo(t):t}function Mi(t,e){var n,i={};if(e)for(var r=t;r.componentInstance;)(r=r.componentInstance._vnode)&&r.data&&(n=bi(r.data))&&M(i,n);(n=bi(t.data))&&M(i,n);for(var s=t;s=s.parent;)s.data&&(n=bi(s.data))&&M(i,n);return i}function ki(t,e){var n=e.data,s=t.data;if(!(i(n.staticStyle)&&i(n.style)&&i(s.staticStyle)&&i(s.style))){var a,o,u=e.elm,l=s.staticStyle,c=s.normalizedStyle||s.style||{},d=l||c,h=xi(e.data.style)||{};e.data.normalizedStyle=r(h.__ob__)?M({},h):h;var f=Mi(e,!0);for(o in d)i(f[o])&&Uo(u,o,"");for(o in f)(a=f[o])!==d[o]&&Uo(u,o,null==a?"":a)}}function wi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Xo).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Li(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Xo).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",i=" "+e+" ";n.indexOf(i)>=0;)n=n.replace(i," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Ti(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&M(e,Ko(t.name||"v")),M(e,t),e}return"string"==typeof t?Ko(t):void 0}}function Si(t){su(function(){su(t)})}function Di(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),wi(t,e))}function Yi(t,e){t._transitionClasses&&v(t._transitionClasses,e),Li(t,e)}function Ci(t,e,n){var i=Oi(t,e),r=i.type,s=i.timeout,a=i.propCount;if(!r)return n();var o=r===Qo?nu:ru,u=0,l=function(){t.removeEventListener(o,c),n()},c=function(e){e.target===t&&++u>=a&&l()};setTimeout(function(){u0&&(n=Qo,c=a,d=s.length):e===tu?l>0&&(n=tu,c=l,d=u.length):(c=Math.max(a,l),n=c>0?a>l?Qo:tu:null,d=n?n===Qo?s.length:u.length:0),{type:n,timeout:c,propCount:d,hasTransform:n===Qo&&au.test(i[eu+"Property"])}}function ji(t,e){for(;t.length1}function Ei(t,e){!0!==e.data.show&&Ai(e)}function $i(t,e,n){Fi(t,e,n),(qs||Gs)&&setTimeout(function(){Fi(t,e,n)},0)}function Fi(t,e,n){var i=e.value,r=t.multiple;if(!r||Array.isArray(i)){for(var s,a,o=0,u=t.options.length;o-1,a.selected!==s&&(a.selected=s);else if(L(Ni(a),i))return void(t.selectedIndex!==o&&(t.selectedIndex=o));r||(t.selectedIndex=-1)}}function Bi(t,e){return e.every(function(e){return!L(e,t)})}function Ni(t){return"_value"in t?t._value:t.value}function Wi(t){t.target.composing=!0}function Ri(t){t.target.composing&&(t.target.composing=!1,zi(t.target,"input"))}function zi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Ui(t){return!t.componentInstance||t.data&&t.data.transition?t:Ui(t.componentInstance._vnode)}function qi(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?qi(le(e.children)):t}function Ji(t){var e={},n=t.$options;for(var i in n.propsData)e[i]=t[i];var r=n._parentListeners;for(var s in r)e[Ys(s)]=r[s];return e}function Gi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function Xi(t){for(;t=t.parent;)if(t.data.transition)return!0}function Ki(t,e){return e.key===t.key&&e.tag===t.tag}function Zi(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Qi(t){t.data.newPos=t.elm.getBoundingClientRect()}function tr(t){var e=t.data.pos,n=t.data.newPos,i=e.left-n.left,r=e.top-n.top;if(i||r){t.data.moved=!0;var s=t.elm.style;s.transform=s.WebkitTransform="translate("+i+"px,"+r+"px)",s.transitionDuration="0s"}}function er(t,e){var n=e?Iu(e):Au;if(n.test(t)){for(var i,r,s,a=[],o=[],u=n.lastIndex=0;i=n.exec(t);){r=i.index,r>u&&(o.push(s=t.slice(u,r)),a.push(JSON.stringify(s)));var l=Hn(i[1].trim());a.push("_s("+l+")"),o.push({"@binding":l}),u=r+i[0].length}return u=0&&a[r].lowerCasedTag!==o;r--);else r=0;if(r>=0){for(var u=a.length-1;u>=r;u--)e.end&&e.end(a[u].tag,n,i);a.length=r,s=r&&a[r-1].tag}else"br"===o?e.start&&e.start(t,[],!0,n,i):"p"===o&&(e.start&&e.start(t,[],!1,n,i),e.end&&e.end(t,n,i))}for(var r,s,a=[],o=e.expectHTML,u=e.isUnaryTag||As,l=e.canBeLeftOpenTag||As,c=0;t;){if(r=t,s&&Qu(s)){var d=0,h=s.toLowerCase(),f=tl[h]||(tl[h]=new RegExp("([\\s\\S]*?)(]*>)","i")),p=t.replace(f,function(t,n,i){return d=i.length,Qu(h)||"noscript"===h||(n=n.replace(//g,"$1").replace(//g,"$1")),sl(h,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});c+=t.length-p.length,t=p,i(h,c-d,c)}else{var m=t.indexOf("<");if(0===m){if(Ku.test(t)){var v=t.indexOf("--\x3e");if(v>=0){e.shouldKeepComment&&e.comment(t.substring(4,v),c,c+v+3),n(v+3);continue}}if(Zu.test(t)){var _=t.indexOf("]>");if(_>=0){n(_+2);continue}}var g=t.match(Xu);if(g){n(g[0].length);continue}var y=t.match(Gu);if(y){var b=c;n(y[0].length),i(y[1],b,c);continue}var x=function(){var e=t.match(qu);if(e){var i={tagName:e[1],attrs:[],start:c};n(e[0].length);for(var r,s;!(r=t.match(Ju))&&(s=t.match(Ru)||t.match(Wu));)s.start=c,n(s[0].length),s.end=c,i.attrs.push(s);if(r)return i.unarySlash=r[1],n(r[0].length),i.end=c,i}}();if(x){!function(t){var n=t.tagName,r=t.unarySlash;o&&("p"===s&&Nu(n)&&i(s),l(n)&&s===n&&i(n));for(var c=u(n)||!!r,d=t.attrs.length,h=new Array(d),f=0;f=0){for(k=t.slice(m);!(Gu.test(k)||qu.test(k)||Ku.test(k)||Zu.test(k)||(w=k.indexOf("<",1))<0);)m+=w,k=t.slice(m);M=t.substring(0,m)}m<0&&(M=t),M&&n(M.length),e.chars&&M&&e.chars(M,c-M.length,c)}if(t===r){e.chars&&e.chars(t);break}}i()}function ur(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:Yr(e),rawAttrsMap:{},parent:n,children:[]}}function lr(t,e){function n(t){if(i(t),c||t.processed||(t=hr(t,e)),o.length||t===s||s.if&&(t.elseif||t.else)&&br(s,{exp:t.elseif,block:t}),a&&!t.forbidden)if(t.elseif||t.else)gr(t,a);else{if(t.slotScope){var n=t.slotTarget||'"default"';(a.scopedSlots||(a.scopedSlots={}))[n]=t}a.children.push(t),t.parent=a}t.children=t.children.filter(function(t){return!t.slotScope}),i(t),t.pre&&(c=!1),Su(t.tag)&&(d=!1);for(var r=0;r>>0}function os(t){return 1===t.type&&("slot"===t.tag||t.children.some(os))}function us(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Qr(t,e,us,"null");if(t.for&&!t.forProcessed)return es(t,e,us);var i=t.slotScope===yl?"":String(t.slotScope),r="function("+i+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(ls(t,e)||"undefined")+":undefined":ls(t,e)||"undefined":Xr(t,e))+"}",s=i?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+r+s+"}"}function ls(t,e,n,i,r){var s=t.children;if(s.length){var a=s[0];if(1===s.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var o=n?e.maybeComponent(a)?",1":",0":"";return""+(i||Xr)(a,e)+o}var u=n?cs(s,e.maybeComponent):0,l=r||hs;return"["+s.map(function(t){return l(t,e)}).join(",")+"]"+(u?","+u:"")}}function cs(t,e){for(var n=0,i=0;i':'
',Vu.innerHTML.indexOf(" ")>0}function Ms(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}/*! + * Vue.js v2.6.8 + * (c) 2014-2019 Evan You + * Released under the MIT License. + */ +var ks=Object.freeze({}),ws=Object.prototype.toString,Ls=m("slot,component",!0),Ts=m("key,ref,slot,slot-scope,is"),Ss=Object.prototype.hasOwnProperty,Ds=/-(\w)/g,Ys=g(function(t){return t.replace(Ds,function(t,e){return e?e.toUpperCase():""})}),Cs=g(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),Os=/\B([A-Z])/g,js=g(function(t){return t.replace(Os,"-$1").toLowerCase()}),Vs=Function.prototype.bind?b:y,As=function(t,e,n){return!1},Ps=function(t){return t},Is="data-server-rendered",Hs=["component","directive","filter"],Es=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],$s={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:As,isReservedAttr:As,isUnknownElement:As,getTagNamespace:w,parsePlatformTagName:Ps,mustUseProp:As,async:!0,_lifecycleHooks:Es},Fs=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/,Bs=new RegExp("[^"+Fs.source+".$_\\d]"),Ns="__proto__"in{},Ws="undefined"!=typeof window,Rs="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,zs=Rs&&WXEnvironment.platform.toLowerCase(),Us=Ws&&window.navigator.userAgent.toLowerCase(),qs=Us&&/msie|trident/.test(Us),Js=Us&&Us.indexOf("msie 9.0")>0,Gs=Us&&Us.indexOf("edge/")>0,Xs=(Us&&Us.indexOf("android"),Us&&/iphone|ipad|ipod|ios/.test(Us)||"ios"===zs),Ks=(Us&&/chrome\/\d+/.test(Us),Us&&/phantomjs/.test(Us),Us&&Us.match(/firefox\/(\d+)/)),Zs={}.watch,Qs=!1;if(Ws)try{var ta={};Object.defineProperty(ta,"passive",{get:function(){Qs=!0}}),window.addEventListener("test-passive",null,ta)}catch(t){}var ea,na,ia=function(){return void 0===ea&&(ea=!Ws&&!Rs&&void 0!==t&&(t.process&&"server"===t.process.env.VUE_ENV)),ea},ra=Ws&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,sa="undefined"!=typeof Symbol&&O(Symbol)&&"undefined"!=typeof Reflect&&O(Reflect.ownKeys);na="undefined"!=typeof Set&&O(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var aa=w,oa=0,ua=function(){this.id=oa++,this.subs=[]};ua.prototype.addSub=function(t){this.subs.push(t)},ua.prototype.removeSub=function(t){v(this.subs,t)},ua.prototype.depend=function(){ua.target&&ua.target.addDep(this)},ua.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;edocument.createEvent("Event").timeStamp&&(Ra=function(){return performance.now()});var za=0,Ua=function(t,e,n,i,r){this.vm=t,r&&(t._watcher=this),t._watchers.push(this),i?(this.deep=!!i.deep,this.user=!!i.user,this.lazy=!!i.lazy,this.sync=!!i.sync,this.before=i.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++za,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new na,this.newDepIds=new na,this.expression="","function"==typeof e?this.getter=e:(this.getter=C(e),this.getter||(this.getter=w)),this.value=this.lazy?void 0:this.get()};Ua.prototype.get=function(){j(this);var t,e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;st(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&dt(t),V(),this.cleanupDeps()}return t},Ua.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},Ua.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},Ua.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():De(this)},Ua.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||u(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){st(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},Ua.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},Ua.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},Ua.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||v(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var qa={enumerable:!0,configurable:!0,get:w,set:w},Ja={lazy:!0},Ga=0;!function(t){t.prototype._init=function(t){var e=this;e._uid=Ga++,e._isVue=!0,t&&t._isComponent?Be(e,t):e.$options=Z(Ne(e.constructor),t||{},e),e._renderProxy=e,e._self=e,ve(e),ce(e),re(e),Me(e,"beforeCreate"),kt(e),Ce(e),Mt(e),Me(e,"created"),e.$options.el&&e.$mount(e.$options.el)}}(Re),function(t){var e={};e.get=function(){return this._data};var n={};n.get=function(){return this._props},Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=B,t.prototype.$delete=N,t.prototype.$watch=function(t,e,n){var i=this;if(l(e))return Fe(i,t,e,n);n=n||{},n.user=!0;var r=new Ua(i,t,e,n);if(n.immediate)try{e.call(i,r.value)}catch(t){st(t,i,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Re),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var i=this;if(Array.isArray(t))for(var r=0,s=t.length;r1?x(n):n;for(var i=x(arguments,1),r='event handler for "'+t+'"',s=0,a=n.length;sparseInt(this.max)&&tn(u,l[0],l,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Za={KeepAlive:Ka};!function(t){var e={};e.get=function(){return $s},Object.defineProperty(t,"config",e),t.util={warn:aa,extend:M,mergeOptions:Z,defineReactive:F},t.set=B,t.delete=N,t.nextTick=ct,t.observable=function(t){return $(t),t},t.options=Object.create(null),Hs.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,M(t.options.components,Za),ze(t),Ue(t),qe(t),Xe(t)}(Re),Object.defineProperty(Re.prototype,"$isServer",{get:ia}),Object.defineProperty(Re.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Re,"FunctionalRenderContext",{value:zt}),Re.version="2.6.8";var Qa,to,eo,no,io,ro,so,ao,oo,uo,lo=m("style,class"),co=m("input,textarea,option,select,progress"),ho=function(t,e,n){return"value"===n&&co(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},fo=m("contenteditable,draggable,spellcheck"),po=m("events,caret,typing,plaintext-only"),mo=function(t,e){return bo(e)||"false"===e?"false":"contenteditable"===t&&po(e)?e:"true"},vo=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),_o="http://www.w3.org/1999/xlink",go=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},yo=function(t){return go(t)?t.slice(6,t.length):""},bo=function(t){return null==t||!1===t},xo={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Mo=m("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),ko=m("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),wo=function(t){return"pre"===t},Lo=function(t){return Mo(t)||ko(t)},To=Object.create(null),So=m("text,number,password,search,email,tel,url"),Do=Object.freeze({createElement:hn,createElementNS:fn,createTextNode:pn,createComment:mn,insertBefore:vn,removeChild:_n,appendChild:gn,parentNode:yn,nextSibling:bn,tagName:xn,setTextContent:Mn,setStyleScope:kn}),Yo={create:function(t,e){wn(e)},update:function(t,e){t.data.ref!==e.data.ref&&(wn(t,!0),wn(e))},destroy:function(t){wn(t,!0)}},Co=new ca("",{},[]),Oo=["create","activate","update","remove","destroy"],jo={create:Dn,update:Dn,destroy:function(t){Dn(t,Co)}},Vo=Object.create(null),Ao=[Yo,jo],Po={create:Vn,update:Vn},Io={create:In,update:In},Ho=/[\w).+\-_$\]]/,Eo="__r",$o="__c",Fo=xa&&!(Ks&&Number(Ks[1])<=53),Bo={create:mi,update:mi},No={create:vi,update:vi},Wo=g(function(t){var e={},n=/;(?![^(]*\))/g,i=/:(.+)/;return t.split(n).forEach(function(t){if(t){var n=t.split(i);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}),Ro=/^--/,zo=/\s*!important$/,Uo=function(t,e,n){if(Ro.test(e))t.style.setProperty(e,n);else if(zo.test(n))t.style.setProperty(js(e),n.replace(zo,""),"important");else{var i=Jo(e);if(Array.isArray(n))for(var r=0,s=n.length;rp?(d=i(n[_+1])?null:n[_+1].elm,g(t,d,n,f,_,s)):f>_&&b(t,e,h,p)}function k(t,e,n,i){for(var s=n;s\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,Ru=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,zu="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+Fs.source+"]*",Uu="((?:"+zu+"\\:)?"+zu+")",qu=new RegExp("^<"+Uu),Ju=/^\s*(\/?)>/,Gu=new RegExp("^<\\/"+Uu+"[^>]*>"),Xu=/^]+>/i,Ku=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},nl=/&(?:lt|gt|quot|amp|#39);/g,il=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,rl=m("pre,textarea",!0),sl=function(t,e){return t&&rl(t)&&"\n"===e[0]},al=/^@|^v-on:/,ol=/^v-|^@|^:/,ul=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,ll=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,cl=/^\(|\)$/g,dl=/^\[.*\]$/,hl=/:(.*)$/,fl=/^:|^\.|^v-bind:/,pl=/\.[^.\]]+(?=[^\]]*$)/g,ml=/^v-slot(:|$)|^#/,vl=/[\r\n]/,_l=/\s+/g,gl=g($u.decode),yl="_empty_",bl=/^xmlns:NS\d+/,xl=/^NS\d+:/,Ml={preTransformNode:Vr},kl=[Hu,Eu,Ml],wl={model:ai,text:Pr,html:Ir},Ll={expectHTML:!0,modules:kl,directives:wl,isPreTag:wo,isUnaryTag:Fu,mustUseProp:ho,canBeLeftOpenTag:Bu,isReservedTag:Lo,getTagNamespace:ln,staticKeys:function(t){return t.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")}(kl)},Tl=g(Er),Sl=/^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/,Dl=/\([^)]*?\);*$/,Yl=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Cl={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ol={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},jl=function(t){return"if("+t+")return null;"},Vl={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:jl("$event.target !== $event.currentTarget"),ctrl:jl("!$event.ctrlKey"),shift:jl("!$event.shiftKey"),alt:jl("!$event.altKey"),meta:jl("!$event.metaKey"),left:jl("'button' in $event && $event.button !== 0"),middle:jl("'button' in $event && $event.button !== 1"),right:jl("'button' in $event && $event.button !== 2")},Al={on:qr,bind:Jr,cloak:w},Pl=function(t){this.options=t,this.warn=t.warn||$n,this.transforms=Fn(t.modules,"transformCode"),this.dataGenFns=Fn(t.modules,"genData"),this.directives=M(M({},Al),t.directives);var e=t.isReservedTag||As;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1},Il=(new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),function(t){return function(e){function n(n,i){var r=Object.create(e),s=[],a=[],o=function(t,e,n){(n?a:s).push(t)};if(i){i.modules&&(r.modules=(e.modules||[]).concat(i.modules)),i.directives&&(r.directives=M(Object.create(e.directives||null),i.directives));for(var u in i)"modules"!==u&&"directives"!==u&&(r[u]=i[u])}r.warn=o;var l=t(n.trim(),r);return l.errors=s,l.tips=a,l}return{compile:n,compileToFunctions:bs(n)}}}(function(t,e){var n=lr(t.trim(),e);!1!==e.optimize&&Hr(n,e);var i=Gr(n,e);return{ast:n,render:i.render,staticRenderFns:i.staticRenderFns}})),Hl=Il(Ll),El=(Hl.compile,Hl.compileToFunctions),$l=!!Ws&&xs(!1),Fl=!!Ws&&xs(!0),Bl=g(function(t){var e=dn(t);return e&&e.innerHTML}),Nl=Re.prototype.$mount;Re.prototype.$mount=function(t,e){if((t=t&&dn(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var i=n.template;if(i)if("string"==typeof i)"#"===i.charAt(0)&&(i=Bl(i));else{if(!i.nodeType)return this;i=i.innerHTML}else t&&(i=Ms(t));if(i){var r=El(i,{outputSourceRange:!1,shouldDecodeNewlines:$l,shouldDecodeNewlinesForHref:Fl,delimiters:n.delimiters,comments:n.comments},this),s=r.render,a=r.staticRenderFns;n.render=s,n.staticRenderFns=a}}return Nl.call(this,t,e)},Re.compile=El,e.default=Re}.call(e,n(13),n(244).setImmediate)},,function(t,e,n){"use strict";(function(e){function i(t,e){!r.isUndefined(t)&&r.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}var r=n(4),s=n(262),a={"Content-Type":"application/x-www-form-urlencoded"},o={adapter:function(){var t;return"undefined"!=typeof XMLHttpRequest?t=n(53):void 0!==e&&(t=n(53)),t}(),transformRequest:[function(t,e){return s(e,"Content-Type"),r.isFormData(t)||r.isArrayBuffer(t)||r.isBuffer(t)||r.isStream(t)||r.isFile(t)||r.isBlob(t)?t:r.isArrayBufferView(t)?t.buffer:r.isURLSearchParams(t)?(i(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):r.isObject(t)?(i(e,"application/json;charset=utf-8"),JSON.stringify(t)):t}],transformResponse:[function(t){if("string"==typeof t)try{t=JSON.parse(t)}catch(t){}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(t){return t>=200&&t<300}};o.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(t){o.headers[t]={}}),r.forEach(["post","put","patch"],function(t){o.headers[t]=r.merge(a)}),t.exports=o}).call(e,n(29))},function(t,e,n){(function(t,i){var r;(function(){function s(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function a(t,e,n,i){for(var r=-1,s=null==t?0:t.length;++r-1}function h(t,e,n){for(var i=-1,r=null==t?0:t.length;++i-1;);return n}function H(t,e){for(var n=t.length;n--&&M(e,t[n],0)>-1;);return n}function E(t,e){for(var n=t.length,i=0;n--;)t[n]===e&&++i;return i}function $(t){return"\\"+Ln[t]}function F(t,e){return null==t?nt:t[e]}function B(t){return vn.test(t)}function N(t){return _n.test(t)}function W(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}function R(t){var e=-1,n=Array(t.size);return t.forEach(function(t,i){n[++e]=[i,t]}),n}function z(t,e){return function(n){return t(e(n))}}function U(t,e){for(var n=-1,i=t.length,r=0,s=[];++n>>1,Ht=[["ary",xt],["bind",pt],["bindKey",mt],["curry",_t],["curryRight",gt],["flip",kt],["partial",yt],["partialRight",bt],["rearg",Mt]],Et="[object Arguments]",$t="[object Array]",Ft="[object AsyncFunction]",Bt="[object Boolean]",Nt="[object Date]",Wt="[object DOMException]",Rt="[object Error]",zt="[object Function]",Ut="[object GeneratorFunction]",qt="[object Map]",Jt="[object Number]",Gt="[object Null]",Xt="[object Object]",Kt="[object Proxy]",Zt="[object RegExp]",Qt="[object Set]",te="[object String]",ee="[object Symbol]",ne="[object Undefined]",ie="[object WeakMap]",re="[object WeakSet]",se="[object ArrayBuffer]",ae="[object DataView]",oe="[object Float32Array]",ue="[object Float64Array]",le="[object Int8Array]",ce="[object Int16Array]",de="[object Int32Array]",he="[object Uint8Array]",fe="[object Uint8ClampedArray]",pe="[object Uint16Array]",me="[object Uint32Array]",ve=/\b__p \+= '';/g,_e=/\b(__p \+=) '' \+/g,ge=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ye=/&(?:amp|lt|gt|quot|#39);/g,be=/[&<>"']/g,xe=RegExp(ye.source),Me=RegExp(be.source),ke=/<%-([\s\S]+?)%>/g,we=/<%([\s\S]+?)%>/g,Le=/<%=([\s\S]+?)%>/g,Te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Se=/^\w*$/,De=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ye=/[\\^$.*+?()[\]{}|]/g,Ce=RegExp(Ye.source),Oe=/^\s+|\s+$/g,je=/^\s+/,Ve=/\s+$/,Ae=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pe=/\{\n\/\* \[wrapped with (.+)\] \*/,Ie=/,? & /,He=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Ee=/\\(\\)?/g,$e=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Fe=/\w*$/,Be=/^[-+]0x[0-9a-f]+$/i,Ne=/^0b[01]+$/i,We=/^\[object .+?Constructor\]$/,Re=/^0o[0-7]+$/i,ze=/^(?:0|[1-9]\d*)$/,Ue=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,qe=/($^)/,Je=/['\n\r\u2028\u2029\\]/g,Ge="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Xe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Ke="["+Xe+"]",Ze="["+Ge+"]",Qe="[a-z\\xdf-\\xf6\\xf8-\\xff]",tn="[^\\ud800-\\udfff"+Xe+"\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",en="\\ud83c[\\udffb-\\udfff]",nn="(?:\\ud83c[\\udde6-\\uddff]){2}",rn="[\\ud800-\\udbff][\\udc00-\\udfff]",sn="[A-Z\\xc0-\\xd6\\xd8-\\xde]",an="(?:"+Qe+"|"+tn+")",on="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",un="(?:\\u200d(?:"+["[^\\ud800-\\udfff]",nn,rn].join("|")+")[\\ufe0e\\ufe0f]?"+on+")*",ln="[\\ufe0e\\ufe0f]?"+on+un,cn="(?:"+["[\\u2700-\\u27bf]",nn,rn].join("|")+")"+ln,dn="(?:"+["[^\\ud800-\\udfff]"+Ze+"?",Ze,nn,rn,"[\\ud800-\\udfff]"].join("|")+")",hn=RegExp("['’]","g"),fn=RegExp(Ze,"g"),pn=RegExp(en+"(?="+en+")|"+dn+ln,"g"),mn=RegExp([sn+"?"+Qe+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Ke,sn,"$"].join("|")+")","(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Ke,sn+an,"$"].join("|")+")",sn+"?"+an+"+(?:['’](?:d|ll|m|re|s|t|ve))?",sn+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",cn].join("|"),"g"),vn=RegExp("[\\u200d\\ud800-\\udfff"+Ge+"\\ufe0e\\ufe0f]"),_n=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,gn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],yn=-1,bn={};bn[oe]=bn[ue]=bn[le]=bn[ce]=bn[de]=bn[he]=bn[fe]=bn[pe]=bn[me]=!0,bn[Et]=bn[$t]=bn[se]=bn[Bt]=bn[ae]=bn[Nt]=bn[Rt]=bn[zt]=bn[qt]=bn[Jt]=bn[Xt]=bn[Zt]=bn[Qt]=bn[te]=bn[ie]=!1;var xn={};xn[Et]=xn[$t]=xn[se]=xn[ae]=xn[Bt]=xn[Nt]=xn[oe]=xn[ue]=xn[le]=xn[ce]=xn[de]=xn[qt]=xn[Jt]=xn[Xt]=xn[Zt]=xn[Qt]=xn[te]=xn[ee]=xn[he]=xn[fe]=xn[pe]=xn[me]=!0,xn[Rt]=xn[zt]=xn[ie]=!1;var Mn={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},kn={"&":"&","<":"<",">":">",'"':""","'":"'"},wn={"&":"&","<":"<",">":">",""":'"',"'":"'"},Ln={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Tn=parseFloat,Sn=parseInt,Dn="object"==typeof t&&t&&t.Object===Object&&t,Yn="object"==typeof self&&self&&self.Object===Object&&self,Cn=Dn||Yn||Function("return this")(),On="object"==typeof e&&e&&!e.nodeType&&e,jn=On&&"object"==typeof i&&i&&!i.nodeType&&i,Vn=jn&&jn.exports===On,An=Vn&&Dn.process,Pn=function(){try{var t=jn&&jn.require&&jn.require("util").types;return t||An&&An.binding&&An.binding("util")}catch(t){}}(),In=Pn&&Pn.isArrayBuffer,Hn=Pn&&Pn.isDate,En=Pn&&Pn.isMap,$n=Pn&&Pn.isRegExp,Fn=Pn&&Pn.isSet,Bn=Pn&&Pn.isTypedArray,Nn=T("length"),Wn=S(Mn),Rn=S(kn),zn=S(wn),Un=function t(e){function n(t){if(eu(t)&&!hh(t)&&!(t instanceof g)){if(t instanceof r)return t;if(hc.call(t,"__wrapped__"))return Ks(t)}return new r(t)}function i(){}function r(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=nt}function g(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=At,this.__views__=[]}function S(){var t=new g(this.__wrapped__);return t.__actions__=jr(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=jr(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=jr(this.__views__),t}function G(){if(this.__filtered__){var t=new g(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function Q(){var t=this.__wrapped__.value(),e=this.__dir__,n=hh(t),i=e<0,r=n?t.length:0,s=xs(0,r,this.__views__),a=s.start,o=s.end,u=o-a,l=i?o:a-1,c=this.__iteratees__,d=c.length,h=0,f=Nc(u,this.__takeCount__);if(!n||!i&&r==u&&f==u)return mr(t,this.__actions__);var p=[];t:for(;u--&&h-1}function sn(t,e){var n=this.__data__,i=qn(n,t);return i<0?(++this.size,n.push([t,e])):n[i][1]=e,this}function an(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e=e?t:e)),t}function ti(t,e,n,i,r,s){var a,u=e<,l=e&ct,c=e&dt;if(n&&(a=r?n(t,i,r,s):n(t)),a!==nt)return a;if(!tu(t))return t;var d=hh(t);if(d){if(a=ws(t),!u)return jr(t,a)}else{var h=Md(t),f=h==zt||h==Ut;if(ph(t))return Mr(t,u);if(h==Xt||h==Et||f&&!r){if(a=l||f?{}:Ls(t),!u)return l?Pr(t,Xn(a,t)):Ar(t,Gn(a,t))}else{if(!xn[h])return r?t:{};a=Ts(t,h,u)}}s||(s=new _n);var p=s.get(t);if(p)return p;if(s.set(t,a),gh(t))return t.forEach(function(i){a.add(ti(i,e,n,i,t,s))}),a;if(vh(t))return t.forEach(function(i,r){a.set(r,ti(i,e,n,r,t,s))}),a;var m=c?l?fs:hs:l?Hu:Iu,v=d?nt:m(t);return o(v||t,function(i,r){v&&(r=i,i=t[r]),Nn(a,r,ti(i,e,n,r,t,s))}),a}function ei(t){var e=Iu(t);return function(n){return ni(n,t,e)}}function ni(t,e,n){var i=n.length;if(null==t)return!i;for(t=ic(t);i--;){var r=n[i],s=e[r],a=t[r];if(a===nt&&!(r in t)||!s(a))return!1}return!0}function ii(t,e,n){if("function"!=typeof t)throw new ac(st);return Ld(function(){t.apply(nt,n)},e)}function ri(t,e,n,i){var r=-1,s=d,a=!0,o=t.length,u=[],l=e.length;if(!o)return u;n&&(e=f(e,V(n))),i?(s=h,a=!1):e.length>=it&&(s=P,a=!1,e=new pn(e));t:for(;++rr?0:r+n),i=i===nt||i>r?r:gu(i),i<0&&(i+=r),i=n>i?0:yu(i);n0&&n(o)?e>1?li(o,e-1,n,i,r):p(r,o):i||(r[r.length]=o)}return r}function ci(t,e){return t&&hd(t,e,Iu)}function di(t,e){return t&&fd(t,e,Iu)}function hi(t,e){return c(e,function(e){return Ko(t[e])})}function fi(t,e){e=br(e,t);for(var n=0,i=e.length;null!=t&&ne}function _i(t,e){return null!=t&&hc.call(t,e)}function gi(t,e){return null!=t&&e in ic(t)}function yi(t,e,n){return t>=Nc(e,n)&&t=120&&c.length>=120)?new pn(a&&c):nt}c=t[0];var p=-1,m=o[0];t:for(;++p-1;)o!==t&&Tc.call(o,u,1),Tc.call(t,u,1);return t}function Gi(t,e){for(var n=t?e.length:0,i=n-1;n--;){var r=e[n];if(n==i||r!==s){var s=r;Ys(r)?Tc.call(t,r,1):hr(t,r)}}return t}function Xi(t,e){return t+Pc(zc()*(e-t+1))}function Ki(t,e,n,i){for(var r=-1,s=Bc(Ac((e-t)/(n||1)),0),a=Zl(s);s--;)a[i?s:++r]=t,t+=n;return a}function Zi(t,e){var n="";if(!t||e<1||e>Ot)return n;do{e%2&&(n+=t),(e=Pc(e/2))&&(t+=t)}while(e);return n}function Qi(t,e){return Td(Bs(t,e,Tl),t+"")}function tr(t){return On(Gu(t))}function er(t,e){var n=Gu(t);return qs(n,Qn(e,0,n.length))}function nr(t,e,n,i){if(!tu(t))return t;e=br(e,t);for(var r=-1,s=e.length,a=s-1,o=t;null!=o&&++rr?0:r+e),n=n>r?r:n,n<0&&(n+=r),r=e>n?0:n-e>>>0,e>>>=0;for(var s=Zl(r);++i>>1,a=t[s];null!==a&&!hu(a)&&(n?a<=e:a=it){var l=e?null:gd(t);if(l)return q(l);a=!1,r=P,u=new pn}else u=e?[]:o;t:for(;++i=i?t:rr(t,e,n)}function Mr(t,e){if(e)return t.slice();var n=t.length,i=Mc?Mc(n):new t.constructor(n);return t.copy(i),i}function kr(t){var e=new t.constructor(t.byteLength);return new xc(e).set(new xc(t)),e}function wr(t,e){var n=e?kr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}function Lr(t){var e=new t.constructor(t.source,Fe.exec(t));return e.lastIndex=t.lastIndex,e}function Tr(t){return od?ic(od.call(t)):{}}function Sr(t,e){var n=e?kr(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function Dr(t,e){if(t!==e){var n=t!==nt,i=null===t,r=t===t,s=hu(t),a=e!==nt,o=null===e,u=e===e,l=hu(e);if(!o&&!l&&!s&&t>e||s&&a&&u&&!o&&!l||i&&a&&u||!n&&u||!r)return 1;if(!i&&!s&&!l&&t=o)return u;return u*("desc"==n[i]?-1:1)}}return t.index-e.index}function Cr(t,e,n,i){for(var r=-1,s=t.length,a=n.length,o=-1,u=e.length,l=Bc(s-a,0),c=Zl(u+l),d=!i;++o1?n[r-1]:nt,a=r>2?n[2]:nt;for(s=t.length>3&&"function"==typeof s?(r--,s):nt,a&&Cs(n[0],n[1],a)&&(s=r<3?nt:s,r=1),e=ic(e);++i-1?r[s?e[a]:a]:nt}}function Ur(t){return ds(function(e){var n=e.length,i=n,s=r.prototype.thru;for(t&&e.reverse();i--;){var a=e[i];if("function"!=typeof a)throw new ac(st);if(s&&!o&&"wrapper"==ps(a))var o=new r([],!0)}for(i=o?i:n;++i1&&g.reverse(),d&&u<_&&(g.length=u),this&&this!==Cn&&this instanceof c&&(w=v||Wr(w)),w.apply(k,g)}var d=e&xt,h=e&pt,f=e&mt,p=e&(_t|gt),m=e&kt,v=f?nt:Wr(t);return c}function Jr(t,e){return function(n,i){return xi(n,t,e(i),{})}}function Gr(t,e){return function(n,i){var r;if(n===nt&&i===nt)return e;if(n!==nt&&(r=n),i!==nt){if(r===nt)return i;"string"==typeof n||"string"==typeof i?(n=cr(n),i=cr(i)):(n=lr(n),i=lr(i)),r=t(n,i)}return r}}function Xr(t){return ds(function(e){return e=f(e,V(vs())),Qi(function(n){var i=this;return t(e,function(t){return s(t,i,n)})})})}function Kr(t,e){e=e===nt?" ":cr(e);var n=e.length;if(n<2)return n?Zi(e,t):e;var i=Zi(e,Ac(t/K(e)));return B(e)?xr(Z(i),0,t).join(""):i.slice(0,t)}function Zr(t,e,n,i){function r(){for(var e=-1,u=arguments.length,l=-1,c=i.length,d=Zl(c+u),h=this&&this!==Cn&&this instanceof r?o:t;++lo))return!1;var l=s.get(t);if(l&&s.get(e))return l==e;var c=-1,d=!0,h=n&ft?new pn:nt;for(s.set(t,e),s.set(e,t);++c1?"& ":"")+e[i],e=e.join(n>2?", ":" "),t.replace(Ae,"{\n/* [wrapped with "+e+"] */\n")}function Ds(t){return hh(t)||dh(t)||!!(Sc&&t&&t[Sc])}function Ys(t,e){var n=typeof t;return!!(e=null==e?Ot:e)&&("number"==n||"symbol"!=n&&ze.test(t))&&t>-1&&t%1==0&&t0){if(++e>=Tt)return arguments[0]}else e=0;return t.apply(nt,arguments)}}function qs(t,e){var n=-1,i=t.length,r=i-1;for(e=e===nt?i:e;++n=this.__values__.length;return{done:t,value:t?nt:this.__values__[this.__index__++]}}function Ka(){return this}function Za(t){for(var e,n=this;n instanceof i;){var r=Ks(n);r.__index__=0,r.__values__=nt,e?s.__wrapped__=r:e=r;var s=r;n=n.__wrapped__}return s.__wrapped__=t,e}function Qa(){var t=this.__wrapped__;if(t instanceof g){var e=t;return this.__actions__.length&&(e=new g(this)),e=e.reverse(),e.__actions__.push({func:qa,args:[ka],thisArg:nt}),new r(e,this.__chain__)}return this.thru(ka)}function to(){return mr(this.__wrapped__,this.__actions__)}function eo(t,e,n){var i=hh(t)?l:si;return n&&Cs(t,e,n)&&(e=nt),i(t,vs(e,3))}function no(t,e){return(hh(t)?c:ui)(t,vs(e,3))}function io(t,e){return li(lo(t,e),1)}function ro(t,e){return li(lo(t,e),Ct)}function so(t,e,n){return n=n===nt?1:gu(n),li(lo(t,e),n)}function ao(t,e){return(hh(t)?o:cd)(t,vs(e,3))}function oo(t,e){return(hh(t)?u:dd)(t,vs(e,3))}function uo(t,e,n,i){t=No(t)?t:Gu(t),n=n&&!i?gu(n):0;var r=t.length;return n<0&&(n=Bc(r+n,0)),du(t)?n<=r&&t.indexOf(e,n)>-1:!!r&&M(t,e,n)>-1}function lo(t,e){return(hh(t)?f:Ei)(t,vs(e,3))}function co(t,e,n,i){return null==t?[]:(hh(e)||(e=null==e?[]:[e]),n=i?nt:n,hh(n)||(n=null==n?[]:[n]),Ri(t,e,n))}function ho(t,e,n){var i=hh(t)?m:D,r=arguments.length<3;return i(t,vs(e,4),n,r,cd)}function fo(t,e,n){var i=hh(t)?v:D,r=arguments.length<3;return i(t,vs(e,4),n,r,dd)}function po(t,e){return(hh(t)?c:ui)(t,Do(vs(e,3)))}function mo(t){return(hh(t)?On:tr)(t)}function vo(t,e,n){return e=(n?Cs(t,e,n):e===nt)?1:gu(e),(hh(t)?jn:er)(t,e)}function _o(t){return(hh(t)?An:ir)(t)}function go(t){if(null==t)return 0;if(No(t))return du(t)?K(t):t.length;var e=Md(t);return e==qt||e==Qt?t.size:Pi(t).length}function yo(t,e,n){var i=hh(t)?_:sr;return n&&Cs(t,e,n)&&(e=nt),i(t,vs(e,3))}function bo(t,e){if("function"!=typeof e)throw new ac(st);return t=gu(t),function(){if(--t<1)return e.apply(this,arguments)}}function xo(t,e,n){return e=n?nt:e,e=t&&null==e?t.length:e,rs(t,xt,nt,nt,nt,nt,e)}function Mo(t,e){var n;if("function"!=typeof e)throw new ac(st);return t=gu(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=nt),n}}function ko(t,e,n){e=n?nt:e;var i=rs(t,_t,nt,nt,nt,nt,nt,e);return i.placeholder=ko.placeholder,i}function wo(t,e,n){e=n?nt:e;var i=rs(t,gt,nt,nt,nt,nt,nt,e);return i.placeholder=wo.placeholder,i}function Lo(t,e,n){function i(e){var n=h,i=f;return h=f=nt,g=e,m=t.apply(i,n)}function r(t){return g=t,v=Ld(o,e),y?i(t):m}function s(t){var n=t-_,i=t-g,r=e-n;return b?Nc(r,p-i):r}function a(t){var n=t-_,i=t-g;return _===nt||n>=e||n<0||b&&i>=p}function o(){var t=th();if(a(t))return u(t);v=Ld(o,s(t))}function u(t){return v=nt,x&&h?i(t):(h=f=nt,m)}function l(){v!==nt&&_d(v),g=0,h=_=f=v=nt}function c(){return v===nt?m:u(th())}function d(){var t=th(),n=a(t);if(h=arguments,f=this,_=t,n){if(v===nt)return r(_);if(b)return v=Ld(o,e),i(_)}return v===nt&&(v=Ld(o,e)),m}var h,f,p,m,v,_,g=0,y=!1,b=!1,x=!0;if("function"!=typeof t)throw new ac(st);return e=bu(e)||0,tu(n)&&(y=!!n.leading,b="maxWait"in n,p=b?Bc(bu(n.maxWait)||0,e):p,x="trailing"in n?!!n.trailing:x),d.cancel=l,d.flush=c,d}function To(t){return rs(t,kt)}function So(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new ac(st);var n=function(){var i=arguments,r=e?e.apply(this,i):i[0],s=n.cache;if(s.has(r))return s.get(r);var a=t.apply(this,i);return n.cache=s.set(r,a)||s,a};return n.cache=new(So.Cache||an),n}function Do(t){if("function"!=typeof t)throw new ac(st);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Yo(t){return Mo(2,t)}function Co(t,e){if("function"!=typeof t)throw new ac(st);return e=e===nt?e:gu(e),Qi(t,e)}function Oo(t,e){if("function"!=typeof t)throw new ac(st);return e=null==e?0:Bc(gu(e),0),Qi(function(n){var i=n[e],r=xr(n,0,e);return i&&p(r,i),s(t,this,r)})}function jo(t,e,n){var i=!0,r=!0;if("function"!=typeof t)throw new ac(st);return tu(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),Lo(t,e,{leading:i,maxWait:e,trailing:r})}function Vo(t){return xo(t,1)}function Ao(t,e){return ah(yr(e),t)}function Po(){if(!arguments.length)return[];var t=arguments[0];return hh(t)?t:[t]}function Io(t){return ti(t,dt)}function Ho(t,e){return e="function"==typeof e?e:nt,ti(t,dt,e)}function Eo(t){return ti(t,lt|dt)}function $o(t,e){return e="function"==typeof e?e:nt,ti(t,lt|dt,e)}function Fo(t,e){return null==e||ni(t,e,Iu(e))}function Bo(t,e){return t===e||t!==t&&e!==e}function No(t){return null!=t&&Qo(t.length)&&!Ko(t)}function Wo(t){return eu(t)&&No(t)}function Ro(t){return!0===t||!1===t||eu(t)&&mi(t)==Bt}function zo(t){return eu(t)&&1===t.nodeType&&!lu(t)}function Uo(t){if(null==t)return!0;if(No(t)&&(hh(t)||"string"==typeof t||"function"==typeof t.splice||ph(t)||yh(t)||dh(t)))return!t.length;var e=Md(t);if(e==qt||e==Qt)return!t.size;if(Ps(t))return!Pi(t).length;for(var n in t)if(hc.call(t,n))return!1;return!0}function qo(t,e){return Ti(t,e)}function Jo(t,e,n){n="function"==typeof n?n:nt;var i=n?n(t,e):nt;return i===nt?Ti(t,e,nt,n):!!i}function Go(t){if(!eu(t))return!1;var e=mi(t);return e==Rt||e==Wt||"string"==typeof t.message&&"string"==typeof t.name&&!lu(t)}function Xo(t){return"number"==typeof t&&Ec(t)}function Ko(t){if(!tu(t))return!1;var e=mi(t);return e==zt||e==Ut||e==Ft||e==Kt}function Zo(t){return"number"==typeof t&&t==gu(t)}function Qo(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=Ot}function tu(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function eu(t){return null!=t&&"object"==typeof t}function nu(t,e){return t===e||Yi(t,e,gs(e))}function iu(t,e,n){return n="function"==typeof n?n:nt,Yi(t,e,gs(e),n)}function ru(t){return uu(t)&&t!=+t}function su(t){if(kd(t))throw new tc(rt);return Ci(t)}function au(t){return null===t}function ou(t){return null==t}function uu(t){return"number"==typeof t||eu(t)&&mi(t)==Jt}function lu(t){if(!eu(t)||mi(t)!=Xt)return!1;var e=kc(t);if(null===e)return!0;var n=hc.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&dc.call(n)==vc}function cu(t){return Zo(t)&&t>=-Ot&&t<=Ot}function du(t){return"string"==typeof t||!hh(t)&&eu(t)&&mi(t)==te}function hu(t){return"symbol"==typeof t||eu(t)&&mi(t)==ee}function fu(t){return t===nt}function pu(t){return eu(t)&&Md(t)==ie}function mu(t){return eu(t)&&mi(t)==re}function vu(t){if(!t)return[];if(No(t))return du(t)?Z(t):jr(t);if(Dc&&t[Dc])return W(t[Dc]());var e=Md(t);return(e==qt?R:e==Qt?q:Gu)(t)}function _u(t){if(!t)return 0===t?t:0;if((t=bu(t))===Ct||t===-Ct){return(t<0?-1:1)*jt}return t===t?t:0}function gu(t){var e=_u(t),n=e%1;return e===e?n?e-n:e:0}function yu(t){return t?Qn(gu(t),0,At):0}function bu(t){if("number"==typeof t)return t;if(hu(t))return Vt;if(tu(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=tu(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(Oe,"");var n=Ne.test(t);return n||Re.test(t)?Sn(t.slice(2),n?2:8):Be.test(t)?Vt:+t}function xu(t){return Vr(t,Hu(t))}function Mu(t){return t?Qn(gu(t),-Ot,Ot):0===t?t:0}function ku(t){return null==t?"":cr(t)}function wu(t,e){var n=ld(t);return null==e?n:Gn(n,e)}function Lu(t,e){return b(t,vs(e,3),ci)}function Tu(t,e){return b(t,vs(e,3),di)}function Su(t,e){return null==t?t:hd(t,vs(e,3),Hu)}function Du(t,e){return null==t?t:fd(t,vs(e,3),Hu)}function Yu(t,e){return t&&ci(t,vs(e,3))}function Cu(t,e){return t&&di(t,vs(e,3))}function Ou(t){return null==t?[]:hi(t,Iu(t))}function ju(t){return null==t?[]:hi(t,Hu(t))}function Vu(t,e,n){var i=null==t?nt:fi(t,e);return i===nt?n:i}function Au(t,e){return null!=t&&ks(t,e,_i)}function Pu(t,e){return null!=t&&ks(t,e,gi)}function Iu(t){return No(t)?Yn(t):Pi(t)}function Hu(t){return No(t)?Yn(t,!0):Ii(t)}function Eu(t,e){var n={};return e=vs(e,3),ci(t,function(t,i,r){Kn(n,e(t,i,r),t)}),n}function $u(t,e){var n={};return e=vs(e,3),ci(t,function(t,i,r){Kn(n,i,e(t,i,r))}),n}function Fu(t,e){return Bu(t,Do(vs(e)))}function Bu(t,e){if(null==t)return{};var n=f(fs(t),function(t){return[t]});return e=vs(e),Ui(t,n,function(t,n){return e(t,n[0])})}function Nu(t,e,n){e=br(e,t);var i=-1,r=e.length;for(r||(r=1,t=nt);++ie){var i=t;t=e,e=i}if(n||t%1||e%1){var r=zc();return Nc(t+r*(e-t+Tn("1e-"+((r+"").length-1))),e)}return Xi(t,e)}function tl(t){return zh(ku(t).toLowerCase())}function el(t){return(t=ku(t))&&t.replace(Ue,Wn).replace(fn,"")}function nl(t,e,n){t=ku(t),e=cr(e);var i=t.length;n=n===nt?i:Qn(gu(n),0,i);var r=n;return(n-=e.length)>=0&&t.slice(n,r)==e}function il(t){return t=ku(t),t&&Me.test(t)?t.replace(be,Rn):t}function rl(t){return t=ku(t),t&&Ce.test(t)?t.replace(Ye,"\\$&"):t}function sl(t,e,n){t=ku(t),e=gu(e);var i=e?K(t):0;if(!e||i>=e)return t;var r=(e-i)/2;return Kr(Pc(r),n)+t+Kr(Ac(r),n)}function al(t,e,n){t=ku(t),e=gu(e);var i=e?K(t):0;return e&&i>>0)?(t=ku(t),t&&("string"==typeof e||null!=e&&!_h(e))&&!(e=cr(e))&&B(t)?xr(Z(t),0,n):t.split(e,n)):[]}function hl(t,e,n){return t=ku(t),n=null==n?0:Qn(gu(n),0,t.length),e=cr(e),t.slice(n,n+e.length)==e}function fl(t,e,i){var r=n.templateSettings;i&&Cs(t,e,i)&&(e=nt),t=ku(t),e=wh({},e,r,ss);var s,a,o=wh({},e.imports,r.imports,ss),u=Iu(o),l=A(o,u),c=0,d=e.interpolate||qe,h="__p += '",f=rc((e.escape||qe).source+"|"+d.source+"|"+(d===Le?$e:qe).source+"|"+(e.evaluate||qe).source+"|$","g"),p="//# sourceURL="+("sourceURL"in e?e.sourceURL:"lodash.templateSources["+ ++yn+"]")+"\n";t.replace(f,function(e,n,i,r,o,u){return i||(i=r),h+=t.slice(c,u).replace(Je,$),n&&(s=!0,h+="' +\n__e("+n+") +\n'"),o&&(a=!0,h+="';\n"+o+";\n__p += '"),i&&(h+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=u+e.length,e}),h+="';\n";var m=e.variable;m||(h="with (obj) {\n"+h+"\n}\n"),h=(a?h.replace(ve,""):h).replace(_e,"$1").replace(ge,"$1;"),h="function("+(m||"obj")+") {\n"+(m?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(s?", __e = _.escape":"")+(a?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+h+"return __p\n}";var v=Uh(function(){return ec(u,p+"return "+h).apply(nt,l)});if(v.source=h,Go(v))throw v;return v}function pl(t){return ku(t).toLowerCase()}function ml(t){return ku(t).toUpperCase()}function vl(t,e,n){if((t=ku(t))&&(n||e===nt))return t.replace(Oe,"");if(!t||!(e=cr(e)))return t;var i=Z(t),r=Z(e);return xr(i,I(i,r),H(i,r)+1).join("")}function _l(t,e,n){if((t=ku(t))&&(n||e===nt))return t.replace(Ve,"");if(!t||!(e=cr(e)))return t;var i=Z(t);return xr(i,0,H(i,Z(e))+1).join("")}function gl(t,e,n){if((t=ku(t))&&(n||e===nt))return t.replace(je,"");if(!t||!(e=cr(e)))return t;var i=Z(t);return xr(i,I(i,Z(e))).join("")}function yl(t,e){var n=wt,i=Lt;if(tu(e)){var r="separator"in e?e.separator:r;n="length"in e?gu(e.length):n,i="omission"in e?cr(e.omission):i}t=ku(t);var s=t.length;if(B(t)){var a=Z(t);s=a.length}if(n>=s)return t;var o=n-K(i);if(o<1)return i;var u=a?xr(a,0,o).join(""):t.slice(0,o);if(r===nt)return u+i;if(a&&(o+=u.length-o),_h(r)){if(t.slice(o).search(r)){var l,c=u;for(r.global||(r=rc(r.source,ku(Fe.exec(r))+"g")),r.lastIndex=0;l=r.exec(c);)var d=l.index;u=u.slice(0,d===nt?o:d)}}else if(t.indexOf(cr(r),o)!=o){var h=u.lastIndexOf(r);h>-1&&(u=u.slice(0,h))}return u+i}function bl(t){return t=ku(t),t&&xe.test(t)?t.replace(ye,zn):t}function xl(t,e,n){return t=ku(t),e=n?nt:e,e===nt?N(t)?et(t):y(t):t.match(e)||[]}function Ml(t){var e=null==t?0:t.length,n=vs();return t=e?f(t,function(t){if("function"!=typeof t[1])throw new ac(st);return[n(t[0]),t[1]]}):[],Qi(function(n){for(var i=-1;++iOt)return[];var n=At,i=Nc(t,At);e=vs(e),t-=At;for(var r=O(i,e);++n1?t[e-1]:nt;return n="function"==typeof n?(t.pop(),n):nt,Na(t,n)}),zd=ds(function(t){var e=t.length,n=e?t[0]:0,i=this.__wrapped__,s=function(e){return Zn(e,t)};return!(e>1||this.__actions__.length)&&i instanceof g&&Ys(n)?(i=i.slice(n,+n+(e?1:0)),i.__actions__.push({func:qa,args:[s],thisArg:nt}),new r(i,this.__chain__).thru(function(t){return e&&!t.length&&t.push(nt),t})):this.thru(s)}),Ud=Ir(function(t,e,n){hc.call(t,n)?++t[n]:Kn(t,n,1)}),qd=zr(aa),Jd=zr(oa),Gd=Ir(function(t,e,n){hc.call(t,n)?t[n].push(e):Kn(t,n,[e])}),Xd=Qi(function(t,e,n){var i=-1,r="function"==typeof e,a=No(t)?Zl(t.length):[];return cd(t,function(t){a[++i]=r?s(e,t,n):Mi(t,e,n)}),a}),Kd=Ir(function(t,e,n){Kn(t,n,e)}),Zd=Ir(function(t,e,n){t[n?0:1].push(e)},function(){return[[],[]]}),Qd=Qi(function(t,e){if(null==t)return[];var n=e.length;return n>1&&Cs(t,e[0],e[1])?e=[]:n>2&&Cs(e[0],e[1],e[2])&&(e=[e[0]]),Ri(t,li(e,1),[])}),th=jc||function(){return Cn.Date.now()},eh=Qi(function(t,e,n){var i=pt;if(n.length){var r=U(n,ms(eh));i|=yt}return rs(t,i,e,n,r)}),nh=Qi(function(t,e,n){var i=pt|mt;if(n.length){var r=U(n,ms(nh));i|=yt}return rs(e,i,t,n,r)}),ih=Qi(function(t,e){return ii(t,1,e)}),rh=Qi(function(t,e,n){return ii(t,bu(e)||0,n)});So.Cache=an;var sh=vd(function(t,e){e=1==e.length&&hh(e[0])?f(e[0],V(vs())):f(li(e,1),V(vs()));var n=e.length;return Qi(function(i){for(var r=-1,a=Nc(i.length,n);++r=e}),dh=ki(function(){return arguments}())?ki:function(t){return eu(t)&&hc.call(t,"callee")&&!Lc.call(t,"callee")},hh=Zl.isArray,fh=In?V(In):wi,ph=Hc||Hl,mh=Hn?V(Hn):Li,vh=En?V(En):Di,_h=$n?V($n):Oi,gh=Fn?V(Fn):ji,yh=Bn?V(Bn):Vi,bh=ts(Hi),xh=ts(function(t,e){return t<=e}),Mh=Hr(function(t,e){if(Ps(e)||No(e))return void Vr(e,Iu(e),t);for(var n in e)hc.call(e,n)&&Nn(t,n,e[n])}),kh=Hr(function(t,e){Vr(e,Hu(e),t)}),wh=Hr(function(t,e,n,i){Vr(e,Hu(e),t,i)}),Lh=Hr(function(t,e,n,i){Vr(e,Iu(e),t,i)}),Th=ds(Zn),Sh=Qi(function(t,e){t=ic(t);var n=-1,i=e.length,r=i>2?e[2]:nt;for(r&&Cs(e[0],e[1],r)&&(i=1);++n1),e}),Vr(t,fs(t),n),i&&(n=ti(n,lt|ct|dt,os));for(var r=e.length;r--;)hr(n,e[r]);return n}),Ph=ds(function(t,e){return null==t?{}:zi(t,e)}),Ih=is(Iu),Hh=is(Hu),Eh=Nr(function(t,e,n){return e=e.toLowerCase(),t+(n?tl(e):e)}),$h=Nr(function(t,e,n){return t+(n?"-":"")+e.toLowerCase()}),Fh=Nr(function(t,e,n){return t+(n?" ":"")+e.toLowerCase()}),Bh=Br("toLowerCase"),Nh=Nr(function(t,e,n){return t+(n?"_":"")+e.toLowerCase()}),Wh=Nr(function(t,e,n){return t+(n?" ":"")+zh(e)}),Rh=Nr(function(t,e,n){return t+(n?" ":"")+e.toUpperCase()}),zh=Br("toUpperCase"),Uh=Qi(function(t,e){try{return s(t,nt,e)}catch(t){return Go(t)?t:new tc(t)}}),qh=ds(function(t,e){return o(e,function(e){e=Js(e),Kn(t,e,eh(t[e],t))}),t}),Jh=Ur(),Gh=Ur(!0),Xh=Qi(function(t,e){return function(n){return Mi(n,t,e)}}),Kh=Qi(function(t,e){return function(n){return Mi(t,n,e)}}),Zh=Xr(f),Qh=Xr(l),tf=Xr(_),ef=Qr(),nf=Qr(!0),rf=Gr(function(t,e){return t+e},0),sf=ns("ceil"),af=Gr(function(t,e){return t/e},1),of=ns("floor"),uf=Gr(function(t,e){return t*e},1),lf=ns("round"),cf=Gr(function(t,e){return t-e},0);return n.after=bo,n.ary=xo,n.assign=Mh,n.assignIn=kh,n.assignInWith=wh,n.assignWith=Lh,n.at=Th,n.before=Mo,n.bind=eh,n.bindAll=qh,n.bindKey=nh,n.castArray=Po,n.chain=za,n.chunk=Zs,n.compact=Qs,n.concat=ta,n.cond=Ml,n.conforms=kl,n.constant=wl,n.countBy=Ud,n.create=wu,n.curry=ko,n.curryRight=wo,n.debounce=Lo,n.defaults=Sh,n.defaultsDeep=Dh,n.defer=ih,n.delay=rh,n.difference=Dd,n.differenceBy=Yd,n.differenceWith=Cd,n.drop=ea,n.dropRight=na,n.dropRightWhile=ia,n.dropWhile=ra,n.fill=sa,n.filter=no,n.flatMap=io,n.flatMapDeep=ro,n.flatMapDepth=so,n.flatten=ua,n.flattenDeep=la,n.flattenDepth=ca,n.flip=To,n.flow=Jh,n.flowRight=Gh,n.fromPairs=da,n.functions=Ou,n.functionsIn=ju,n.groupBy=Gd,n.initial=pa,n.intersection=Od,n.intersectionBy=jd,n.intersectionWith=Vd,n.invert=Yh,n.invertBy=Ch,n.invokeMap=Xd,n.iteratee=Sl,n.keyBy=Kd,n.keys=Iu,n.keysIn=Hu,n.map=lo,n.mapKeys=Eu,n.mapValues=$u,n.matches=Dl,n.matchesProperty=Yl,n.memoize=So,n.merge=jh,n.mergeWith=Vh,n.method=Xh,n.methodOf=Kh,n.mixin=Cl,n.negate=Do,n.nthArg=Vl,n.omit=Ah,n.omitBy=Fu,n.once=Yo,n.orderBy=co,n.over=Zh,n.overArgs=sh,n.overEvery=Qh,n.overSome=tf,n.partial=ah,n.partialRight=oh,n.partition=Zd,n.pick=Ph,n.pickBy=Bu,n.property=Al,n.propertyOf=Pl,n.pull=Ad,n.pullAll=ya,n.pullAllBy=ba,n.pullAllWith=xa,n.pullAt=Pd,n.range=ef,n.rangeRight=nf,n.rearg=uh,n.reject=po,n.remove=Ma,n.rest=Co,n.reverse=ka,n.sampleSize=vo,n.set=Wu,n.setWith=Ru,n.shuffle=_o,n.slice=wa,n.sortBy=Qd,n.sortedUniq=Oa,n.sortedUniqBy=ja,n.split=dl,n.spread=Oo,n.tail=Va,n.take=Aa,n.takeRight=Pa,n.takeRightWhile=Ia,n.takeWhile=Ha,n.tap=Ua,n.throttle=jo,n.thru=qa,n.toArray=vu,n.toPairs=Ih,n.toPairsIn=Hh,n.toPath=Nl,n.toPlainObject=xu,n.transform=zu,n.unary=Vo,n.union=Id,n.unionBy=Hd,n.unionWith=Ed,n.uniq=Ea,n.uniqBy=$a,n.uniqWith=Fa,n.unset=Uu,n.unzip=Ba,n.unzipWith=Na,n.update=qu,n.updateWith=Ju,n.values=Gu,n.valuesIn=Xu,n.without=$d,n.words=xl,n.wrap=Ao,n.xor=Fd,n.xorBy=Bd,n.xorWith=Nd,n.zip=Wd,n.zipObject=Wa,n.zipObjectDeep=Ra,n.zipWith=Rd,n.entries=Ih,n.entriesIn=Hh,n.extend=kh,n.extendWith=wh,Cl(n,n),n.add=rf,n.attempt=Uh,n.camelCase=Eh,n.capitalize=tl,n.ceil=sf,n.clamp=Ku,n.clone=Io,n.cloneDeep=Eo,n.cloneDeepWith=$o,n.cloneWith=Ho,n.conformsTo=Fo,n.deburr=el,n.defaultTo=Ll,n.divide=af,n.endsWith=nl,n.eq=Bo,n.escape=il,n.escapeRegExp=rl,n.every=eo,n.find=qd,n.findIndex=aa,n.findKey=Lu,n.findLast=Jd,n.findLastIndex=oa,n.findLastKey=Tu,n.floor=of,n.forEach=ao,n.forEachRight=oo,n.forIn=Su,n.forInRight=Du,n.forOwn=Yu,n.forOwnRight=Cu,n.get=Vu,n.gt=lh,n.gte=ch,n.has=Au,n.hasIn=Pu,n.head=ha,n.identity=Tl,n.includes=uo,n.indexOf=fa,n.inRange=Zu,n.invoke=Oh,n.isArguments=dh,n.isArray=hh,n.isArrayBuffer=fh,n.isArrayLike=No,n.isArrayLikeObject=Wo,n.isBoolean=Ro,n.isBuffer=ph,n.isDate=mh,n.isElement=zo,n.isEmpty=Uo,n.isEqual=qo,n.isEqualWith=Jo,n.isError=Go,n.isFinite=Xo,n.isFunction=Ko,n.isInteger=Zo,n.isLength=Qo,n.isMap=vh,n.isMatch=nu,n.isMatchWith=iu,n.isNaN=ru,n.isNative=su,n.isNil=ou,n.isNull=au,n.isNumber=uu,n.isObject=tu,n.isObjectLike=eu,n.isPlainObject=lu,n.isRegExp=_h,n.isSafeInteger=cu,n.isSet=gh,n.isString=du,n.isSymbol=hu,n.isTypedArray=yh,n.isUndefined=fu,n.isWeakMap=pu,n.isWeakSet=mu,n.join=ma,n.kebabCase=$h,n.last=va,n.lastIndexOf=_a,n.lowerCase=Fh,n.lowerFirst=Bh,n.lt=bh,n.lte=xh,n.max=Rl,n.maxBy=zl,n.mean=Ul,n.meanBy=ql,n.min=Jl,n.minBy=Gl,n.stubArray=Il,n.stubFalse=Hl,n.stubObject=El,n.stubString=$l,n.stubTrue=Fl,n.multiply=uf,n.nth=ga,n.noConflict=Ol,n.noop=jl,n.now=th,n.pad=sl,n.padEnd=al,n.padStart=ol,n.parseInt=ul,n.random=Qu,n.reduce=ho,n.reduceRight=fo,n.repeat=ll,n.replace=cl,n.result=Nu,n.round=lf,n.runInContext=t,n.sample=mo,n.size=go,n.snakeCase=Nh,n.some=yo,n.sortedIndex=La,n.sortedIndexBy=Ta,n.sortedIndexOf=Sa,n.sortedLastIndex=Da,n.sortedLastIndexBy=Ya,n.sortedLastIndexOf=Ca,n.startCase=Wh,n.startsWith=hl,n.subtract=cf,n.sum=Xl,n.sumBy=Kl,n.template=fl,n.times=Bl,n.toFinite=_u,n.toInteger=gu,n.toLength=yu,n.toLower=pl,n.toNumber=bu,n.toSafeInteger=Mu,n.toString=ku,n.toUpper=ml,n.trim=vl,n.trimEnd=_l,n.trimStart=gl,n.truncate=yl,n.unescape=bl,n.uniqueId=Wl,n.upperCase=Rh,n.upperFirst=zh,n.each=ao,n.eachRight=oo,n.first=ha,Cl(n,function(){var t={};return ci(n,function(e,i){hc.call(n.prototype,i)||(t[i]=e)}),t}(),{chain:!1}),n.VERSION="4.17.11",o(["bind","bindKey","curry","curryRight","partial","partialRight"],function(t){n[t].placeholder=n}),o(["drop","take"],function(t,e){g.prototype[t]=function(n){n=n===nt?1:Bc(gu(n),0);var i=this.__filtered__&&!e?new g(this):this.clone();return i.__filtered__?i.__takeCount__=Nc(n,i.__takeCount__):i.__views__.push({size:Nc(n,At),type:t+(i.__dir__<0?"Right":"")}),i},g.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}),o(["filter","map","takeWhile"],function(t,e){var n=e+1,i=n==Dt||3==n;g.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:vs(t,3),type:n}),e.__filtered__=e.__filtered__||i,e}}),o(["head","last"],function(t,e){var n="take"+(e?"Right":"");g.prototype[t]=function(){return this[n](1).value()[0]}}),o(["initial","tail"],function(t,e){var n="drop"+(e?"":"Right");g.prototype[t]=function(){return this.__filtered__?new g(this):this[n](1)}}),g.prototype.compact=function(){return this.filter(Tl)},g.prototype.find=function(t){return this.filter(t).head()},g.prototype.findLast=function(t){return this.reverse().find(t)},g.prototype.invokeMap=Qi(function(t,e){return"function"==typeof t?new g(this):this.map(function(n){return Mi(n,t,e)})}),g.prototype.reject=function(t){return this.filter(Do(vs(t)))},g.prototype.slice=function(t,e){t=gu(t);var n=this;return n.__filtered__&&(t>0||e<0)?new g(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==nt&&(e=gu(e),n=e<0?n.dropRight(-e):n.take(e-t)),n)},g.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},g.prototype.toArray=function(){return this.take(At)},ci(g.prototype,function(t,e){var i=/^(?:filter|find|map|reject)|While$/.test(e),s=/^(?:head|last)$/.test(e),a=n[s?"take"+("last"==e?"Right":""):e],o=s||/^find/.test(e);a&&(n.prototype[e]=function(){var e=this.__wrapped__,u=s?[1]:arguments,l=e instanceof g,c=u[0],d=l||hh(e),h=function(t){var e=a.apply(n,p([t],u));return s&&f?e[0]:e};d&&i&&"function"==typeof c&&1!=c.length&&(l=d=!1);var f=this.__chain__,m=!!this.__actions__.length,v=o&&!f,_=l&&!m;if(!o&&d){e=_?e:new g(this);var y=t.apply(e,u);return y.__actions__.push({func:qa,args:[h],thisArg:nt}),new r(y,f)}return v&&_?t.apply(this,u):(y=this.thru(h),v?s?y.value()[0]:y.value():y)})}),o(["pop","push","shift","sort","splice","unshift"],function(t){var e=oc[t],i=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);n.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var n=this.value();return e.apply(hh(n)?n:[],t)}return this[i](function(n){return e.apply(hh(n)?n:[],t)})}}),ci(g.prototype,function(t,e){var i=n[e];if(i){var r=i.name+"";(td[r]||(td[r]=[])).push({name:e,func:i})}}),td[qr(nt,mt).name]=[{name:"wrapper",func:nt}],g.prototype.clone=S,g.prototype.reverse=G,g.prototype.value=Q,n.prototype.at=zd,n.prototype.chain=Ja,n.prototype.commit=Ga,n.prototype.next=Xa,n.prototype.plant=Za,n.prototype.reverse=Qa,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=to,n.prototype.first=n.prototype.head,Dc&&(n.prototype[Dc]=Ka),n}();Cn._=Un,(r=function(){return Un}.call(e,n,e,i))!==nt&&(i.exports=r)}).call(this)}).call(e,n(13),n(60)(t))},function(t,e,n){"use strict";var i=n(21),r=n(9),s=n(214),a=n(8),o=n(12),u=n(215),l=n(26),c=n(222),d=n(5)("iterator"),h=!([].keys&&"next"in[].keys()),f=function(){return this};t.exports=function(t,e,n,p,m,v,_){u(n,e,p);var g,y,b,x=function(t){if(!h&&t in L)return L[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},M=e+" Iterator",k="values"==m,w=!1,L=t.prototype,T=L[d]||L["@@iterator"]||m&&L[m],S=T||x(m),D=m?k?x("entries"):S:void 0,Y="Array"==e?L.entries||T:T;if(Y&&(b=c(Y.call(new t)))!==Object.prototype&&b.next&&(l(b,M,!0),i||"function"==typeof b[d]||a(b,d,f)),k&&T&&"values"!==T.name&&(w=!0,S=function(){return T.call(this)}),i&&!_||!h&&!w&&L[d]||a(L,d,S),o[e]=S,o[M]=f,m)if(g={values:k?S:x("values"),keys:v?S:x("keys"),entries:D},_)for(y in g)y in L||s(L,y,g[y]);else r(r.P+r.F*(h||w),e,g);return g}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){var i=n(218),r=n(40);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e,n){var i=n(19),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e,n){var i=n(6),r=n(3),s=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(t.exports=function(t,e){return s[t]||(s[t]=void 0!==e?e:{})})("versions",[]).push({version:i.version,mode:n(21)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(3).document;t.exports=i&&i.documentElement},function(t,e,n){var i=n(20);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(18),r=n(5)("toStringTag"),s="Arguments"==i(function(){return arguments}()),a=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),r))?n:s?i(e):"Object"==(o=i(e))&&"function"==typeof e.callee?"Arguments":o}},function(t,e,n){var i=n(7),r=n(15),s=n(5)("species");t.exports=function(t,e){var n,a=i(t).constructor;return void 0===a||void 0==(n=i(a)[s])?e:r(n)}},function(t,e,n){var i,r,s,a=n(14),o=n(233),u=n(41),l=n(23),c=n(3),d=c.process,h=c.setImmediate,f=c.clearImmediate,p=c.MessageChannel,m=c.Dispatch,v=0,_={},g=function(){var t=+this;if(_.hasOwnProperty(t)){var e=_[t];delete _[t],e()}},y=function(t){g.call(t.data)};h&&f||(h=function(t){for(var e=[],n=1;arguments.length>n;)e.push(arguments[n++]);return _[++v]=function(){o("function"==typeof t?t:Function(t),e)},i(v),v},f=function(t){delete _[t]},"process"==n(18)(d)?i=function(t){d.nextTick(a(g,t,1))}:m&&m.now?i=function(t){m.now(a(g,t,1))}:p?(r=new p,s=r.port2,r.port1.onmessage=y,i=a(s.postMessage,s,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts?(i=function(t){c.postMessage(t+"","*")},c.addEventListener("message",y,!1)):i="onreadystatechange"in l("script")?function(t){u.appendChild(l("script")).onreadystatechange=function(){u.removeChild(this),g.call(t)}}:function(t){setTimeout(a(g,t,1),0)}),t.exports={set:h,clear:f}},function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(t){return{e:!0,v:t}}}},function(t,e,n){var i=n(7),r=n(10),s=n(27);t.exports=function(t,e){if(i(t),r(e)&&e.constructor===t)return e;var n=s.f(t);return(0,n.resolve)(e),n.promise}},,,,function(t,e,n){t.exports=n(259)},function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),i=0;i=20?"ste":"de")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},i=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},r={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},s=function(t){return function(e,n,s,a){var o=i(e),u=r[t][i(e)];return 2===o&&(u=u[n?0:1]),u.replace(/%d/i,e)}},a=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];return t.defineLocale("ar",{months:a,monthsShort:a,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:s("s"),ss:s("s"),m:s("m"),mm:s("m"),h:s("h"),hh:s("h"),d:s("d"),dd:s("d"),M:s("M"),MM:s("M"),y:s("y"),yy:s("y")},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ar-dz",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"أح_إث_ثلا_أر_خم_جم_سب".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ar-kw",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:0,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"},n=function(t){return 0===t?0:1===t?1:2===t?2:t%100>=3&&t%100<=10?3:t%100>=11?4:5},i={s:["أقل من ثانية","ثانية واحدة",["ثانيتان","ثانيتين"],"%d ثوان","%d ثانية","%d ثانية"],m:["أقل من دقيقة","دقيقة واحدة",["دقيقتان","دقيقتين"],"%d دقائق","%d دقيقة","%d دقيقة"],h:["أقل من ساعة","ساعة واحدة",["ساعتان","ساعتين"],"%d ساعات","%d ساعة","%d ساعة"],d:["أقل من يوم","يوم واحد",["يومان","يومين"],"%d أيام","%d يومًا","%d يوم"],M:["أقل من شهر","شهر واحد",["شهران","شهرين"],"%d أشهر","%d شهرا","%d شهر"],y:["أقل من عام","عام واحد",["عامان","عامين"],"%d أعوام","%d عامًا","%d عام"]},r=function(t){return function(e,r,s,a){var o=n(e),u=i[t][n(e)];return 2===o&&(u=u[r?0:1]),u.replace(/%d/i,e)}},s=["يناير","فبراير","مارس","أبريل","مايو","يونيو","يوليو","أغسطس","سبتمبر","أكتوبر","نوفمبر","ديسمبر"];return t.defineLocale("ar-ly",{months:s,monthsShort:s,weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/‏M/‏YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم عند الساعة] LT",nextDay:"[غدًا عند الساعة] LT",nextWeek:"dddd [عند الساعة] LT",lastDay:"[أمس عند الساعة] LT",lastWeek:"dddd [عند الساعة] LT",sameElse:"L"},relativeTime:{future:"بعد %s",past:"منذ %s",s:r("s"),ss:r("s"),m:r("m"),mm:r("m"),h:r("h"),hh:r("h"),d:r("d"),dd:r("d"),M:r("M"),MM:r("M"),y:r("y"),yy:r("y")},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ar-ma",{months:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),weekdays:"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"};return t.defineLocale("ar-sa",{months:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/ص|م/,isPM:function(t){return"م"===t},meridiem:function(t,e,n){return t<12?"ص":"م"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ar-tn",{months:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),monthsShort:"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),weekdays:"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),weekdaysShort:"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),weekdaysMin:"ح_ن_ث_ر_خ_ج_س".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[اليوم على الساعة] LT",nextDay:"[غدا على الساعة] LT",nextWeek:"dddd [على الساعة] LT",lastDay:"[أمس على الساعة] LT",lastWeek:"dddd [على الساعة] LT",sameElse:"L"},relativeTime:{future:"في %s",past:"منذ %s",s:"ثوان",ss:"%d ثانية",m:"دقيقة",mm:"%d دقائق",h:"ساعة",hh:"%d ساعات",d:"يوم",dd:"%d أيام",M:"شهر",MM:"%d أشهر",y:"سنة",yy:"%d سنوات"},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"-inci",5:"-inci",8:"-inci",70:"-inci",80:"-inci",2:"-nci",7:"-nci",20:"-nci",50:"-nci",3:"-üncü",4:"-üncü",100:"-üncü",6:"-ncı",9:"-uncu",10:"-uncu",30:"-uncu",60:"-ıncı",90:"-ıncı"};return t.defineLocale("az",{months:"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),monthsShort:"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),weekdays:"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),weekdaysShort:"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),weekdaysMin:"Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[sabah saat] LT",nextWeek:"[gələn həftə] dddd [saat] LT",lastDay:"[dünən] LT",lastWeek:"[keçən həftə] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s əvvəl",s:"birneçə saniyə",ss:"%d saniyə",m:"bir dəqiqə",mm:"%d dəqiqə",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir il",yy:"%d il"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(t){return/^(gündüz|axşam)$/.test(t)},meridiem:function(t,e,n){return t<4?"gecə":t<12?"səhər":t<17?"gündüz":"axşam"},dayOfMonthOrdinalParse:/\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(t){if(0===t)return t+"-ıncı";var n=t%10,i=t%100-n,r=t>=100?100:null;return t+(e[n]||e[i]||e[r])},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e){var n=t.split("_");return e%10==1&&e%100!=11?n[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?n[1]:n[2]}function n(t,n,i){var r={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"хвіліна_хвіліны_хвілін":"хвіліну_хвіліны_хвілін",hh:n?"гадзіна_гадзіны_гадзін":"гадзіну_гадзіны_гадзін",dd:"дзень_дні_дзён",MM:"месяц_месяцы_месяцаў",yy:"год_гады_гадоў"};return"m"===i?n?"хвіліна":"хвіліну":"h"===i?n?"гадзіна":"гадзіну":t+" "+e(r[i],+t)}return t.defineLocale("be",{months:{format:"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"),standalone:"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_")},monthsShort:"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),weekdays:{format:"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"),standalone:"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),isFormat:/\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/},weekdaysShort:"нд_пн_ат_ср_чц_пт_сб".split("_"),weekdaysMin:"нд_пн_ат_ср_чц_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., HH:mm",LLLL:"dddd, D MMMM YYYY г., HH:mm"},calendar:{sameDay:"[Сёння ў] LT",nextDay:"[Заўтра ў] LT",lastDay:"[Учора ў] LT",nextWeek:function(){return"[У] dddd [ў] LT"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return"[У мінулую] dddd [ў] LT";case 1:case 2:case 4:return"[У мінулы] dddd [ў] LT"}},sameElse:"L"},relativeTime:{future:"праз %s",past:"%s таму",s:"некалькі секунд",m:n,mm:n,h:n,hh:n,d:"дзень",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(t){return/^(дня|вечара)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночы":t<12?"раніцы":t<17?"дня":"вечара"},dayOfMonthOrdinalParse:/\d{1,2}-(і|ы|га)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t%10!=2&&t%10!=3||t%100==12||t%100==13?t+"-ы":t+"-і";case"D":return t+"-га";default:return t}},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("bg",{months:"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),monthsShort:"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),weekdays:"неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),weekdaysShort:"нед_пон_вто_сря_чет_пет_съб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Днес в] LT",nextDay:"[Утре в] LT",nextWeek:"dddd [в] LT",lastDay:"[Вчера в] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[В изминалата] dddd [в] LT";case 1:case 2:case 4:case 5:return"[В изминалия] dddd [в] LT"}},sameElse:"L"},relativeTime:{future:"след %s",past:"преди %s",s:"няколко секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дни",M:"месец",MM:"%d месеца",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("bm",{months:"Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo".split("_"),monthsShort:"Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des".split("_"),weekdays:"Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri".split("_"),weekdaysShort:"Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib".split("_"),weekdaysMin:"Ka_Nt_Ta_Ar_Al_Ju_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"MMMM [tile] D [san] YYYY",LLL:"MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm",LLLL:"dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm"},calendar:{sameDay:"[Bi lɛrɛ] LT",nextDay:"[Sini lɛrɛ] LT",nextWeek:"dddd [don lɛrɛ] LT",lastDay:"[Kunu lɛrɛ] LT",lastWeek:"dddd [tɛmɛnen lɛrɛ] LT",sameElse:"L"},relativeTime:{future:"%s kɔnɔ",past:"a bɛ %s bɔ",s:"sanga dama dama",ss:"sekondi %d",m:"miniti kelen",mm:"miniti %d",h:"lɛrɛ kelen",hh:"lɛrɛ %d",d:"tile kelen",dd:"tile %d",M:"kalo kelen",MM:"kalo %d",y:"san kelen",yy:"san %d"},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"১",2:"২",3:"৩",4:"৪",5:"৫",6:"৬",7:"৭",8:"৮",9:"৯",0:"০"},n={"১":"1","২":"2","৩":"3","৪":"4","৫":"5","৬":"6","৭":"7","৮":"8","৯":"9","০":"0"};return t.defineLocale("bn",{months:"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),monthsShort:"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে".split("_"),weekdays:"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার".split("_"),weekdaysShort:"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি".split("_"),weekdaysMin:"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি".split("_"),longDateFormat:{LT:"A h:mm সময়",LTS:"A h:mm:ss সময়",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm সময়",LLLL:"dddd, D MMMM YYYY, A h:mm সময়"},calendar:{sameDay:"[আজ] LT",nextDay:"[আগামীকাল] LT",nextWeek:"dddd, LT",lastDay:"[গতকাল] LT",lastWeek:"[গত] dddd, LT",sameElse:"L"},relativeTime:{future:"%s পরে",past:"%s আগে",s:"কয়েক সেকেন্ড",ss:"%d সেকেন্ড",m:"এক মিনিট",mm:"%d মিনিট",h:"এক ঘন্টা",hh:"%d ঘন্টা",d:"এক দিন",dd:"%d দিন",M:"এক মাস",MM:"%d মাস",y:"এক বছর",yy:"%d বছর"},preparse:function(t){return t.replace(/[১২৩৪৫৬৭৮৯০]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(t,e){return 12===t&&(t=0),"রাত"===e&&t>=4||"দুপুর"===e&&t<5||"বিকাল"===e?t+12:t},meridiem:function(t,e,n){return t<4?"রাত":t<10?"সকাল":t<17?"দুপুর":t<20?"বিকাল":"রাত"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"༡",2:"༢",3:"༣",4:"༤",5:"༥",6:"༦",7:"༧",8:"༨",9:"༩",0:"༠"},n={"༡":"1","༢":"2","༣":"3","༤":"4","༥":"5","༦":"6","༧":"7","༨":"8","༩":"9","༠":"0"};return t.defineLocale("bo",{months:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),monthsShort:"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),weekdays:"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),weekdaysShort:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),weekdaysMin:"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[དི་རིང] LT",nextDay:"[སང་ཉིན] LT",nextWeek:"[བདུན་ཕྲག་རྗེས་མ], LT",lastDay:"[ཁ་སང] LT",lastWeek:"[བདུན་ཕྲག་མཐའ་མ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ལ་",past:"%s སྔན་ལ",s:"ལམ་སང",ss:"%d སྐར་ཆ།",m:"སྐར་མ་གཅིག",mm:"%d སྐར་མ",h:"ཆུ་ཚོད་གཅིག",hh:"%d ཆུ་ཚོད",d:"ཉིན་གཅིག",dd:"%d ཉིན་",M:"ཟླ་བ་གཅིག",MM:"%d ཟླ་བ",y:"ལོ་གཅིག",yy:"%d ལོ"},preparse:function(t){return t.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(t,e){return 12===t&&(t=0),"མཚན་མོ"===e&&t>=4||"ཉིན་གུང"===e&&t<5||"དགོང་དག"===e?t+12:t},meridiem:function(t,e,n){return t<4?"མཚན་མོ":t<10?"ཞོགས་ཀས":t<17?"ཉིན་གུང":t<20?"དགོང་དག":"མཚན་མོ"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n){return t+" "+r({mm:"munutenn",MM:"miz",dd:"devezh"}[n],t)}function n(t){switch(i(t)){case 1:case 3:case 4:case 5:case 9:return t+" bloaz";default:return t+" vloaz"}}function i(t){return t>9?i(t%10):t}function r(t,e){return 2===e?s(t):t}function s(t){var e={m:"v",b:"v",d:"z"};return void 0===e[t.charAt(0)]?t:e[t.charAt(0)]+t.substring(1)}return t.defineLocale("br",{months:"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),monthsShort:"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),weekdays:"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),weekdaysShort:"Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),weekdaysMin:"Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h[e]mm A",LTS:"h[e]mm:ss A",L:"DD/MM/YYYY",LL:"D [a viz] MMMM YYYY",LLL:"D [a viz] MMMM YYYY h[e]mm A",LLLL:"dddd, D [a viz] MMMM YYYY h[e]mm A"},calendar:{sameDay:"[Hiziv da] LT",nextDay:"[Warc'hoazh da] LT",nextWeek:"dddd [da] LT",lastDay:"[Dec'h da] LT",lastWeek:"dddd [paset da] LT",sameElse:"L"},relativeTime:{future:"a-benn %s",past:"%s 'zo",s:"un nebeud segondennoù",ss:"%d eilenn",m:"ur vunutenn",mm:e,h:"un eur",hh:"%d eur",d:"un devezh",dd:e,M:"ur miz",MM:e,y:"ur bloaz",yy:n},dayOfMonthOrdinalParse:/\d{1,2}(añ|vet)/,ordinal:function(t){return t+(1===t?"añ":"vet")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n){var i=t+" ";switch(n){case"ss":return i+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi";case"m":return e?"jedna minuta":"jedne minute";case"mm":return i+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta";case"h":return e?"jedan sat":"jednog sata";case"hh":return i+=1===t?"sat":2===t||3===t||4===t?"sata":"sati";case"dd":return i+=1===t?"dan":"dana";case"MM":return i+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci";case"yy":return i+=1===t?"godina":2===t||3===t||4===t?"godine":"godina"}}return t.defineLocale("bs",{months:"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ca",{months:{standalone:"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),format:"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"),isFormat:/D[oD]?(\s)+MMMM/},monthsShort:"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"),monthsParseExact:!0,weekdays:"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),weekdaysShort:"dg._dl._dt._dc._dj._dv._ds.".split("_"),weekdaysMin:"dg_dl_dt_dc_dj_dv_ds".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [de] YYYY",ll:"D MMM YYYY",LLL:"D MMMM [de] YYYY [a les] H:mm",lll:"D MMM YYYY, H:mm",LLLL:"dddd D MMMM [de] YYYY [a les] H:mm",llll:"ddd D MMM YYYY, H:mm"},calendar:{sameDay:function(){return"[avui a "+(1!==this.hours()?"les":"la")+"] LT"},nextDay:function(){return"[demà a "+(1!==this.hours()?"les":"la")+"] LT"},nextWeek:function(){return"dddd [a "+(1!==this.hours()?"les":"la")+"] LT"},lastDay:function(){return"[ahir a "+(1!==this.hours()?"les":"la")+"] LT"},lastWeek:function(){return"[el] dddd [passat a "+(1!==this.hours()?"les":"la")+"] LT"},sameElse:"L"},relativeTime:{future:"d'aquí %s",past:"fa %s",s:"uns segons",ss:"%d segons",m:"un minut",mm:"%d minuts",h:"una hora",hh:"%d hores",d:"un dia",dd:"%d dies",M:"un mes",MM:"%d mesos",y:"un any",yy:"%d anys"},dayOfMonthOrdinalParse:/\d{1,2}(r|n|t|è|a)/,ordinal:function(t,e){var n=1===t?"r":2===t?"n":3===t?"r":4===t?"t":"è";return"w"!==e&&"W"!==e||(n="a"),t+n},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t){return t>1&&t<5&&1!=~~(t/10)}function n(t,n,i,r){var s=t+" ";switch(i){case"s":return n||r?"pár sekund":"pár sekundami";case"ss":return n||r?s+(e(t)?"sekundy":"sekund"):s+"sekundami";case"m":return n?"minuta":r?"minutu":"minutou";case"mm":return n||r?s+(e(t)?"minuty":"minut"):s+"minutami";case"h":return n?"hodina":r?"hodinu":"hodinou";case"hh":return n||r?s+(e(t)?"hodiny":"hodin"):s+"hodinami";case"d":return n||r?"den":"dnem";case"dd":return n||r?s+(e(t)?"dny":"dní"):s+"dny";case"M":return n||r?"měsíc":"měsícem";case"MM":return n||r?s+(e(t)?"měsíce":"měsíců"):s+"měsíci";case"y":return n||r?"rok":"rokem";case"yy":return n||r?s+(e(t)?"roky":"let"):s+"lety"}}var i="leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),r="led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"),s=[/^led/i,/^úno/i,/^bře/i,/^dub/i,/^kvě/i,/^(čvn|červen$|června)/i,/^(čvc|červenec|července)/i,/^srp/i,/^zář/i,/^říj/i,/^lis/i,/^pro/i],a=/^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;return t.defineLocale("cs",{months:i,monthsShort:r,monthsRegex:a,monthsShortRegex:a,monthsStrictRegex:/^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,monthsShortStrictRegex:/^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,monthsParse:s,longMonthsParse:s,shortMonthsParse:s,weekdays:"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),weekdaysShort:"ne_po_út_st_čt_pá_so".split("_"),weekdaysMin:"ne_po_út_st_čt_pá_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm",l:"D. M. YYYY"},calendar:{sameDay:"[dnes v] LT",nextDay:"[zítra v] LT",nextWeek:function(){switch(this.day()){case 0:return"[v neděli v] LT";case 1:case 2:return"[v] dddd [v] LT";case 3:return"[ve středu v] LT";case 4:return"[ve čtvrtek v] LT";case 5:return"[v pátek v] LT";case 6:return"[v sobotu v] LT"}},lastDay:"[včera v] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulou neděli v] LT";case 1:case 2:return"[minulé] dddd [v] LT";case 3:return"[minulou středu v] LT";case 4:case 5:return"[minulý] dddd [v] LT";case 6:return"[minulou sobotu v] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"před %s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("cv",{months:"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),monthsShort:"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),weekdays:"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),weekdaysShort:"выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),weekdaysMin:"вр_тн_ыт_юн_кҫ_эр_шм".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",LLL:"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",LLLL:"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"},calendar:{sameDay:"[Паян] LT [сехетре]",nextDay:"[Ыран] LT [сехетре]",lastDay:"[Ӗнер] LT [сехетре]",nextWeek:"[Ҫитес] dddd LT [сехетре]",lastWeek:"[Иртнӗ] dddd LT [сехетре]",sameElse:"L"},relativeTime:{future:function(t){return t+(/сехет$/i.exec(t)?"рен":/ҫул$/i.exec(t)?"тан":"ран")},past:"%s каялла",s:"пӗр-ик ҫеккунт",ss:"%d ҫеккунт",m:"пӗр минут",mm:"%d минут",h:"пӗр сехет",hh:"%d сехет",d:"пӗр кун",dd:"%d кун",M:"пӗр уйӑх",MM:"%d уйӑх",y:"пӗр ҫул",yy:"%d ҫул"},dayOfMonthOrdinalParse:/\d{1,2}-мӗш/,ordinal:"%d-мӗш",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("cy",{months:"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),monthsShort:"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),weekdays:"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),weekdaysShort:"Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),weekdaysMin:"Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Heddiw am] LT",nextDay:"[Yfory am] LT",nextWeek:"dddd [am] LT",lastDay:"[Ddoe am] LT",lastWeek:"dddd [diwethaf am] LT",sameElse:"L"},relativeTime:{future:"mewn %s",past:"%s yn ôl",s:"ychydig eiliadau",ss:"%d eiliad",m:"munud",mm:"%d munud",h:"awr",hh:"%d awr",d:"diwrnod",dd:"%d diwrnod",M:"mis",MM:"%d mis",y:"blwyddyn",yy:"%d flynedd"},dayOfMonthOrdinalParse:/\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(t){var e=t,n="",i=["","af","il","ydd","ydd","ed","ed","ed","fed","fed","fed","eg","fed","eg","eg","fed","eg","eg","fed","eg","fed"];return e>20?n=40===e||50===e||60===e||80===e||100===e?"fed":"ain":e>0&&(n=i[e]),t+n},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("da",{months:"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"søn_man_tir_ons_tor_fre_lør".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd [d.] D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"på dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[i] dddd[s kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"få sekunder",ss:"%d sekunder",m:"et minut",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dage",M:"en måned",MM:"%d måneder",y:"et år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}return t.defineLocale("de",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}return t.defineLocale("de-at",{months:"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={m:["eine Minute","einer Minute"],h:["eine Stunde","einer Stunde"],d:["ein Tag","einem Tag"],dd:[t+" Tage",t+" Tagen"],M:["ein Monat","einem Monat"],MM:[t+" Monate",t+" Monaten"],y:["ein Jahr","einem Jahr"],yy:[t+" Jahre",t+" Jahren"]};return e?r[n][0]:r[n][1]}return t.defineLocale("de-ch",{months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),weekdaysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysMin:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY HH:mm",LLLL:"dddd, D. MMMM YYYY HH:mm"},calendar:{sameDay:"[heute um] LT [Uhr]",sameElse:"L",nextDay:"[morgen um] LT [Uhr]",nextWeek:"dddd [um] LT [Uhr]",lastDay:"[gestern um] LT [Uhr]",lastWeek:"[letzten] dddd [um] LT [Uhr]"},relativeTime:{future:"in %s",past:"vor %s",s:"ein paar Sekunden",ss:"%d Sekunden",m:e,mm:"%d Minuten",h:e,hh:"%d Stunden",d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e=["ޖެނުއަރީ","ފެބްރުއަރީ","މާރިޗު","އޭޕްރީލު","މޭ","ޖޫން","ޖުލައި","އޯގަސްޓު","ސެޕްޓެމްބަރު","އޮކްޓޯބަރު","ނޮވެމްބަރު","ޑިސެމްބަރު"],n=["އާދިއްތަ","ހޯމަ","އަންގާރަ","ބުދަ","ބުރާސްފަތި","ހުކުރު","ހޮނިހިރު"];return t.defineLocale("dv",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"D/M/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},meridiemParse:/މކ|މފ/,isPM:function(t){return"މފ"===t},meridiem:function(t,e,n){return t<12?"މކ":"މފ"},calendar:{sameDay:"[މިއަދު] LT",nextDay:"[މާދަމާ] LT",nextWeek:"dddd LT",lastDay:"[އިއްޔެ] LT",lastWeek:"[ފާއިތުވި] dddd LT",sameElse:"L"},relativeTime:{future:"ތެރޭގައި %s",past:"ކުރިން %s",s:"ސިކުންތުކޮޅެއް",ss:"d% ސިކުންތު",m:"މިނިޓެއް",mm:"މިނިޓު %d",h:"ގަޑިއިރެއް",hh:"ގަޑިއިރު %d",d:"ދުވަހެއް",dd:"ދުވަސް %d",M:"މަހެއް",MM:"މަސް %d",y:"އަހަރެއް",yy:"އަހަރު %d"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:7,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}return t.defineLocale("el",{monthsNominativeEl:"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),monthsGenitiveEl:"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),months:function(t,e){return t?"string"==typeof e&&/D/.test(e.substring(0,e.indexOf("MMMM")))?this._monthsGenitiveEl[t.month()]:this._monthsNominativeEl[t.month()]:this._monthsNominativeEl},monthsShort:"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),weekdays:"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),weekdaysShort:"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),weekdaysMin:"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),meridiem:function(t,e,n){return t>11?n?"μμ":"ΜΜ":n?"πμ":"ΠΜ"},isPM:function(t){return"μ"===(t+"").toLowerCase()[0]},meridiemParse:/[ΠΜ]\.?Μ?\.?/i,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendarEl:{sameDay:"[Σήμερα {}] LT",nextDay:"[Αύριο {}] LT",nextWeek:"dddd [{}] LT",lastDay:"[Χθες {}] LT",lastWeek:function(){switch(this.day()){case 6:return"[το προηγούμενο] dddd [{}] LT";default:return"[την προηγούμενη] dddd [{}] LT"}},sameElse:"L"},calendar:function(t,n){var i=this._calendarEl[t],r=n&&n.hours();return e(i)&&(i=i.apply(n)),i.replace("{}",r%12==1?"στη":"στις")},relativeTime:{future:"σε %s",past:"%s πριν",s:"λίγα δευτερόλεπτα",ss:"%d δευτερόλεπτα",m:"ένα λεπτό",mm:"%d λεπτά",h:"μία ώρα",hh:"%d ώρες",d:"μία μέρα",dd:"%d μέρες",M:"ένας μήνας",MM:"%d μήνες",y:"ένας χρόνος",yy:"%d χρόνια"},dayOfMonthOrdinalParse:/\d{1,2}η/,ordinal:"%dη",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-SG",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-au",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-ca",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"YYYY-MM-DD",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-gb",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-ie",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-il",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("en-nz",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("eo",{months:"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),weekdays:"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"),weekdaysShort:"dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"),weekdaysMin:"di_lu_ma_me_ĵa_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D[-a de] MMMM, YYYY",LLL:"D[-a de] MMMM, YYYY HH:mm",LLLL:"dddd, [la] D[-a de] MMMM, YYYY HH:mm"},meridiemParse:/[ap]\.t\.m/i,isPM:function(t){return"p"===t.charAt(0).toLowerCase()},meridiem:function(t,e,n){return t>11?n?"p.t.m.":"P.T.M.":n?"a.t.m.":"A.T.M."},calendar:{sameDay:"[Hodiaŭ je] LT",nextDay:"[Morgaŭ je] LT",nextWeek:"dddd [je] LT",lastDay:"[Hieraŭ je] LT",lastWeek:"[pasinta] dddd [je] LT",sameElse:"L"},relativeTime:{future:"post %s",past:"antaŭ %s",s:"sekundoj",ss:"%d sekundoj",m:"minuto",mm:"%d minutoj",h:"horo",hh:"%d horoj",d:"tago",dd:"%d tagoj",M:"monato",MM:"%d monatoj",y:"jaro",yy:"%d jaroj"},dayOfMonthOrdinalParse:/\d{1,2}a/,ordinal:"%da",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return t.defineLocale("es",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,i){return t?/-MMM-/.test(i)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return t.defineLocale("es-do",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,i){return t?/-MMM-/.test(i)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e="ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),n="ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"),i=[/^ene/i,/^feb/i,/^mar/i,/^abr/i,/^may/i,/^jun/i,/^jul/i,/^ago/i,/^sep/i,/^oct/i,/^nov/i,/^dic/i],r=/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i;return t.defineLocale("es-us",{months:"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),monthsShort:function(t,i){return t?/-MMM-/.test(i)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,monthsShortStrictRegex:/^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),weekdaysShort:"dom._lun._mar._mié._jue._vie._sáb.".split("_"),weekdaysMin:"do_lu_ma_mi_ju_vi_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"MM/DD/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY h:mm A",LLLL:"dddd, D [de] MMMM [de] YYYY h:mm A"},calendar:{sameDay:function(){return"[hoy a la"+(1!==this.hours()?"s":"")+"] LT"},nextDay:function(){return"[mañana a la"+(1!==this.hours()?"s":"")+"] LT"},nextWeek:function(){return"dddd [a la"+(1!==this.hours()?"s":"")+"] LT"},lastDay:function(){return"[ayer a la"+(1!==this.hours()?"s":"")+"] LT"},lastWeek:function(){return"[el] dddd [pasado a la"+(1!==this.hours()?"s":"")+"] LT"},sameElse:"L"},relativeTime:{future:"en %s",past:"hace %s",s:"unos segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"una hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un año",yy:"%d años"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={s:["mõne sekundi","mõni sekund","paar sekundit"],ss:[t+"sekundi",t+"sekundit"],m:["ühe minuti","üks minut"],mm:[t+" minuti",t+" minutit"],h:["ühe tunni","tund aega","üks tund"],hh:[t+" tunni",t+" tundi"],d:["ühe päeva","üks päev"],M:["kuu aja","kuu aega","üks kuu"],MM:[t+" kuu",t+" kuud"],y:["ühe aasta","aasta","üks aasta"],yy:[t+" aasta",t+" aastat"]};return e?r[n][2]?r[n][2]:r[n][1]:i?r[n][0]:r[n][1]}return t.defineLocale("et",{months:"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),monthsShort:"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),weekdays:"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),weekdaysShort:"P_E_T_K_N_R_L".split("_"),weekdaysMin:"P_E_T_K_N_R_L".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[Täna,] LT",nextDay:"[Homme,] LT",nextWeek:"[Järgmine] dddd LT",lastDay:"[Eile,] LT",lastWeek:"[Eelmine] dddd LT",sameElse:"L"},relativeTime:{future:"%s pärast",past:"%s tagasi",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:"%d päeva",M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("eu",{months:"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),monthsShort:"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),monthsParseExact:!0,weekdays:"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),weekdaysShort:"ig._al._ar._az._og._ol._lr.".split("_"),weekdaysMin:"ig_al_ar_az_og_ol_lr".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY[ko] MMMM[ren] D[a]",LLL:"YYYY[ko] MMMM[ren] D[a] HH:mm",LLLL:"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",l:"YYYY-M-D",ll:"YYYY[ko] MMM D[a]",lll:"YYYY[ko] MMM D[a] HH:mm",llll:"ddd, YYYY[ko] MMM D[a] HH:mm"},calendar:{sameDay:"[gaur] LT[etan]",nextDay:"[bihar] LT[etan]",nextWeek:"dddd LT[etan]",lastDay:"[atzo] LT[etan]",lastWeek:"[aurreko] dddd LT[etan]",sameElse:"L"},relativeTime:{future:"%s barru",past:"duela %s",s:"segundo batzuk",ss:"%d segundo",m:"minutu bat",mm:"%d minutu",h:"ordu bat",hh:"%d ordu",d:"egun bat",dd:"%d egun",M:"hilabete bat",MM:"%d hilabete",y:"urte bat",yy:"%d urte"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"۱",2:"۲",3:"۳",4:"۴",5:"۵",6:"۶",7:"۷",8:"۸",9:"۹",0:"۰"},n={"۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9","۰":"0"};return t.defineLocale("fa",{months:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),monthsShort:"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),weekdays:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysShort:"یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),weekdaysMin:"ی_د_س_چ_پ_ج_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(t){return/بعد از ظهر/.test(t)},meridiem:function(t,e,n){return t<12?"قبل از ظهر":"بعد از ظهر"},calendar:{sameDay:"[امروز ساعت] LT",nextDay:"[فردا ساعت] LT",nextWeek:"dddd [ساعت] LT",lastDay:"[دیروز ساعت] LT",lastWeek:"dddd [پیش] [ساعت] LT",sameElse:"L"},relativeTime:{future:"در %s",past:"%s پیش",s:"چند ثانیه",ss:"ثانیه d%",m:"یک دقیقه",mm:"%d دقیقه",h:"یک ساعت",hh:"%d ساعت",d:"یک روز",dd:"%d روز",M:"یک ماه",MM:"%d ماه",y:"یک سال",yy:"%d سال"},preparse:function(t){return t.replace(/[۰-۹]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},dayOfMonthOrdinalParse:/\d{1,2}م/,ordinal:"%dم",week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,i,r){var s="";switch(i){case"s":return r?"muutaman sekunnin":"muutama sekunti";case"ss":return r?"sekunnin":"sekuntia";case"m":return r?"minuutin":"minuutti";case"mm":s=r?"minuutin":"minuuttia";break;case"h":return r?"tunnin":"tunti";case"hh":s=r?"tunnin":"tuntia";break;case"d":return r?"päivän":"päivä";case"dd":s=r?"päivän":"päivää";break;case"M":return r?"kuukauden":"kuukausi";case"MM":s=r?"kuukauden":"kuukautta";break;case"y":return r?"vuoden":"vuosi";case"yy":s=r?"vuoden":"vuotta"}return s=n(t,r)+" "+s}function n(t,e){return t<10?e?r[t]:i[t]:t}var i="nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "),r=["nolla","yhden","kahden","kolmen","neljän","viiden","kuuden",i[7],i[8],i[9]];return t.defineLocale("fi",{months:"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),monthsShort:"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),weekdays:"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),weekdaysShort:"su_ma_ti_ke_to_pe_la".split("_"),weekdaysMin:"su_ma_ti_ke_to_pe_la".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"Do MMMM[ta] YYYY",LLL:"Do MMMM[ta] YYYY, [klo] HH.mm",LLLL:"dddd, Do MMMM[ta] YYYY, [klo] HH.mm",l:"D.M.YYYY",ll:"Do MMM YYYY",lll:"Do MMM YYYY, [klo] HH.mm",llll:"ddd, Do MMM YYYY, [klo] HH.mm"},calendar:{sameDay:"[tänään] [klo] LT",nextDay:"[huomenna] [klo] LT",nextWeek:"dddd [klo] LT",lastDay:"[eilen] [klo] LT",lastWeek:"[viime] dddd[na] [klo] LT",sameElse:"L"},relativeTime:{future:"%s päästä",past:"%s sitten",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("fo",{months:"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),weekdaysShort:"sun_mán_týs_mik_hós_frí_ley".split("_"),weekdaysMin:"su_má_tý_mi_hó_fr_le".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D. MMMM, YYYY HH:mm"},calendar:{sameDay:"[Í dag kl.] LT",nextDay:"[Í morgin kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[Í gjár kl.] LT",lastWeek:"[síðstu] dddd [kl] LT",sameElse:"L"},relativeTime:{future:"um %s",past:"%s síðani",s:"fá sekund",ss:"%d sekundir",m:"ein minuttur",mm:"%d minuttir",h:"ein tími",hh:"%d tímar",d:"ein dagur",dd:"%d dagar",M:"ein mánaður",MM:"%d mánaðir",y:"eitt ár",yy:"%d ár"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|)/,ordinal:function(t,e){switch(e){case"D":return t+(1===t?"er":"");default:case"M":case"Q":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("fr-ca",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("fr-ch",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"di_lu_ma_me_je_ve_sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd’hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",ss:"%d secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},dayOfMonthOrdinalParse:/\d{1,2}(er|e)/,ordinal:function(t,e){switch(e){default:case"M":case"Q":case"D":case"DDD":case"d":return t+(1===t?"er":"e");case"w":case"W":return t+(1===t?"re":"e")}},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e="jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_"),n="jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_");return t.defineLocale("fy",{months:"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),monthsShort:function(t,i){return t?/-MMM-/.test(i)?n[t.month()]:e[t.month()]:e},monthsParseExact:!0,weekdays:"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),weekdaysShort:"si._mo._ti._wo._to._fr._so.".split("_"),weekdaysMin:"Si_Mo_Ti_Wo_To_Fr_So".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[hjoed om] LT",nextDay:"[moarn om] LT",nextWeek:"dddd [om] LT",lastDay:"[juster om] LT",lastWeek:"[ôfrûne] dddd [om] LT",sameElse:"L"},relativeTime:{future:"oer %s",past:"%s lyn",s:"in pear sekonden",ss:"%d sekonden",m:"ien minút",mm:"%d minuten",h:"ien oere",hh:"%d oeren",d:"ien dei",dd:"%d dagen",M:"ien moanne",MM:"%d moannen",y:"ien jier",yy:"%d jierren"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e=["Eanáir","Feabhra","Márta","Aibreán","Bealtaine","Méitheamh","Iúil","Lúnasa","Meán Fómhair","Deaireadh Fómhair","Samhain","Nollaig"],n=["Eaná","Feab","Márt","Aibr","Beal","Méit","Iúil","Lúna","Meán","Deai","Samh","Noll"],i=["Dé Domhnaigh","Dé Luain","Dé Máirt","Dé Céadaoin","Déardaoin","Dé hAoine","Dé Satharn"],r=["Dom","Lua","Mái","Céa","Déa","hAo","Sat"],s=["Do","Lu","Má","Ce","Dé","hA","Sa"];return t.defineLocale("ga",{months:e,monthsShort:n,monthsParseExact:!0,weekdays:i,weekdaysShort:r,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Inniu ag] LT",nextDay:"[Amárach ag] LT",nextWeek:"dddd [ag] LT",lastDay:"[Inné aig] LT",lastWeek:"dddd [seo caite] [ag] LT",sameElse:"L"},relativeTime:{future:"i %s",past:"%s ó shin",s:"cúpla soicind",ss:"%d soicind",m:"nóiméad",mm:"%d nóiméad",h:"uair an chloig",hh:"%d uair an chloig",d:"lá",dd:"%d lá",M:"mí",MM:"%d mí",y:"bliain",yy:"%d bliain"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e=["Am Faoilleach","An Gearran","Am Màrt","An Giblean","An Cèitean","An t-Ògmhios","An t-Iuchar","An Lùnastal","An t-Sultain","An Dàmhair","An t-Samhain","An Dùbhlachd"],n=["Faoi","Gear","Màrt","Gibl","Cèit","Ògmh","Iuch","Lùn","Sult","Dàmh","Samh","Dùbh"],i=["Didòmhnaich","Diluain","Dimàirt","Diciadain","Diardaoin","Dihaoine","Disathairne"],r=["Did","Dil","Dim","Dic","Dia","Dih","Dis"],s=["Dò","Lu","Mà","Ci","Ar","Ha","Sa"];return t.defineLocale("gd",{months:e,monthsShort:n,monthsParseExact:!0,weekdays:i,weekdaysShort:r,weekdaysMin:s,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[An-diugh aig] LT",nextDay:"[A-màireach aig] LT",nextWeek:"dddd [aig] LT",lastDay:"[An-dè aig] LT",lastWeek:"dddd [seo chaidh] [aig] LT",sameElse:"L"},relativeTime:{future:"ann an %s",past:"bho chionn %s",s:"beagan diogan",ss:"%d diogan",m:"mionaid",mm:"%d mionaidean",h:"uair",hh:"%d uairean",d:"latha",dd:"%d latha",M:"mìos",MM:"%d mìosan",y:"bliadhna",yy:"%d bliadhna"},dayOfMonthOrdinalParse:/\d{1,2}(d|na|mh)/,ordinal:function(t){return t+(1===t?"d":t%10==2?"na":"mh")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("gl",{months:"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"),monthsShort:"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"domingo_luns_martes_mércores_xoves_venres_sábado".split("_"),weekdaysShort:"dom._lun._mar._mér._xov._ven._sáb.".split("_"),weekdaysMin:"do_lu_ma_mé_xo_ve_sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY H:mm",LLLL:"dddd, D [de] MMMM [de] YYYY H:mm"},calendar:{sameDay:function(){return"[hoxe "+(1!==this.hours()?"ás":"á")+"] LT"},nextDay:function(){return"[mañá "+(1!==this.hours()?"ás":"á")+"] LT"},nextWeek:function(){return"dddd ["+(1!==this.hours()?"ás":"a")+"] LT"},lastDay:function(){return"[onte "+(1!==this.hours()?"á":"a")+"] LT"},lastWeek:function(){return"[o] dddd [pasado "+(1!==this.hours()?"ás":"a")+"] LT"},sameElse:"L"},relativeTime:{future:function(t){return 0===t.indexOf("un")?"n"+t:"en "+t},past:"hai %s",s:"uns segundos",ss:"%d segundos",m:"un minuto",mm:"%d minutos",h:"unha hora",hh:"%d horas",d:"un día",dd:"%d días",M:"un mes",MM:"%d meses",y:"un ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={s:["thodde secondanim","thodde second"],ss:[t+" secondanim",t+" second"],m:["eka mintan","ek minute"],mm:[t+" mintanim",t+" mintam"],h:["eka voran","ek vor"],hh:[t+" voranim",t+" voram"],d:["eka disan","ek dis"],dd:[t+" disanim",t+" dis"],M:["eka mhoinean","ek mhoino"],MM:[t+" mhoineanim",t+" mhoine"],y:["eka vorsan","ek voros"],yy:[t+" vorsanim",t+" vorsam"]};return e?r[n][0]:r[n][1]}return t.defineLocale("gom-latn",{months:"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr".split("_"),monthsShort:"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var".split("_"),weekdaysShort:"Ait._Som._Mon._Bud._Bre._Suk._Son.".split("_"),weekdaysMin:"Ai_Sm_Mo_Bu_Br_Su_Sn".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"A h:mm [vazta]",LTS:"A h:mm:ss [vazta]",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY A h:mm [vazta]",LLLL:"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]",llll:"ddd, D MMM YYYY, A h:mm [vazta]"},calendar:{sameDay:"[Aiz] LT",nextDay:"[Faleam] LT",nextWeek:"[Ieta to] dddd[,] LT",lastDay:"[Kal] LT",lastWeek:"[Fatlo] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%s",past:"%s adim",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}(er)/,ordinal:function(t,e){switch(e){case"D":return t+"er";default:case"M":case"Q":case"DDD":case"d":case"w":case"W":return t}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(t,e){return 12===t&&(t=0),"rati"===e?t<4?t:t+12:"sokalli"===e?t:"donparam"===e?t>12?t:t+12:"sanje"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"rati":t<12?"sokalli":t<16?"donparam":t<20?"sanje":"rati"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"૧",2:"૨",3:"૩",4:"૪",5:"૫",6:"૬",7:"૭",8:"૮",9:"૯",0:"૦"},n={"૧":"1","૨":"2","૩":"3","૪":"4","૫":"5","૬":"6","૭":"7","૮":"8","૯":"9","૦":"0"};return t.defineLocale("gu",{months:"જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર".split("_"),monthsShort:"જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.".split("_"),monthsParseExact:!0,weekdays:"રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર".split("_"),weekdaysShort:"રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ".split("_"),weekdaysMin:"ર_સો_મં_બુ_ગુ_શુ_શ".split("_"),longDateFormat:{LT:"A h:mm વાગ્યે",LTS:"A h:mm:ss વાગ્યે",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm વાગ્યે",LLLL:"dddd, D MMMM YYYY, A h:mm વાગ્યે"},calendar:{sameDay:"[આજ] LT",nextDay:"[કાલે] LT",nextWeek:"dddd, LT",lastDay:"[ગઇકાલે] LT",lastWeek:"[પાછલા] dddd, LT",sameElse:"L"},relativeTime:{future:"%s મા",past:"%s પેહલા",s:"અમુક પળો",ss:"%d સેકંડ",m:"એક મિનિટ",mm:"%d મિનિટ",h:"એક કલાક",hh:"%d કલાક",d:"એક દિવસ",dd:"%d દિવસ",M:"એક મહિનો",MM:"%d મહિનો",y:"એક વર્ષ",yy:"%d વર્ષ"},preparse:function(t){return t.replace(/[૧૨૩૪૫૬૭૮૯૦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/રાત|બપોર|સવાર|સાંજ/,meridiemHour:function(t,e){return 12===t&&(t=0),"રાત"===e?t<4?t:t+12:"સવાર"===e?t:"બપોર"===e?t>=10?t:t+12:"સાંજ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"રાત":t<10?"સવાર":t<17?"બપોર":t<20?"સાંજ":"રાત"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("he",{months:"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),monthsShort:"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),weekdays:"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),weekdaysShort:"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),weekdaysMin:"א_ב_ג_ד_ה_ו_ש".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [ב]MMMM YYYY",LLL:"D [ב]MMMM YYYY HH:mm",LLLL:"dddd, D [ב]MMMM YYYY HH:mm",l:"D/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[היום ב־]LT",nextDay:"[מחר ב־]LT",nextWeek:"dddd [בשעה] LT",lastDay:"[אתמול ב־]LT",lastWeek:"[ביום] dddd [האחרון בשעה] LT",sameElse:"L"},relativeTime:{future:"בעוד %s",past:"לפני %s",s:"מספר שניות",ss:"%d שניות",m:"דקה",mm:"%d דקות",h:"שעה",hh:function(t){return 2===t?"שעתיים":t+" שעות"},d:"יום",dd:function(t){return 2===t?"יומיים":t+" ימים"},M:"חודש",MM:function(t){return 2===t?"חודשיים":t+" חודשים"},y:"שנה",yy:function(t){return 2===t?"שנתיים":t%10==0&&10!==t?t+" שנה":t+" שנים"}},meridiemParse:/אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(t){return/^(אחה"צ|אחרי הצהריים|בערב)$/.test(t)},meridiem:function(t,e,n){return t<5?"לפנות בוקר":t<10?"בבוקר":t<12?n?'לפנה"צ':"לפני הצהריים":t<18?n?'אחה"צ':"אחרי הצהריים":"בערב"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return t.defineLocale("hi",{months:"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),monthsShort:"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm बजे",LTS:"A h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm बजे",LLLL:"dddd, D MMMM YYYY, A h:mm बजे"},calendar:{sameDay:"[आज] LT",nextDay:"[कल] LT",nextWeek:"dddd, LT",lastDay:"[कल] LT",lastWeek:"[पिछले] dddd, LT",sameElse:"L"},relativeTime:{future:"%s में",past:"%s पहले",s:"कुछ ही क्षण",ss:"%d सेकंड",m:"एक मिनट",mm:"%d मिनट",h:"एक घंटा",hh:"%d घंटे",d:"एक दिन",dd:"%d दिन",M:"एक महीने",MM:"%d महीने",y:"एक वर्ष",yy:"%d वर्ष"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात"===e?t<4?t:t+12:"सुबह"===e?t:"दोपहर"===e?t>=10?t:t+12:"शाम"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात":t<10?"सुबह":t<17?"दोपहर":t<20?"शाम":"रात"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n){var i=t+" ";switch(n){case"ss":return i+=1===t?"sekunda":2===t||3===t||4===t?"sekunde":"sekundi";case"m":return e?"jedna minuta":"jedne minute";case"mm":return i+=1===t?"minuta":2===t||3===t||4===t?"minute":"minuta";case"h":return e?"jedan sat":"jednog sata";case"hh":return i+=1===t?"sat":2===t||3===t||4===t?"sata":"sati";case"dd":return i+=1===t?"dan":"dana";case"MM":return i+=1===t?"mjesec":2===t||3===t||4===t?"mjeseca":"mjeseci";case"yy":return i+=1===t?"godina":2===t||3===t||4===t?"godine":"godina"}}return t.defineLocale("hr",{months:{format:"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"),standalone:"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_")},monthsShort:"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[jučer u] LT",lastWeek:function(){switch(this.day()){case 0:case 3:return"[prošlu] dddd [u] LT";case 6:return"[prošle] [subote] [u] LT";case 1:case 2:case 4:case 5:return"[prošli] dddd [u] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"par sekundi",ss:e,m:e,mm:e,h:e,hh:e,d:"dan",dd:e,M:"mjesec",MM:e,y:"godinu",yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r=t;switch(n){case"s":return i||e?"néhány másodperc":"néhány másodperce";case"ss":return r+(i||e)?" másodperc":" másodperce";case"m":return"egy"+(i||e?" perc":" perce");case"mm":return r+(i||e?" perc":" perce");case"h":return"egy"+(i||e?" óra":" órája");case"hh":return r+(i||e?" óra":" órája");case"d":return"egy"+(i||e?" nap":" napja");case"dd":return r+(i||e?" nap":" napja");case"M":return"egy"+(i||e?" hónap":" hónapja");case"MM":return r+(i||e?" hónap":" hónapja");case"y":return"egy"+(i||e?" év":" éve");case"yy":return r+(i||e?" év":" éve")}return""}function n(t){return(t?"":"[múlt] ")+"["+i[this.day()]+"] LT[-kor]"}var i="vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" ");return t.defineLocale("hu",{months:"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),monthsShort:"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),weekdays:"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),weekdaysShort:"vas_hét_kedd_sze_csüt_pén_szo".split("_"),weekdaysMin:"v_h_k_sze_cs_p_szo".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY. MMMM D.",LLL:"YYYY. MMMM D. H:mm",LLLL:"YYYY. MMMM D., dddd H:mm"},meridiemParse:/de|du/i,isPM:function(t){return"u"===t.charAt(1).toLowerCase()},meridiem:function(t,e,n){return t<12?!0===n?"de":"DE":!0===n?"du":"DU"},calendar:{sameDay:"[ma] LT[-kor]",nextDay:"[holnap] LT[-kor]",nextWeek:function(){return n.call(this,!0)},lastDay:"[tegnap] LT[-kor]",lastWeek:function(){return n.call(this,!1)},sameElse:"L"},relativeTime:{future:"%s múlva",past:"%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("hy-am",{months:{format:"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"),standalone:"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_")},monthsShort:"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"),weekdays:"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"),weekdaysShort:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),weekdaysMin:"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY թ.",LLL:"D MMMM YYYY թ., HH:mm",LLLL:"dddd, D MMMM YYYY թ., HH:mm"},calendar:{sameDay:"[այսօր] LT",nextDay:"[վաղը] LT",lastDay:"[երեկ] LT",nextWeek:function(){return"dddd [օրը ժամը] LT"},lastWeek:function(){return"[անցած] dddd [օրը ժամը] LT"},sameElse:"L"},relativeTime:{future:"%s հետո",past:"%s առաջ",s:"մի քանի վայրկյան",ss:"%d վայրկյան",m:"րոպե",mm:"%d րոպե",h:"ժամ",hh:"%d ժամ",d:"օր",dd:"%d օր",M:"ամիս",MM:"%d ամիս",y:"տարի",yy:"%d տարի"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(t){return/^(ցերեկվա|երեկոյան)$/.test(t)},meridiem:function(t){return t<4?"գիշերվա":t<12?"առավոտվա":t<17?"ցերեկվա":"երեկոյան"},dayOfMonthOrdinalParse:/\d{1,2}|\d{1,2}-(ին|րդ)/,ordinal:function(t,e){switch(e){case"DDD":case"w":case"W":case"DDDo":return 1===t?t+"-ին":t+"-րդ";default:return t}},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("id",{months:"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),monthsShort:"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"),weekdays:"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),weekdaysShort:"Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),weekdaysMin:"Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"siang"===e?t>=11?t:t+12:"sore"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"siang":t<19?"sore":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Besok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kemarin pukul] LT",lastWeek:"dddd [lalu pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lalu",s:"beberapa detik",ss:"%d detik",m:"semenit",mm:"%d menit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t){return t%100==11||t%10!=1}function n(t,n,i,r){var s=t+" ";switch(i){case"s":return n||r?"nokkrar sekúndur":"nokkrum sekúndum";case"ss":return e(t)?s+(n||r?"sekúndur":"sekúndum"):s+"sekúnda";case"m":return n?"mínúta":"mínútu";case"mm":return e(t)?s+(n||r?"mínútur":"mínútum"):n?s+"mínúta":s+"mínútu";case"hh":return e(t)?s+(n||r?"klukkustundir":"klukkustundum"):s+"klukkustund";case"d":return n?"dagur":r?"dag":"degi";case"dd":return e(t)?n?s+"dagar":s+(r?"daga":"dögum"):n?s+"dagur":s+(r?"dag":"degi");case"M":return n?"mánuður":r?"mánuð":"mánuði";case"MM":return e(t)?n?s+"mánuðir":s+(r?"mánuði":"mánuðum"):n?s+"mánuður":s+(r?"mánuð":"mánuði");case"y":return n||r?"ár":"ári";case"yy":return e(t)?s+(n||r?"ár":"árum"):s+(n||r?"ár":"ári")}}return t.defineLocale("is",{months:"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),monthsShort:"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),weekdays:"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),weekdaysShort:"sun_mán_þri_mið_fim_fös_lau".split("_"),weekdaysMin:"Su_Má_Þr_Mi_Fi_Fö_La".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd, D. MMMM YYYY [kl.] H:mm"},calendar:{sameDay:"[í dag kl.] LT",nextDay:"[á morgun kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[í gær kl.] LT",lastWeek:"[síðasta] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"eftir %s",past:"fyrir %s síðan",s:n,ss:n,m:n,mm:n,h:"klukkustund",hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("it",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("it-ch",{months:"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),monthsShort:"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),weekdays:"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"),weekdaysShort:"dom_lun_mar_mer_gio_ven_sab".split("_"),weekdaysMin:"do_lu_ma_me_gi_ve_sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Oggi alle] LT",nextDay:"[Domani alle] LT",nextWeek:"dddd [alle] LT",lastDay:"[Ieri alle] LT",lastWeek:function(){switch(this.day()){case 0:return"[la scorsa] dddd [alle] LT";default:return"[lo scorso] dddd [alle] LT"}},sameElse:"L"},relativeTime:{future:function(t){return(/^[0-9].+$/.test(t)?"tra":"in")+" "+t},past:"%s fa",s:"alcuni secondi",ss:"%d secondi",m:"un minuto",mm:"%d minuti",h:"un'ora",hh:"%d ore",d:"un giorno",dd:"%d giorni",M:"un mese",MM:"%d mesi",y:"un anno",yy:"%d anni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ja",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),weekdaysShort:"日_月_火_水_木_金_土".split("_"),weekdaysMin:"日_月_火_水_木_金_土".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日 dddd HH:mm",l:"YYYY/MM/DD",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日(ddd) HH:mm"},meridiemParse:/午前|午後/i,isPM:function(t){return"午後"===t},meridiem:function(t,e,n){return t<12?"午前":"午後"},calendar:{sameDay:"[今日] LT",nextDay:"[明日] LT",nextWeek:function(t){return t.week()=11?t:t+12:"sonten"===e||"ndalu"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"enjing":t<15?"siyang":t<19?"sonten":"ndalu"},calendar:{sameDay:"[Dinten puniko pukul] LT",nextDay:"[Mbenjang pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kala wingi pukul] LT",lastWeek:"dddd [kepengker pukul] LT",sameElse:"L"},relativeTime:{future:"wonten ing %s",past:"%s ingkang kepengker",s:"sawetawis detik",ss:"%d detik",m:"setunggal menit",mm:"%d menit",h:"setunggal jam",hh:"%d jam",d:"sedinten",dd:"%d dinten",M:"sewulan",MM:"%d wulan",y:"setaun",yy:"%d taun"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ka",{months:{standalone:"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),format:"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")},monthsShort:"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),weekdays:{standalone:"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),format:"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),weekdaysMin:"კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[დღეს] LT[-ზე]",nextDay:"[ხვალ] LT[-ზე]",lastDay:"[გუშინ] LT[-ზე]",nextWeek:"[შემდეგ] dddd LT[-ზე]",lastWeek:"[წინა] dddd LT-ზე",sameElse:"L"},relativeTime:{future:function(t){return/(წამი|წუთი|საათი|წელი)/.test(t)?t.replace(/ი$/,"ში"):t+"ში"},past:function(t){return/(წამი|წუთი|საათი|დღე|თვე)/.test(t)?t.replace(/(ი|ე)$/,"ის წინ"):/წელი/.test(t)?t.replace(/წელი$/,"წლის წინ"):void 0},s:"რამდენიმე წამი",ss:"%d წამი",m:"წუთი",mm:"%d წუთი",h:"საათი",hh:"%d საათი",d:"დღე",dd:"%d დღე",M:"თვე",MM:"%d თვე",y:"წელი",yy:"%d წელი"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,ordinal:function(t){return 0===t?t:1===t?t+"-ლი":t<20||t<=100&&t%20==0||t%100==0?"მე-"+t:t+"-ე"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={0:"-ші",1:"-ші",2:"-ші",3:"-ші",4:"-ші",5:"-ші",6:"-шы",7:"-ші",8:"-ші",9:"-шы",10:"-шы",20:"-шы",30:"-шы",40:"-шы",50:"-ші",60:"-шы",70:"-ші",80:"-ші",90:"-шы",100:"-ші"};return t.defineLocale("kk",{months:"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан".split("_"),monthsShort:"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел".split("_"),weekdays:"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі".split("_"),weekdaysShort:"жек_дүй_сей_сәр_бей_жұм_сен".split("_"),weekdaysMin:"жк_дй_сй_ср_бй_жм_сн".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгін сағат] LT",nextDay:"[Ертең сағат] LT",nextWeek:"dddd [сағат] LT",lastDay:"[Кеше сағат] LT",lastWeek:"[Өткен аптаның] dddd [сағат] LT",sameElse:"L"},relativeTime:{future:"%s ішінде",past:"%s бұрын",s:"бірнеше секунд",ss:"%d секунд",m:"бір минут",mm:"%d минут",h:"бір сағат",hh:"%d сағат",d:"бір күн",dd:"%d күн",M:"бір ай",MM:"%d ай",y:"бір жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(ші|шы)/,ordinal:function(t){var n=t%10,i=t>=100?100:null;return t+(e[t]||e[n]||e[i])},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"១",2:"២",3:"៣",4:"៤",5:"៥",6:"៦",7:"៧",8:"៨",9:"៩",0:"០"},n={"១":"1","២":"2","៣":"3","៤":"4","៥":"5","៦":"6","៧":"7","៨":"8","៩":"9","០":"0"};return t.defineLocale("km",{months:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),monthsShort:"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),weekdays:"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),weekdaysShort:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysMin:"អា_ច_អ_ព_ព្រ_សុ_ស".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ព្រឹក|ល្ងាច/,isPM:function(t){return"ល្ងាច"===t},meridiem:function(t,e,n){return t<12?"ព្រឹក":"ល្ងាច"},calendar:{sameDay:"[ថ្ងៃនេះ ម៉ោង] LT",nextDay:"[ស្អែក ម៉ោង] LT",nextWeek:"dddd [ម៉ោង] LT",lastDay:"[ម្សិលមិញ ម៉ោង] LT",lastWeek:"dddd [សប្តាហ៍មុន] [ម៉ោង] LT",sameElse:"L"},relativeTime:{future:"%sទៀត",past:"%sមុន",s:"ប៉ុន្មានវិនាទី",ss:"%d វិនាទី",m:"មួយនាទី",mm:"%d នាទី",h:"មួយម៉ោង",hh:"%d ម៉ោង",d:"មួយថ្ងៃ",dd:"%d ថ្ងៃ",M:"មួយខែ",MM:"%d ខែ",y:"មួយឆ្នាំ",yy:"%d ឆ្នាំ"},dayOfMonthOrdinalParse:/ទី\d{1,2}/,ordinal:"ទី%d",preparse:function(t){return t.replace(/[១២៣៤៥៦៧៨៩០]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"೧",2:"೨",3:"೩",4:"೪",5:"೫",6:"೬",7:"೭",8:"೮",9:"೯",0:"೦"},n={"೧":"1","೨":"2","೩":"3","೪":"4","೫":"5","೬":"6","೭":"7","೮":"8","೯":"9","೦":"0"};return t.defineLocale("kn",{months:"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್".split("_"),monthsShort:"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ".split("_"),monthsParseExact:!0,weekdays:"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ".split("_"),weekdaysShort:"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ".split("_"),weekdaysMin:"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[ಇಂದು] LT",nextDay:"[ನಾಳೆ] LT",nextWeek:"dddd, LT",lastDay:"[ನಿನ್ನೆ] LT",lastWeek:"[ಕೊನೆಯ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ನಂತರ",past:"%s ಹಿಂದೆ",s:"ಕೆಲವು ಕ್ಷಣಗಳು",ss:"%d ಸೆಕೆಂಡುಗಳು",m:"ಒಂದು ನಿಮಿಷ",mm:"%d ನಿಮಿಷ",h:"ಒಂದು ಗಂಟೆ",hh:"%d ಗಂಟೆ",d:"ಒಂದು ದಿನ",dd:"%d ದಿನ",M:"ಒಂದು ತಿಂಗಳು",MM:"%d ತಿಂಗಳು",y:"ಒಂದು ವರ್ಷ",yy:"%d ವರ್ಷ"},preparse:function(t){return t.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ರಾತ್ರಿ"===e?t<4?t:t+12:"ಬೆಳಿಗ್ಗೆ"===e?t:"ಮಧ್ಯಾಹ್ನ"===e?t>=10?t:t+12:"ಸಂಜೆ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ರಾತ್ರಿ":t<10?"ಬೆಳಿಗ್ಗೆ":t<17?"ಮಧ್ಯಾಹ್ನ":t<20?"ಸಂಜೆ":"ರಾತ್ರಿ"},dayOfMonthOrdinalParse:/\d{1,2}(ನೇ)/,ordinal:function(t){return t+"ನೇ"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ko",{months:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),monthsShort:"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),weekdays:"일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),weekdaysShort:"일_월_화_수_목_금_토".split("_"),weekdaysMin:"일_월_화_수_목_금_토".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"YYYY.MM.DD.",LL:"YYYY년 MMMM D일",LLL:"YYYY년 MMMM D일 A h:mm",LLLL:"YYYY년 MMMM D일 dddd A h:mm",l:"YYYY.MM.DD.",ll:"YYYY년 MMMM D일",lll:"YYYY년 MMMM D일 A h:mm",llll:"YYYY년 MMMM D일 dddd A h:mm"},calendar:{sameDay:"오늘 LT",nextDay:"내일 LT",nextWeek:"dddd LT",lastDay:"어제 LT",lastWeek:"지난주 dddd LT",sameElse:"L"},relativeTime:{future:"%s 후",past:"%s 전",s:"몇 초",ss:"%d초",m:"1분",mm:"%d분",h:"한 시간",hh:"%d시간",d:"하루",dd:"%d일",M:"한 달",MM:"%d달",y:"일 년",yy:"%d년"},dayOfMonthOrdinalParse:/\d{1,2}(일|월|주)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"일";case"M":return t+"월";case"w":case"W":return t+"주";default:return t}},meridiemParse:/오전|오후/,isPM:function(t){return"오후"===t},meridiem:function(t,e,n){return t<12?"오전":"오후"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩",0:"٠"},n={"١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","٠":"0"},i=["کانونی دووەم","شوبات","ئازار","نیسان","ئایار","حوزەیران","تەمموز","ئاب","ئەیلوول","تشرینی یەكەم","تشرینی دووەم","كانونی یەکەم"];return t.defineLocale("ku",{months:i,monthsShort:i,weekdays:"یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌".split("_"),weekdaysShort:"یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌".split("_"),weekdaysMin:"ی_د_س_چ_پ_ه_ش".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},meridiemParse:/ئێواره‌|به‌یانی/,isPM:function(t){return/ئێواره‌/.test(t)},meridiem:function(t,e,n){return t<12?"به‌یانی":"ئێواره‌"},calendar:{sameDay:"[ئه‌مرۆ كاتژمێر] LT",nextDay:"[به‌یانی كاتژمێر] LT",nextWeek:"dddd [كاتژمێر] LT",lastDay:"[دوێنێ كاتژمێر] LT",lastWeek:"dddd [كاتژمێر] LT",sameElse:"L"},relativeTime:{future:"له‌ %s",past:"%s",s:"چه‌ند چركه‌یه‌ك",ss:"چركه‌ %d",m:"یه‌ك خوله‌ك",mm:"%d خوله‌ك",h:"یه‌ك كاتژمێر",hh:"%d كاتژمێر",d:"یه‌ك ڕۆژ",dd:"%d ڕۆژ",M:"یه‌ك مانگ",MM:"%d مانگ",y:"یه‌ك ساڵ",yy:"%d ساڵ"},preparse:function(t){return t.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(t){return n[t]}).replace(/،/g,",")},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]}).replace(/,/g,"،")},week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={0:"-чү",1:"-чи",2:"-чи",3:"-чү",4:"-чү",5:"-чи",6:"-чы",7:"-чи",8:"-чи",9:"-чу",10:"-чу",20:"-чы",30:"-чу",40:"-чы",50:"-чү",60:"-чы",70:"-чи",80:"-чи",90:"-чу",100:"-чү"};return t.defineLocale("ky",{months:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),monthsShort:"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),weekdays:"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби".split("_"),weekdaysShort:"Жек_Дүй_Шей_Шар_Бей_Жум_Ише".split("_"),weekdaysMin:"Жк_Дй_Шй_Шр_Бй_Жм_Иш".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Бүгүн саат] LT",nextDay:"[Эртең саат] LT",nextWeek:"dddd [саат] LT",lastDay:"[Кечээ саат] LT",lastWeek:"[Өткөн аптанын] dddd [күнү] [саат] LT",sameElse:"L"},relativeTime:{future:"%s ичинде",past:"%s мурун",s:"бирнече секунд",ss:"%d секунд",m:"бир мүнөт",mm:"%d мүнөт",h:"бир саат",hh:"%d саат",d:"бир күн",dd:"%d күн",M:"бир ай",MM:"%d ай",y:"бир жыл",yy:"%d жыл"},dayOfMonthOrdinalParse:/\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(t){var n=t%10,i=t>=100?100:null;return t+(e[t]||e[n]||e[i])},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={m:["eng Minutt","enger Minutt"],h:["eng Stonn","enger Stonn"],d:["een Dag","engem Dag"],M:["ee Mount","engem Mount"],y:["ee Joer","engem Joer"]};return e?r[n][0]:r[n][1]}function n(t){return r(t.substr(0,t.indexOf(" ")))?"a "+t:"an "+t}function i(t){return r(t.substr(0,t.indexOf(" ")))?"viru "+t:"virun "+t}function r(t){if(t=parseInt(t,10),isNaN(t))return!1;if(t<0)return!0;if(t<10)return 4<=t&&t<=7;if(t<100){var e=t%10,n=t/10;return r(0===e?n:e)}if(t<1e4){for(;t>=10;)t/=10;return r(t)}return t/=1e3,r(t)}return t.defineLocale("lb",{months:"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),monthsParseExact:!0,weekdays:"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),weekdaysShort:"So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),weekdaysMin:"So_Mé_Dë_Më_Do_Fr_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm [Auer]",LTS:"H:mm:ss [Auer]",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm [Auer]",LLLL:"dddd, D. MMMM YYYY H:mm [Auer]"},calendar:{sameDay:"[Haut um] LT",sameElse:"L",nextDay:"[Muer um] LT",nextWeek:"dddd [um] LT",lastDay:"[Gëschter um] LT",lastWeek:function(){switch(this.day()){case 2:case 4:return"[Leschten] dddd [um] LT";default:return"[Leschte] dddd [um] LT"}}},relativeTime:{future:n,past:i,s:"e puer Sekonnen",ss:"%d Sekonnen",m:e,mm:"%d Minutten",h:e,hh:"%d Stonnen",d:e,dd:"%d Deeg",M:e,MM:"%d Méint",y:e,yy:"%d Joer"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("lo",{months:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),monthsShort:"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ".split("_"),weekdays:"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysShort:"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ".split("_"),weekdaysMin:"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"ວັນdddd D MMMM YYYY HH:mm"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(t){return"ຕອນແລງ"===t},meridiem:function(t,e,n){return t<12?"ຕອນເຊົ້າ":"ຕອນແລງ"},calendar:{sameDay:"[ມື້ນີ້ເວລາ] LT",nextDay:"[ມື້ອື່ນເວລາ] LT",nextWeek:"[ວັນ]dddd[ໜ້າເວລາ] LT",lastDay:"[ມື້ວານນີ້ເວລາ] LT",lastWeek:"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT",sameElse:"L"},relativeTime:{future:"ອີກ %s",past:"%sຜ່ານມາ",s:"ບໍ່ເທົ່າໃດວິນາທີ",ss:"%d ວິນາທີ",m:"1 ນາທີ",mm:"%d ນາທີ",h:"1 ຊົ່ວໂມງ",hh:"%d ຊົ່ວໂມງ",d:"1 ມື້",dd:"%d ມື້",M:"1 ເດືອນ",MM:"%d ເດືອນ",y:"1 ປີ",yy:"%d ປີ"},dayOfMonthOrdinalParse:/(ທີ່)\d{1,2}/,ordinal:function(t){return"ທີ່"+t}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){return e?"kelios sekundės":i?"kelių sekundžių":"kelias sekundes"}function n(t,e,n,i){return e?r(n)[0]:i?r(n)[1]:r(n)[2]}function i(t){return t%10==0||t>10&&t<20}function r(t){return a[t].split("_")}function s(t,e,s,a){var o=t+" ";return 1===t?o+n(t,e,s[0],a):e?o+(i(t)?r(s)[1]:r(s)[0]):a?o+r(s)[1]:o+(i(t)?r(s)[1]:r(s)[2])}var a={ss:"sekundė_sekundžių_sekundes",m:"minutė_minutės_minutę",mm:"minutės_minučių_minutes",h:"valanda_valandos_valandą",hh:"valandos_valandų_valandas",d:"diena_dienos_dieną",dd:"dienos_dienų_dienas",M:"mėnuo_mėnesio_mėnesį",MM:"mėnesiai_mėnesių_mėnesius",y:"metai_metų_metus",yy:"metai_metų_metus"};return t.defineLocale("lt",{months:{format:"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),standalone:"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"),isFormat:/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/},monthsShort:"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),weekdays:{format:"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"),standalone:"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"),isFormat:/dddd HH:mm/},weekdaysShort:"Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),weekdaysMin:"S_P_A_T_K_Pn_Š".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY [m.] MMMM D [d.]",LLL:"YYYY [m.] MMMM D [d.], HH:mm [val.]",LLLL:"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",l:"YYYY-MM-DD",ll:"YYYY [m.] MMMM D [d.]",lll:"YYYY [m.] MMMM D [d.], HH:mm [val.]",llll:"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"},calendar:{sameDay:"[Šiandien] LT",nextDay:"[Rytoj] LT",nextWeek:"dddd LT",lastDay:"[Vakar] LT",lastWeek:"[Praėjusį] dddd LT",sameElse:"L"},relativeTime:{future:"po %s",past:"prieš %s",s:e,ss:s,m:n,mm:s,h:n,hh:s,d:n,dd:s,M:n,MM:s,y:n,yy:s},dayOfMonthOrdinalParse:/\d{1,2}-oji/,ordinal:function(t){return t+"-oji"},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n){return n?e%10==1&&e%100!=11?t[2]:t[3]:e%10==1&&e%100!=11?t[0]:t[1]}function n(t,n,i){return t+" "+e(s[i],t,n)}function i(t,n,i){return e(s[i],t,n)}function r(t,e){return e?"dažas sekundes":"dažām sekundēm"}var s={ss:"sekundes_sekundēm_sekunde_sekundes".split("_"),m:"minūtes_minūtēm_minūte_minūtes".split("_"),mm:"minūtes_minūtēm_minūte_minūtes".split("_"),h:"stundas_stundām_stunda_stundas".split("_"),hh:"stundas_stundām_stunda_stundas".split("_"),d:"dienas_dienām_diena_dienas".split("_"),dd:"dienas_dienām_diena_dienas".split("_"),M:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),MM:"mēneša_mēnešiem_mēnesis_mēneši".split("_"),y:"gada_gadiem_gads_gadi".split("_"),yy:"gada_gadiem_gads_gadi".split("_")};return t.defineLocale("lv",{months:"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),monthsShort:"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),weekdays:"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),weekdaysShort:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysMin:"Sv_P_O_T_C_Pk_S".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY.",LL:"YYYY. [gada] D. MMMM",LLL:"YYYY. [gada] D. MMMM, HH:mm",LLLL:"YYYY. [gada] D. MMMM, dddd, HH:mm"},calendar:{sameDay:"[Šodien pulksten] LT",nextDay:"[Rīt pulksten] LT",nextWeek:"dddd [pulksten] LT",lastDay:"[Vakar pulksten] LT",lastWeek:"[Pagājušā] dddd [pulksten] LT",sameElse:"L"},relativeTime:{future:"pēc %s",past:"pirms %s",s:r,ss:n,m:i,mm:n,h:i,hh:n,d:i,dd:n,M:i,MM:n,y:i,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={words:{ss:["sekund","sekunda","sekundi"],m:["jedan minut","jednog minuta"],mm:["minut","minuta","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mjesec","mjeseca","mjeseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,i){var r=e.words[i];return 1===i.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};return t.defineLocale("me",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sri._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sjutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedjelju] [u] LT";case 3:return"[u] [srijedu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedjelje] [u] LT","[prošlog] [ponedjeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srijede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"prije %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mjesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("mi",{months:"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea".split("_"),monthsShort:"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki".split("_"),monthsRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,weekdays:"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei".split("_"),weekdaysShort:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),weekdaysMin:"Ta_Ma_Tū_We_Tāi_Pa_Hā".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [i] HH:mm",LLLL:"dddd, D MMMM YYYY [i] HH:mm"},calendar:{sameDay:"[i teie mahana, i] LT",nextDay:"[apopo i] LT",nextWeek:"dddd [i] LT",lastDay:"[inanahi i] LT",lastWeek:"dddd [whakamutunga i] LT",sameElse:"L"},relativeTime:{future:"i roto i %s",past:"%s i mua",s:"te hēkona ruarua",ss:"%d hēkona",m:"he meneti",mm:"%d meneti",h:"te haora",hh:"%d haora",d:"he ra",dd:"%d ra",M:"he marama",MM:"%d marama",y:"he tau",yy:"%d tau"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("mk",{months:"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),monthsShort:"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),weekdays:"недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),weekdaysShort:"нед_пон_вто_сре_чет_пет_саб".split("_"),weekdaysMin:"нe_пo_вт_ср_че_пе_сa".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"D.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[Денес во] LT",nextDay:"[Утре во] LT",nextWeek:"[Во] dddd [во] LT",lastDay:"[Вчера во] LT",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return"[Изминатата] dddd [во] LT";case 1:case 2:case 4:case 5:return"[Изминатиот] dddd [во] LT"}},sameElse:"L"},relativeTime:{future:"после %s",past:"пред %s",s:"неколку секунди",ss:"%d секунди",m:"минута",mm:"%d минути",h:"час",hh:"%d часа",d:"ден",dd:"%d дена",M:"месец",MM:"%d месеци",y:"година",yy:"%d години"},dayOfMonthOrdinalParse:/\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(t){var e=t%10,n=t%100;return 0===t?t+"-ев":0===n?t+"-ен":n>10&&n<20?t+"-ти":1===e?t+"-ви":2===e?t+"-ри":7===e||8===e?t+"-ми":t+"-ти"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ml",{months:"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),monthsShort:"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),monthsParseExact:!0,weekdays:"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),weekdaysShort:"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),weekdaysMin:"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"),longDateFormat:{LT:"A h:mm -നു",LTS:"A h:mm:ss -നു",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm -നു",LLLL:"dddd, D MMMM YYYY, A h:mm -നു"},calendar:{sameDay:"[ഇന്ന്] LT",nextDay:"[നാളെ] LT",nextWeek:"dddd, LT",lastDay:"[ഇന്നലെ] LT",lastWeek:"[കഴിഞ്ഞ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s കഴിഞ്ഞ്",past:"%s മുൻപ്",s:"അൽപ നിമിഷങ്ങൾ",ss:"%d സെക്കൻഡ്",m:"ഒരു മിനിറ്റ്",mm:"%d മിനിറ്റ്",h:"ഒരു മണിക്കൂർ",hh:"%d മണിക്കൂർ",d:"ഒരു ദിവസം",dd:"%d ദിവസം",M:"ഒരു മാസം",MM:"%d മാസം",y:"ഒരു വർഷം",yy:"%d വർഷം"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(t,e){return 12===t&&(t=0),"രാത്രി"===e&&t>=4||"ഉച്ച കഴിഞ്ഞ്"===e||"വൈകുന്നേരം"===e?t+12:t},meridiem:function(t,e,n){return t<4?"രാത്രി":t<12?"രാവിലെ":t<17?"ഉച്ച കഴിഞ്ഞ്":t<20?"വൈകുന്നേരം":"രാത്രി"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){switch(n){case"s":return e?"хэдхэн секунд":"хэдхэн секундын";case"ss":return t+(e?" секунд":" секундын");case"m":case"mm":return t+(e?" минут":" минутын");case"h":case"hh":return t+(e?" цаг":" цагийн");case"d":case"dd":return t+(e?" өдөр":" өдрийн");case"M":case"MM":return t+(e?" сар":" сарын");case"y":case"yy":return t+(e?" жил":" жилийн");default:return t}}return t.defineLocale("mn",{months:"Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"),monthsShort:"1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"),monthsParseExact:!0,weekdays:"Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"),weekdaysShort:"Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"),weekdaysMin:"Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY оны MMMMын D",LLL:"YYYY оны MMMMын D HH:mm",LLLL:"dddd, YYYY оны MMMMын D HH:mm"},meridiemParse:/ҮӨ|ҮХ/i,isPM:function(t){return"ҮХ"===t},meridiem:function(t,e,n){return t<12?"ҮӨ":"ҮХ"},calendar:{sameDay:"[Өнөөдөр] LT",nextDay:"[Маргааш] LT",nextWeek:"[Ирэх] dddd LT",lastDay:"[Өчигдөр] LT",lastWeek:"[Өнгөрсөн] dddd LT",sameElse:"L"},relativeTime:{future:"%s дараа",past:"%s өмнө",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2} өдөр/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+" өдөр";default:return t}}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r="";if(e)switch(n){case"s":r="काही सेकंद";break;case"ss":r="%d सेकंद";break;case"m":r="एक मिनिट";break;case"mm":r="%d मिनिटे";break;case"h":r="एक तास";break;case"hh":r="%d तास";break;case"d":r="एक दिवस";break;case"dd":r="%d दिवस";break;case"M":r="एक महिना";break;case"MM":r="%d महिने";break;case"y":r="एक वर्ष";break;case"yy":r="%d वर्षे"}else switch(n){case"s":r="काही सेकंदां";break;case"ss":r="%d सेकंदां";break;case"m":r="एका मिनिटा";break;case"mm":r="%d मिनिटां";break;case"h":r="एका तासा";break;case"hh":r="%d तासां";break;case"d":r="एका दिवसा";break;case"dd":r="%d दिवसां";break;case"M":r="एका महिन्या";break;case"MM":r="%d महिन्यां";break;case"y":r="एका वर्षा";break;case"yy":r="%d वर्षां"}return r.replace(/%d/i,t)}var n={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},i={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return t.defineLocale("mr",{months:"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),monthsShort:"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),monthsParseExact:!0,weekdays:"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),weekdaysShort:"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),weekdaysMin:"र_सो_मं_बु_गु_शु_श".split("_"),longDateFormat:{LT:"A h:mm वाजता",LTS:"A h:mm:ss वाजता",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm वाजता",LLLL:"dddd, D MMMM YYYY, A h:mm वाजता"},calendar:{sameDay:"[आज] LT",nextDay:"[उद्या] LT",nextWeek:"dddd, LT",lastDay:"[काल] LT",lastWeek:"[मागील] dddd, LT",sameElse:"L"},relativeTime:{future:"%sमध्ये",past:"%sपूर्वी",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return i[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return n[t]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(t,e){return 12===t&&(t=0),"रात्री"===e?t<4?t:t+12:"सकाळी"===e?t:"दुपारी"===e?t>=10?t:t+12:"सायंकाळी"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"रात्री":t<10?"सकाळी":t<17?"दुपारी":t<20?"सायंकाळी":"रात्री"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ms",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ms-my",{months:"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),weekdays:"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),weekdaysShort:"Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),weekdaysMin:"Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [pukul] HH.mm",LLLL:"dddd, D MMMM YYYY [pukul] HH.mm"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(t,e){return 12===t&&(t=0),"pagi"===e?t:"tengahari"===e?t>=11?t:t+12:"petang"===e||"malam"===e?t+12:void 0},meridiem:function(t,e,n){return t<11?"pagi":t<15?"tengahari":t<19?"petang":"malam"},calendar:{sameDay:"[Hari ini pukul] LT",nextDay:"[Esok pukul] LT",nextWeek:"dddd [pukul] LT",lastDay:"[Kelmarin pukul] LT",lastWeek:"dddd [lepas pukul] LT",sameElse:"L"},relativeTime:{future:"dalam %s",past:"%s yang lepas",s:"beberapa saat",ss:"%d saat",m:"seminit",mm:"%d minit",h:"sejam",hh:"%d jam",d:"sehari",dd:"%d hari",M:"sebulan",MM:"%d bulan",y:"setahun",yy:"%d tahun"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("mt",{months:"Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru".split("_"),monthsShort:"Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ".split("_"),weekdays:"Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt".split("_"),weekdaysShort:"Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib".split("_"),weekdaysMin:"Ħa_Tn_Tl_Er_Ħa_Ġi_Si".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Illum fil-]LT",nextDay:"[Għada fil-]LT",nextWeek:"dddd [fil-]LT",lastDay:"[Il-bieraħ fil-]LT",lastWeek:"dddd [li għadda] [fil-]LT",sameElse:"L"},relativeTime:{future:"f’ %s",past:"%s ilu",s:"ftit sekondi",ss:"%d sekondi",m:"minuta",mm:"%d minuti",h:"siegħa",hh:"%d siegħat",d:"ġurnata",dd:"%d ġranet",M:"xahar",MM:"%d xhur",y:"sena",yy:"%d sni"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"၁",2:"၂",3:"၃",4:"၄",5:"၅",6:"၆",7:"၇",8:"၈",9:"၉",0:"၀"},n={"၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","၀":"0"};return t.defineLocale("my",{months:"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),monthsShort:"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),weekdays:"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),weekdaysShort:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),weekdaysMin:"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ယနေ.] LT [မှာ]",nextDay:"[မနက်ဖြန်] LT [မှာ]",nextWeek:"dddd LT [မှာ]",lastDay:"[မနေ.က] LT [မှာ]",lastWeek:"[ပြီးခဲ့သော] dddd LT [မှာ]",sameElse:"L"},relativeTime:{future:"လာမည့် %s မှာ",past:"လွန်ခဲ့သော %s က",s:"စက္ကန်.အနည်းငယ်",ss:"%d စက္ကန့်",m:"တစ်မိနစ်",mm:"%d မိနစ်",h:"တစ်နာရီ",hh:"%d နာရီ",d:"တစ်ရက်",dd:"%d ရက်",M:"တစ်လ",MM:"%d လ",y:"တစ်နှစ်",yy:"%d နှစ်"},preparse:function(t){return t.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("nb",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),monthsParseExact:!0,weekdays:"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),weekdaysShort:"sø._ma._ti._on._to._fr._lø.".split("_"),weekdaysMin:"sø_ma_ti_on_to_fr_lø".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] HH:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[i dag kl.] LT",nextDay:"[i morgen kl.] LT",nextWeek:"dddd [kl.] LT",lastDay:"[i går kl.] LT",lastWeek:"[forrige] dddd [kl.] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s siden",s:"noen sekunder",ss:"%d sekunder",m:"ett minutt",mm:"%d minutter",h:"en time",hh:"%d timer",d:"en dag",dd:"%d dager",M:"en måned",MM:"%d måneder",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"१",2:"२",3:"३",4:"४",5:"५",6:"६",7:"७",8:"८",9:"९",0:"०"},n={"१":"1","२":"2","३":"3","४":"4","५":"5","६":"6","७":"7","८":"8","९":"9","०":"0"};return t.defineLocale("ne",{months:"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),monthsShort:"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),monthsParseExact:!0,weekdays:"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),weekdaysShort:"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),weekdaysMin:"आ._सो._मं._बु._बि._शु._श.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"Aको h:mm बजे",LTS:"Aको h:mm:ss बजे",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, Aको h:mm बजे",LLLL:"dddd, D MMMM YYYY, Aको h:mm बजे"},preparse:function(t){return t.replace(/[१२३४५६७८९०]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(t,e){return 12===t&&(t=0),"राति"===e?t<4?t:t+12:"बिहान"===e?t:"दिउँसो"===e?t>=10?t:t+12:"साँझ"===e?t+12:void 0},meridiem:function(t,e,n){return t<3?"राति":t<12?"बिहान":t<16?"दिउँसो":t<20?"साँझ":"राति"},calendar:{sameDay:"[आज] LT",nextDay:"[भोलि] LT",nextWeek:"[आउँदो] dddd[,] LT",lastDay:"[हिजो] LT",lastWeek:"[गएको] dddd[,] LT",sameElse:"L"},relativeTime:{future:"%sमा",past:"%s अगाडि",s:"केही क्षण",ss:"%d सेकेण्ड",m:"एक मिनेट",mm:"%d मिनेट",h:"एक घण्टा",hh:"%d घण्टा",d:"एक दिन",dd:"%d दिन",M:"एक महिना",MM:"%d महिना",y:"एक बर्ष",yy:"%d बर्ष"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;return t.defineLocale("nl",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,i){return t?/-MMM-/.test(i)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD-MM-YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e="jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),n="jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),i=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],r=/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i;return t.defineLocale("nl-be",{months:"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),monthsShort:function(t,i){return t?/-MMM-/.test(i)?n[t.month()]:e[t.month()]:e},monthsRegex:r,monthsShortRegex:r,monthsStrictRegex:/^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,monthsParse:i,longMonthsParse:i,shortMonthsParse:i,weekdays:"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),weekdaysShort:"zo._ma._di._wo._do._vr._za.".split("_"),weekdaysMin:"zo_ma_di_wo_do_vr_za".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[vandaag om] LT",nextDay:"[morgen om] LT",nextWeek:"dddd [om] LT",lastDay:"[gisteren om] LT",lastWeek:"[afgelopen] dddd [om] LT",sameElse:"L"},relativeTime:{future:"over %s",past:"%s geleden",s:"een paar seconden",ss:"%d seconden",m:"één minuut",mm:"%d minuten",h:"één uur",hh:"%d uur",d:"één dag",dd:"%d dagen",M:"één maand",MM:"%d maanden",y:"één jaar",yy:"%d jaar"},dayOfMonthOrdinalParse:/\d{1,2}(ste|de)/,ordinal:function(t){return t+(1===t||8===t||t>=20?"ste":"de")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("nn",{months:"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),monthsShort:"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),weekdays:"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),weekdaysShort:"sun_mån_tys_ons_tor_fre_lau".split("_"),weekdaysMin:"su_må_ty_on_to_fr_lø".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY [kl.] H:mm",LLLL:"dddd D. MMMM YYYY [kl.] HH:mm"},calendar:{sameDay:"[I dag klokka] LT",nextDay:"[I morgon klokka] LT",nextWeek:"dddd [klokka] LT",lastDay:"[I går klokka] LT",lastWeek:"[Føregåande] dddd [klokka] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"%s sidan",s:"nokre sekund",ss:"%d sekund",m:"eit minutt",mm:"%d minutt",h:"ein time",hh:"%d timar",d:"ein dag",dd:"%d dagar",M:"ein månad",MM:"%d månader",y:"eit år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"੧",2:"੨",3:"੩",4:"੪",5:"੫",6:"੬",7:"੭",8:"੮",9:"੯",0:"੦"},n={"੧":"1","੨":"2","੩":"3","੪":"4","੫":"5","੬":"6","੭":"7","੮":"8","੯":"9","੦":"0"};return t.defineLocale("pa-in",{months:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),monthsShort:"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ".split("_"),weekdays:"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ".split("_"),weekdaysShort:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),weekdaysMin:"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ".split("_"),longDateFormat:{LT:"A h:mm ਵਜੇ",LTS:"A h:mm:ss ਵਜੇ",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm ਵਜੇ",LLLL:"dddd, D MMMM YYYY, A h:mm ਵਜੇ"},calendar:{sameDay:"[ਅਜ] LT",nextDay:"[ਕਲ] LT",nextWeek:"[ਅਗਲਾ] dddd, LT",lastDay:"[ਕਲ] LT",lastWeek:"[ਪਿਛਲੇ] dddd, LT",sameElse:"L"},relativeTime:{future:"%s ਵਿੱਚ",past:"%s ਪਿਛਲੇ",s:"ਕੁਝ ਸਕਿੰਟ",ss:"%d ਸਕਿੰਟ",m:"ਇਕ ਮਿੰਟ",mm:"%d ਮਿੰਟ",h:"ਇੱਕ ਘੰਟਾ",hh:"%d ਘੰਟੇ",d:"ਇੱਕ ਦਿਨ",dd:"%d ਦਿਨ",M:"ਇੱਕ ਮਹੀਨਾ",MM:"%d ਮਹੀਨੇ",y:"ਇੱਕ ਸਾਲ",yy:"%d ਸਾਲ"},preparse:function(t){return t.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(t,e){return 12===t&&(t=0),"ਰਾਤ"===e?t<4?t:t+12:"ਸਵੇਰ"===e?t:"ਦੁਪਹਿਰ"===e?t>=10?t:t+12:"ਸ਼ਾਮ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"ਰਾਤ":t<10?"ਸਵੇਰ":t<17?"ਦੁਪਹਿਰ":t<20?"ਸ਼ਾਮ":"ਰਾਤ"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t){return t%10<5&&t%10>1&&~~(t/10)%10!=1}function n(t,n,i){var r=t+" ";switch(i){case"ss":return r+(e(t)?"sekundy":"sekund");case"m":return n?"minuta":"minutę";case"mm":return r+(e(t)?"minuty":"minut");case"h":return n?"godzina":"godzinę";case"hh":return r+(e(t)?"godziny":"godzin");case"MM":return r+(e(t)?"miesiące":"miesięcy");case"yy":return r+(e(t)?"lata":"lat")}}var i="styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),r="stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");return t.defineLocale("pl",{months:function(t,e){return t?""===e?"("+r[t.month()]+"|"+i[t.month()]+")":/D MMMM/.test(e)?r[t.month()]:i[t.month()]:i},monthsShort:"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),weekdays:"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),weekdaysShort:"ndz_pon_wt_śr_czw_pt_sob".split("_"),weekdaysMin:"Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Dziś o] LT",nextDay:"[Jutro o] LT",nextWeek:function(){switch(this.day()){case 0:return"[W niedzielę o] LT";case 2:return"[We wtorek o] LT";case 3:return"[W środę o] LT";case 6:return"[W sobotę o] LT";default:return"[W] dddd [o] LT"}},lastDay:"[Wczoraj o] LT",lastWeek:function(){switch(this.day()){case 0:return"[W zeszłą niedzielę o] LT";case 3:return"[W zeszłą środę o] LT";case 6:return"[W zeszłą sobotę o] LT";default:return"[W zeszły] dddd [o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"%s temu",s:"kilka sekund",ss:n,m:n,mm:n,h:n,hh:n,d:"1 dzień",dd:"%d dni",M:"miesiąc",MM:n,y:"rok",yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("pt",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("pt-br",{months:"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"),weekdaysShort:"Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),weekdaysMin:"Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D [de] MMMM [de] YYYY",LLL:"D [de] MMMM [de] YYYY [às] HH:mm",LLLL:"dddd, D [de] MMMM [de] YYYY [às] HH:mm"},calendar:{sameDay:"[Hoje às] LT",nextDay:"[Amanhã às] LT",nextWeek:"dddd [às] LT",lastDay:"[Ontem às] LT",lastWeek:function(){return 0===this.day()||6===this.day()?"[Último] dddd [às] LT":"[Última] dddd [às] LT"},sameElse:"L"},relativeTime:{future:"em %s",past:"há %s",s:"poucos segundos",ss:"%d segundos",m:"um minuto",mm:"%d minutos",h:"uma hora",hh:"%d horas",d:"um dia",dd:"%d dias",M:"um mês",MM:"%d meses",y:"um ano",yy:"%d anos"},dayOfMonthOrdinalParse:/\d{1,2}º/,ordinal:"%dº"})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n){var i={ss:"secunde",mm:"minute",hh:"ore",dd:"zile",MM:"luni",yy:"ani"},r=" ";return(t%100>=20||t>=100&&t%100==0)&&(r=" de "),t+r+i[n]}return t.defineLocale("ro",{months:"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),monthsShort:"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),weekdaysShort:"Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),weekdaysMin:"Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY H:mm",LLLL:"dddd, D MMMM YYYY H:mm"},calendar:{sameDay:"[azi la] LT",nextDay:"[mâine la] LT",nextWeek:"dddd [la] LT",lastDay:"[ieri la] LT",lastWeek:"[fosta] dddd [la] LT",sameElse:"L"},relativeTime:{future:"peste %s",past:"%s în urmă",s:"câteva secunde",ss:e,m:"un minut",mm:e,h:"o oră",hh:e,d:"o zi",dd:e,M:"o lună",MM:e,y:"un an",yy:e},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e){var n=t.split("_");return e%10==1&&e%100!=11?n[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?n[1]:n[2]}function n(t,n,i){var r={ss:n?"секунда_секунды_секунд":"секунду_секунды_секунд",mm:n?"минута_минуты_минут":"минуту_минуты_минут",hh:"час_часа_часов",dd:"день_дня_дней",MM:"месяц_месяца_месяцев",yy:"год_года_лет"};return"m"===i?n?"минута":"минуту":t+" "+e(r[i],+t)}var i=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];return t.defineLocale("ru",{months:{format:"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"),standalone:"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_")},monthsShort:{format:"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"),standalone:"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_")},weekdays:{standalone:"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),format:"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"),isFormat:/\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/},weekdaysShort:"вс_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"вс_пн_вт_ср_чт_пт_сб".split("_"),monthsParse:i,longMonthsParse:i,shortMonthsParse:i,monthsRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsShortRegex:/^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY г.",LLL:"D MMMM YYYY г., H:mm",LLLL:"dddd, D MMMM YYYY г., H:mm"},calendar:{sameDay:"[Сегодня, в] LT",nextDay:"[Завтра, в] LT",lastDay:"[Вчера, в] LT",nextWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В следующее] dddd, [в] LT";case 1:case 2:case 4:return"[В следующий] dddd, [в] LT";case 3:case 5:case 6:return"[В следующую] dddd, [в] LT"}},lastWeek:function(t){if(t.week()===this.week())return 2===this.day()?"[Во] dddd, [в] LT":"[В] dddd, [в] LT";switch(this.day()){case 0:return"[В прошлое] dddd, [в] LT";case 1:case 2:case 4:return"[В прошлый] dddd, [в] LT";case 3:case 5:case 6:return"[В прошлую] dddd, [в] LT"}},sameElse:"L"},relativeTime:{future:"через %s",past:"%s назад",s:"несколько секунд",ss:n,m:n,mm:n,h:"час",hh:n,d:"день",dd:n,M:"месяц",MM:n,y:"год",yy:n},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(t){return/^(дня|вечера)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночи":t<12?"утра":t<17?"дня":"вечера"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го|я)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":return t+"-й";case"D":return t+"-го";case"w":case"W":return t+"-я";default:return t}},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e=["جنوري","فيبروري","مارچ","اپريل","مئي","جون","جولاءِ","آگسٽ","سيپٽمبر","آڪٽوبر","نومبر","ڊسمبر"],n=["آچر","سومر","اڱارو","اربع","خميس","جمع","ڇنڇر"];return t.defineLocale("sd",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[اڄ] LT",nextDay:"[سڀاڻي] LT",nextWeek:"dddd [اڳين هفتي تي] LT",lastDay:"[ڪالهه] LT",lastWeek:"[گزريل هفتي] dddd [تي] LT",sameElse:"L"},relativeTime:{future:"%s پوء",past:"%s اڳ",s:"چند سيڪنڊ",ss:"%d سيڪنڊ",m:"هڪ منٽ",mm:"%d منٽ",h:"هڪ ڪلاڪ",hh:"%d ڪلاڪ",d:"هڪ ڏينهن",dd:"%d ڏينهن",M:"هڪ مهينو",MM:"%d مهينا",y:"هڪ سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("se",{months:"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu".split("_"),monthsShort:"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov".split("_"),weekdays:"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat".split("_"),weekdaysShort:"sotn_vuos_maŋ_gask_duor_bear_láv".split("_"),weekdaysMin:"s_v_m_g_d_b_L".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"MMMM D. [b.] YYYY",LLL:"MMMM D. [b.] YYYY [ti.] HH:mm",LLLL:"dddd, MMMM D. [b.] YYYY [ti.] HH:mm"},calendar:{sameDay:"[otne ti] LT",nextDay:"[ihttin ti] LT",nextWeek:"dddd [ti] LT",lastDay:"[ikte ti] LT",lastWeek:"[ovddit] dddd [ti] LT",sameElse:"L"},relativeTime:{future:"%s geažes",past:"maŋit %s",s:"moadde sekunddat",ss:"%d sekunddat",m:"okta minuhta",mm:"%d minuhtat",h:"okta diimmu",hh:"%d diimmut",d:"okta beaivi",dd:"%d beaivvit",M:"okta mánnu",MM:"%d mánut",y:"okta jahki",yy:"%d jagit"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("si",{months:"ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),monthsShort:"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),weekdays:"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),weekdaysShort:"ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),weekdaysMin:"ඉ_ස_අ_බ_බ්‍ර_සි_සෙ".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"a h:mm",LTS:"a h:mm:ss",L:"YYYY/MM/DD",LL:"YYYY MMMM D",LLL:"YYYY MMMM D, a h:mm",LLLL:"YYYY MMMM D [වැනි] dddd, a h:mm:ss"},calendar:{sameDay:"[අද] LT[ට]",nextDay:"[හෙට] LT[ට]",nextWeek:"dddd LT[ට]",lastDay:"[ඊයේ] LT[ට]",lastWeek:"[පසුගිය] dddd LT[ට]",sameElse:"L"},relativeTime:{future:"%sකින්",past:"%sකට පෙර",s:"තත්පර කිහිපය",ss:"තත්පර %d",m:"මිනිත්තුව",mm:"මිනිත්තු %d",h:"පැය",hh:"පැය %d",d:"දිනය",dd:"දින %d",M:"මාසය",MM:"මාස %d",y:"වසර",yy:"වසර %d"},dayOfMonthOrdinalParse:/\d{1,2} වැනි/,ordinal:function(t){return t+" වැනි"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(t){return"ප.ව."===t||"පස් වරු"===t},meridiem:function(t,e,n){return t>11?n?"ප.ව.":"පස් වරු":n?"පෙ.ව.":"පෙර වරු"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t){return t>1&&t<5}function n(t,n,i,r){var s=t+" ";switch(i){case"s":return n||r?"pár sekúnd":"pár sekundami";case"ss":return n||r?s+(e(t)?"sekundy":"sekúnd"):s+"sekundami";case"m":return n?"minúta":r?"minútu":"minútou";case"mm":return n||r?s+(e(t)?"minúty":"minút"):s+"minútami";case"h":return n?"hodina":r?"hodinu":"hodinou";case"hh":return n||r?s+(e(t)?"hodiny":"hodín"):s+"hodinami";case"d":return n||r?"deň":"dňom";case"dd":return n||r?s+(e(t)?"dni":"dní"):s+"dňami";case"M":return n||r?"mesiac":"mesiacom";case"MM":return n||r?s+(e(t)?"mesiace":"mesiacov"):s+"mesiacmi";case"y":return n||r?"rok":"rokom";case"yy":return n||r?s+(e(t)?"roky":"rokov"):s+"rokmi"}}var i="január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),r="jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");return t.defineLocale("sk",{months:i,monthsShort:r,weekdays:"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),weekdaysShort:"ne_po_ut_st_št_pi_so".split("_"),weekdaysMin:"ne_po_ut_st_št_pi_so".split("_"),longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd D. MMMM YYYY H:mm"},calendar:{sameDay:"[dnes o] LT",nextDay:"[zajtra o] LT",nextWeek:function(){switch(this.day()){case 0:return"[v nedeľu o] LT";case 1:case 2:return"[v] dddd [o] LT";case 3:return"[v stredu o] LT";case 4:return"[vo štvrtok o] LT";case 5:return"[v piatok o] LT";case 6:return"[v sobotu o] LT"}},lastDay:"[včera o] LT",lastWeek:function(){switch(this.day()){case 0:return"[minulú nedeľu o] LT";case 1:case 2:return"[minulý] dddd [o] LT";case 3:return"[minulú stredu o] LT";case 4:case 5:return"[minulý] dddd [o] LT";case 6:return"[minulú sobotu o] LT"}},sameElse:"L"},relativeTime:{future:"za %s",past:"pred %s",s:n,ss:n,m:n,mm:n,h:n,hh:n,d:n,dd:n,M:n,MM:n,y:n,yy:n},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r=t+" ";switch(n){case"s":return e||i?"nekaj sekund":"nekaj sekundami";case"ss":return r+=1===t?e?"sekundo":"sekundi":2===t?e||i?"sekundi":"sekundah":t<5?e||i?"sekunde":"sekundah":"sekund";case"m":return e?"ena minuta":"eno minuto";case"mm":return r+=1===t?e?"minuta":"minuto":2===t?e||i?"minuti":"minutama":t<5?e||i?"minute":"minutami":e||i?"minut":"minutami";case"h":return e?"ena ura":"eno uro";case"hh":return r+=1===t?e?"ura":"uro":2===t?e||i?"uri":"urama":t<5?e||i?"ure":"urami":e||i?"ur":"urami";case"d":return e||i?"en dan":"enim dnem";case"dd":return r+=1===t?e||i?"dan":"dnem":2===t?e||i?"dni":"dnevoma":e||i?"dni":"dnevi";case"M":return e||i?"en mesec":"enim mesecem";case"MM":return r+=1===t?e||i?"mesec":"mesecem":2===t?e||i?"meseca":"mesecema":t<5?e||i?"mesece":"meseci":e||i?"mesecev":"meseci";case"y":return e||i?"eno leto":"enim letom";case"yy":return r+=1===t?e||i?"leto":"letom":2===t?e||i?"leti":"letoma":t<5?e||i?"leta":"leti":e||i?"let":"leti"}}return t.defineLocale("sl",{months:"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),monthsShort:"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),weekdaysShort:"ned._pon._tor._sre._čet._pet._sob.".split("_"),weekdaysMin:"ne_po_to_sr_če_pe_so".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[včeraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prejšnjo] [nedeljo] [ob] LT";case 3:return"[prejšnjo] [sredo] [ob] LT";case 6:return"[prejšnjo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prejšnji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"čez %s",past:"pred %s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),weekdays:"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),weekdaysShort:"Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_Më_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(t){return"M"===t.charAt(0)},meridiem:function(t,e,n){return t<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot në] LT",nextDay:"[Nesër në] LT",nextWeek:"dddd [në] LT",lastDay:"[Dje në] LT",lastWeek:"dddd [e kaluar në] LT",sameElse:"L"},relativeTime:{future:"në %s",past:"%s më parë",s:"disa sekonda",ss:"%d sekonda",m:"një minutë",mm:"%d minuta",h:"një orë",hh:"%d orë",d:"një ditë",dd:"%d ditë",M:"një muaj",MM:"%d muaj",y:"një vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={words:{ss:["sekunda","sekunde","sekundi"],m:["jedan minut","jedne minute"],mm:["minut","minute","minuta"],h:["jedan sat","jednog sata"],hh:["sat","sata","sati"],dd:["dan","dana","dana"],MM:["mesec","meseca","meseci"],yy:["godina","godine","godina"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,i){var r=e.words[i];return 1===i.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};return t.defineLocale("sr",{months:"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"),monthsShort:"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"),monthsParseExact:!0,weekdays:"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"),weekdaysShort:"ned._pon._uto._sre._čet._pet._sub.".split("_"),weekdaysMin:"ne_po_ut_sr_če_pe_su".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danas u] LT",nextDay:"[sutra u] LT",nextWeek:function(){switch(this.day()){case 0:return"[u] [nedelju] [u] LT";case 3:return"[u] [sredu] [u] LT";case 6:return"[u] [subotu] [u] LT";case 1:case 2:case 4:case 5:return"[u] dddd [u] LT"}},lastDay:"[juče u] LT",lastWeek:function(){return["[prošle] [nedelje] [u] LT","[prošlog] [ponedeljka] [u] LT","[prošlog] [utorka] [u] LT","[prošle] [srede] [u] LT","[prošlog] [četvrtka] [u] LT","[prošlog] [petka] [u] LT","[prošle] [subote] [u] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"za %s",past:"pre %s",s:"nekoliko sekundi",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"dan",dd:e.translate,M:"mesec",MM:e.translate,y:"godinu",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={words:{ss:["секунда","секунде","секунди"],m:["један минут","једне минуте"],mm:["минут","минуте","минута"],h:["један сат","једног сата"],hh:["сат","сата","сати"],dd:["дан","дана","дана"],MM:["месец","месеца","месеци"],yy:["година","године","година"]},correctGrammaticalCase:function(t,e){return 1===t?e[0]:t>=2&&t<=4?e[1]:e[2]},translate:function(t,n,i){var r=e.words[i];return 1===i.length?n?r[0]:r[1]:t+" "+e.correctGrammaticalCase(t,r)}};return t.defineLocale("sr-cyrl",{months:"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split("_"),monthsShort:"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),monthsParseExact:!0,weekdays:"недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),weekdaysShort:"нед._пон._уто._сре._чет._пет._суб.".split("_"),weekdaysMin:"не_по_ут_ср_че_пе_су".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD.MM.YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[данас у] LT",nextDay:"[сутра у] LT",nextWeek:function(){switch(this.day()){case 0:return"[у] [недељу] [у] LT";case 3:return"[у] [среду] [у] LT";case 6:return"[у] [суботу] [у] LT";case 1:case 2:case 4:case 5:return"[у] dddd [у] LT"}},lastDay:"[јуче у] LT",lastWeek:function(){return["[прошле] [недеље] [у] LT","[прошлог] [понедељка] [у] LT","[прошлог] [уторка] [у] LT","[прошле] [среде] [у] LT","[прошлог] [четвртка] [у] LT","[прошлог] [петка] [у] LT","[прошле] [суботе] [у] LT"][this.day()]},sameElse:"L"},relativeTime:{future:"за %s",past:"пре %s",s:"неколико секунди",ss:e.translate,m:e.translate,mm:e.translate,h:e.translate,hh:e.translate,d:"дан",dd:e.translate,M:"месец",MM:e.translate,y:"годину",yy:e.translate},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ss",{months:"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split("_"),monthsShort:"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo".split("_"),weekdays:"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo".split("_"),weekdaysShort:"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg".split("_"),weekdaysMin:"Li_Us_Lb_Lt_Ls_Lh_Ug".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Namuhla nga] LT",nextDay:"[Kusasa nga] LT",nextWeek:"dddd [nga] LT",lastDay:"[Itolo nga] LT",lastWeek:"dddd [leliphelile] [nga] LT",sameElse:"L"},relativeTime:{future:"nga %s",past:"wenteka nga %s",s:"emizuzwana lomcane",ss:"%d mzuzwana",m:"umzuzu",mm:"%d emizuzu",h:"lihora",hh:"%d emahora",d:"lilanga",dd:"%d emalanga",M:"inyanga",MM:"%d tinyanga",y:"umnyaka",yy:"%d iminyaka"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(t,e,n){return t<11?"ekuseni":t<15?"emini":t<19?"entsambama":"ebusuku"},meridiemHour:function(t,e){return 12===t&&(t=0),"ekuseni"===e?t:"emini"===e?t>=11?t:t+12:"entsambama"===e||"ebusuku"===e?0===t?0:t+12:void 0},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:"%d",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("sv",{months:"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),monthsShort:"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),weekdays:"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),weekdaysShort:"sön_mån_tis_ons_tor_fre_lör".split("_"),weekdaysMin:"sö_må_ti_on_to_fr_lö".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"D MMMM YYYY",LLL:"D MMMM YYYY [kl.] HH:mm",LLLL:"dddd D MMMM YYYY [kl.] HH:mm",lll:"D MMM YYYY HH:mm",llll:"ddd D MMM YYYY HH:mm"},calendar:{sameDay:"[Idag] LT",nextDay:"[Imorgon] LT",lastDay:"[Igår] LT",nextWeek:"[På] dddd LT",lastWeek:"[I] dddd[s] LT",sameElse:"L"},relativeTime:{future:"om %s",past:"för %s sedan",s:"några sekunder",ss:"%d sekunder",m:"en minut",mm:"%d minuter",h:"en timme",hh:"%d timmar",d:"en dag",dd:"%d dagar",M:"en månad",MM:"%d månader",y:"ett år",yy:"%d år"},dayOfMonthOrdinalParse:/\d{1,2}(e|a)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"e":1===e?"a":2===e?"a":"e")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("sw",{months:"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba".split("_"),monthsShort:"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des".split("_"),weekdays:"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi".split("_"),weekdaysShort:"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos".split("_"),weekdaysMin:"J2_J3_J4_J5_Al_Ij_J1".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[leo saa] LT",nextDay:"[kesho saa] LT",nextWeek:"[wiki ijayo] dddd [saat] LT",lastDay:"[jana] LT",lastWeek:"[wiki iliyopita] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s baadaye",past:"tokea %s",s:"hivi punde",ss:"sekunde %d",m:"dakika moja",mm:"dakika %d",h:"saa limoja",hh:"masaa %d",d:"siku moja",dd:"masiku %d",M:"mwezi mmoja",MM:"miezi %d",y:"mwaka mmoja",yy:"miaka %d"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"௧",2:"௨",3:"௩",4:"௪",5:"௫",6:"௬",7:"௭",8:"௮",9:"௯",0:"௦"},n={"௧":"1","௨":"2","௩":"3","௪":"4","௫":"5","௬":"6","௭":"7","௮":"8","௯":"9","௦":"0"};return t.defineLocale("ta",{months:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),monthsShort:"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),weekdays:"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),weekdaysShort:"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),weekdaysMin:"ஞா_தி_செ_பு_வி_வெ_ச".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, HH:mm",LLLL:"dddd, D MMMM YYYY, HH:mm"},calendar:{sameDay:"[இன்று] LT",nextDay:"[நாளை] LT",nextWeek:"dddd, LT",lastDay:"[நேற்று] LT",lastWeek:"[கடந்த வாரம்] dddd, LT",sameElse:"L"},relativeTime:{future:"%s இல்",past:"%s முன்",s:"ஒரு சில விநாடிகள்",ss:"%d விநாடிகள்",m:"ஒரு நிமிடம்",mm:"%d நிமிடங்கள்",h:"ஒரு மணி நேரம்",hh:"%d மணி நேரம்",d:"ஒரு நாள்",dd:"%d நாட்கள்",M:"ஒரு மாதம்",MM:"%d மாதங்கள்",y:"ஒரு வருடம்",yy:"%d ஆண்டுகள்"},dayOfMonthOrdinalParse:/\d{1,2}வது/,ordinal:function(t){return t+"வது"},preparse:function(t){return t.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(t){return n[t]})},postformat:function(t){return t.replace(/\d/g,function(t){return e[t]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(t,e,n){return t<2?" யாமம்":t<6?" வைகறை":t<10?" காலை":t<14?" நண்பகல்":t<18?" எற்பாடு":t<22?" மாலை":" யாமம்"},meridiemHour:function(t,e){return 12===t&&(t=0),"யாமம்"===e?t<2?t:t+12:"வைகறை"===e||"காலை"===e?t:"நண்பகல்"===e&&t>=10?t:t+12},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("te",{months:"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్".split("_"),monthsShort:"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.".split("_"),monthsParseExact:!0,weekdays:"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం".split("_"),weekdaysShort:"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని".split("_"),weekdaysMin:"ఆ_సో_మం_బు_గు_శు_శ".split("_"),longDateFormat:{LT:"A h:mm",LTS:"A h:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY, A h:mm",LLLL:"dddd, D MMMM YYYY, A h:mm"},calendar:{sameDay:"[నేడు] LT",nextDay:"[రేపు] LT",nextWeek:"dddd, LT",lastDay:"[నిన్న] LT",lastWeek:"[గత] dddd, LT",sameElse:"L"},relativeTime:{future:"%s లో",past:"%s క్రితం",s:"కొన్ని క్షణాలు",ss:"%d సెకన్లు",m:"ఒక నిమిషం",mm:"%d నిమిషాలు",h:"ఒక గంట",hh:"%d గంటలు",d:"ఒక రోజు",dd:"%d రోజులు",M:"ఒక నెల",MM:"%d నెలలు",y:"ఒక సంవత్సరం",yy:"%d సంవత్సరాలు"},dayOfMonthOrdinalParse:/\d{1,2}వ/,ordinal:"%dవ",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(t,e){return 12===t&&(t=0),"రాత్రి"===e?t<4?t:t+12:"ఉదయం"===e?t:"మధ్యాహ్నం"===e?t>=10?t:t+12:"సాయంత్రం"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"రాత్రి":t<10?"ఉదయం":t<17?"మధ్యాహ్నం":t<20?"సాయంత్రం":"రాత్రి"},week:{dow:0,doy:6}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("tet",{months:"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru".split("_"),monthsShort:"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),weekdays:"Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu".split("_"),weekdaysShort:"Dom_Seg_Ters_Kua_Kint_Sest_Sab".split("_"),weekdaysMin:"Do_Seg_Te_Ku_Ki_Ses_Sa".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Ohin iha] LT",nextDay:"[Aban iha] LT",nextWeek:"dddd [iha] LT",lastDay:"[Horiseik iha] LT",lastWeek:"dddd [semana kotuk] [iha] LT",sameElse:"L"},relativeTime:{future:"iha %s",past:"%s liuba",s:"minutu balun",ss:"minutu %d",m:"minutu ida",mm:"minutu %d",h:"oras ida",hh:"oras %d",d:"loron ida",dd:"loron %d",M:"fulan ida",MM:"fulan %d",y:"tinan ida",yy:"tinan %d"},dayOfMonthOrdinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={0:"-ум",1:"-ум",2:"-юм",3:"-юм",4:"-ум",5:"-ум",6:"-ум",7:"-ум",8:"-ум",9:"-ум",10:"-ум",12:"-ум",13:"-ум",20:"-ум",30:"-юм",40:"-ум",50:"-ум",60:"-ум",70:"-ум",80:"-ум",90:"-ум",100:"-ум"};return t.defineLocale("tg",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе".split("_"),weekdaysShort:"яшб_дшб_сшб_чшб_пшб_ҷум_шнб".split("_"),weekdaysMin:"яш_дш_сш_чш_пш_ҷм_шб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Имрӯз соати] LT",nextDay:"[Пагоҳ соати] LT",lastDay:"[Дирӯз соати] LT",nextWeek:"dddd[и] [ҳафтаи оянда соати] LT",lastWeek:"dddd[и] [ҳафтаи гузашта соати] LT",sameElse:"L"},relativeTime:{future:"баъди %s",past:"%s пеш",s:"якчанд сония",m:"як дақиқа",mm:"%d дақиқа",h:"як соат",hh:"%d соат",d:"як рӯз",dd:"%d рӯз",M:"як моҳ",MM:"%d моҳ",y:"як сол",yy:"%d сол"},meridiemParse:/шаб|субҳ|рӯз|бегоҳ/,meridiemHour:function(t,e){return 12===t&&(t=0),"шаб"===e?t<4?t:t+12:"субҳ"===e?t:"рӯз"===e?t>=11?t:t+12:"бегоҳ"===e?t+12:void 0},meridiem:function(t,e,n){return t<4?"шаб":t<11?"субҳ":t<16?"рӯз":t<19?"бегоҳ":"шаб"},dayOfMonthOrdinalParse:/\d{1,2}-(ум|юм)/,ordinal:function(t){var n=t%10,i=t>=100?100:null;return t+(e[t]||e[n]||e[i])},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("th",{months:"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),monthsShort:"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.".split("_"),monthsParseExact:!0,weekdays:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),weekdaysShort:"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),weekdaysMin:"อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY เวลา H:mm",LLLL:"วันddddที่ D MMMM YYYY เวลา H:mm"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(t){return"หลังเที่ยง"===t},meridiem:function(t,e,n){return t<12?"ก่อนเที่ยง":"หลังเที่ยง"},calendar:{sameDay:"[วันนี้ เวลา] LT",nextDay:"[พรุ่งนี้ เวลา] LT",nextWeek:"dddd[หน้า เวลา] LT",lastDay:"[เมื่อวานนี้ เวลา] LT",lastWeek:"[วัน]dddd[ที่แล้ว เวลา] LT",sameElse:"L"},relativeTime:{future:"อีก %s",past:"%sที่แล้ว",s:"ไม่กี่วินาที",ss:"%d วินาที",m:"1 นาที",mm:"%d นาที",h:"1 ชั่วโมง",hh:"%d ชั่วโมง",d:"1 วัน",dd:"%d วัน",M:"1 เดือน",MM:"%d เดือน",y:"1 ปี",yy:"%d ปี"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("tl-ph",{months:"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),monthsShort:"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),weekdays:"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),weekdaysShort:"Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),weekdaysMin:"Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"MM/D/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY HH:mm",LLLL:"dddd, MMMM DD, YYYY HH:mm"},calendar:{sameDay:"LT [ngayong araw]",nextDay:"[Bukas ng] LT",nextWeek:"LT [sa susunod na] dddd",lastDay:"LT [kahapon]",lastWeek:"LT [noong nakaraang] dddd",sameElse:"L"},relativeTime:{future:"sa loob ng %s",past:"%s ang nakalipas",s:"ilang segundo",ss:"%d segundo",m:"isang minuto",mm:"%d minuto",h:"isang oras",hh:"%d oras",d:"isang araw",dd:"%d araw",M:"isang buwan",MM:"%d buwan",y:"isang taon",yy:"%d taon"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"leS":-1!==t.indexOf("jar")?e.slice(0,-3)+"waQ":-1!==t.indexOf("DIS")?e.slice(0,-3)+"nem":e+" pIq"}function n(t){var e=t;return e=-1!==t.indexOf("jaj")?e.slice(0,-3)+"Hu’":-1!==t.indexOf("jar")?e.slice(0,-3)+"wen":-1!==t.indexOf("DIS")?e.slice(0,-3)+"ben":e+" ret"}function i(t,e,n,i){var s=r(t);switch(n){case"ss":return s+" lup";case"mm":return s+" tup";case"hh":return s+" rep";case"dd":return s+" jaj";case"MM":return s+" jar";case"yy":return s+" DIS"}}function r(t){var e=Math.floor(t%1e3/100),n=Math.floor(t%100/10),i=t%10,r="";return e>0&&(r+=s[e]+"vatlh"),n>0&&(r+=(""!==r?" ":"")+s[n]+"maH"),i>0&&(r+=(""!==r?" ":"")+s[i]),""===r?"pagh":r}var s="pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut".split("_");return t.defineLocale("tlh",{months:"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’".split("_"),monthsShort:"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’".split("_"),monthsParseExact:!0,weekdays:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysShort:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),weekdaysMin:"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[DaHjaj] LT",nextDay:"[wa’leS] LT",nextWeek:"LLL",lastDay:"[wa’Hu’] LT",lastWeek:"LLL",sameElse:"L"},relativeTime:{future:e,past:n,s:"puS lup",ss:i,m:"wa’ tup",mm:i,h:"wa’ rep",hh:i,d:"wa’ jaj",dd:i,M:"wa’ jar",MM:i,y:"wa’ DIS",yy:i},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e={1:"'inci",5:"'inci",8:"'inci",70:"'inci",80:"'inci",2:"'nci",7:"'nci",20:"'nci",50:"'nci",3:"'üncü",4:"'üncü",100:"'üncü",6:"'ncı",9:"'uncu",10:"'uncu",30:"'uncu",60:"'ıncı",90:"'ıncı"};return t.defineLocale("tr",{months:"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),monthsShort:"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),weekdays:"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),weekdaysShort:"Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),weekdaysMin:"Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[bugün saat] LT",nextDay:"[yarın saat] LT",nextWeek:"[gelecek] dddd [saat] LT",lastDay:"[dün] LT",lastWeek:"[geçen] dddd [saat] LT",sameElse:"L"},relativeTime:{future:"%s sonra",past:"%s önce",s:"birkaç saniye",ss:"%d saniye",m:"bir dakika",mm:"%d dakika",h:"bir saat",hh:"%d saat",d:"bir gün",dd:"%d gün",M:"bir ay",MM:"%d ay",y:"bir yıl",yy:"%d yıl"},ordinal:function(t,n){switch(n){case"d":case"D":case"Do":case"DD":return t;default:if(0===t)return t+"'ıncı";var i=t%10,r=t%100-i,s=t>=100?100:null;return t+(e[i]||e[r]||e[s])}},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e,n,i){var r={s:["viensas secunds","'iensas secunds"],ss:[t+" secunds",t+" secunds"],m:["'n míut","'iens míut"],mm:[t+" míuts",t+" míuts"],h:["'n þora","'iensa þora"],hh:[t+" þoras",t+" þoras"],d:["'n ziua","'iensa ziua"],dd:[t+" ziuas",t+" ziuas"],M:["'n mes","'iens mes"],MM:[t+" mesen",t+" mesen"],y:["'n ar","'iens ar"],yy:[t+" ars",t+" ars"]};return i?r[n][0]:e?r[n][0]:r[n][1]}return t.defineLocale("tzl",{months:"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),monthsShort:"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),weekdays:"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),weekdaysShort:"Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),weekdaysMin:"Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),longDateFormat:{LT:"HH.mm",LTS:"HH.mm.ss",L:"DD.MM.YYYY",LL:"D. MMMM [dallas] YYYY",LLL:"D. MMMM [dallas] YYYY HH.mm",LLLL:"dddd, [li] D. MMMM [dallas] YYYY HH.mm"},meridiemParse:/d\'o|d\'a/i,isPM:function(t){return"d'o"===t.toLowerCase()},meridiem:function(t,e,n){return t>11?n?"d'o":"D'O":n?"d'a":"D'A"},calendar:{sameDay:"[oxhi à] LT",nextDay:"[demà à] LT",nextWeek:"dddd [à] LT",lastDay:"[ieiri à] LT",lastWeek:"[sür el] dddd [lasteu à] LT",sameElse:"L"},relativeTime:{future:"osprei %s",past:"ja%s",s:e,ss:e,m:e,mm:e,h:e,hh:e,d:e,dd:e,M:e,MM:e,y:e,yy:e},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("tzm",{months:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),monthsShort:"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),weekdays:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysShort:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),weekdaysMin:"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[ⴰⵙⴷⵅ ⴴ] LT",nextDay:"[ⴰⵙⴽⴰ ⴴ] LT",nextWeek:"dddd [ⴴ] LT",lastDay:"[ⴰⵚⴰⵏⵜ ⴴ] LT",lastWeek:"dddd [ⴴ] LT",sameElse:"L"},relativeTime:{future:"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",past:"ⵢⴰⵏ %s",s:"ⵉⵎⵉⴽ",ss:"%d ⵉⵎⵉⴽ",m:"ⵎⵉⵏⵓⴺ",mm:"%d ⵎⵉⵏⵓⴺ",h:"ⵙⴰⵄⴰ",hh:"%d ⵜⴰⵙⵙⴰⵄⵉⵏ",d:"ⴰⵙⵙ",dd:"%d oⵙⵙⴰⵏ",M:"ⴰⵢoⵓⵔ",MM:"%d ⵉⵢⵢⵉⵔⵏ",y:"ⴰⵙⴳⴰⵙ",yy:"%d ⵉⵙⴳⴰⵙⵏ"},week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("tzm-latn",{months:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),monthsShort:"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),weekdays:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysShort:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),weekdaysMin:"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[asdkh g] LT",nextDay:"[aska g] LT",nextWeek:"dddd [g] LT",lastDay:"[assant g] LT",lastWeek:"dddd [g] LT",sameElse:"L"},relativeTime:{future:"dadkh s yan %s",past:"yan %s",s:"imik",ss:"%d imik",m:"minuḍ",mm:"%d minuḍ",h:"saɛa",hh:"%d tassaɛin",d:"ass",dd:"%d ossan",M:"ayowr",MM:"%d iyyirn",y:"asgas",yy:"%d isgasn"},week:{dow:6,doy:12}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("ug-cn",{months:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),monthsShort:"يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر".split("_"),weekdays:"يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە".split("_"),weekdaysShort:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),weekdaysMin:"يە_دۈ_سە_چا_پە_جۈ_شە".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY-MM-DD",LL:"YYYY-يىلىM-ئاينىڭD-كۈنى",LLL:"YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm",LLLL:"dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm"},meridiemParse:/يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,meridiemHour:function(t,e){return 12===t&&(t=0),"يېرىم كېچە"===e||"سەھەر"===e||"چۈشتىن بۇرۇن"===e?t:"چۈشتىن كېيىن"===e||"كەچ"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var i=100*t+e;return i<600?"يېرىم كېچە":i<900?"سەھەر":i<1130?"چۈشتىن بۇرۇن":i<1230?"چۈش":i<1800?"چۈشتىن كېيىن":"كەچ"},calendar:{sameDay:"[بۈگۈن سائەت] LT",nextDay:"[ئەتە سائەت] LT",nextWeek:"[كېلەركى] dddd [سائەت] LT",lastDay:"[تۆنۈگۈن] LT",lastWeek:"[ئالدىنقى] dddd [سائەت] LT",sameElse:"L"},relativeTime:{future:"%s كېيىن",past:"%s بۇرۇن",s:"نەچچە سېكونت",ss:"%d سېكونت",m:"بىر مىنۇت",mm:"%d مىنۇت",h:"بىر سائەت",hh:"%d سائەت",d:"بىر كۈن",dd:"%d كۈن",M:"بىر ئاي",MM:"%d ئاي",y:"بىر يىل",yy:"%d يىل"},dayOfMonthOrdinalParse:/\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"-كۈنى";case"w":case"W":return t+"-ھەپتە";default:return t}},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";function e(t,e){var n=t.split("_");return e%10==1&&e%100!=11?n[0]:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?n[1]:n[2]}function n(t,n,i){var r={ss:n?"секунда_секунди_секунд":"секунду_секунди_секунд",mm:n?"хвилина_хвилини_хвилин":"хвилину_хвилини_хвилин",hh:n?"година_години_годин":"годину_години_годин",dd:"день_дні_днів",MM:"місяць_місяці_місяців",yy:"рік_роки_років"};return"m"===i?n?"хвилина":"хвилину":"h"===i?n?"година":"годину":t+" "+e(r[i],+t)}function i(t,e){var n={nominative:"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),accusative:"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),genitive:"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")};return!0===t?n.nominative.slice(1,7).concat(n.nominative.slice(0,1)):t?n[/(\[[ВвУу]\]) ?dddd/.test(e)?"accusative":/\[?(?:минулої|наступної)? ?\] ?dddd/.test(e)?"genitive":"nominative"][t.day()]:n.nominative}function r(t){return function(){return t+"о"+(11===this.hours()?"б":"")+"] LT"}}return t.defineLocale("uk",{months:{format:"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"),standalone:"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_")},monthsShort:"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),weekdays:i,weekdaysShort:"нд_пн_вт_ср_чт_пт_сб".split("_"),weekdaysMin:"нд_пн_вт_ср_чт_пт_сб".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD.MM.YYYY",LL:"D MMMM YYYY р.",LLL:"D MMMM YYYY р., HH:mm",LLLL:"dddd, D MMMM YYYY р., HH:mm"},calendar:{sameDay:r("[Сьогодні "),nextDay:r("[Завтра "),lastDay:r("[Вчора "),nextWeek:r("[У] dddd ["),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return r("[Минулої] dddd [").call(this);case 1:case 2:case 4:return r("[Минулого] dddd [").call(this)}},sameElse:"L"},relativeTime:{future:"за %s",past:"%s тому",s:"декілька секунд",ss:n,m:n,mm:n,h:"годину",hh:n,d:"день",dd:n,M:"місяць",MM:n,y:"рік",yy:n},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(t){return/^(дня|вечора)$/.test(t)},meridiem:function(t,e,n){return t<4?"ночі":t<12?"ранку":t<17?"дня":"вечора"},dayOfMonthOrdinalParse:/\d{1,2}-(й|го)/,ordinal:function(t,e){switch(e){case"M":case"d":case"DDD":case"w":case"W":return t+"-й";case"D":return t+"-го";default:return t}},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";var e=["جنوری","فروری","مارچ","اپریل","مئی","جون","جولائی","اگست","ستمبر","اکتوبر","نومبر","دسمبر"],n=["اتوار","پیر","منگل","بدھ","جمعرات","جمعہ","ہفتہ"];return t.defineLocale("ur",{months:e,monthsShort:e,weekdays:n,weekdaysShort:n,weekdaysMin:n,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd، D MMMM YYYY HH:mm"},meridiemParse:/صبح|شام/,isPM:function(t){return"شام"===t},meridiem:function(t,e,n){return t<12?"صبح":"شام"},calendar:{sameDay:"[آج بوقت] LT",nextDay:"[کل بوقت] LT",nextWeek:"dddd [بوقت] LT",lastDay:"[گذشتہ روز بوقت] LT",lastWeek:"[گذشتہ] dddd [بوقت] LT",sameElse:"L"},relativeTime:{future:"%s بعد",past:"%s قبل",s:"چند سیکنڈ",ss:"%d سیکنڈ",m:"ایک منٹ",mm:"%d منٹ",h:"ایک گھنٹہ",hh:"%d گھنٹے",d:"ایک دن",dd:"%d دن",M:"ایک ماہ",MM:"%d ماہ",y:"ایک سال",yy:"%d سال"},preparse:function(t){return t.replace(/،/g,",")},postformat:function(t){return t.replace(/,/g,"،")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("uz",{months:"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр".split("_"),monthsShort:"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),weekdays:"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),weekdaysShort:"Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),weekdaysMin:"Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Бугун соат] LT [да]",nextDay:"[Эртага] LT [да]",nextWeek:"dddd [куни соат] LT [да]",lastDay:"[Кеча соат] LT [да]",lastWeek:"[Утган] dddd [куни соат] LT [да]",sameElse:"L"},relativeTime:{future:"Якин %s ичида",past:"Бир неча %s олдин",s:"фурсат",ss:"%d фурсат",m:"бир дакика",mm:"%d дакика",h:"бир соат",hh:"%d соат",d:"бир кун",dd:"%d кун",M:"бир ой",MM:"%d ой",y:"бир йил",yy:"%d йил"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("uz-latn",{months:"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr".split("_"),monthsShort:"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek".split("_"),weekdays:"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba".split("_"),weekdaysShort:"Yak_Dush_Sesh_Chor_Pay_Jum_Shan".split("_"),weekdaysMin:"Ya_Du_Se_Cho_Pa_Ju_Sha".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"D MMMM YYYY, dddd HH:mm"},calendar:{sameDay:"[Bugun soat] LT [da]",nextDay:"[Ertaga] LT [da]",nextWeek:"dddd [kuni soat] LT [da]",lastDay:"[Kecha soat] LT [da]",lastWeek:"[O'tgan] dddd [kuni soat] LT [da]",sameElse:"L"},relativeTime:{future:"Yaqin %s ichida",past:"Bir necha %s oldin",s:"soniya",ss:"%d soniya",m:"bir daqiqa",mm:"%d daqiqa",h:"bir soat",hh:"%d soat",d:"bir kun",dd:"%d kun",M:"bir oy",MM:"%d oy",y:"bir yil",yy:"%d yil"},week:{dow:1,doy:7}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("vi",{months:"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),monthsShort:"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),monthsParseExact:!0,weekdays:"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),weekdaysShort:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysMin:"CN_T2_T3_T4_T5_T6_T7".split("_"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(t){return/^ch$/i.test(t)},meridiem:function(t,e,n){return t<12?n?"sa":"SA":n?"ch":"CH"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM [năm] YYYY",LLL:"D MMMM [năm] YYYY HH:mm",LLLL:"dddd, D MMMM [năm] YYYY HH:mm",l:"DD/M/YYYY",ll:"D MMM YYYY",lll:"D MMM YYYY HH:mm",llll:"ddd, D MMM YYYY HH:mm"},calendar:{sameDay:"[Hôm nay lúc] LT",nextDay:"[Ngày mai lúc] LT",nextWeek:"dddd [tuần tới lúc] LT",lastDay:"[Hôm qua lúc] LT",lastWeek:"dddd [tuần rồi lúc] LT",sameElse:"L"},relativeTime:{future:"%s tới",past:"%s trước",s:"vài giây",ss:"%d giây",m:"một phút",mm:"%d phút",h:"một giờ",hh:"%d giờ",d:"một ngày",dd:"%d ngày",M:"một tháng",MM:"%d tháng",y:"một năm",yy:"%d năm"},dayOfMonthOrdinalParse:/\d{1,2}/,ordinal:function(t){return t},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("x-pseudo",{months:"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér".split("_"),monthsShort:"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc".split("_"),monthsParseExact:!0,weekdays:"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý".split("_"),weekdaysShort:"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát".split("_"),weekdaysMin:"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[T~ódá~ý át] LT",nextDay:"[T~ómó~rró~w át] LT",nextWeek:"dddd [át] LT",lastDay:"[Ý~ést~érdá~ý át] LT",lastWeek:"[L~ást] dddd [át] LT",sameElse:"L"},relativeTime:{future:"í~ñ %s",past:"%s á~gó",s:"á ~féw ~sécó~ñds",ss:"%d s~écóñ~ds",m:"á ~míñ~úté",mm:"%d m~íñú~tés",h:"á~ñ hó~úr",hh:"%d h~óúrs",d:"á ~dáý",dd:"%d d~áýs",M:"á ~móñ~th",MM:"%d m~óñt~hs",y:"á ~ýéár",yy:"%d ý~éárs"},dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1==~~(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("yo",{months:"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀".split("_"),monthsShort:"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀".split("_"),weekdays:"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta".split("_"),weekdaysShort:"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá".split("_"),weekdaysMin:"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb".split("_"),longDateFormat:{LT:"h:mm A",LTS:"h:mm:ss A",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY h:mm A",LLLL:"dddd, D MMMM YYYY h:mm A"},calendar:{sameDay:"[Ònì ni] LT",nextDay:"[Ọ̀la ni] LT",nextWeek:"dddd [Ọsẹ̀ tón'bọ] [ni] LT",lastDay:"[Àna ni] LT",lastWeek:"dddd [Ọsẹ̀ tólọ́] [ni] LT",sameElse:"L"},relativeTime:{future:"ní %s",past:"%s kọjá",s:"ìsẹjú aayá die",ss:"aayá %d",m:"ìsẹjú kan",mm:"ìsẹjú %d",h:"wákati kan",hh:"wákati %d",d:"ọjọ́ kan",dd:"ọjọ́ %d",M:"osù kan",MM:"osù %d",y:"ọdún kan",yy:"ọdún %d"},dayOfMonthOrdinalParse:/ọjọ́\s\d{1,2}/,ordinal:"ọjọ́ %d",week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("zh-cn",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"下午"===e||"晚上"===e?t+12:t>=11?t:t+12},meridiem:function(t,e,n){var i=100*t+e;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|周)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"周";default:return t}},relativeTime:{future:"%s内",past:"%s前",s:"几秒",ss:"%d 秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},week:{dow:1,doy:4}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("zh-hk",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var i=100*t+e;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天]LT",nextDay:"[明天]LT",nextWeek:"[下]ddddLT",lastDay:"[昨天]LT",lastWeek:"[上]ddddLT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})},function(t,e,n){!function(t,e){e(n(0))}(0,function(t){"use strict";return t.defineLocale("zh-tw",{months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"週日_週一_週二_週三_週四_週五_週六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日 HH:mm",LLLL:"YYYY年M月D日dddd HH:mm",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(t,e){return 12===t&&(t=0),"凌晨"===e||"早上"===e||"上午"===e?t:"中午"===e?t>=11?t:t+12:"下午"===e||"晚上"===e?t+12:void 0},meridiem:function(t,e,n){var i=100*t+e;return i<600?"凌晨":i<900?"早上":i<1130?"上午":i<1230?"中午":i<1800?"下午":"晚上"},calendar:{sameDay:"[今天] LT",nextDay:"[明天] LT",nextWeek:"[下]dddd LT",lastDay:"[昨天] LT",lastWeek:"[上]dddd LT",sameElse:"L"},dayOfMonthOrdinalParse:/\d{1,2}(日|月|週)/,ordinal:function(t,e){switch(e){case"d":case"D":case"DDD":return t+"日";case"M":return t+"月";case"w":case"W":return t+"週";default:return t}},relativeTime:{future:"%s內",past:"%s前",s:"幾秒",ss:"%d 秒",m:"1 分鐘",mm:"%d 分鐘",h:"1 小時",hh:"%d 小時",d:"1 天",dd:"%d 天",M:"1 個月",MM:"%d 個月",y:"1 年",yy:"%d 年"}})})},,function(t,e,n){var i,r;/*! + * jQuery JavaScript Library v3.3.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2018-01-20T17:24Z + */ +!function(e,n){"use strict";"object"==typeof t&&"object"==typeof t.exports?t.exports=e.document?n(e,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return n(t)}:n(e)}("undefined"!=typeof window?window:this,function(n,s){"use strict";function a(t,e,n){e=e||ct;var i,r=e.createElement("script");if(r.text=t,n)for(i in wt)n[i]&&(r[i]=n[i]);e.head.appendChild(r).parentNode.removeChild(r)}function o(t){return null==t?t+"":"object"==typeof t||"function"==typeof t?vt[_t.call(t)]||"object":typeof t}function u(t){var e=!!t&&"length"in t&&t.length,n=o(t);return!Mt(t)&&!kt(t)&&("array"===n||0===e||"number"==typeof e&&e>0&&e-1 in t)}function l(t,e){return t.nodeName&&t.nodeName.toLowerCase()===e.toLowerCase()}function c(t,e,n){return Mt(e)?Lt.grep(t,function(t,i){return!!e.call(t,i,t)!==n}):e.nodeType?Lt.grep(t,function(t){return t===e!==n}):"string"!=typeof e?Lt.grep(t,function(t){return mt.call(e,t)>-1!==n}):Lt.filter(e,t,n)}function d(t,e){for(;(t=t[e])&&1!==t.nodeType;);return t}function h(t){var e={};return Lt.each(t.match(It)||[],function(t,n){e[n]=!0}),e}function f(t){return t}function p(t){throw t}function m(t,e,n,i){var r;try{t&&Mt(r=t.promise)?r.call(t).done(e).fail(n):t&&Mt(r=t.then)?r.call(t,e,n):e.apply(void 0,[t].slice(i))}catch(t){n.apply(void 0,[t])}}function v(){ct.removeEventListener("DOMContentLoaded",v),n.removeEventListener("load",v),Lt.ready()}function _(t,e){return e.toUpperCase()}function g(t){return t.replace(Ft,"ms-").replace(Bt,_)}function y(){this.expando=Lt.expando+y.uid++}function b(t){return"true"===t||"false"!==t&&("null"===t?null:t===+t+""?+t:zt.test(t)?JSON.parse(t):t)}function x(t,e,n){var i;if(void 0===n&&1===t.nodeType)if(i="data-"+e.replace(Ut,"-$&").toLowerCase(),"string"==typeof(n=t.getAttribute(i))){try{n=b(n)}catch(t){}Rt.set(t,e,n)}else n=void 0;return n}function M(t,e,n,i){var r,s,a=20,o=i?function(){return i.cur()}:function(){return Lt.css(t,e,"")},u=o(),l=n&&n[3]||(Lt.cssNumber[e]?"":"px"),c=(Lt.cssNumber[e]||"px"!==l&&+u)&&Jt.exec(Lt.css(t,e));if(c&&c[3]!==l){for(u/=2,l=l||c[3],c=+u||1;a--;)Lt.style(t,e,c+l),(1-s)*(1-(s=o()/u||.5))<=0&&(a=0),c/=s;c*=2,Lt.style(t,e,c+l),n=n||[]}return n&&(c=+c||+u||0,r=n[1]?c+(n[1]+1)*n[2]:+n[2],i&&(i.unit=l,i.start=c,i.end=r)),r}function k(t){var e,n=t.ownerDocument,i=t.nodeName,r=Zt[i];return r||(e=n.body.appendChild(n.createElement(i)),r=Lt.css(e,"display"),e.parentNode.removeChild(e),"none"===r&&(r="block"),Zt[i]=r,r)}function w(t,e){for(var n,i,r=[],s=0,a=t.length;s-1)r&&r.push(s);else if(c=Lt.contains(s.ownerDocument,s),a=L(h.appendChild(s),"script"),c&&T(a),n)for(d=0;s=a[d++];)ee.test(s.type||"")&&n.push(s);return h}function D(){return!0}function Y(){return!1}function C(){try{return ct.activeElement}catch(t){}}function O(t,e,n,i,r,s){var a,o;if("object"==typeof e){"string"!=typeof n&&(i=i||n,n=void 0);for(o in e)O(t,o,n,i,e[o],s);return t}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=Y;else if(!r)return t;return 1===s&&(a=r,r=function(t){return Lt().off(t),a.apply(this,arguments)},r.guid=a.guid||(a.guid=Lt.guid++)),t.each(function(){Lt.event.add(this,e,r,i,n)})}function j(t,e){return l(t,"table")&&l(11!==e.nodeType?e:e.firstChild,"tr")?Lt(t).children("tbody")[0]||t:t}function V(t){return t.type=(null!==t.getAttribute("type"))+"/"+t.type,t}function A(t){return"true/"===(t.type||"").slice(0,5)?t.type=t.type.slice(5):t.removeAttribute("type"),t}function P(t,e){var n,i,r,s,a,o,u,l;if(1===e.nodeType){if(Wt.hasData(t)&&(s=Wt.access(t),a=Wt.set(e,s),l=s.events)){delete a.handle,a.events={};for(r in l)for(n=0,i=l[r].length;n1&&"string"==typeof p&&!xt.checkClone&&ce.test(p))return t.each(function(r){var s=t.eq(r);m&&(e[0]=p.call(this,r,s.html())),H(s,e,n,i)});if(h&&(r=S(e,t[0].ownerDocument,!1,t,i),s=r.firstChild,1===r.childNodes.length&&(r=s),s||i)){for(o=Lt.map(L(r,"script"),V),u=o.length;d=0&&(u+=Math.max(0,Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-s-u-o-.5))),u}function z(t,e,n){var i=fe(t),r=$(t,e,i),s="border-box"===Lt.css(t,"boxSizing",!1,i),a=s;if(he.test(r)){if(!n)return r;r="auto"}return a=a&&(xt.boxSizingReliable()||r===t.style[e]),("auto"===r||!parseFloat(r)&&"inline"===Lt.css(t,"display",!1,i))&&(r=t["offset"+e[0].toUpperCase()+e.slice(1)],a=!0),(r=parseFloat(r)||0)+R(t,e,n||(s?"border":"content"),a,i,r)+"px"}function U(t,e,n,i,r){return new U.prototype.init(t,e,n,i,r)}function q(){Me&&(!1===ct.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(q):n.setTimeout(q,Lt.fx.interval),Lt.fx.tick())}function J(){return n.setTimeout(function(){xe=void 0}),xe=Date.now()}function G(t,e){var n,i=0,r={height:t};for(e=e?1:0;i<4;i+=2-e)n=Gt[i],r["margin"+n]=r["padding"+n]=t;return e&&(r.opacity=r.width=t),r}function X(t,e,n){for(var i,r=(Q.tweeners[e]||[]).concat(Q.tweeners["*"]),s=0,a=r.length;s=0&&nx.cacheLength&&delete t[e.shift()],t[n+" "]=i}var e=[];return t}function i(t){return t[E]=!0,t}function r(t){var e=O.createElement("fieldset");try{return!!t(e)}catch(t){return!1}finally{e.parentNode&&e.parentNode.removeChild(e),e=null}}function s(t,e){for(var n=t.split("|"),i=n.length;i--;)x.attrHandle[n[i]]=e}function a(t,e){var n=e&&t,i=n&&1===t.nodeType&&1===e.nodeType&&t.sourceIndex-e.sourceIndex;if(i)return i;if(n)for(;n=n.nextSibling;)if(n===e)return-1;return t?1:-1}function o(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&Mt(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function u(t){return i(function(e){return e=+e,i(function(n,i){for(var r,s=t([],n.length,e),a=s.length;a--;)n[r=s[a]]&&(n[r]=!(i[r]=n[r]))})})}function l(t){return t&&void 0!==t.getElementsByTagName&&t}function c(){}function d(t){for(var e=0,n=t.length,i="";e1?function(e,n,i){for(var r=t.length;r--;)if(!t[r](e,n,i))return!1;return!0}:t[0]}function p(t,n,i){for(var r=0,s=n.length;r-1&&(i[l]=!(a[l]=d))}}else y=m(y===a?y.splice(v,y.length):y),s?s(null,a,y,u):X.apply(a,y)})}function _(t){for(var e,n,i,r=t.length,s=x.relative[t[0].type],a=s||x.relative[" "],o=s?1:0,u=h(function(t){return t===e},a,!0),l=h(function(t){return Z(e,t)>-1},a,!0),c=[function(t,n,i){var r=!s&&(i||n!==S)||((e=n).nodeType?u(t,n,i):l(t,n,i));return e=null,r}];o1&&f(c),o>1&&d(t.slice(0,o-1).concat({value:" "===t[o-2].type?"*":""})).replace(st,"$1"),n,o0,s=t.length>0,a=function(i,a,o,u,l){var c,d,h,f=0,p="0",v=i&&[],_=[],g=S,y=i||s&&x.find.TAG("*",l),b=F+=null==g?1:Math.random()||.1,M=y.length;for(l&&(S=a===O||a||l);p!==M&&null!=(c=y[p]);p++){if(s&&c){for(d=0,a||c.ownerDocument===O||(C(c),o=!V);h=t[d++];)if(h(c,a||O,o)){u.push(c);break}l&&(F=b)}r&&((c=!h&&c)&&f--,i&&v.push(c))}if(f+=p,r&&p!==f){for(d=0;h=n[d++];)h(v,_,a,o);if(i){if(f>0)for(;p--;)v[p]||_[p]||(_[p]=J.call(u));_=m(_)}X.apply(u,_),l&&!i&&_.length>0&&f+n.length>1&&e.uniqueSort(u)}return l&&(F=b,S=g),v};return r?i(a):a}var y,b,x,M,k,w,L,T,S,D,Y,C,O,j,V,A,P,I,H,E="sizzle"+1*new Date,$=t.document,F=0,B=0,N=n(),W=n(),R=n(),z=function(t,e){return t===e&&(Y=!0),0},U={}.hasOwnProperty,q=[],J=q.pop,G=q.push,X=q.push,K=q.slice,Z=function(t,e){for(var n=0,i=t.length;n+~]|"+tt+")"+tt+"*"),ut=new RegExp("="+tt+"*([^\\]'\"]*?)"+tt+"*\\]","g"),lt=new RegExp(it),ct=new RegExp("^"+et+"$"),dt={ID:new RegExp("^#("+et+")"),CLASS:new RegExp("^\\.("+et+")"),TAG:new RegExp("^("+et+"|[*])"),ATTR:new RegExp("^"+nt),PSEUDO:new RegExp("^"+it),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+tt+"*(even|odd|(([+-]|)(\\d*)n|)"+tt+"*(?:([+-]|)"+tt+"*(\\d+)|))"+tt+"*\\)|)","i"),bool:new RegExp("^(?:"+Q+")$","i"),needsContext:new RegExp("^"+tt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+tt+"*((?:-\\d)?\\d*)"+tt+"*\\)|)(?=[^-]|$)","i")},ht=/^(?:input|select|textarea|button)$/i,ft=/^h\d$/i,pt=/^[^{]+\{\s*\[native \w/,mt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,vt=/[+~]/,_t=new RegExp("\\\\([\\da-f]{1,6}"+tt+"?|("+tt+")|.)","ig"),gt=function(t,e,n){var i="0x"+e-65536;return i!==i||n?e:i<0?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},yt=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,bt=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},xt=function(){C()},Mt=h(function(t){return!0===t.disabled&&("form"in t||"label"in t)},{dir:"parentNode",next:"legend"});try{X.apply(q=K.call($.childNodes),$.childNodes),q[$.childNodes.length].nodeType}catch(t){X={apply:q.length?function(t,e){G.apply(t,K.call(e))}:function(t,e){for(var n=t.length,i=0;t[n++]=e[i++];);t.length=n-1}}}b=e.support={},k=e.isXML=function(t){var e=t&&(t.ownerDocument||t).documentElement;return!!e&&"HTML"!==e.nodeName},C=e.setDocument=function(t){var e,n,i=t?t.ownerDocument||t:$;return i!==O&&9===i.nodeType&&i.documentElement?(O=i,j=O.documentElement,V=!k(O),$!==O&&(n=O.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",xt,!1):n.attachEvent&&n.attachEvent("onunload",xt)),b.attributes=r(function(t){return t.className="i",!t.getAttribute("className")}),b.getElementsByTagName=r(function(t){return t.appendChild(O.createComment("")),!t.getElementsByTagName("*").length}),b.getElementsByClassName=pt.test(O.getElementsByClassName),b.getById=r(function(t){return j.appendChild(t).id=E,!O.getElementsByName||!O.getElementsByName(E).length}),b.getById?(x.filter.ID=function(t){var e=t.replace(_t,gt);return function(t){return t.getAttribute("id")===e}},x.find.ID=function(t,e){if(void 0!==e.getElementById&&V){var n=e.getElementById(t);return n?[n]:[]}}):(x.filter.ID=function(t){var e=t.replace(_t,gt);return function(t){var n=void 0!==t.getAttributeNode&&t.getAttributeNode("id");return n&&n.value===e}},x.find.ID=function(t,e){if(void 0!==e.getElementById&&V){var n,i,r,s=e.getElementById(t);if(s){if((n=s.getAttributeNode("id"))&&n.value===t)return[s];for(r=e.getElementsByName(t),i=0;s=r[i++];)if((n=s.getAttributeNode("id"))&&n.value===t)return[s]}return[]}}),x.find.TAG=b.getElementsByTagName?function(t,e){return void 0!==e.getElementsByTagName?e.getElementsByTagName(t):b.qsa?e.querySelectorAll(t):void 0}:function(t,e){var n,i=[],r=0,s=e.getElementsByTagName(t);if("*"===t){for(;n=s[r++];)1===n.nodeType&&i.push(n);return i}return s},x.find.CLASS=b.getElementsByClassName&&function(t,e){if(void 0!==e.getElementsByClassName&&V)return e.getElementsByClassName(t)},P=[],A=[],(b.qsa=pt.test(O.querySelectorAll))&&(r(function(t){j.appendChild(t).innerHTML="",t.querySelectorAll("[msallowcapture^='']").length&&A.push("[*^$]="+tt+"*(?:''|\"\")"),t.querySelectorAll("[selected]").length||A.push("\\["+tt+"*(?:value|"+Q+")"),t.querySelectorAll("[id~="+E+"-]").length||A.push("~="),t.querySelectorAll(":checked").length||A.push(":checked"),t.querySelectorAll("a#"+E+"+*").length||A.push(".#.+[+~]")}),r(function(t){t.innerHTML="";var e=O.createElement("input");e.setAttribute("type","hidden"),t.appendChild(e).setAttribute("name","D"),t.querySelectorAll("[name=d]").length&&A.push("name"+tt+"*[*^$|!~]?="),2!==t.querySelectorAll(":enabled").length&&A.push(":enabled",":disabled"),j.appendChild(t).disabled=!0,2!==t.querySelectorAll(":disabled").length&&A.push(":enabled",":disabled"),t.querySelectorAll("*,:x"),A.push(",.*:")})),(b.matchesSelector=pt.test(I=j.matches||j.webkitMatchesSelector||j.mozMatchesSelector||j.oMatchesSelector||j.msMatchesSelector))&&r(function(t){b.disconnectedMatch=I.call(t,"*"),I.call(t,"[s!='']:x"),P.push("!=",it)}),A=A.length&&new RegExp(A.join("|")),P=P.length&&new RegExp(P.join("|")),e=pt.test(j.compareDocumentPosition),H=e||pt.test(j.contains)?function(t,e){var n=9===t.nodeType?t.documentElement:t,i=e&&e.parentNode;return t===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):t.compareDocumentPosition&&16&t.compareDocumentPosition(i)))}:function(t,e){if(e)for(;e=e.parentNode;)if(e===t)return!0;return!1},z=e?function(t,e){if(t===e)return Y=!0,0;var n=!t.compareDocumentPosition-!e.compareDocumentPosition;return n||(n=(t.ownerDocument||t)===(e.ownerDocument||e)?t.compareDocumentPosition(e):1,1&n||!b.sortDetached&&e.compareDocumentPosition(t)===n?t===O||t.ownerDocument===$&&H($,t)?-1:e===O||e.ownerDocument===$&&H($,e)?1:D?Z(D,t)-Z(D,e):0:4&n?-1:1)}:function(t,e){if(t===e)return Y=!0,0;var n,i=0,r=t.parentNode,s=e.parentNode,o=[t],u=[e];if(!r||!s)return t===O?-1:e===O?1:r?-1:s?1:D?Z(D,t)-Z(D,e):0;if(r===s)return a(t,e);for(n=t;n=n.parentNode;)o.unshift(n);for(n=e;n=n.parentNode;)u.unshift(n);for(;o[i]===u[i];)i++;return i?a(o[i],u[i]):o[i]===$?-1:u[i]===$?1:0},O):O},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==O&&C(t),n=n.replace(ut,"='$1']"),b.matchesSelector&&V&&!R[n+" "]&&(!P||!P.test(n))&&(!A||!A.test(n)))try{var i=I.call(t,n);if(i||b.disconnectedMatch||t.document&&11!==t.document.nodeType)return i}catch(t){}return e(n,O,null,[t]).length>0},e.contains=function(t,e){return(t.ownerDocument||t)!==O&&C(t),H(t,e)},e.attr=function(t,e){(t.ownerDocument||t)!==O&&C(t);var n=x.attrHandle[e.toLowerCase()],i=n&&U.call(x.attrHandle,e.toLowerCase())?n(t,e,!V):void 0;return void 0!==i?i:b.attributes||!V?t.getAttribute(e):(i=t.getAttributeNode(e))&&i.specified?i.value:null},e.escape=function(t){return(t+"").replace(yt,bt)},e.error=function(t){throw new Error("Syntax error, unrecognized expression: "+t)},e.uniqueSort=function(t){var e,n=[],i=0,r=0;if(Y=!b.detectDuplicates,D=!b.sortStable&&t.slice(0),t.sort(z),Y){for(;e=t[r++];)e===t[r]&&(i=n.push(r));for(;i--;)t.splice(n[i],1)}return D=null,t},M=e.getText=function(t){var e,n="",i=0,r=t.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof t.textContent)return t.textContent;for(t=t.firstChild;t;t=t.nextSibling)n+=M(t)}else if(3===r||4===r)return t.nodeValue}else for(;e=t[i++];)n+=M(e);return n},x=e.selectors={cacheLength:50,createPseudo:i,match:dt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(t){return t[1]=t[1].replace(_t,gt),t[3]=(t[3]||t[4]||t[5]||"").replace(_t,gt),"~="===t[2]&&(t[3]=" "+t[3]+" "),t.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(t){var e,n=!t[6]&&t[2];return dt.CHILD.test(t[0])?null:(t[3]?t[2]=t[4]||t[5]||"":n&<.test(n)&&(e=w(n,!0))&&(e=n.indexOf(")",n.length-e)-n.length)&&(t[0]=t[0].slice(0,e),t[2]=n.slice(0,e)),t.slice(0,3))}},filter:{TAG:function(t){var e=t.replace(_t,gt).toLowerCase();return"*"===t?function(){return!0}:function(t){return t.nodeName&&t.nodeName.toLowerCase()===e}},CLASS:function(t){var e=N[t+" "];return e||(e=new RegExp("(^|"+tt+")"+t+"("+tt+"|$)"))&&N(t,function(t){return e.test("string"==typeof t.className&&t.className||void 0!==t.getAttribute&&t.getAttribute("class")||"")})},ATTR:function(t,n,i){return function(r){var s=e.attr(r,t);return null==s?"!="===n:!n||(s+="","="===n?s===i:"!="===n?s!==i:"^="===n?i&&0===s.indexOf(i):"*="===n?i&&s.indexOf(i)>-1:"$="===n?i&&s.slice(-i.length)===i:"~="===n?(" "+s.replace(rt," ")+" ").indexOf(i)>-1:"|="===n&&(s===i||s.slice(0,i.length+1)===i+"-"))}},CHILD:function(t,e,n,i,r){var s="nth"!==t.slice(0,3),a="last"!==t.slice(-4),o="of-type"===e;return 1===i&&0===r?function(t){return!!t.parentNode}:function(e,n,u){var l,c,d,h,f,p,m=s!==a?"nextSibling":"previousSibling",v=e.parentNode,_=o&&e.nodeName.toLowerCase(),g=!u&&!o,y=!1;if(v){if(s){for(;m;){for(h=e;h=h[m];)if(o?h.nodeName.toLowerCase()===_:1===h.nodeType)return!1;p=m="only"===t&&!p&&"nextSibling"}return!0}if(p=[a?v.firstChild:v.lastChild],a&&g){for(h=v,d=h[E]||(h[E]={}),c=d[h.uniqueID]||(d[h.uniqueID]={}),l=c[t]||[],f=l[0]===F&&l[1],y=f&&l[2],h=f&&v.childNodes[f];h=++f&&h&&h[m]||(y=f=0)||p.pop();)if(1===h.nodeType&&++y&&h===e){c[t]=[F,f,y];break}}else if(g&&(h=e,d=h[E]||(h[E]={}),c=d[h.uniqueID]||(d[h.uniqueID]={}),l=c[t]||[],f=l[0]===F&&l[1],y=f),!1===y)for(;(h=++f&&h&&h[m]||(y=f=0)||p.pop())&&((o?h.nodeName.toLowerCase()!==_:1!==h.nodeType)||!++y||(g&&(d=h[E]||(h[E]={}),c=d[h.uniqueID]||(d[h.uniqueID]={}),c[t]=[F,y]),h!==e)););return(y-=r)===i||y%i==0&&y/i>=0}}},PSEUDO:function(t,n){var r,s=x.pseudos[t]||x.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return s[E]?s(n):s.length>1?(r=[t,t,"",n],x.setFilters.hasOwnProperty(t.toLowerCase())?i(function(t,e){for(var i,r=s(t,n),a=r.length;a--;)i=Z(t,r[a]),t[i]=!(e[i]=r[a])}):function(t){return s(t,0,r)}):s}},pseudos:{not:i(function(t){var e=[],n=[],r=L(t.replace(st,"$1"));return r[E]?i(function(t,e,n,i){for(var s,a=r(t,null,i,[]),o=t.length;o--;)(s=a[o])&&(t[o]=!(e[o]=s))}):function(t,i,s){return e[0]=t,r(e,null,s,n),e[0]=null,!n.pop()}}),has:i(function(t){return function(n){return e(t,n).length>0}}),contains:i(function(t){return t=t.replace(_t,gt),function(e){return(e.textContent||e.innerText||M(e)).indexOf(t)>-1}}),lang:i(function(t){return ct.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(_t,gt).toLowerCase(),function(e){var n;do{if(n=V?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(n=n.toLowerCase())===t||0===n.indexOf(t+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var n=t.location&&t.location.hash;return n&&n.slice(1)===e.id},root:function(t){return t===j},focus:function(t){return t===O.activeElement&&(!O.hasFocus||O.hasFocus())&&!!(t.type||t.href||~t.tabIndex)},enabled:o(!1),disabled:o(!0),checked:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&!!t.checked||"option"===e&&!!t.selected},selected:function(t){return t.parentNode&&t.parentNode.selectedIndex,!0===t.selected},empty:function(t){for(t=t.firstChild;t;t=t.nextSibling)if(t.nodeType<6)return!1;return!0},parent:function(t){return!x.pseudos.empty(t)},header:function(t){return ft.test(t.nodeName)},input:function(t){return ht.test(t.nodeName)},button:function(t){var e=t.nodeName.toLowerCase();return"input"===e&&"button"===t.type||"button"===e},text:function(t){var e;return"input"===t.nodeName.toLowerCase()&&"text"===t.type&&(null==(e=t.getAttribute("type"))||"text"===e.toLowerCase())},first:u(function(){return[0]}),last:u(function(t,e){return[e-1]}),eq:u(function(t,e,n){return[n<0?n+e:n]}),even:u(function(t,e){for(var n=0;n=0;)t.push(i);return t}),gt:u(function(t,e,n){for(var i=n<0?n+e:n;++i2&&"ID"===(a=s[0]).type&&9===e.nodeType&&V&&x.relative[s[1].type]){if(!(e=(x.find.ID(a.matches[0].replace(_t,gt),e)||[])[0]))return n;c&&(e=e.parentNode),t=t.slice(s.shift().value.length)}for(r=dt.needsContext.test(t)?0:s.length;r--&&(a=s[r],!x.relative[o=a.type]);)if((u=x.find[o])&&(i=u(a.matches[0].replace(_t,gt),vt.test(s[0].type)&&l(e.parentNode)||e))){if(s.splice(r,1),!(t=i.length&&d(s)))return X.apply(n,i),n;break}}return(c||L(t,h))(i,e,!V,n,!e||vt.test(t)&&l(e.parentNode)||e),n},b.sortStable=E.split("").sort(z).join("")===E,b.detectDuplicates=!!Y,C(),b.sortDetached=r(function(t){return 1&t.compareDocumentPosition(O.createElement("fieldset"))}),r(function(t){return t.innerHTML="","#"===t.firstChild.getAttribute("href")})||s("type|href|height|width",function(t,e,n){if(!n)return t.getAttribute(e,"type"===e.toLowerCase()?1:2)}),b.attributes&&r(function(t){return t.innerHTML="",t.firstChild.setAttribute("value",""),""===t.firstChild.getAttribute("value")})||s("value",function(t,e,n){if(!n&&"input"===t.nodeName.toLowerCase())return t.defaultValue}),r(function(t){return null==t.getAttribute("disabled")})||s(Q,function(t,e,n){var i;if(!n)return!0===t[e]?e.toLowerCase():(i=t.getAttributeNode(e))&&i.specified?i.value:null}),e}(n);Lt.find=St,Lt.expr=St.selectors,Lt.expr[":"]=Lt.expr.pseudos,Lt.uniqueSort=Lt.unique=St.uniqueSort,Lt.text=St.getText,Lt.isXMLDoc=St.isXML,Lt.contains=St.contains,Lt.escapeSelector=St.escape;var Dt=function(t,e,n){for(var i=[],r=void 0!==n;(t=t[e])&&9!==t.nodeType;)if(1===t.nodeType){if(r&&Lt(t).is(n))break;i.push(t)}return i},Yt=function(t,e){for(var n=[];t;t=t.nextSibling)1===t.nodeType&&t!==e&&n.push(t);return n},Ct=Lt.expr.match.needsContext,Ot=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;Lt.filter=function(t,e,n){var i=e[0];return n&&(t=":not("+t+")"),1===e.length&&1===i.nodeType?Lt.find.matchesSelector(i,t)?[i]:[]:Lt.find.matches(t,Lt.grep(e,function(t){return 1===t.nodeType}))},Lt.fn.extend({find:function(t){var e,n,i=this.length,r=this;if("string"!=typeof t)return this.pushStack(Lt(t).filter(function(){for(e=0;e1?Lt.uniqueSort(n):n},filter:function(t){return this.pushStack(c(this,t||[],!1))},not:function(t){return this.pushStack(c(this,t||[],!0))},is:function(t){return!!c(this,"string"==typeof t&&Ct.test(t)?Lt(t):t||[],!1).length}});var jt,Vt=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(Lt.fn.init=function(t,e,n){var i,r;if(!t)return this;if(n=n||jt,"string"==typeof t){if(!(i="<"===t[0]&&">"===t[t.length-1]&&t.length>=3?[null,t,null]:Vt.exec(t))||!i[1]&&e)return!e||e.jquery?(e||n).find(t):this.constructor(e).find(t);if(i[1]){if(e=e instanceof Lt?e[0]:e,Lt.merge(this,Lt.parseHTML(i[1],e&&e.nodeType?e.ownerDocument||e:ct,!0)),Ot.test(i[1])&&Lt.isPlainObject(e))for(i in e)Mt(this[i])?this[i](e[i]):this.attr(i,e[i]);return this}return r=ct.getElementById(i[2]),r&&(this[0]=r,this.length=1),this}return t.nodeType?(this[0]=t,this.length=1,this):Mt(t)?void 0!==n.ready?n.ready(t):t(Lt):Lt.makeArray(t,this)}).prototype=Lt.fn,jt=Lt(ct);var At=/^(?:parents|prev(?:Until|All))/,Pt={children:!0,contents:!0,next:!0,prev:!0};Lt.fn.extend({has:function(t){var e=Lt(t,this),n=e.length;return this.filter(function(){for(var t=0;t-1:1===n.nodeType&&Lt.find.matchesSelector(n,t))){s.push(n);break}return this.pushStack(s.length>1?Lt.uniqueSort(s):s)},index:function(t){return t?"string"==typeof t?mt.call(Lt(t),this[0]):mt.call(this,t.jquery?t[0]:t):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(t,e){return this.pushStack(Lt.uniqueSort(Lt.merge(this.get(),Lt(t,e))))},addBack:function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}}),Lt.each({parent:function(t){var e=t.parentNode;return e&&11!==e.nodeType?e:null},parents:function(t){return Dt(t,"parentNode")},parentsUntil:function(t,e,n){return Dt(t,"parentNode",n)},next:function(t){return d(t,"nextSibling")},prev:function(t){return d(t,"previousSibling")},nextAll:function(t){return Dt(t,"nextSibling")},prevAll:function(t){return Dt(t,"previousSibling")},nextUntil:function(t,e,n){return Dt(t,"nextSibling",n)},prevUntil:function(t,e,n){return Dt(t,"previousSibling",n)},siblings:function(t){return Yt((t.parentNode||{}).firstChild,t)},children:function(t){return Yt(t.firstChild)},contents:function(t){return l(t,"iframe")?t.contentDocument:(l(t,"template")&&(t=t.content||t),Lt.merge([],t.childNodes))}},function(t,e){Lt.fn[t]=function(n,i){var r=Lt.map(this,e,n);return"Until"!==t.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=Lt.filter(i,r)),this.length>1&&(Pt[t]||Lt.uniqueSort(r),At.test(t)&&r.reverse()),this.pushStack(r)}});var It=/[^\x20\t\r\n\f]+/g;Lt.Callbacks=function(t){t="string"==typeof t?h(t):Lt.extend({},t);var e,n,i,r,s=[],a=[],u=-1,l=function(){for(r=r||t.once,i=e=!0;a.length;u=-1)for(n=a.shift();++u-1;)s.splice(n,1),n<=u&&u--}),this},has:function(t){return t?Lt.inArray(t,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return r=a=[],s=n="",this},disabled:function(){return!s},lock:function(){return r=a=[],n||e||(s=n=""),this},locked:function(){return!!r},fireWith:function(t,n){return r||(n=n||[],n=[t,n.slice?n.slice():n],a.push(n),e||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},Lt.extend({Deferred:function(t){var e=[["notify","progress",Lt.Callbacks("memory"),Lt.Callbacks("memory"),2],["resolve","done",Lt.Callbacks("once memory"),Lt.Callbacks("once memory"),0,"resolved"],["reject","fail",Lt.Callbacks("once memory"),Lt.Callbacks("once memory"),1,"rejected"]],i="pending",r={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},catch:function(t){return r.then(null,t)},pipe:function(){var t=arguments;return Lt.Deferred(function(n){Lt.each(e,function(e,i){var r=Mt(t[i[4]])&&t[i[4]];s[i[1]](function(){var t=r&&r.apply(this,arguments);t&&Mt(t.promise)?t.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,r?[t]:arguments)})}),t=null}).promise()},then:function(t,i,r){function s(t,e,i,r){return function(){var o=this,u=arguments,l=function(){var n,l;if(!(t=a&&(i!==p&&(o=void 0,u=[n]),e.rejectWith(o,u))}};t?c():(Lt.Deferred.getStackHook&&(c.stackTrace=Lt.Deferred.getStackHook()),n.setTimeout(c))}}var a=0;return Lt.Deferred(function(n){e[0][3].add(s(0,n,Mt(r)?r:f,n.notifyWith)),e[1][3].add(s(0,n,Mt(t)?t:f)),e[2][3].add(s(0,n,Mt(i)?i:p))}).promise()},promise:function(t){return null!=t?Lt.extend(t,r):r}},s={};return Lt.each(e,function(t,n){var a=n[2],o=n[5];r[n[1]]=a.add,o&&a.add(function(){i=o},e[3-t][2].disable,e[3-t][3].disable,e[0][2].lock,e[0][3].lock),a.add(n[3].fire),s[n[0]]=function(){return s[n[0]+"With"](this===s?void 0:this,arguments),this},s[n[0]+"With"]=a.fireWith}),r.promise(s),t&&t.call(s,s),s},when:function(t){var e=arguments.length,n=e,i=Array(n),r=ht.call(arguments),s=Lt.Deferred(),a=function(t){return function(n){i[t]=this,r[t]=arguments.length>1?ht.call(arguments):n,--e||s.resolveWith(i,r)}};if(e<=1&&(m(t,s.done(a(n)).resolve,s.reject,!e),"pending"===s.state()||Mt(r[n]&&r[n].then)))return s.then();for(;n--;)m(r[n],a(n),s.reject);return s.promise()}});var Ht=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;Lt.Deferred.exceptionHook=function(t,e){n.console&&n.console.warn&&t&&Ht.test(t.name)&&n.console.warn("jQuery.Deferred exception: "+t.message,t.stack,e)},Lt.readyException=function(t){n.setTimeout(function(){throw t})};var Et=Lt.Deferred();Lt.fn.ready=function(t){return Et.then(t).catch(function(t){Lt.readyException(t)}),this},Lt.extend({isReady:!1,readyWait:1,ready:function(t){(!0===t?--Lt.readyWait:Lt.isReady)||(Lt.isReady=!0,!0!==t&&--Lt.readyWait>0||Et.resolveWith(ct,[Lt]))}}),Lt.ready.then=Et.then,"complete"===ct.readyState||"loading"!==ct.readyState&&!ct.documentElement.doScroll?n.setTimeout(Lt.ready):(ct.addEventListener("DOMContentLoaded",v),n.addEventListener("load",v));var $t=function(t,e,n,i,r,s,a){var u=0,l=t.length,c=null==n;if("object"===o(n)){r=!0;for(u in n)$t(t,e,u,n[u],!0,s,a)}else if(void 0!==i&&(r=!0,Mt(i)||(a=!0),c&&(a?(e.call(t,i),e=null):(c=e,e=function(t,e,n){return c.call(Lt(t),n)})),e))for(;u1,null,!0)},removeData:function(t){return this.each(function(){Rt.remove(this,t)})}}),Lt.extend({queue:function(t,e,n){var i;if(t)return e=(e||"fx")+"queue",i=Wt.get(t,e),n&&(!i||Array.isArray(n)?i=Wt.access(t,e,Lt.makeArray(n)):i.push(n)),i||[]},dequeue:function(t,e){e=e||"fx";var n=Lt.queue(t,e),i=n.length,r=n.shift(),s=Lt._queueHooks(t,e),a=function(){Lt.dequeue(t,e)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===e&&n.unshift("inprogress"),delete s.stop,r.call(t,a,s)),!i&&s&&s.empty.fire()},_queueHooks:function(t,e){var n=e+"queueHooks";return Wt.get(t,n)||Wt.access(t,n,{empty:Lt.Callbacks("once memory").add(function(){Wt.remove(t,[e+"queue",n])})})}}),Lt.fn.extend({queue:function(t,e){var n=2;return"string"!=typeof t&&(e=t,t="fx",n--),arguments.length\x20\t\r\n\f]+)/i,ee=/^$|^module$|\/(?:java|ecma)script/i,ne={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ne.optgroup=ne.option,ne.tbody=ne.tfoot=ne.colgroup=ne.caption=ne.thead,ne.th=ne.td;var ie=/<|&#?\w+;/;!function(){var t=ct.createDocumentFragment(),e=t.appendChild(ct.createElement("div")),n=ct.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),xt.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",xt.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var re=ct.documentElement,se=/^key/,ae=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,oe=/^([^.]*)(?:\.(.+)|)/;Lt.event={global:{},add:function(t,e,n,i,r){var s,a,o,u,l,c,d,h,f,p,m,v=Wt.get(t);if(v)for(n.handler&&(s=n,n=s.handler,r=s.selector),r&&Lt.find.matchesSelector(re,r),n.guid||(n.guid=Lt.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return void 0!==Lt&&Lt.event.triggered!==e.type?Lt.event.dispatch.apply(t,arguments):void 0}),e=(e||"").match(It)||[""],l=e.length;l--;)o=oe.exec(e[l])||[],f=m=o[1],p=(o[2]||"").split(".").sort(),f&&(d=Lt.event.special[f]||{},f=(r?d.delegateType:d.bindType)||f,d=Lt.event.special[f]||{},c=Lt.extend({type:f,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&Lt.expr.match.needsContext.test(r),namespace:p.join(".")},s),(h=u[f])||(h=u[f]=[],h.delegateCount=0,d.setup&&!1!==d.setup.call(t,i,p,a)||t.addEventListener&&t.addEventListener(f,a)),d.add&&(d.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),r?h.splice(h.delegateCount++,0,c):h.push(c),Lt.event.global[f]=!0)},remove:function(t,e,n,i,r){var s,a,o,u,l,c,d,h,f,p,m,v=Wt.hasData(t)&&Wt.get(t);if(v&&(u=v.events)){for(e=(e||"").match(It)||[""],l=e.length;l--;)if(o=oe.exec(e[l])||[],f=m=o[1],p=(o[2]||"").split(".").sort(),f){for(d=Lt.event.special[f]||{},f=(i?d.delegateType:d.bindType)||f,h=u[f]||[],o=o[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=s=h.length;s--;)c=h[s],!r&&m!==c.origType||n&&n.guid!==c.guid||o&&!o.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(h.splice(s,1),c.selector&&h.delegateCount--,d.remove&&d.remove.call(t,c));a&&!h.length&&(d.teardown&&!1!==d.teardown.call(t,p,v.handle)||Lt.removeEvent(t,f,v.handle),delete u[f])}else for(f in u)Lt.event.remove(t,f+e[l],n,i,!0);Lt.isEmptyObject(u)&&Wt.remove(t,"handle events")}},dispatch:function(t){var e,n,i,r,s,a,o=Lt.event.fix(t),u=new Array(arguments.length),l=(Wt.get(this,"events")||{})[o.type]||[],c=Lt.event.special[o.type]||{};for(u[0]=o,e=1;e=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==t.type||!0!==l.disabled)){for(s=[],a={},n=0;n-1:Lt.find(r,this,null,[l]).length),a[r]&&s.push(i);s.length&&o.push({elem:l,handlers:s})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,le=/\s*$/g;Lt.extend({htmlPrefilter:function(t){return t.replace(ue,"<$1>")},clone:function(t,e,n){var i,r,s,a,o=t.cloneNode(!0),u=Lt.contains(t.ownerDocument,t);if(!(xt.noCloneChecked||1!==t.nodeType&&11!==t.nodeType||Lt.isXMLDoc(t)))for(a=L(o),s=L(t),i=0,r=s.length;i0&&T(a,!u&&L(t,"script")),o},cleanData:function(t){for(var e,n,i,r=Lt.event.special,s=0;void 0!==(n=t[s]);s++)if(Nt(n)){if(e=n[Wt.expando]){if(e.events)for(i in e.events)r[i]?Lt.event.remove(n,i):Lt.removeEvent(n,i,e.handle);n[Wt.expando]=void 0}n[Rt.expando]&&(n[Rt.expando]=void 0)}}}),Lt.fn.extend({detach:function(t){return E(this,t,!0)},remove:function(t){return E(this,t)},text:function(t){return $t(this,function(t){return void 0===t?Lt.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=t)})},null,t,arguments.length)},append:function(){return H(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){j(this,t).appendChild(t)}})},prepend:function(){return H(this,arguments,function(t){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var e=j(this,t);e.insertBefore(t,e.firstChild)}})},before:function(){return H(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this)})},after:function(){return H(this,arguments,function(t){this.parentNode&&this.parentNode.insertBefore(t,this.nextSibling)})},empty:function(){for(var t,e=0;null!=(t=this[e]);e++)1===t.nodeType&&(Lt.cleanData(L(t,!1)),t.textContent="");return this},clone:function(t,e){return t=null!=t&&t,e=null==e?t:e,this.map(function(){return Lt.clone(this,t,e)})},html:function(t){return $t(this,function(t){var e=this[0]||{},n=0,i=this.length;if(void 0===t&&1===e.nodeType)return e.innerHTML;if("string"==typeof t&&!le.test(t)&&!ne[(te.exec(t)||["",""])[1].toLowerCase()]){t=Lt.htmlPrefilter(t);try{for(;n1)}}),Lt.Tween=U,U.prototype={constructor:U,init:function(t,e,n,i,r,s){this.elem=t,this.prop=n,this.easing=r||Lt.easing._default,this.options=e,this.start=this.now=this.cur(),this.end=i,this.unit=s||(Lt.cssNumber[n]?"":"px")},cur:function(){var t=U.propHooks[this.prop];return t&&t.get?t.get(this):U.propHooks._default.get(this)},run:function(t){var e,n=U.propHooks[this.prop];return this.options.duration?this.pos=e=Lt.easing[this.easing](t,this.options.duration*t,0,1,this.options.duration):this.pos=e=t,this.now=(this.end-this.start)*e+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):U.propHooks._default.set(this),this}},U.prototype.init.prototype=U.prototype,U.propHooks={_default:{get:function(t){var e;return 1!==t.elem.nodeType||null!=t.elem[t.prop]&&null==t.elem.style[t.prop]?t.elem[t.prop]:(e=Lt.css(t.elem,t.prop,""),e&&"auto"!==e?e:0)},set:function(t){Lt.fx.step[t.prop]?Lt.fx.step[t.prop](t):1!==t.elem.nodeType||null==t.elem.style[Lt.cssProps[t.prop]]&&!Lt.cssHooks[t.prop]?t.elem[t.prop]=t.now:Lt.style(t.elem,t.prop,t.now+t.unit)}}},U.propHooks.scrollTop=U.propHooks.scrollLeft={set:function(t){t.elem.nodeType&&t.elem.parentNode&&(t.elem[t.prop]=t.now)}},Lt.easing={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},_default:"swing"},Lt.fx=U.prototype.init,Lt.fx.step={};var xe,Me,ke=/^(?:toggle|show|hide)$/,we=/queueHooks$/;Lt.Animation=Lt.extend(Q,{tweeners:{"*":[function(t,e){var n=this.createTween(t,e);return M(n.elem,t,Jt.exec(e),n),n}]},tweener:function(t,e){Mt(t)?(e=t,t=["*"]):t=t.match(It);for(var n,i=0,r=t.length;i1)},removeAttr:function(t){return this.each(function(){Lt.removeAttr(this,t)})}}),Lt.extend({attr:function(t,e,n){var i,r,s=t.nodeType;if(3!==s&&8!==s&&2!==s)return void 0===t.getAttribute?Lt.prop(t,e,n):(1===s&&Lt.isXMLDoc(t)||(r=Lt.attrHooks[e.toLowerCase()]||(Lt.expr.match.bool.test(e)?Le:void 0)),void 0!==n?null===n?void Lt.removeAttr(t,e):r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:(t.setAttribute(e,n+""),n):r&&"get"in r&&null!==(i=r.get(t,e))?i:(i=Lt.find.attr(t,e),null==i?void 0:i))},attrHooks:{type:{set:function(t,e){if(!xt.radioValue&&"radio"===e&&l(t,"input")){var n=t.value;return t.setAttribute("type",e),n&&(t.value=n),e}}}},removeAttr:function(t,e){var n,i=0,r=e&&e.match(It);if(r&&1===t.nodeType)for(;n=r[i++];)t.removeAttribute(n)}}),Le={set:function(t,e,n){return!1===e?Lt.removeAttr(t,n):t.setAttribute(n,n),n}},Lt.each(Lt.expr.match.bool.source.match(/\w+/g),function(t,e){var n=Te[e]||Lt.find.attr;Te[e]=function(t,e,i){var r,s,a=e.toLowerCase();return i||(s=Te[a],Te[a]=r,r=null!=n(t,e,i)?a:null,Te[a]=s),r}});var Se=/^(?:input|select|textarea|button)$/i,De=/^(?:a|area)$/i;Lt.fn.extend({prop:function(t,e){return $t(this,Lt.prop,t,e,arguments.length>1)},removeProp:function(t){return this.each(function(){delete this[Lt.propFix[t]||t]})}}),Lt.extend({prop:function(t,e,n){var i,r,s=t.nodeType;if(3!==s&&8!==s&&2!==s)return 1===s&&Lt.isXMLDoc(t)||(e=Lt.propFix[e]||e,r=Lt.propHooks[e]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(t,n,e))?i:t[e]=n:r&&"get"in r&&null!==(i=r.get(t,e))?i:t[e]},propHooks:{tabIndex:{get:function(t){var e=Lt.find.attr(t,"tabindex");return e?parseInt(e,10):Se.test(t.nodeName)||De.test(t.nodeName)&&t.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),xt.optSelected||(Lt.propHooks.selected={get:function(t){var e=t.parentNode;return e&&e.parentNode&&e.parentNode.selectedIndex,null},set:function(t){var e=t.parentNode;e&&(e.selectedIndex,e.parentNode&&e.parentNode.selectedIndex)}}),Lt.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){Lt.propFix[this.toLowerCase()]=this}),Lt.fn.extend({addClass:function(t){var e,n,i,r,s,a,o,u=0;if(Mt(t))return this.each(function(e){Lt(this).addClass(t.call(this,e,et(this)))});if(e=nt(t),e.length)for(;n=this[u++];)if(r=et(n),i=1===n.nodeType&&" "+tt(r)+" "){for(a=0;s=e[a++];)i.indexOf(" "+s+" ")<0&&(i+=s+" ");o=tt(i),r!==o&&n.setAttribute("class",o)}return this},removeClass:function(t){var e,n,i,r,s,a,o,u=0;if(Mt(t))return this.each(function(e){Lt(this).removeClass(t.call(this,e,et(this)))});if(!arguments.length)return this.attr("class","");if(e=nt(t),e.length)for(;n=this[u++];)if(r=et(n),i=1===n.nodeType&&" "+tt(r)+" "){for(a=0;s=e[a++];)for(;i.indexOf(" "+s+" ")>-1;)i=i.replace(" "+s+" "," ");o=tt(i),r!==o&&n.setAttribute("class",o)}return this},toggleClass:function(t,e){var n=typeof t,i="string"===n||Array.isArray(t);return"boolean"==typeof e&&i?e?this.addClass(t):this.removeClass(t):Mt(t)?this.each(function(n){Lt(this).toggleClass(t.call(this,n,et(this),e),e)}):this.each(function(){var e,r,s,a;if(i)for(r=0,s=Lt(this),a=nt(t);e=a[r++];)s.hasClass(e)?s.removeClass(e):s.addClass(e);else void 0!==t&&"boolean"!==n||(e=et(this),e&&Wt.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===t?"":Wt.get(this,"__className__")||""))})},hasClass:function(t){var e,n,i=0;for(e=" "+t+" ";n=this[i++];)if(1===n.nodeType&&(" "+tt(et(n))+" ").indexOf(e)>-1)return!0;return!1}});var Ye=/\r/g;Lt.fn.extend({val:function(t){var e,n,i,r=this[0];{if(arguments.length)return i=Mt(t),this.each(function(n){var r;1===this.nodeType&&(r=i?t.call(this,n,Lt(this).val()):t,null==r?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=Lt.map(r,function(t){return null==t?"":t+""})),(e=Lt.valHooks[this.type]||Lt.valHooks[this.nodeName.toLowerCase()])&&"set"in e&&void 0!==e.set(this,r,"value")||(this.value=r))});if(r)return(e=Lt.valHooks[r.type]||Lt.valHooks[r.nodeName.toLowerCase()])&&"get"in e&&void 0!==(n=e.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(Ye,""):null==n?"":n)}}}),Lt.extend({valHooks:{option:{get:function(t){var e=Lt.find.attr(t,"value");return null!=e?e:tt(Lt.text(t))}},select:{get:function(t){var e,n,i,r=t.options,s=t.selectedIndex,a="select-one"===t.type,o=a?null:[],u=a?s+1:r.length;for(i=s<0?u:a?s:0;i-1)&&(n=!0);return n||(t.selectedIndex=-1),s}}}}),Lt.each(["radio","checkbox"],function(){Lt.valHooks[this]={set:function(t,e){if(Array.isArray(e))return t.checked=Lt.inArray(Lt(t).val(),e)>-1}},xt.checkOn||(Lt.valHooks[this].get=function(t){return null===t.getAttribute("value")?"on":t.value})}),xt.focusin="onfocusin"in n;var Ce=/^(?:focusinfocus|focusoutblur)$/,Oe=function(t){t.stopPropagation()};Lt.extend(Lt.event,{trigger:function(t,e,i,r){var s,a,o,u,l,c,d,h,f=[i||ct],p=gt.call(t,"type")?t.type:t,m=gt.call(t,"namespace")?t.namespace.split("."):[];if(a=h=o=i=i||ct,3!==i.nodeType&&8!==i.nodeType&&!Ce.test(p+Lt.event.triggered)&&(p.indexOf(".")>-1&&(m=p.split("."),p=m.shift(),m.sort()),l=p.indexOf(":")<0&&"on"+p,t=t[Lt.expando]?t:new Lt.Event(p,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=m.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),e=null==e?[t]:Lt.makeArray(e,[t]),d=Lt.event.special[p]||{},r||!d.trigger||!1!==d.trigger.apply(i,e))){if(!r&&!d.noBubble&&!kt(i)){for(u=d.delegateType||p,Ce.test(u+p)||(a=a.parentNode);a;a=a.parentNode)f.push(a),o=a;o===(i.ownerDocument||ct)&&f.push(o.defaultView||o.parentWindow||n)}for(s=0;(a=f[s++])&&!t.isPropagationStopped();)h=a,t.type=s>1?u:d.bindType||p,c=(Wt.get(a,"events")||{})[t.type]&&Wt.get(a,"handle"),c&&c.apply(a,e),(c=l&&a[l])&&c.apply&&Nt(a)&&(t.result=c.apply(a,e),!1===t.result&&t.preventDefault());return t.type=p,r||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(f.pop(),e)||!Nt(i)||l&&Mt(i[p])&&!kt(i)&&(o=i[l],o&&(i[l]=null),Lt.event.triggered=p,t.isPropagationStopped()&&h.addEventListener(p,Oe),i[p](),t.isPropagationStopped()&&h.removeEventListener(p,Oe),Lt.event.triggered=void 0,o&&(i[l]=o)),t.result}},simulate:function(t,e,n){var i=Lt.extend(new Lt.Event,n,{type:t,isSimulated:!0});Lt.event.trigger(i,null,e)}}),Lt.fn.extend({trigger:function(t,e){return this.each(function(){Lt.event.trigger(t,e,this)})},triggerHandler:function(t,e){var n=this[0];if(n)return Lt.event.trigger(t,e,n,!0)}}),xt.focusin||Lt.each({focus:"focusin",blur:"focusout"},function(t,e){var n=function(t){Lt.event.simulate(e,t.target,Lt.event.fix(t))};Lt.event.special[e]={setup:function(){var i=this.ownerDocument||this,r=Wt.access(i,e);r||i.addEventListener(t,n,!0),Wt.access(i,e,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this,r=Wt.access(i,e)-1;r?Wt.access(i,e,r):(i.removeEventListener(t,n,!0),Wt.remove(i,e))}}});var je=n.location,Ve=Date.now(),Ae=/\?/;Lt.parseXML=function(t){var e;if(!t||"string"!=typeof t)return null;try{e=(new n.DOMParser).parseFromString(t,"text/xml")}catch(t){e=void 0}return e&&!e.getElementsByTagName("parsererror").length||Lt.error("Invalid XML: "+t),e};var Pe=/\[\]$/,Ie=/\r?\n/g,He=/^(?:submit|button|image|reset|file)$/i,Ee=/^(?:input|select|textarea|keygen)/i;Lt.param=function(t,e){var n,i=[],r=function(t,e){var n=Mt(e)?e():e;i[i.length]=encodeURIComponent(t)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(t)||t.jquery&&!Lt.isPlainObject(t))Lt.each(t,function(){r(this.name,this.value)});else for(n in t)it(n,t[n],e,r);return i.join("&")},Lt.fn.extend({serialize:function(){return Lt.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var t=Lt.prop(this,"elements");return t?Lt.makeArray(t):this}).filter(function(){var t=this.type;return this.name&&!Lt(this).is(":disabled")&&Ee.test(this.nodeName)&&!He.test(t)&&(this.checked||!Qt.test(t))}).map(function(t,e){var n=Lt(this).val();return null==n?null:Array.isArray(n)?Lt.map(n,function(t){return{name:e.name,value:t.replace(Ie,"\r\n")}}):{name:e.name,value:n.replace(Ie,"\r\n")}}).get()}});var $e=/%20/g,Fe=/#.*$/,Be=/([?&])_=[^&]*/,Ne=/^(.*?):[ \t]*([^\r\n]*)$/gm,We=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Re=/^(?:GET|HEAD)$/,ze=/^\/\//,Ue={},qe={},Je="*/".concat("*"),Ge=ct.createElement("a");Ge.href=je.href,Lt.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:je.href,type:"GET",isLocal:We.test(je.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Je,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":Lt.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(t,e){return e?at(at(t,Lt.ajaxSettings),e):at(Lt.ajaxSettings,t)},ajaxPrefilter:rt(Ue),ajaxTransport:rt(qe),ajax:function(t,e){function i(t,e,i,o){var l,h,f,b,x,M=e;c||(c=!0,u&&n.clearTimeout(u),r=void 0,a=o||"",k.readyState=t>0?4:0,l=t>=200&&t<300||304===t,i&&(b=ot(p,k,i)),b=ut(p,b,k,l),l?(p.ifModified&&(x=k.getResponseHeader("Last-Modified"),x&&(Lt.lastModified[s]=x),(x=k.getResponseHeader("etag"))&&(Lt.etag[s]=x)),204===t||"HEAD"===p.type?M="nocontent":304===t?M="notmodified":(M=b.state,h=b.data,f=b.error,l=!f)):(f=M,!t&&M||(M="error",t<0&&(t=0))),k.status=t,k.statusText=(e||M)+"",l?_.resolveWith(m,[h,M,k]):_.rejectWith(m,[k,M,f]),k.statusCode(y),y=void 0,d&&v.trigger(l?"ajaxSuccess":"ajaxError",[k,p,l?h:f]),g.fireWith(m,[k,M]),d&&(v.trigger("ajaxComplete",[k,p]),--Lt.active||Lt.event.trigger("ajaxStop")))}"object"==typeof t&&(e=t,t=void 0),e=e||{};var r,s,a,o,u,l,c,d,h,f,p=Lt.ajaxSetup({},e),m=p.context||p,v=p.context&&(m.nodeType||m.jquery)?Lt(m):Lt.event,_=Lt.Deferred(),g=Lt.Callbacks("once memory"),y=p.statusCode||{},b={},x={},M="canceled",k={readyState:0,getResponseHeader:function(t){var e;if(c){if(!o)for(o={};e=Ne.exec(a);)o[e[1].toLowerCase()]=e[2];e=o[t.toLowerCase()]}return null==e?null:e},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(t,e){return null==c&&(t=x[t.toLowerCase()]=x[t.toLowerCase()]||t,b[t]=e),this},overrideMimeType:function(t){return null==c&&(p.mimeType=t),this},statusCode:function(t){var e;if(t)if(c)k.always(t[k.status]);else for(e in t)y[e]=[y[e],t[e]];return this},abort:function(t){var e=t||M;return r&&r.abort(e),i(0,e),this}};if(_.promise(k),p.url=((t||p.url||je.href)+"").replace(ze,je.protocol+"//"),p.type=e.method||e.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(It)||[""],null==p.crossDomain){l=ct.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Ge.protocol+"//"+Ge.host!=l.protocol+"//"+l.host}catch(t){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=Lt.param(p.data,p.traditional)),st(Ue,p,e,k),c)return k;d=Lt.event&&p.global,d&&0==Lt.active++&&Lt.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Re.test(p.type),s=p.url.replace(Fe,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace($e,"+")):(f=p.url.slice(s.length),p.data&&(p.processData||"string"==typeof p.data)&&(s+=(Ae.test(s)?"&":"?")+p.data,delete p.data),!1===p.cache&&(s=s.replace(Be,"$1"),f=(Ae.test(s)?"&":"?")+"_="+Ve+++f),p.url=s+f),p.ifModified&&(Lt.lastModified[s]&&k.setRequestHeader("If-Modified-Since",Lt.lastModified[s]),Lt.etag[s]&&k.setRequestHeader("If-None-Match",Lt.etag[s])),(p.data&&p.hasContent&&!1!==p.contentType||e.contentType)&&k.setRequestHeader("Content-Type",p.contentType),k.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Je+"; q=0.01":""):p.accepts["*"]);for(h in p.headers)k.setRequestHeader(h,p.headers[h]);if(p.beforeSend&&(!1===p.beforeSend.call(m,k,p)||c))return k.abort();if(M="abort",g.add(p.complete),k.done(p.success),k.fail(p.error),r=st(qe,p,e,k)){if(k.readyState=1,d&&v.trigger("ajaxSend",[k,p]),c)return k;p.async&&p.timeout>0&&(u=n.setTimeout(function(){k.abort("timeout")},p.timeout));try{c=!1,r.send(b,i)}catch(t){if(c)throw t;i(-1,t)}}else i(-1,"No Transport");return k},getJSON:function(t,e,n){return Lt.get(t,e,n,"json")},getScript:function(t,e){return Lt.get(t,void 0,e,"script")}}),Lt.each(["get","post"],function(t,e){Lt[e]=function(t,n,i,r){return Mt(n)&&(r=r||i,i=n,n=void 0),Lt.ajax(Lt.extend({url:t,type:e,dataType:r,data:n,success:i},Lt.isPlainObject(t)&&t))}}),Lt._evalUrl=function(t){return Lt.ajax({url:t,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},Lt.fn.extend({wrapAll:function(t){var e;return this[0]&&(Mt(t)&&(t=t.call(this[0])),e=Lt(t,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&e.insertBefore(this[0]),e.map(function(){for(var t=this;t.firstElementChild;)t=t.firstElementChild;return t}).append(this)),this},wrapInner:function(t){return Mt(t)?this.each(function(e){Lt(this).wrapInner(t.call(this,e))}):this.each(function(){var e=Lt(this),n=e.contents();n.length?n.wrapAll(t):e.append(t)})},wrap:function(t){var e=Mt(t);return this.each(function(n){Lt(this).wrapAll(e?t.call(this,n):t)})},unwrap:function(t){return this.parent(t).not("body").each(function(){Lt(this).replaceWith(this.childNodes)}),this}}),Lt.expr.pseudos.hidden=function(t){return!Lt.expr.pseudos.visible(t)},Lt.expr.pseudos.visible=function(t){return!!(t.offsetWidth||t.offsetHeight||t.getClientRects().length)},Lt.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(t){}};var Xe={0:200,1223:204},Ke=Lt.ajaxSettings.xhr();xt.cors=!!Ke&&"withCredentials"in Ke,xt.ajax=Ke=!!Ke,Lt.ajaxTransport(function(t){var e,i;if(xt.cors||Ke&&!t.crossDomain)return{send:function(r,s){var a,o=t.xhr();if(o.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)o[a]=t.xhrFields[a];t.mimeType&&o.overrideMimeType&&o.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)o.setRequestHeader(a,r[a]);e=function(t){return function(){e&&(e=i=o.onload=o.onerror=o.onabort=o.ontimeout=o.onreadystatechange=null,"abort"===t?o.abort():"error"===t?"number"!=typeof o.status?s(0,"error"):s(o.status,o.statusText):s(Xe[o.status]||o.status,o.statusText,"text"!==(o.responseType||"text")||"string"!=typeof o.responseText?{binary:o.response}:{text:o.responseText},o.getAllResponseHeaders()))}},o.onload=e(),i=o.onerror=o.ontimeout=e("error"),void 0!==o.onabort?o.onabort=i:o.onreadystatechange=function(){4===o.readyState&&n.setTimeout(function(){e&&i()})},e=e("abort");try{o.send(t.hasContent&&t.data||null)}catch(t){if(e)throw t}},abort:function(){e&&e()}}}),Lt.ajaxPrefilter(function(t){t.crossDomain&&(t.contents.script=!1)}),Lt.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(t){return Lt.globalEval(t),t}}}),Lt.ajaxPrefilter("script",function(t){void 0===t.cache&&(t.cache=!1),t.crossDomain&&(t.type="GET")}),Lt.ajaxTransport("script",function(t){if(t.crossDomain){var e,n;return{send:function(i,r){e=Lt("