From 7b5aa7d21c1f8f444ac2519d3aadad06bd0b3511 Mon Sep 17 00:00:00 2001 From: kicap1992 Date: Wed, 23 Jun 2021 18:05:51 +0800 Subject: [PATCH] project done before --- .gitignore | 8 + .vscode/plugins.json | 1 + .vscode/typings/cordova/cordova.d.ts | 80 + config.xml | 27 + jsconfig.json | 1 + package-lock.json | 743 + package.json | 36 + readme.rst | 15 + typings/cordova-typings.d.ts | 2 + www/assets/css/style.css | 1282 + www/assets/dist/css/lightbox.css | 204 + www/assets/dist/css/lightbox.min.css | 1 + www/assets/dist/images/close.png | Bin 0 -> 280 bytes www/assets/dist/images/loading.gif | Bin 0 -> 8476 bytes www/assets/dist/images/next.png | Bin 0 -> 1350 bytes www/assets/dist/images/prev.png | Bin 0 -> 1360 bytes www/assets/dist/js/lightbox-plus-jquery.js | 11158 +++++ .../dist/js/lightbox-plus-jquery.min.js | 38 + .../dist/js/lightbox-plus-jquery.min.map | 1 + www/assets/dist/js/lightbox.js | 559 + www/assets/dist/js/lightbox.min.js | 15 + www/assets/dist/js/lightbox.min.map | 1 + www/assets/img/apple-touch-icon.png | Bin 0 -> 13444 bytes www/assets/img/favicon.png | Bin 0 -> 1819 bytes www/assets/img/hero-bg.jpg | Bin 0 -> 784198 bytes www/assets/index.js | 86 + www/assets/js/main.js | 177 + www/assets/kritik.js | 126 + www/assets/route.js | 280 + www/assets/sweet-alert/block/css/aos.css | 2 + .../block/css/bootstrap-datepicker.css | 471 + .../sweet-alert/block/css/bootstrap.min.css | 7352 +++ .../block/css/bootstrap/bootstrap-grid.css | 1723 + .../block/css/bootstrap/bootstrap-reboot.css | 273 + .../block/css/bootstrap/bootstrap.css | 7352 +++ .../sweet-alert/block/css/jquery-ui.css | 654 + .../sweet-alert/block/css/magnific-popup.css | 351 + .../block/css/mediaelementplayer.css | 773 + .../block/css/owl.carousel.min.css | 6 + .../block/css/owl.theme.default.min.css | 15 + www/assets/sweet-alert/block/css/style.css | 1702 + .../block/fonts/flaticon/backup.txt | 1 + .../block/fonts/flaticon/font/Flaticon.eot | Bin 0 -> 3774 bytes .../block/fonts/flaticon/font/Flaticon.svg | 102 + .../block/fonts/flaticon/font/Flaticon.ttf | Bin 0 -> 3596 bytes .../block/fonts/flaticon/font/Flaticon.woff | Bin 0 -> 2600 bytes .../block/fonts/flaticon/font/Flaticon.woff2 | Bin 0 -> 2072 bytes .../block/fonts/flaticon/font/_flaticon.scss | 52 + .../block/fonts/flaticon/font/flaticon.css | 44 + .../block/fonts/flaticon/font/flaticon.html | 485 + .../block/fonts/flaticon/license/license.pdf | Bin 0 -> 36473 bytes .../block/fonts/icomoon/Read Me.txt | 7 + .../block/fonts/icomoon/demo-files/demo.css | 155 + .../block/fonts/icomoon/demo-files/demo.js | 30 + .../sweet-alert/block/fonts/icomoon/demo.html | 26137 ++++++++++ .../block/fonts/icomoon/fonts/icomoon.eot | Bin 0 -> 307332 bytes .../block/fonts/icomoon/fonts/icomoon.svg | 1530 + .../block/fonts/icomoon/fonts/icomoon.ttf | Bin 0 -> 307168 bytes .../block/fonts/icomoon/fonts/icomoon.woff | Bin 0 -> 307244 bytes .../block/fonts/icomoon/selection.json | 41190 ++++++++++++++++ .../sweet-alert/block/fonts/icomoon/style.css | 4919 ++ .../sweet-alert/block/jquery.blockUI.js | 620 + www/assets/sweet-alert/block/js/aos.js | 2 + .../block/js/bootstrap-datepicker.min.js | 9 + .../sweet-alert/block/js/bootstrap.min.js | 7 + .../sweet-alert/block/js/jquery-3.3.1.min.js | 2 + .../block/js/jquery-migrate-3.0.1.min.js | 215 + www/assets/sweet-alert/block/js/jquery-ui.js | 1735 + .../block/js/jquery.countdown.min.js | 22 + .../block/js/jquery.magnific-popup.min.js | 4 + .../block/js/jquery.stellar.min.js | 2 + www/assets/sweet-alert/block/js/main.js | 242 + .../block/js/mediaelement-and-player.min.js | 12 + .../sweet-alert/block/js/owl.carousel.min.js | 7 + www/assets/sweet-alert/block/js/popper.min.js | 5 + www/assets/sweet-alert/block/js/slick.min.js | 1 + www/assets/sweet-alert/block/js/typed.js | 11 + www/assets/sweet-alert/sweetalert.css | 932 + www/assets/sweet-alert/sweetalert.js | 1 + www/assets/sweet-alert/sweetalert.min.js | 1 + www/assets/sweet-alert/toastr/toastr.min.css | 6 + www/assets/sweet-alert/toastr/toastr.min.js | 7 + www/assets/vendor/aos/aos.css | 1 + www/assets/vendor/aos/aos.js | 1 + .../vendor/bootstrap/css/bootstrap-grid.css | 3904 ++ .../bootstrap/css/bootstrap-grid.css.map | 1 + .../bootstrap/css/bootstrap-grid.min.css | 7 + .../bootstrap/css/bootstrap-grid.min.css.map | 1 + .../vendor/bootstrap/css/bootstrap-reboot.css | 325 + .../bootstrap/css/bootstrap-reboot.css.map | 1 + .../bootstrap/css/bootstrap-reboot.min.css | 8 + .../css/bootstrap-reboot.min.css.map | 1 + www/assets/vendor/bootstrap/css/bootstrap.css | 10278 ++++ .../vendor/bootstrap/css/bootstrap.css.map | 1 + .../vendor/bootstrap/css/bootstrap.min.css | 7 + .../bootstrap/css/bootstrap.min.css.map | 1 + .../vendor/bootstrap/js/bootstrap.bundle.js | 7033 +++ .../bootstrap/js/bootstrap.bundle.js.map | 1 + .../bootstrap/js/bootstrap.bundle.min.js | 7 + .../bootstrap/js/bootstrap.bundle.min.js.map | 1 + www/assets/vendor/bootstrap/js/bootstrap.js | 4420 ++ .../vendor/bootstrap/js/bootstrap.js.map | 1 + .../vendor/bootstrap/js/bootstrap.min.js | 7 + .../vendor/bootstrap/js/bootstrap.min.js.map | 1 + www/assets/vendor/boxicons/css/animations.css | 386 + www/assets/vendor/boxicons/css/boxicons.css | 4911 ++ .../vendor/boxicons/css/boxicons.min.css | 1 + .../vendor/boxicons/css/transformations.css | 30 + www/assets/vendor/boxicons/fonts/boxicons.eot | Bin 0 -> 263296 bytes www/assets/vendor/boxicons/fonts/boxicons.svg | 1472 + www/assets/vendor/boxicons/fonts/boxicons.ttf | Bin 0 -> 263128 bytes .../vendor/boxicons/fonts/boxicons.woff | Bin 0 -> 263204 bytes .../vendor/boxicons/fonts/boxicons.woff2 | Bin 0 -> 89924 bytes www/assets/vendor/counterup/counterup.min.js | 11 + www/assets/vendor/icofont/fonts/icofont.woff | Bin 0 -> 645604 bytes www/assets/vendor/icofont/fonts/icofont.woff2 | Bin 0 -> 537868 bytes www/assets/vendor/icofont/icofont.min.css | 7 + .../vendor/isotope-layout/isotope.pkgd.js | 3563 ++ .../vendor/isotope-layout/isotope.pkgd.min.js | 12 + .../vendor/jquery.easing/jquery.easing.min.js | 1 + www/assets/vendor/jquery/jquery.min.js | 2 + www/assets/vendor/jquery/jquery.min.map | 1 + www/assets/vendor/owl.carousel/LICENSE | 23 + www/assets/vendor/owl.carousel/README.md | 122 + .../owl.carousel/assets/ajax-loader.gif | Bin 0 -> 3208 bytes .../owl.carousel/assets/owl.carousel.css | 186 + .../owl.carousel/assets/owl.carousel.min.css | 6 + .../owl.carousel/assets/owl.theme.default.css | 50 + .../assets/owl.theme.default.min.css | 6 + .../owl.carousel/assets/owl.theme.green.css | 50 + .../assets/owl.theme.green.min.css | 6 + .../owl.carousel/assets/owl.video.play.png | Bin 0 -> 4976 bytes .../vendor/owl.carousel/owl.carousel.js | 3448 ++ .../vendor/owl.carousel/owl.carousel.min.js | 7 + www/assets/vendor/venobox/venobox.css | 250 + www/assets/vendor/venobox/venobox.js | 811 + www/assets/vendor/venobox/venobox.min.css | 1 + www/assets/vendor/venobox/venobox.min.js | 12 + .../vendor/waypoints/jquery.waypoints.min.js | 7 + www/index.html | 114 + www/kritik.html | 181 + www/map.html | 126 + www/route.html | 193 + 143 files changed, 156014 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/plugins.json create mode 100644 .vscode/typings/cordova/cordova.d.ts create mode 100644 config.xml create mode 100644 jsconfig.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 readme.rst create mode 100644 typings/cordova-typings.d.ts create mode 100644 www/assets/css/style.css create mode 100644 www/assets/dist/css/lightbox.css create mode 100644 www/assets/dist/css/lightbox.min.css create mode 100644 www/assets/dist/images/close.png create mode 100644 www/assets/dist/images/loading.gif create mode 100644 www/assets/dist/images/next.png create mode 100644 www/assets/dist/images/prev.png create mode 100644 www/assets/dist/js/lightbox-plus-jquery.js create mode 100644 www/assets/dist/js/lightbox-plus-jquery.min.js create mode 100644 www/assets/dist/js/lightbox-plus-jquery.min.map create mode 100644 www/assets/dist/js/lightbox.js create mode 100644 www/assets/dist/js/lightbox.min.js create mode 100644 www/assets/dist/js/lightbox.min.map create mode 100644 www/assets/img/apple-touch-icon.png create mode 100644 www/assets/img/favicon.png create mode 100644 www/assets/img/hero-bg.jpg create mode 100644 www/assets/index.js create mode 100644 www/assets/js/main.js create mode 100644 www/assets/kritik.js create mode 100644 www/assets/route.js create mode 100644 www/assets/sweet-alert/block/css/aos.css create mode 100644 www/assets/sweet-alert/block/css/bootstrap-datepicker.css create mode 100644 www/assets/sweet-alert/block/css/bootstrap.min.css create mode 100644 www/assets/sweet-alert/block/css/bootstrap/bootstrap-grid.css create mode 100644 www/assets/sweet-alert/block/css/bootstrap/bootstrap-reboot.css create mode 100644 www/assets/sweet-alert/block/css/bootstrap/bootstrap.css create mode 100644 www/assets/sweet-alert/block/css/jquery-ui.css create mode 100644 www/assets/sweet-alert/block/css/magnific-popup.css create mode 100644 www/assets/sweet-alert/block/css/mediaelementplayer.css create mode 100644 www/assets/sweet-alert/block/css/owl.carousel.min.css create mode 100644 www/assets/sweet-alert/block/css/owl.theme.default.min.css create mode 100644 www/assets/sweet-alert/block/css/style.css create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/backup.txt create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/Flaticon.eot create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/Flaticon.svg create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/Flaticon.ttf create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/Flaticon.woff create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/Flaticon.woff2 create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/_flaticon.scss create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/flaticon.css create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/font/flaticon.html create mode 100644 www/assets/sweet-alert/block/fonts/flaticon/license/license.pdf create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/Read Me.txt create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/demo-files/demo.css create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/demo-files/demo.js create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/demo.html create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.eot create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.svg create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.ttf create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.woff create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/selection.json create mode 100644 www/assets/sweet-alert/block/fonts/icomoon/style.css create mode 100644 www/assets/sweet-alert/block/jquery.blockUI.js create mode 100644 www/assets/sweet-alert/block/js/aos.js create mode 100644 www/assets/sweet-alert/block/js/bootstrap-datepicker.min.js create mode 100644 www/assets/sweet-alert/block/js/bootstrap.min.js create mode 100644 www/assets/sweet-alert/block/js/jquery-3.3.1.min.js create mode 100644 www/assets/sweet-alert/block/js/jquery-migrate-3.0.1.min.js create mode 100644 www/assets/sweet-alert/block/js/jquery-ui.js create mode 100644 www/assets/sweet-alert/block/js/jquery.countdown.min.js create mode 100644 www/assets/sweet-alert/block/js/jquery.magnific-popup.min.js create mode 100644 www/assets/sweet-alert/block/js/jquery.stellar.min.js create mode 100644 www/assets/sweet-alert/block/js/main.js create mode 100644 www/assets/sweet-alert/block/js/mediaelement-and-player.min.js create mode 100644 www/assets/sweet-alert/block/js/owl.carousel.min.js create mode 100644 www/assets/sweet-alert/block/js/popper.min.js create mode 100644 www/assets/sweet-alert/block/js/slick.min.js create mode 100644 www/assets/sweet-alert/block/js/typed.js create mode 100644 www/assets/sweet-alert/sweetalert.css create mode 100644 www/assets/sweet-alert/sweetalert.js create mode 100644 www/assets/sweet-alert/sweetalert.min.js create mode 100644 www/assets/sweet-alert/toastr/toastr.min.css create mode 100644 www/assets/sweet-alert/toastr/toastr.min.js create mode 100644 www/assets/vendor/aos/aos.css create mode 100644 www/assets/vendor/aos/aos.js create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-grid.css create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-grid.css.map create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-grid.min.css create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-grid.min.css.map create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-reboot.css create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-reboot.css.map create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-reboot.min.css create mode 100644 www/assets/vendor/bootstrap/css/bootstrap-reboot.min.css.map create mode 100644 www/assets/vendor/bootstrap/css/bootstrap.css create mode 100644 www/assets/vendor/bootstrap/css/bootstrap.css.map create mode 100644 www/assets/vendor/bootstrap/css/bootstrap.min.css create mode 100644 www/assets/vendor/bootstrap/css/bootstrap.min.css.map create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.bundle.js create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.bundle.js.map create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.bundle.min.js create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.bundle.min.js.map create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.js create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.js.map create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.min.js create mode 100644 www/assets/vendor/bootstrap/js/bootstrap.min.js.map create mode 100644 www/assets/vendor/boxicons/css/animations.css create mode 100644 www/assets/vendor/boxicons/css/boxicons.css create mode 100644 www/assets/vendor/boxicons/css/boxicons.min.css create mode 100644 www/assets/vendor/boxicons/css/transformations.css create mode 100644 www/assets/vendor/boxicons/fonts/boxicons.eot create mode 100644 www/assets/vendor/boxicons/fonts/boxicons.svg create mode 100644 www/assets/vendor/boxicons/fonts/boxicons.ttf create mode 100644 www/assets/vendor/boxicons/fonts/boxicons.woff create mode 100644 www/assets/vendor/boxicons/fonts/boxicons.woff2 create mode 100644 www/assets/vendor/counterup/counterup.min.js create mode 100644 www/assets/vendor/icofont/fonts/icofont.woff create mode 100644 www/assets/vendor/icofont/fonts/icofont.woff2 create mode 100644 www/assets/vendor/icofont/icofont.min.css create mode 100644 www/assets/vendor/isotope-layout/isotope.pkgd.js create mode 100644 www/assets/vendor/isotope-layout/isotope.pkgd.min.js create mode 100644 www/assets/vendor/jquery.easing/jquery.easing.min.js create mode 100644 www/assets/vendor/jquery/jquery.min.js create mode 100644 www/assets/vendor/jquery/jquery.min.map create mode 100644 www/assets/vendor/owl.carousel/LICENSE create mode 100644 www/assets/vendor/owl.carousel/README.md create mode 100644 www/assets/vendor/owl.carousel/assets/ajax-loader.gif create mode 100644 www/assets/vendor/owl.carousel/assets/owl.carousel.css create mode 100644 www/assets/vendor/owl.carousel/assets/owl.carousel.min.css create mode 100644 www/assets/vendor/owl.carousel/assets/owl.theme.default.css create mode 100644 www/assets/vendor/owl.carousel/assets/owl.theme.default.min.css create mode 100644 www/assets/vendor/owl.carousel/assets/owl.theme.green.css create mode 100644 www/assets/vendor/owl.carousel/assets/owl.theme.green.min.css create mode 100644 www/assets/vendor/owl.carousel/assets/owl.video.play.png create mode 100644 www/assets/vendor/owl.carousel/owl.carousel.js create mode 100644 www/assets/vendor/owl.carousel/owl.carousel.min.js create mode 100644 www/assets/vendor/venobox/venobox.css create mode 100644 www/assets/vendor/venobox/venobox.js create mode 100644 www/assets/vendor/venobox/venobox.min.css create mode 100644 www/assets/vendor/venobox/venobox.min.js create mode 100644 www/assets/vendor/waypoints/jquery.waypoints.min.js create mode 100644 www/index.html create mode 100644 www/kritik.html create mode 100644 www/map.html create mode 100644 www/route.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5e1e597 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store + +# Generated by package manager +node_modules/ + +# Generated by Cordova +/plugins/ +/platforms/ diff --git a/.vscode/plugins.json b/.vscode/plugins.json new file mode 100644 index 0000000..7e5cf29 --- /dev/null +++ b/.vscode/plugins.json @@ -0,0 +1 @@ +{"plugins":["cordova-plugin-whitelist","cordova-plugin-inappbrowser","cordova-plugin-x-socialsharing","es6-promise-plugin","cordova-plugin-geolocation","card.io.cordova.mobilesdk","cordova-plugin-appavailability"]} \ No newline at end of file diff --git a/.vscode/typings/cordova/cordova.d.ts b/.vscode/typings/cordova/cordova.d.ts new file mode 100644 index 0000000..2f78178 --- /dev/null +++ b/.vscode/typings/cordova/cordova.d.ts @@ -0,0 +1,80 @@ +// Type definitions for Apache Cordova +// Project: http://cordova.apache.org +// Definitions by: Microsoft Open Technologies Inc. +// Definitions: https://github.com/borisyankov/DefinitelyTyped +// +// Copyright (c) Microsoft Open Technologies, Inc. +// Licensed under the MIT license. + +interface Cordova { + /** Invokes native functionality by specifying corresponding service name, action and optional parameters. + * @param success A success callback function. + * @param fail An error callback function. + * @param service The service name to call on the native side (corresponds to a native class). + * @param action The action name to call on the native side (generally corresponds to the native class method). + * @param args An array of arguments to pass into the native environment. + */ + exec(success: () => any, fail: () => any, service: string, action: string, args?: string[]): void; + /** Gets the operating system name. */ + platformId: string; + /** Gets Cordova framework version */ + version: string; + /** Defines custom logic as a Cordova module. Other modules can later access it using module name provided. */ + define(moduleName: string, factory: (require: any, exports: any, module: any) => any): void; + /** Access a Cordova module by name. */ + require(moduleName: string): any; + /** Namespace for Cordova plugin functionality */ + plugins:CordovaPlugins; +} + +interface CordovaPlugins {} + +interface Document { + addEventListener(type: "deviceready", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "resume", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "backbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "menubutton", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "searchbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "startcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "endcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "volumedownbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + addEventListener(type: "volumeupbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + + removeEventListener(type: "deviceready", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "pause", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "resume", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "backbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "menubutton", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "searchbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "startcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "endcallbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "volumedownbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: "volumeupbutton", listener: (ev: Event) => any, useCapture?: boolean): void; + + addEventListener(type: string, listener: (ev: Event) => any, useCapture?: boolean): void; + removeEventListener(type: string, listener: (ev: Event) => any, useCapture?: boolean): void; +} + +interface Window { + cordova:Cordova; +} + +// cordova/argscheck module +interface ArgsCheck { + checkArgs(argsSpec: string, functionName: string, args: any[], callee?: any): void; + getValue(value?: any, defaultValue?: any): any; + enableChecks: boolean; +} + +// cordova/urlutil module +interface UrlUtil { + makeAbsolute(url: string): string +} + +/** Apache Cordova instance */ +declare var cordova: Cordova; + +declare module 'cordova' { + export = cordova; +} diff --git a/config.xml b/config.xml new file mode 100644 index 0000000..9358daf --- /dev/null +++ b/config.xml @@ -0,0 +1,27 @@ + + + puskesmas + + A sample Apache Cordova application that responds to the deviceready event. + + + Apache Cordova Team + + + + + + + + + + + + + + + + + + + diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/jsconfig.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e17587e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,743 @@ +{ + "name": "com.puskesmas.app", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "android-versions": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.6.0.tgz", + "integrity": "sha512-ojC2Ig7b/KJ6iNtR8e4bacmOsJyEkoERk3CKMIsnH7kJz5z6551NMbrVaRb7KXYavu1d74Uhml/bfcmqT3nAcg==", + "dev": true, + "requires": { + "semver": "^5.7.1" + } + }, + "ansi": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", + "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=", + "dev": true + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "big-integer": { + "version": "1.6.48", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", + "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", + "dev": true + }, + "bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "requires": { + "big-integer": "^1.6.44" + } + }, + "brace-expansion": { + "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" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "cordova-android": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-9.0.0.tgz", + "integrity": "sha512-2ZEgApK4LPMYW0zh/mLAH3CabzCaKE0yxQTzA2wTf0Eo2HHTJnRtDCf9spGf3nPOkubyXS6+pvzz5QzNHpVTqQ==", + "dev": true, + "requires": { + "android-versions": "^1.5.0", + "cordova-common": "^4.0.1", + "execa": "^4.0.2", + "fs-extra": "^9.0.1", + "nopt": "^4.0.3", + "properties-parser": "^0.3.1", + "which": "^2.0.2" + } + }, + "cordova-common": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", + "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", + "dev": true, + "requires": { + "@netflix/nerror": "^1.1.3", + "ansi": "^0.3.1", + "bplist-parser": "^0.2.0", + "cross-spawn": "^7.0.1", + "elementtree": "^0.1.7", + "endent": "^1.4.1", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "plist": "^3.0.1", + "q": "^1.5.1", + "read-chunk": "^3.2.0", + "strip-bom": "^4.0.0", + "underscore": "^1.9.2" + } + }, + "cordova-plugin-appavailability": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-appavailability/-/cordova-plugin-appavailability-0.4.2.tgz", + "integrity": "sha1-oBeq8PiCfuWZ3HeLYkXcwTULy6g=", + "dev": true + }, + "cordova-plugin-geolocation": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.0.2.tgz", + "integrity": "sha512-QGThnPKzPxESHkruZlpE0+5aFBVOet8al0vIJ7laSUOQHIC1dd/JY6peVIbtLboKi5Dap1wCKRubOqPqH8xcQA==", + "dev": true + }, + "cordova-plugin-inappbrowser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cordova-plugin-inappbrowser/-/cordova-plugin-inappbrowser-4.0.0.tgz", + "integrity": "sha512-w2LZzdF3R4G/EqVZ9aWch9Pksk76uw6/S5wFP1sgn7zjsSDpJBb/JhazLnioN1NZmZiCUBbROv1S4+9JCkeCgA==", + "dev": true + }, + "cordova-plugin-whitelist": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/cordova-plugin-whitelist/-/cordova-plugin-whitelist-1.3.4.tgz", + "integrity": "sha512-EYC5eQFVkoYXq39l7tYKE6lEjHJ04mvTmKXxGL7quHLdFPfJMNzru/UYpn92AOfpl3PQaZmou78C7EgmFOwFQQ==", + "dev": true + }, + "cordova-plugin-x-socialsharing": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/cordova-plugin-x-socialsharing/-/cordova-plugin-x-socialsharing-6.0.2.tgz", + "integrity": "sha512-iS+JeymmkFtyPBTlH6hymDeB2VTUTjNk8hF8mrPEXduOqYQSjBpHePZ9x83Dq9drKUSqA7gBzgnebp2JGld2TQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", + "dev": true, + "requires": { + "sax": "1.1.4" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "endent": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", + "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", + "dev": true, + "requires": { + "dedent": "^0.7.0", + "fast-json-parse": "^1.0.3", + "objectorarray": "^1.0.4" + } + }, + "es6-promise-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/es6-promise-plugin/-/es6-promise-plugin-4.2.2.tgz", + "integrity": "sha512-uoA4aVplXI9oqUYJFBAVRwAqIN9/n9JgrTAUGX3qPbnSZVE5yY1+6/MsoN5f4xsaPO62WjPHOdtts6okMN6tNA==", + "dev": true + }, + "execa": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", + "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "extsprintf": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", + "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-parse": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", + "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==", + "dev": true + }, + "fastq": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "objectorarray": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", + "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "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=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "plist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "dev": true, + "requires": { + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" + } + }, + "properties-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", + "integrity": "sha1-ExbpU5/7/ZOEXjabIRAiq9R4dxo=", + "dev": true, + "requires": { + "string.prototype.codepointat": "^0.2.0" + } + }, + "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": "^1.1.0", + "once": "^1.3.1" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "read-chunk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", + "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "with-open-file": "^0.1.6" + } + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "string.prototype.codepointat": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", + "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", + "dev": true + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "underscore": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz", + "integrity": "sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "with-open-file": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", + "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0", + "p-try": "^2.1.0", + "pify": "^4.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "dev": true + }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8deac5a --- /dev/null +++ b/package.json @@ -0,0 +1,36 @@ +{ + "name": "com.puskesmas.app", + "displayName": "puskesmas", + "version": "1.0.0", + "description": "A sample Apache Cordova application that responds to the deviceready event.", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [ + "ecosystem:cordova" + ], + "author": "Apache Cordova Team", + "license": "Apache-2.0", + "devDependencies": { + "cordova-android": "^9.0.0", + "cordova-plugin-appavailability": "^0.4.2", + "cordova-plugin-geolocation": "^4.0.2", + "cordova-plugin-inappbrowser": "^4.0.0", + "cordova-plugin-whitelist": "^1.3.4", + "cordova-plugin-x-socialsharing": "^6.0.2", + "es6-promise-plugin": "^4.2.2" + }, + "cordova": { + "plugins": { + "cordova-plugin-whitelist": {}, + "cordova-plugin-inappbrowser": {}, + "cordova-plugin-x-socialsharing": {}, + "cordova-plugin-geolocation": {}, + "cordova-plugin-appavailability": {} + }, + "platforms": [ + "android" + ] + } +} \ No newline at end of file diff --git a/readme.rst b/readme.rst new file mode 100644 index 0000000..13edd83 --- /dev/null +++ b/readme.rst @@ -0,0 +1,15 @@ +################### +Pencarian Puskesmas Mobile +################### +Aplikasi Mobile Pencarian Puskesmas Pada Kabupaten Barru Menggunakan Google Maps & Cordova + + +******************* +Contact +******************* + +- Facebook https://www.facebook.com/kicap.karan> +- Portfolio Website https://www.kicap-karan.com/ +- Linkedin https://www.linkedin.com/in/kicap-karan-85588b203/ +- Whatsapp +6282293246583 + diff --git a/typings/cordova-typings.d.ts b/typings/cordova-typings.d.ts new file mode 100644 index 0000000..6fe567c --- /dev/null +++ b/typings/cordova-typings.d.ts @@ -0,0 +1,2 @@ + +/// \ No newline at end of file diff --git a/www/assets/css/style.css b/www/assets/css/style.css new file mode 100644 index 0000000..3571be6 --- /dev/null +++ b/www/assets/css/style.css @@ -0,0 +1,1282 @@ +/** +* Template Name: Kelly - v2.0.0 +* Template URL: https://bootstrapmade.com/kelly-free-bootstrap-cv-resume-html-template/ +* Author: BootstrapMade.com +* License: https://bootstrapmade.com/license/ +*/ + +/*-------------------------------------------------------------- +# General +--------------------------------------------------------------*/ +body { + font-family: "Open Sans", sans-serif; + color: #444444; +} + +a { + /*color: #34b7a7;*/ + color: white; +} + +a:hover { + color: #51cdbe; + text-decoration: none; +} + +h1, h2, h3, h4, h5, h6 { + font-family: "Raleway", sans-serif; +} + +#main { + margin-top: 50px; +} + +@media (max-width: 992px) { + #main { + margin-top: 30px; + } +} + +/*-------------------------------------------------------------- +# Preloader +--------------------------------------------------------------*/ +#preloader { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 9999; + overflow: hidden; + background: #fff; +} + +#preloader:before { + content: ""; + position: fixed; + top: calc(50% - 30px); + left: calc(50% - 30px); + border: 6px solid #34b7a7; + border-top-color: #dcf5f2; + border-radius: 50%; + width: 60px; + height: 60px; + -webkit-animation: animate-preloader 1s linear infinite; + animation: animate-preloader 1s linear infinite; +} + +@-webkit-keyframes animate-preloader { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +@keyframes animate-preloader { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +/*-------------------------------------------------------------- +# Back to top button +--------------------------------------------------------------*/ +.back-to-top { + position: fixed; + display: none; + right: 15px; + bottom: 15px; + z-index: 99999; +} + +.back-to-top i { + display: flex; + align-items: center; + justify-content: center; + font-size: 24px; + width: 40px; + height: 40px; + border-radius: 50px; + background: #34b7a7; + color: #fff; + transition: all 0.4s; +} + +.back-to-top i:hover { + background: #3dc8b7; + color: #fff; +} + +/*-------------------------------------------------------------- +# Header +--------------------------------------------------------------*/ +#header { + background: #2CF0ED; + box-shadow: 0px 0px 25px 0 rgba(0, 0, 0, 0.08); + z-index: 997; + padding: 15px 0; +} + +#header .logo { + font-size: 32px; + margin: 0; + padding: 0; + line-height: 1; + font-weight: 400; + letter-spacing: 2px; + text-transform: uppercase; +} + +#header .logo a { + color: #222222; +} + +#header .logo img { + max-height: 40px; +} + +@media (max-width: 992px) { + #header .logo { + font-size: 28px; + } +} + +/*-------------------------------------------------------------- +# Navigation Menu +--------------------------------------------------------------*/ +/* Desktop Navigation */ +.nav-menu ul { + margin: 0; + padding: 0; + list-style: none; +} + +.nav-menu > ul { + display: flex; +} + +.nav-menu > ul > li { + position: relative; + white-space: nowrap; + padding: 10px 0 10px 28px; +} + +.nav-menu a { + display: block; + position: relative; + color: #888888; + transition: 0.3s; + font-size: 15px; + font-family: "Raleway", sans-serif; + font-weight: 600; +} + +.nav-menu > ul > li > a:before { + content: ""; + position: absolute; + width: 0; + height: 2px; + bottom: -5px; + left: 0; + background-color: yellow; + visibility: hidden; + width: 0px; + transition: all 0.3s ease-in-out 0s; +} + +.nav-menu a:hover:before, .nav-menu li:hover > a:before, .nav-menu .active > a:before { + visibility: visible; + width: 25px; +} + +.nav-menu a:hover, .nav-menu .active > a, .nav-menu li:hover > a { + color: #222222; +} + +.nav-menu .drop-down ul { + display: block; + position: absolute; + left: 28px; + top: calc(100% + 30px); + z-index: 99; + opacity: 0; + visibility: hidden; + padding: 10px 0; + background: #fff; + box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25); + transition: 0.3s; +} + +.nav-menu .drop-down:hover > ul { + opacity: 1; + top: 100%; + visibility: visible; +} + +.nav-menu .drop-down li { + min-width: 180px; + position: relative; +} + +.nav-menu .drop-down ul a { + padding: 10px 20px; + font-size: 14px; + font-weight: 500; + text-transform: none; + color: #222222; +} + +.nav-menu .drop-down ul a:hover, .nav-menu .drop-down ul .active > a, .nav-menu .drop-down ul li:hover > a { + color: #4e34b7; +} + +.nav-menu .drop-down > a:after { + content: "\ea99"; + font-family: IcoFont; + padding-left: 5px; +} + +.nav-menu .drop-down .drop-down ul { + top: 0; + left: calc(100% - 30px); +} + +.nav-menu .drop-down .drop-down:hover > ul { + opacity: 1; + top: 0; + left: 100%; +} + +.nav-menu .drop-down .drop-down > a { + padding-right: 35px; +} + +.nav-menu .drop-down .drop-down > a:after { + content: "\eaa0"; + font-family: IcoFont; + position: absolute; + right: 15px; +} + +@media (max-width: 1366px) { + .nav-menu .drop-down .drop-down ul { + left: -90%; + } + .nav-menu .drop-down .drop-down:hover > ul { + left: -100%; + } + .nav-menu .drop-down .drop-down > a:after { + content: "\ea9d"; + } +} + +/* Mobile Navigation */ +.mobile-nav-toggle { + position: fixed; + right: 15px; + top: 17px; + z-index: 9998; + border: 0; + background: none; + font-size: 24px; + transition: all 0.4s; + outline: none !important; + line-height: 1; + cursor: pointer; + text-align: right; +} + +.mobile-nav-toggle i { + color: #34b7a7; +} + +.mobile-nav { + position: fixed; + top: 55px; + right: 15px; + bottom: 15px; + left: 15px; + z-index: 9999; + overflow-y: auto; + background: #fff; + transition: ease-in-out 0.2s; + opacity: 0; + visibility: hidden; + border-radius: 10px; + padding: 10px 0; +} + +.mobile-nav * { + margin: 0; + padding: 0; + list-style: none; +} + +.mobile-nav a { + display: block; + position: relative; + color: #222222; + padding: 10px 20px; + font-weight: 500; + outline: none; +} + +.mobile-nav a:hover, .mobile-nav .active > a, .mobile-nav li:hover > a { + color: #34b7a7; + text-decoration: none; +} + +.mobile-nav .drop-down > a:after { + content: "\ea99"; + font-family: IcoFont; + padding-left: 10px; + position: absolute; + right: 15px; +} + +.mobile-nav .active.drop-down > a:after { + content: "\eaa1"; +} + +.mobile-nav .drop-down > a { + padding-right: 35px; +} + +.mobile-nav .drop-down ul { + display: none; + overflow: hidden; +} + +.mobile-nav .drop-down li { + padding-left: 20px; +} + +.mobile-nav-overly { + width: 100%; + height: 100%; + z-index: 9997; + top: 0; + left: 0; + position: fixed; + background: rgba(9, 9, 9, 0.6); + overflow: hidden; + display: none; + transition: ease-in-out 0.2s; +} + +.mobile-nav-active { + overflow: hidden; +} + +.mobile-nav-active .mobile-nav { + opacity: 1; + visibility: visible; +} + +.mobile-nav-active .mobile-nav-toggle i { + color: #fff; +} + +/*-------------------------------------------------------------- +# Header Social Links +--------------------------------------------------------------*/ +.header-social-links { + padding-left: 20px; +} + +.header-social-links a { + color: #222222; + padding-left: 6px; + display: inline-block; + line-height: 1px; + transition: 0.3s; + font-size: 16px; +} + +.header-social-links a:hover { + color: #34b7a7; +} + +@media (max-width: 992px) { + .header-social-links { + padding: 0 48px 0 0; + } +} + +/*-------------------------------------------------------------- +# Hero Section +--------------------------------------------------------------*/ +#hero { + width: 100%; + height: 100vh; + background: url("../img/hero-bg.jpg") top right; + background-size: cover; +} + +#hero .container { + padding-top: 70px; + position: relative; +} + +@media (max-width: 992px) { + #hero .container { + padding-top: 58px; + } +} + +#hero h1 { + margin: 0; + font-size: 48px; + font-weight: 700; + line-height: 56px; + color: #222222; +} + +#hero h2 { + color: #6f6f6f; + margin: 10px 0 0 0; + font-size: 22px; +} + +#hero .btn-about { + font-family: "Raleway", sans-serif; + text-transform: uppercase; + font-weight: 600; + font-size: 12px; + letter-spacing: 1px; + display: inline-block; + padding: 12px 40px; + border-radius: 50px; + transition: 0.5s; + margin-top: 30px; + color: #fff; + background: #34b7a7; +} + +#hero .btn-about:hover { + background: #3dc8b7; +} + +@media (min-width: 1024px) { + #hero { + background-attachment: fixed; + } +} + +@media (max-width: 992px) { + #hero:before { + content: ""; + background: rgba(255, 255, 255, 0.8); + position: absolute; + bottom: 0; + top: 0; + left: 0; + right: 0; + } + #hero h1 { + font-size: 28px; + line-height: 36px; + } + #hero h2 { + font-size: 18px; + line-height: 24px; + } +} + +/*-------------------------------------------------------------- +# Sections General +--------------------------------------------------------------*/ +section { + padding: 60px 0; +} + +.section-bg { + background-color: #e7f8f6; +} + +.section-title { + text-align: center; + padding-bottom: 30px; +} + +.section-title h2 { + font-size: 32px; + font-weight: bold; + text-transform: uppercase; + margin-bottom: 20px; + padding-bottom: 20px; + position: relative; +} + +.section-title h2::after { + content: ''; + position: absolute; + display: block; + width: 50px; + height: 3px; + background: #34b7a7; + bottom: 0; + left: calc(50% - 25px); +} + +.section-title p { + margin-bottom: 0; +} + +/*-------------------------------------------------------------- +# Cta +--------------------------------------------------------------*/ +.cta { + background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url("../img/bg-1.jpg") fixed center center; + background-size: cover; + padding: 80px 0; +} + +.cta h3 { + color: #fff; + font-size: 28px; + font-weight: 700; +} + +.cta p { + color: #fff; +} + +.cta .cta-btn { + font-family: "Raleway", sans-serif; + text-transform: uppercase; + font-weight: 500; + font-size: 16px; + letter-spacing: 1px; + display: inline-block; + padding: 8px 20px; + border-radius: 2px; + transition: 0.5s; + margin: 10px; + border: 2px solid #fff; + color: #fff; +} + +.cta .cta-btn:hover { + background: #34b7a7; + border: 2px solid #34b7a7; +} + +@media (max-width: 1024px) { + .cta { + background-attachment: scroll; + } +} + +@media (min-width: 769px) { + .cta .cta-btn-container { + display: flex; + align-items: center; + justify-content: flex-end; + } +} + +/*-------------------------------------------------------------- +# About +--------------------------------------------------------------*/ +.about .content h3 { + font-weight: 700; + font-size: 26px; + color: #555555; +} + +.about .content ul { + list-style: none; + padding: 0; +} + +.about .content ul li { + padding-bottom: 10px; +} + +.about .content ul i { + font-size: 20px; + padding-right: 2px; + color: #34b7a7; +} + +.about .content p:last-child { + margin-bottom: 0; +} + +/*-------------------------------------------------------------- +# Skills +--------------------------------------------------------------*/ +.skills .progress { + height: 50px; + display: block; + background: none; +} + +.skills .progress .skill { + padding: 10px 0; + margin: 0 0 6px 0; + text-transform: uppercase; + display: block; + font-weight: 600; + font-family: "Poppins", sans-serif; + color: #222222; +} + +.skills .progress .skill .val { + float: right; + font-style: normal; +} + +.skills .progress-bar-wrap { + background: #f3f3f3; +} + +.skills .progress-bar { + width: 1px; + height: 10px; + transition: .9s; + background-color: #34b7a7; +} + +/*-------------------------------------------------------------- +# Facts +--------------------------------------------------------------*/ +.facts .counters span { + font-size: 48px; + display: block; + color: #34b7a7; +} + +.facts .counters p { + padding: 0; + margin: 0 0 20px 0; + font-family: "Raleway", sans-serif; + font-size: 14px; +} + +/*-------------------------------------------------------------- +# Testimonials +--------------------------------------------------------------*/ +.testimonials .section-header { + margin-bottom: 40px; +} + +.testimonials .testimonial-item { + text-align: center; +} + +.testimonials .testimonial-item .testimonial-img { + width: 120px; + border-radius: 50%; + border: 4px solid #fff; + margin: 0 auto; +} + +.testimonials .testimonial-item h3 { + font-size: 20px; + font-weight: bold; + margin: 10px 0 5px 0; + color: #111; +} + +.testimonials .testimonial-item h4 { + font-size: 14px; + color: #999; + margin: 0 0 15px 0; +} + +.testimonials .testimonial-item .quote-icon-left, .testimonials .testimonial-item .quote-icon-right { + color: #c8efea; + font-size: 26px; +} + +.testimonials .testimonial-item .quote-icon-left { + display: inline-block; + left: -5px; + position: relative; +} + +.testimonials .testimonial-item .quote-icon-right { + display: inline-block; + right: -5px; + position: relative; + top: 10px; +} + +.testimonials .testimonial-item p { + font-style: italic; + margin: 0 auto 15px auto; +} + +.testimonials .owl-nav, .testimonials .owl-dots { + margin-top: 5px; + text-align: center; +} + +.testimonials .owl-dot { + display: inline-block; + margin: 0 5px; + width: 12px; + height: 12px; + border-radius: 50%; + background-color: #ddd !important; +} + +.testimonials .owl-dot.active { + background-color: #34b7a7 !important; +} + +@media (min-width: 992px) { + .testimonials .testimonial-item p { + width: 80%; + } +} + +/*-------------------------------------------------------------- +# Resume +--------------------------------------------------------------*/ +.resume .resume-title { + font-size: 26px; + font-weight: 400; + margin-top: 20px; + margin-bottom: 20px; + color: #222222; +} + +.resume .resume-item { + padding: 0 0 20px 20px; + margin-top: -2px; + border-left: 2px solid #34b7a7; + position: relative; +} + +.resume .resume-item h4 { + line-height: 18px; + font-size: 18px; + font-weight: 600; + font-family: "Poppins", sans-serif; + color: #1d685f; + margin-bottom: 10px; +} + +.resume .resume-item h5 { + font-size: 16px; + background: #effbf9; + padding: 5px 15px; + display: inline-block; + font-weight: 600; + margin-bottom: 10px; + color: #34b7a7; +} + +.resume .resume-item ul { + padding-left: 20px; +} + +.resume .resume-item ul li { + padding-bottom: 10px; +} + +.resume .resume-item:last-child { + padding-bottom: 0; +} + +.resume .resume-item::before { + content: ""; + position: absolute; + width: 16px; + height: 16px; + border-radius: 50px; + left: -9px; + top: 0; + background: #fff; + border: 2px solid #34b7a7; +} + +/*-------------------------------------------------------------- +# Services +--------------------------------------------------------------*/ +.services .icon-box { + text-align: center; + padding: 70px 20px 80px 20px; + transition: all ease-in-out 0.3s; + background: #fff; + box-shadow: 0px 0 35px 0 rgba(0, 0, 0, 0.08); +} + +.services .icon-box .icon { + margin: 0 auto; + width: 100px; + height: 100px; + display: flex; + align-items: center; + justify-content: center; + transition: ease-in-out 0.3s; + position: relative; +} + +.services .icon-box .icon i { + font-size: 36px; + transition: 0.5s; + position: relative; +} + +.services .icon-box .icon svg { + position: absolute; + top: 0; + left: 0; +} + +.services .icon-box .icon svg path { + transition: 0.5s; + fill: #f5f5f5; +} + +.services .icon-box h4 { + font-weight: 600; + margin: 10px 0 15px 0; + font-size: 22px; +} + +.services .icon-box h4 a { + color: #222222; + transition: ease-in-out 0.3s; +} + +.services .icon-box p { + line-height: 24px; + font-size: 14px; + margin-bottom: 0; +} + +.services .iconbox-blue i { + color: #47aeff; +} + +.services .iconbox-blue:hover .icon i { + color: #fff; +} + +.services .iconbox-blue:hover .icon path { + fill: #47aeff; +} + +.services .iconbox-orange i { + color: #ffa76e; +} + +.services .iconbox-orange:hover .icon i { + color: #fff; +} + +.services .iconbox-orange:hover .icon path { + fill: #ffa76e; +} + +.services .iconbox-pink i { + color: #e80368; +} + +.services .iconbox-pink:hover .icon i { + color: #fff; +} + +.services .iconbox-pink:hover .icon path { + fill: #e80368; +} + +.services .iconbox-yellow i { + color: #ffbb2c; +} + +.services .iconbox-yellow:hover .icon i { + color: #fff; +} + +.services .iconbox-yellow:hover .icon path { + fill: #ffbb2c; +} + +.services .iconbox-red i { + color: #ff5828; +} + +.services .iconbox-red:hover .icon i { + color: #fff; +} + +.services .iconbox-red:hover .icon path { + fill: #ff5828; +} + +.services .iconbox-teal i { + color: #11dbcf; +} + +.services .iconbox-teal:hover .icon i { + color: #fff; +} + +.services .iconbox-teal:hover .icon path { + fill: #11dbcf; +} + +/*-------------------------------------------------------------- +# Portfolio +--------------------------------------------------------------*/ +.portfolio .portfolio-item { + margin-bottom: 30px; +} + +.portfolio #portfolio-flters { + padding: 0; + margin: 0 auto 20px auto; + list-style: none; + text-align: center; +} + +.portfolio #portfolio-flters li { + cursor: pointer; + display: inline-block; + padding: 8px 16px 10px 16px; + font-size: 13px; + font-weight: 500; + line-height: 1; + text-transform: uppercase; + color: #444444; + margin-bottom: 5px; + transition: all 0.3s ease-in-out; + border-radius: 50px; +} + +.portfolio #portfolio-flters li:hover, .portfolio #portfolio-flters li.filter-active { + color: #fff; + background: #34b7a7; +} + +.portfolio #portfolio-flters li:last-child { + margin-right: 0; +} + +.portfolio .portfolio-wrap { + transition: 0.3s; + position: relative; + overflow: hidden; + z-index: 1; + background: rgba(34, 34, 34, 0.6); +} + +.portfolio .portfolio-wrap::before { + content: ""; + background: rgba(34, 34, 34, 0.6); + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + transition: all ease-in-out 0.3s; + z-index: 2; + opacity: 0; +} + +.portfolio .portfolio-wrap img { + transition: all ease-in-out 0.3s; +} + +.portfolio .portfolio-wrap .portfolio-info { + opacity: 0; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + z-index: 3; + transition: all ease-in-out 0.3s; + display: flex; + flex-direction: column; + justify-content: flex-end; + align-items: flex-start; + padding: 20px; +} + +.portfolio .portfolio-wrap .portfolio-info h4 { + font-size: 20px; + color: #fff; + font-weight: 600; +} + +.portfolio .portfolio-wrap .portfolio-info p { + color: rgba(255, 255, 255, 0.7); + font-size: 14px; + text-transform: uppercase; + padding: 0; + margin: 0; + font-style: italic; +} + +.portfolio .portfolio-wrap .portfolio-links { + text-align: center; + z-index: 4; +} + +.portfolio .portfolio-wrap .portfolio-links a { + color: #fff; + margin: 0 5px 0 0; + font-size: 28px; + display: inline-block; + transition: 0.3s; +} + +.portfolio .portfolio-wrap .portfolio-links a:hover { + color: #78d9cd; +} + +.portfolio .portfolio-wrap:hover::before { + opacity: 1; +} + +.portfolio .portfolio-wrap:hover img { + transform: scale(1.2); +} + +.portfolio .portfolio-wrap:hover .portfolio-info { + opacity: 1; +} + +/*-------------------------------------------------------------- +# Portfolio Details +--------------------------------------------------------------*/ +.portfolio-details { + padding: 0; +} + +.portfolio-details .portfolio-title { + font-size: 26px; + font-weight: 700; + margin-bottom: 20px; +} + +.portfolio-details .portfolio-details-carousel .owl-nav, .portfolio-details .portfolio-details-carousel .owl-dots { + margin-top: 5px; + text-align: center; +} + +.portfolio-details .portfolio-details-carousel .owl-dot { + display: inline-block; + margin: 0 5px; + width: 12px; + height: 12px; + border-radius: 50%; + background-color: #ddd !important; +} + +.portfolio-details .portfolio-details-carousel .owl-dot.active { + background-color: #34b7a7 !important; +} + +.portfolio-details .portfolio-info { + padding-top: 45px; +} + +.portfolio-details .portfolio-info h3 { + font-size: 22px; + font-weight: 400; + margin-bottom: 20px; +} + +.portfolio-details .portfolio-info ul { + list-style: none; + padding: 0; + font-size: 15px; +} + +.portfolio-details .portfolio-info ul li + li { + margin-top: 10px; +} + +.portfolio-details .portfolio-info p { + font-size: 15px; + padding: 15px 0 0 0; +} + +@media (max-width: 992px) { + .portfolio-details .portfolio-info { + padding-top: 20px; + } +} + +/*-------------------------------------------------------------- +# Contact +--------------------------------------------------------------*/ +.contact .info { + width: 100%; + background: #fff; +} + +.contact .info i { + font-size: 20px; + color: #34b7a7; + float: left; + width: 44px; + height: 44px; + background: #effbf9; + display: flex; + justify-content: center; + align-items: center; + border-radius: 50px; + transition: all 0.3s ease-in-out; +} + +.contact .info h4 { + padding: 0 0 0 60px; + font-size: 22px; + font-weight: 600; + margin-bottom: 5px; + color: #222222; +} + +.contact .info p { + padding: 0 0 0 60px; + margin-bottom: 0; + font-size: 14px; + color: #555555; +} + +.contact .info .email, .contact .info .phone { + margin-top: 40px; +} + +.contact .info .email:hover i, .contact .info .address:hover i, .contact .info .phone:hover i { + background: #34b7a7; + color: #fff; +} + +.contact .php-email-form { + width: 100%; + background: #fff; +} + +.contact .php-email-form .form-group { + padding-bottom: 8px; +} + +.contact .php-email-form .validate { + display: none; + color: red; + margin: 0 0 15px 0; + font-weight: 400; + font-size: 13px; +} + +.contact .php-email-form .error-message { + display: none; + color: #fff; + background: #ed3c0d; + text-align: center; + padding: 15px; + font-weight: 600; +} + +.contact .php-email-form .sent-message { + display: none; + color: #fff; + background: #18d26e; + text-align: center; + padding: 15px; + font-weight: 600; +} + +.contact .php-email-form .loading { + display: none; + background: #fff; + text-align: center; + padding: 15px; +} + +.contact .php-email-form .loading:before { + content: ""; + display: inline-block; + border-radius: 50%; + width: 24px; + height: 24px; + margin: 0 10px -6px 0; + border: 3px solid #18d26e; + border-top-color: #eee; + -webkit-animation: animate-loading 1s linear infinite; + animation: animate-loading 1s linear infinite; +} + +.contact .php-email-form input, .contact .php-email-form textarea { + border-radius: 4px; + box-shadow: none; + font-size: 14px; +} + +.contact .php-email-form input:focus, .contact .php-email-form textarea:focus { + border-color: #34b7a7; +} + +.contact .php-email-form input { + height: 44px; +} + +.contact .php-email-form textarea { + padding: 10px 12px; +} + +.contact .php-email-form button[type="submit"] { + background: #34b7a7; + border: 0; + padding: 10px 30px 12px 30px; + color: #fff; + transition: 0.4s; + border-radius: 50px; +} + +.contact .php-email-form button[type="submit"]:hover { + background: #3dc8b7; +} + +@-webkit-keyframes animate-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +@keyframes animate-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +/*-------------------------------------------------------------- +# Footer +--------------------------------------------------------------*/ +#footer { + background: #2CF0ED; + padding: 30px 0; + color: #222222; + font-size: 14px; + text-align: center; +} + +#footer .credits { + padding-top: 5px; + font-size: 13px; +} + +#footer .credits a { + color: #34b7a7; +} diff --git a/www/assets/dist/css/lightbox.css b/www/assets/dist/css/lightbox.css new file mode 100644 index 0000000..b3b0beb --- /dev/null +++ b/www/assets/dist/css/lightbox.css @@ -0,0 +1,204 @@ +body.lb-disable-scrolling { + overflow: hidden; +} + +.lightboxOverlay { + position: absolute; + top: 0; + left: 0; + z-index: 9999; + background-color: black; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + opacity: 0.8; + display: none; +} + +.lightbox { + position: absolute; + left: 0; + width: 100%; + z-index: 10000; + text-align: center; + line-height: 0; + font-weight: normal; + outline: none; +} + +.lightbox .lb-image { + display: block; + height: auto; + max-width: inherit; + max-height: none; + border-radius: 3px; + + /* Image border */ + border: 4px solid white; +} + +.lightbox a img { + border: none; +} + +.lb-outerContainer { + position: relative; + *zoom: 1; + width: 250px; + height: 250px; + margin: 0 auto; + border-radius: 4px; + + /* Background color behind image. + This is visible during transitions. */ + background-color: white; +} + +.lb-outerContainer:after { + content: ""; + display: table; + clear: both; +} + +.lb-loader { + position: absolute; + top: 43%; + left: 0; + height: 25%; + width: 100%; + text-align: center; + line-height: 0; +} + +.lb-cancel { + display: block; + width: 32px; + height: 32px; + margin: 0 auto; + background: url(../images/loading.gif) no-repeat; +} + +.lb-nav { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + z-index: 10; +} + +.lb-container > .nav { + left: 0; +} + +.lb-nav a { + outline: none; + background-image: url('data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); +} + +.lb-prev, .lb-next { + height: 100%; + cursor: pointer; + display: block; +} + +.lb-nav a.lb-prev { + width: 34%; + left: 0; + float: left; + background: url(../images/prev.png) left 48% no-repeat; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -webkit-transition: opacity 0.6s; + -moz-transition: opacity 0.6s; + -o-transition: opacity 0.6s; + transition: opacity 0.6s; +} + +.lb-nav a.lb-prev:hover { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} + +.lb-nav a.lb-next { + width: 64%; + right: 0; + float: right; + background: url(../images/next.png) right 48% no-repeat; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0); + opacity: 0; + -webkit-transition: opacity 0.6s; + -moz-transition: opacity 0.6s; + -o-transition: opacity 0.6s; + transition: opacity 0.6s; +} + +.lb-nav a.lb-next:hover { + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} + +.lb-dataContainer { + margin: 0 auto; + padding-top: 5px; + *zoom: 1; + width: 100%; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} + +.lb-dataContainer:after { + content: ""; + display: table; + clear: both; +} + +.lb-data { + padding: 0 4px; + color: #ccc; +} + +.lb-data .lb-details { + width: 85%; + float: left; + text-align: left; + line-height: 1.1em; +} + +.lb-data .lb-caption { + font-size: 13px; + font-weight: bold; + line-height: 1em; +} + +.lb-data .lb-caption a { + color: #4ae; +} + +.lb-data .lb-number { + display: block; + clear: left; + padding-bottom: 1em; + font-size: 12px; + color: #999999; +} + +.lb-data .lb-close { + display: block; + float: right; + width: 30px; + height: 30px; + background: url(../images/close.png) top right no-repeat; + text-align: right; + outline: none; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70); + opacity: 0.7; + -webkit-transition: opacity 0.2s; + -moz-transition: opacity 0.2s; + -o-transition: opacity 0.2s; + transition: opacity 0.2s; +} + +.lb-data .lb-close:hover { + cursor: pointer; + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + opacity: 1; +} diff --git a/www/assets/dist/css/lightbox.min.css b/www/assets/dist/css/lightbox.min.css new file mode 100644 index 0000000..adbaa83 --- /dev/null +++ b/www/assets/dist/css/lightbox.min.css @@ -0,0 +1 @@ +.lb-loader,.lightbox{text-align:center;line-height:0;position:absolute;left:0}body.lb-disable-scrolling{overflow:hidden}.lightboxOverlay{position:absolute;top:0;left:0;z-index:9999;background-color:#000;filter:alpha(Opacity=80);opacity:.8;display:none}.lightbox{width:100%;z-index:10000;font-weight:400;outline:0}.lightbox .lb-image{display:block;height:auto;max-width:inherit;max-height:none;border-radius:3px;border:4px solid #fff}.lightbox a img{border:none}.lb-outerContainer{position:relative;width:250px;height:250px;margin:0 auto;border-radius:4px;background-color:#fff}.lb-outerContainer:after{content:"";display:table;clear:both}.lb-loader{top:43%;height:25%;width:100%}.lb-cancel{display:block;width:32px;height:32px;margin:0 auto;background:url(../images/loading.gif) no-repeat}.lb-nav{position:absolute;top:0;left:0;height:100%;width:100%;z-index:10}.lb-container>.nav{left:0}.lb-nav a{outline:0;background-image:url(data:image/gif;base64,R0lGODlhAQABAPAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)}.lb-next,.lb-prev{height:100%;cursor:pointer;display:block}.lb-nav a.lb-prev{width:34%;left:0;float:left;background:url(../images/prev.png) left 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-prev:hover{filter:alpha(Opacity=100);opacity:1}.lb-nav a.lb-next{width:64%;right:0;float:right;background:url(../images/next.png) right 48% no-repeat;filter:alpha(Opacity=0);opacity:0;-webkit-transition:opacity .6s;-moz-transition:opacity .6s;-o-transition:opacity .6s;transition:opacity .6s}.lb-nav a.lb-next:hover{filter:alpha(Opacity=100);opacity:1}.lb-dataContainer{margin:0 auto;padding-top:5px;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.lb-dataContainer:after{content:"";display:table;clear:both}.lb-data{padding:0 4px;color:#ccc}.lb-data .lb-details{width:85%;float:left;text-align:left;line-height:1.1em}.lb-data .lb-caption{font-size:13px;font-weight:700;line-height:1em}.lb-data .lb-caption a{color:#4ae}.lb-data .lb-number{display:block;clear:left;padding-bottom:1em;font-size:12px;color:#999}.lb-data .lb-close{display:block;float:right;width:30px;height:30px;background:url(../images/close.png) top right no-repeat;text-align:right;outline:0;filter:alpha(Opacity=70);opacity:.7;-webkit-transition:opacity .2s;-moz-transition:opacity .2s;-o-transition:opacity .2s;transition:opacity .2s}.lb-data .lb-close:hover{cursor:pointer;filter:alpha(Opacity=100);opacity:1} \ No newline at end of file diff --git a/www/assets/dist/images/close.png b/www/assets/dist/images/close.png new file mode 100644 index 0000000000000000000000000000000000000000..20baa1db5fdf9e22655a0f851c4401d36b9e7ef9 GIT binary patch literal 280 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i3?z4Pv7`ejn*g5>*Z=?j1DSvS{%vY%YG`Nx zvLV3R+Z)1I1qQoz?eg;S^6>Bg3hv&$d*{xbK#iaC4$A=f!X-g|!3vbDHnnh5Xg#OL;K8su!;fw4MC7hH<+BPou~5EnOggc)I$z JtaD0e0ssdsYEA$E literal 0 HcmV?d00001 diff --git a/www/assets/dist/images/loading.gif b/www/assets/dist/images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..5087c2a644223a95984baefdb74f39a287fdfd9a GIT binary patch literal 8476 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 S-YhKu0000 elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + return typeof obj === "function" && typeof obj.nodeType !== "number"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.4.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a global context + globalEval: function( code, options ) { + DOMEval( code, { nonce: options && options.nonce } ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.4 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2019-04-08 + */ +(function( window ) { + +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + high < 0 ? + // BMP codepoint + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { + + // ID selector + if ( (m = match[1]) ) { + + // Document context + if ( nodeType === 9 ) { + if ( (elem = context.getElementById( m )) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && (elem = newContext.getElementById( m )) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( (m = match[3]) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) && + + // Support: IE 8 only + // Exclude object elements + (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && rdescend.test( selector ) ) { + + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[i] = "#" + nid + " " + toSelector( groups[i] ); + } + newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + } + + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key + " " ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement("fieldset"); + + try { + return !!fn( el ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem.namespaceURI, + docElem = (elem.ownerDocument || elem).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9-11, Edge + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert(function( el ) { + el.className = "i"; + return !el.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + }); + + // ID filter and find + if ( support.getById ) { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( el ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll("[msallowcapture^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } + }); + + assert(function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement("input"); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll("[name=d]").length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll(":enabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll(":disabled").length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( el ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = hasCompare ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + // Sort on method existence if only one input has compareDocumentPosition + var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; + if ( compare ) { + return compare; + } + + // Calculate position if both inputs belong to the same document + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? + a.compareDocumentPosition( b ) : + + // Otherwise we know they are disconnected + 1; + + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { + return -1; + } + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } : + function( a, b ) { + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Parentless nodes are either documents or disconnected + if ( !aup || !bup ) { + return a === document ? -1 : + b === document ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return document; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + if ( support.matchesSelector && documentIsHTML && + !nonnativeSelectorCache[ expr + " " ] && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch (e) { + nonnativeSelectorCache( expr, true ); + } + } + + return Sizzle( expr, document, null, [ elem ] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val !== undefined ? + val : + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null; +}; + +Sizzle.escape = function( sel ) { + return (sel + "").replace( rcssescape, fcssescape ); +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + // Clear input after sorting to release objects + // See https://github.com/jquery/sizzle/pull/225 + sortInput = null; + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + while ( (node = elem[i++]) ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (jQuery #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[6] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, uniqueCache, outerCache, node, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType, + diff = false; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) { + + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + + // Seek `elem` from a previously-cached index + + // ...in a gzip-friendly way + node = parent; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex && cache[ 2 ]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + } else { + // Use previously-cached element index if available + if ( useCache ) { + // ...in a gzip-friendly way + node = elem; + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + cache = uniqueCache[ type ] || []; + nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; + diff = nodeIndex; + } + + // xml :nth-child(...) + // or :nth-last-child(...) or :nth(-last)?-of-type(...) + if ( diff === false ) { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? + node.nodeName.toLowerCase() === name : + node.nodeType === 1 ) && + ++diff ) { + + // Cache the index of each encountered element + if ( useCache ) { + outerCache = node[ expando ] || (node[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ node.uniqueID ] || + (outerCache[ node.uniqueID ] = {}); + + uniqueCache[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); + return function( elem ) { + return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": createDisabledPseudo( false ), + "disabled": createDisabledPseudo( true ), + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), + // but not by others (comment: 8; processing instruction: 7; etc.) + // nodeType < 6 works because attributes (2) do not appear as children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeType < 6 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + + // Support: IE<8 + // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? + argument + length : + argument > length ? + length : + argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +tokenize = Sizzle.tokenize = function( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( (tokens = []) ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +}; + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + skip = combinator.next, + key = skip || dir, + checkNonElements = base && key === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + return false; + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var oldCache, uniqueCache, outerCache, + newCache = [ dirruns, doneName ]; + + // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + + // Support: IE <9 only + // Defend against cloned attroperties (jQuery gh-1709) + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); + + if ( skip && skip === elem.nodeName.toLowerCase() ) { + elem = elem[ dir ] || elem; + } else if ( (oldCache = uniqueCache[ key ]) && + oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { + + // Assign to newCache so results back-propagate to previous elements + return (newCache[ 2 ] = oldCache[ 2 ]); + } else { + // Reuse newcache so results back-propagate to previous elements + uniqueCache[ key ] = newCache; + + // A match means we're done; a fail means we have to keep checking + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { + return true; + } + } + } + } + } + return false; + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + var bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, outermost ) { + var elem, j, matcher, + matchedCount = 0, + i = "0", + unmatched = seed && [], + setMatched = [], + contextBackup = outermostContext, + // We must always have either seed elements or outermost context + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), + len = elems.length; + + if ( outermost ) { + outermostContext = context === document || context || outermost; + } + + // Add elements passing elementMatchers directly to results + // Support: IE<9, Safari + // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + if ( !context && elem.ownerDocument !== document ) { + setDocument( elem ); + xml = !documentIsHTML; + } + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // `i` is now the count of elements visited above, and adding it to `matchedCount` + // makes the latter nonnegative. + matchedCount += i; + + // Apply set filters to unmatched elements + // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` + // equals `i`), unless we didn't visit _any_ elements in the above loop because we have + // no element matchers and no seed. + // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that + // case, which will result in a "00" `matchedCount` that differs from `i` but is also + // numerically zero. + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !match ) { + match = tokenize( selector ); + } + i = match.length; + while ( i-- ) { + cached = matcherFromTokens( match[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + + // Save selector and tokenization + cached.selector = selector; + } + return cached; +}; + +/** + * A low-level selection function that works with Sizzle's compiled + * selector functions + * @param {String|Function} selector A selector or a pre-compiled + * selector function built with Sizzle.compile + * @param {Element} context + * @param {Array} [results] + * @param {Array} [seed] A set of elements to match against + */ +select = Sizzle.select = function( selector, context, results, seed ) { + var i, tokens, token, type, find, + compiled = typeof selector === "function" && selector, + match = !seed && tokenize( (selector = compiled.selector || selector) ); + + results = results || []; + + // Try to minimize operations if there is only one selector in the list and no seed + // (the latter of which guarantees us context) + if ( match.length === 1 ) { + + // Reduce context if the leading compound selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + + // Precompiled matchers will still verify ancestry, so step up a level + } else if ( compiled ) { + context = context.parentNode; + } + + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + + // Compile and execute a filtering function if one is not provided + // Provide `match` to avoid retokenization if we modified the selector above + ( compiled || compile( selector, match ) )( + seed, + context, + !documentIsHTML, + results, + !context || rsibling.test( selector ) && testContext( context.parentNode ) || context + ); + return results; +}; + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome 14-35+ +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = !!hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( el ) { + // Should return 1, but returns 4 (following) + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( el ) { + el.innerHTML = ""; + return el.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( el ) { + el.innerHTML = ""; + el.firstChild.setAttribute( "value", "" ); + return el.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return elem[ name ] === true ? name.toLowerCase() : + (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + null; + } + }); +} + +return Sizzle; + +})( window ); + + + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; + +// Deprecated +jQuery.expr[ ":" ] = jQuery.expr.pseudos; +jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; +jQuery.escapeSelector = Sizzle.escape; + + + + +var dir = function( elem, dir, until ) { + var matched = [], + truncate = until !== undefined; + + while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { + if ( elem.nodeType === 1 ) { + if ( truncate && jQuery( elem ).is( until ) ) { + break; + } + matched.push( elem ); + } + } + return matched; +}; + + +var siblings = function( n, elem ) { + var matched = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + matched.push( n ); + } + } + + return matched; +}; + + +var rneedsContext = jQuery.expr.match.needsContext; + + + +function nodeName( elem, name ) { + + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + +}; +var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); + + + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + return !!qualifier.call( elem, i, elem ) !== not; + } ); + } + + // Single element + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + } ); + } + + // Arraylike of elements (jQuery, arguments, Array) + if ( typeof qualifier !== "string" ) { + return jQuery.grep( elements, function( elem ) { + return ( indexOf.call( qualifier, elem ) > -1 ) !== not; + } ); + } + + // Filtered directly for both simple and complex selectors + return jQuery.filter( qualifier, elements, not ); +} + +jQuery.filter = function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + if ( elems.length === 1 && elem.nodeType === 1 ) { + return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; + } + + return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + } ) ); +}; + +jQuery.fn.extend( { + find: function( selector ) { + var i, ret, + len = this.length, + self = this; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter( function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + } ) ); + } + + ret = this.pushStack( [] ); + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + return len > 1 ? jQuery.uniqueSort( ret ) : ret; + }, + filter: function( selector ) { + return this.pushStack( winnow( this, selector || [], false ) ); + }, + not: function( selector ) { + return this.pushStack( winnow( this, selector || [], true ) ); + }, + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + } +} ); + + +// Initialize a jQuery object + + +// A central reference to the root jQuery(document) +var rootjQuery, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + // Shortcut simple #id case for speed + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + + init = jQuery.fn.init = function( selector, context, root ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Method init() accepts an alternate rootjQuery + // so migrate can support jQuery.sub (gh-2101) + root = root || rootjQuery; + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector[ 0 ] === "<" && + selector[ selector.length - 1 ] === ">" && + selector.length >= 3 ) { + + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && ( match[ 1 ] || !context ) ) { + + // HANDLE: $(html) -> $(array) + if ( match[ 1 ] ) { + context = context instanceof jQuery ? context[ 0 ] : context; + + // Option to run scripts is true for back-compat + // Intentionally let the error be thrown if parseHTML is not present + jQuery.merge( this, jQuery.parseHTML( + match[ 1 ], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + + // Properties of context are called as methods if possible + if ( isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[ 2 ] ); + + if ( elem ) { + + // Inject the element directly into the jQuery object + this[ 0 ] = elem; + this.length = 1; + } + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || root ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this[ 0 ] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( isFunction( selector ) ) { + return root.ready !== undefined ? + root.ready( selector ) : + + // Execute immediately if ready is not present + selector( jQuery ); + } + + return jQuery.makeArray( selector, this ); + }; + +// Give the init function the jQuery prototype for later instantiation +init.prototype = jQuery.fn; + +// Initialize central reference +rootjQuery = jQuery( document ); + + +var rparentsprev = /^(?:parents|prev(?:Until|All))/, + + // Methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend( { + has: function( target ) { + var targets = jQuery( target, this ), + l = targets.length; + + return this.filter( function() { + var i = 0; + for ( ; i < l; i++ ) { + if ( jQuery.contains( this, targets[ i ] ) ) { + return true; + } + } + } ); + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + matched = [], + targets = typeof selectors !== "string" && jQuery( selectors ); + + // Positional selectors never match, since there's no _selection_ context + if ( !rneedsContext.test( selectors ) ) { + for ( ; i < l; i++ ) { + for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { + + // Always skip document fragments + if ( cur.nodeType < 11 && ( targets ? + targets.index( cur ) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector( cur, selectors ) ) ) { + + matched.push( cur ); + break; + } + } + } + } + + return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); + }, + + // Determine the position of an element within the set + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; + } + + // Index in selector + if ( typeof elem === "string" ) { + return indexOf.call( jQuery( elem ), this[ 0 ] ); + } + + // Locate the position of the desired element + return indexOf.call( this, + + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[ 0 ] : elem + ); + }, + + add: function( selector, context ) { + return this.pushStack( + jQuery.uniqueSort( + jQuery.merge( this.get(), jQuery( selector, context ) ) + ) + ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + } +} ); + +function sibling( cur, dir ) { + while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} + return cur; +} + +jQuery.each( { + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return siblings( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return siblings( elem.firstChild ); + }, + contents: function( elem ) { + if ( typeof elem.contentDocument !== "undefined" ) { + return elem.contentDocument; + } + + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } + + return jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var matched = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + matched = jQuery.filter( selector, matched ); + } + + if ( this.length > 1 ) { + + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + jQuery.uniqueSort( matched ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + matched.reverse(); + } + } + + return this.pushStack( matched ); + }; +} ); +var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); + + + +// Convert String-formatted options into Object-formatted ones +function createOptions( options ) { + var object = {}; + jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { + object[ flag ] = true; + } ); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + createOptions( options ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + + // Last fire value for non-forgettable lists + memory, + + // Flag to know if list was already fired + fired, + + // Flag to prevent firing + locked, + + // Actual callback list + list = [], + + // Queue of execution data for repeatable lists + queue = [], + + // Index of currently firing callback (modified by add/remove as needed) + firingIndex = -1, + + // Fire callbacks + fire = function() { + + // Enforce single-firing + locked = locked || options.once; + + // Execute callbacks for all pending executions, + // respecting firingIndex overrides and runtime changes + fired = firing = true; + for ( ; queue.length; firingIndex = -1 ) { + memory = queue.shift(); + while ( ++firingIndex < list.length ) { + + // Run callback and check for early termination + if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && + options.stopOnFalse ) { + + // Jump to end and forget the data so .add doesn't re-fire + firingIndex = list.length; + memory = false; + } + } + } + + // Forget the data if we're done with it + if ( !options.memory ) { + memory = false; + } + + firing = false; + + // Clean up if we're done firing for good + if ( locked ) { + + // Keep an empty list if we have data for future add calls + if ( memory ) { + list = []; + + // Otherwise, this object is spent + } else { + list = ""; + } + } + }, + + // Actual Callbacks object + self = { + + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + + // If we have memory from a past run, we should fire after adding + if ( memory && !firing ) { + firingIndex = list.length - 1; + queue.push( memory ); + } + + ( function add( args ) { + jQuery.each( args, function( _, arg ) { + if ( isFunction( arg ) ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && toType( arg ) !== "string" ) { + + // Inspect recursively + add( arg ); + } + } ); + } )( arguments ); + + if ( memory && !firing ) { + fire(); + } + } + return this; + }, + + // Remove a callback from the list + remove: function() { + jQuery.each( arguments, function( _, arg ) { + var index; + while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + + // Handle firing indexes + if ( index <= firingIndex ) { + firingIndex--; + } + } + } ); + return this; + }, + + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? + jQuery.inArray( fn, list ) > -1 : + list.length > 0; + }, + + // Remove all callbacks from the list + empty: function() { + if ( list ) { + list = []; + } + return this; + }, + + // Disable .fire and .add + // Abort any current/pending executions + // Clear all callbacks and values + disable: function() { + locked = queue = []; + list = memory = ""; + return this; + }, + disabled: function() { + return !list; + }, + + // Disable .fire + // Also disable .add unless we have memory (since it would have no effect) + // Abort any pending executions + lock: function() { + locked = queue = []; + if ( !memory && !firing ) { + list = memory = ""; + } + return this; + }, + locked: function() { + return !!locked; + }, + + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( !locked ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + queue.push( args ); + if ( !firing ) { + fire(); + } + } + return this; + }, + + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; + + +function Identity( v ) { + return v; +} +function Thrower( ex ) { + throw ex; +} + +function adoptValue( value, resolve, reject, noValue ) { + var method; + + try { + + // Check for promise aspect first to privilege synchronous behavior + if ( value && isFunction( ( method = value.promise ) ) ) { + method.call( value ).done( resolve ).fail( reject ); + + // Other thenables + } else if ( value && isFunction( ( method = value.then ) ) ) { + method.call( value, resolve, reject ); + + // Other non-thenables + } else { + + // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: + // * false: [ value ].slice( 0 ) => resolve( value ) + // * true: [ value ].slice( 1 ) => resolve() + resolve.apply( undefined, [ value ].slice( noValue ) ); + } + + // For Promises/A+, convert exceptions into rejections + // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in + // Deferred#then to conditionally suppress rejection. + } catch ( value ) { + + // Support: Android 4.0 only + // Strict mode functions invoked without .call/.apply get global-object context + reject.apply( undefined, [ value ] ); + } +} + +jQuery.extend( { + + Deferred: function( func ) { + var tuples = [ + + // action, add listener, callbacks, + // ... .then handlers, argument index, [final state] + [ "notify", "progress", jQuery.Callbacks( "memory" ), + jQuery.Callbacks( "memory" ), 2 ], + [ "resolve", "done", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 0, "resolved" ], + [ "reject", "fail", jQuery.Callbacks( "once memory" ), + jQuery.Callbacks( "once memory" ), 1, "rejected" ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + "catch": function( fn ) { + return promise.then( null, fn ); + }, + + // Keep pipe for back-compat + pipe: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + + return jQuery.Deferred( function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + + // Map tuples (progress, done, fail) to arguments (done, fail, progress) + var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; + + // deferred.progress(function() { bind to newDefer or newDefer.notify }) + // deferred.done(function() { bind to newDefer or newDefer.resolve }) + // deferred.fail(function() { bind to newDefer or newDefer.reject }) + deferred[ tuple[ 1 ] ]( function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && isFunction( returned.promise ) ) { + returned.promise() + .progress( newDefer.notify ) + .done( newDefer.resolve ) + .fail( newDefer.reject ); + } else { + newDefer[ tuple[ 0 ] + "With" ]( + this, + fn ? [ returned ] : arguments + ); + } + } ); + } ); + fns = null; + } ).promise(); + }, + then: function( onFulfilled, onRejected, onProgress ) { + var maxDepth = 0; + function resolve( depth, deferred, handler, special ) { + return function() { + var that = this, + args = arguments, + mightThrow = function() { + var returned, then; + + // Support: Promises/A+ section 2.3.3.3.3 + // https://promisesaplus.com/#point-59 + // Ignore double-resolution attempts + if ( depth < maxDepth ) { + return; + } + + returned = handler.apply( that, args ); + + // Support: Promises/A+ section 2.3.1 + // https://promisesaplus.com/#point-48 + if ( returned === deferred.promise() ) { + throw new TypeError( "Thenable self-resolution" ); + } + + // Support: Promises/A+ sections 2.3.3.1, 3.5 + // https://promisesaplus.com/#point-54 + // https://promisesaplus.com/#point-75 + // Retrieve `then` only once + then = returned && + + // Support: Promises/A+ section 2.3.4 + // https://promisesaplus.com/#point-64 + // Only check objects and functions for thenability + ( typeof returned === "object" || + typeof returned === "function" ) && + returned.then; + + // Handle a returned thenable + if ( isFunction( then ) ) { + + // Special processors (notify) just wait for resolution + if ( special ) { + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ) + ); + + // Normal processors (resolve) also hook into progress + } else { + + // ...and disregard older resolution values + maxDepth++; + + then.call( + returned, + resolve( maxDepth, deferred, Identity, special ), + resolve( maxDepth, deferred, Thrower, special ), + resolve( maxDepth, deferred, Identity, + deferred.notifyWith ) + ); + } + + // Handle all other returned values + } else { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Identity ) { + that = undefined; + args = [ returned ]; + } + + // Process the value(s) + // Default process is resolve + ( special || deferred.resolveWith )( that, args ); + } + }, + + // Only normal processors (resolve) catch and reject exceptions + process = special ? + mightThrow : + function() { + try { + mightThrow(); + } catch ( e ) { + + if ( jQuery.Deferred.exceptionHook ) { + jQuery.Deferred.exceptionHook( e, + process.stackTrace ); + } + + // Support: Promises/A+ section 2.3.3.3.4.1 + // https://promisesaplus.com/#point-61 + // Ignore post-resolution exceptions + if ( depth + 1 >= maxDepth ) { + + // Only substitute handlers pass on context + // and multiple values (non-spec behavior) + if ( handler !== Thrower ) { + that = undefined; + args = [ e ]; + } + + deferred.rejectWith( that, args ); + } + } + }; + + // Support: Promises/A+ section 2.3.3.3.1 + // https://promisesaplus.com/#point-57 + // Re-resolve promises immediately to dodge false rejection from + // subsequent errors + if ( depth ) { + process(); + } else { + + // Call an optional hook to record the stack, in case of exception + // since it's otherwise lost when execution goes async + if ( jQuery.Deferred.getStackHook ) { + process.stackTrace = jQuery.Deferred.getStackHook(); + } + window.setTimeout( process ); + } + }; + } + + return jQuery.Deferred( function( newDefer ) { + + // progress_handlers.add( ... ) + tuples[ 0 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onProgress ) ? + onProgress : + Identity, + newDefer.notifyWith + ) + ); + + // fulfilled_handlers.add( ... ) + tuples[ 1 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onFulfilled ) ? + onFulfilled : + Identity + ) + ); + + // rejected_handlers.add( ... ) + tuples[ 2 ][ 3 ].add( + resolve( + 0, + newDefer, + isFunction( onRejected ) ? + onRejected : + Thrower + ) + ); + } ).promise(); + }, + + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 5 ]; + + // promise.progress = list.add + // promise.done = list.add + // promise.fail = list.add + promise[ tuple[ 1 ] ] = list.add; + + // Handle state + if ( stateString ) { + list.add( + function() { + + // state = "resolved" (i.e., fulfilled) + // state = "rejected" + state = stateString; + }, + + // rejected_callbacks.disable + // fulfilled_callbacks.disable + tuples[ 3 - i ][ 2 ].disable, + + // rejected_handlers.disable + // fulfilled_handlers.disable + tuples[ 3 - i ][ 3 ].disable, + + // progress_callbacks.lock + tuples[ 0 ][ 2 ].lock, + + // progress_handlers.lock + tuples[ 0 ][ 3 ].lock + ); + } + + // progress_handlers.fire + // fulfilled_handlers.fire + // rejected_handlers.fire + list.add( tuple[ 3 ].fire ); + + // deferred.notify = function() { deferred.notifyWith(...) } + // deferred.resolve = function() { deferred.resolveWith(...) } + // deferred.reject = function() { deferred.rejectWith(...) } + deferred[ tuple[ 0 ] ] = function() { + deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); + return this; + }; + + // deferred.notifyWith = list.fireWith + // deferred.resolveWith = list.fireWith + // deferred.rejectWith = list.fireWith + deferred[ tuple[ 0 ] + "With" ] = list.fireWith; + } ); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( singleValue ) { + var + + // count of uncompleted subordinates + remaining = arguments.length, + + // count of unprocessed arguments + i = remaining, + + // subordinate fulfillment data + resolveContexts = Array( i ), + resolveValues = slice.call( arguments ), + + // the master Deferred + master = jQuery.Deferred(), + + // subordinate callback factory + updateFunc = function( i ) { + return function( value ) { + resolveContexts[ i ] = this; + resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; + if ( !( --remaining ) ) { + master.resolveWith( resolveContexts, resolveValues ); + } + }; + }; + + // Single- and empty arguments are adopted like Promise.resolve + if ( remaining <= 1 ) { + adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, + !remaining ); + + // Use .then() to unwrap secondary thenables (cf. gh-3000) + if ( master.state() === "pending" || + isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { + + return master.then(); + } + } + + // Multiple arguments are aggregated like Promise.all array elements + while ( i-- ) { + adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); + } + + return master.promise(); + } +} ); + + +// These usually indicate a programmer mistake during development, +// warn about them ASAP rather than swallowing them by default. +var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + +jQuery.Deferred.exceptionHook = function( error, stack ) { + + // Support: IE 8 - 9 only + // Console exists when dev tools are open, which can happen at any time + if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { + window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); + } +}; + + + + +jQuery.readyException = function( error ) { + window.setTimeout( function() { + throw error; + } ); +}; + + + + +// The deferred used on DOM ready +var readyList = jQuery.Deferred(); + +jQuery.fn.ready = function( fn ) { + + readyList + .then( fn ) + + // Wrap jQuery.readyException in a function so that the lookup + // happens at the time of error handling instead of callback + // registration. + .catch( function( error ) { + jQuery.readyException( error ); + } ); + + return this; +}; + +jQuery.extend( { + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + } +} ); + +jQuery.ready.then = readyList.then; + +// The ready event handler and self cleanup method +function completed() { + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); + jQuery.ready(); +} + +// Catch cases where $(document).ready() is called +// after the browser event has already occurred. +// Support: IE <=9 - 10 only +// Older IE sometimes signals "interactive" too soon +if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + + // Handle it asynchronously to allow scripts the opportunity to delay ready + window.setTimeout( jQuery.ready ); + +} else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed ); +} + + + + +// Multifunctional method to get and set values of a collection +// The value/s can optionally be executed if it's a function +var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + len = elems.length, + bulk = key == null; + + // Sets many values + if ( toType( key ) === "object" ) { + chainable = true; + for ( i in key ) { + access( elems, fn, i, key[ i ], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < len; i++ ) { + fn( + elems[ i ], key, raw ? + value : + value.call( elems[ i ], i, fn( elems[ i ], key ) ) + ); + } + } + } + + if ( chainable ) { + return elems; + } + + // Gets + if ( bulk ) { + return fn.call( elems ); + } + + return len ? fn( elems[ 0 ], key ) : emptyGet; +}; + + +// Matches dashed string for camelizing +var rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g; + +// Used by camelCase as callback to replace() +function fcamelCase( all, letter ) { + return letter.toUpperCase(); +} + +// Convert dashed to camelCase; used by the css and data modules +// Support: IE <=9 - 11, Edge 12 - 15 +// Microsoft forgot to hump their vendor prefix (#9572) +function camelCase( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); +} +var acceptData = function( owner ) { + + // Accepts only: + // - Node + // - Node.ELEMENT_NODE + // - Node.DOCUMENT_NODE + // - Object + // - Any + return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); +}; + + + + +function Data() { + this.expando = jQuery.expando + Data.uid++; +} + +Data.uid = 1; + +Data.prototype = { + + cache: function( owner ) { + + // Check if the owner object already has a cache + var value = owner[ this.expando ]; + + // If not, create one + if ( !value ) { + value = {}; + + // We can accept data for non-element nodes in modern browsers, + // but we should not, see #8335. + // Always return an empty object. + if ( acceptData( owner ) ) { + + // If it is a node unlikely to be stringify-ed or looped over + // use plain assignment + if ( owner.nodeType ) { + owner[ this.expando ] = value; + + // Otherwise secure it in a non-enumerable property + // configurable must be true to allow the property to be + // deleted when data is removed + } else { + Object.defineProperty( owner, this.expando, { + value: value, + configurable: true + } ); + } + } + } + + return value; + }, + set: function( owner, data, value ) { + var prop, + cache = this.cache( owner ); + + // Handle: [ owner, key, value ] args + // Always use camelCase key (gh-2257) + if ( typeof data === "string" ) { + cache[ camelCase( data ) ] = value; + + // Handle: [ owner, { properties } ] args + } else { + + // Copy the properties one-by-one to the cache object + for ( prop in data ) { + cache[ camelCase( prop ) ] = data[ prop ]; + } + } + return cache; + }, + get: function( owner, key ) { + return key === undefined ? + this.cache( owner ) : + + // Always use camelCase key (gh-2257) + owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; + }, + access: function( owner, key, value ) { + + // In cases where either: + // + // 1. No key was specified + // 2. A string key was specified, but no value provided + // + // Take the "read" path and allow the get method to determine + // which value to return, respectively either: + // + // 1. The entire cache object + // 2. The data stored at the key + // + if ( key === undefined || + ( ( key && typeof key === "string" ) && value === undefined ) ) { + + return this.get( owner, key ); + } + + // When the key is not a string, or both a key and value + // are specified, set or extend (existing objects) with either: + // + // 1. An object of properties + // 2. A key and value + // + this.set( owner, key, value ); + + // Since the "set" path can have two possible entry points + // return the expected data based on which path was taken[*] + return value !== undefined ? value : key; + }, + remove: function( owner, key ) { + var i, + cache = owner[ this.expando ]; + + if ( cache === undefined ) { + return; + } + + if ( key !== undefined ) { + + // Support array or space separated string of keys + if ( Array.isArray( key ) ) { + + // If key is an array of keys... + // We always set camelCase keys, so remove that. + key = key.map( camelCase ); + } else { + key = camelCase( key ); + + // If a key with the spaces exists, use it. + // Otherwise, create an array by matching non-whitespace + key = key in cache ? + [ key ] : + ( key.match( rnothtmlwhite ) || [] ); + } + + i = key.length; + + while ( i-- ) { + delete cache[ key[ i ] ]; + } + } + + // Remove the expando if there's no more data + if ( key === undefined || jQuery.isEmptyObject( cache ) ) { + + // Support: Chrome <=35 - 45 + // Webkit & Blink performance suffers when deleting properties + // from DOM nodes, so set to undefined instead + // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) + if ( owner.nodeType ) { + owner[ this.expando ] = undefined; + } else { + delete owner[ this.expando ]; + } + } + }, + hasData: function( owner ) { + var cache = owner[ this.expando ]; + return cache !== undefined && !jQuery.isEmptyObject( cache ); + } +}; +var dataPriv = new Data(); + +var dataUser = new Data(); + + + +// Implementation Summary +// +// 1. Enforce API surface and semantic compatibility with 1.9.x branch +// 2. Improve the module's maintainability by reducing the storage +// paths to a single mechanism. +// 3. Use the same single mechanism to support "private" and "user" data. +// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) +// 5. Avoid exposing implementation details on user objects (eg. expando properties) +// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 + +var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + rmultiDash = /[A-Z]/g; + +function getData( data ) { + if ( data === "true" ) { + return true; + } + + if ( data === "false" ) { + return false; + } + + if ( data === "null" ) { + return null; + } + + // Only convert to a number if it doesn't change the string + if ( data === +data + "" ) { + return +data; + } + + if ( rbrace.test( data ) ) { + return JSON.parse( data ); + } + + return data; +} + +function dataAttr( elem, key, data ) { + var name; + + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = getData( data ); + } catch ( e ) {} + + // Make sure we set the data so it isn't changed later + dataUser.set( elem, key, data ); + } else { + data = undefined; + } + } + return data; +} + +jQuery.extend( { + hasData: function( elem ) { + return dataUser.hasData( elem ) || dataPriv.hasData( elem ); + }, + + data: function( elem, name, data ) { + return dataUser.access( elem, name, data ); + }, + + removeData: function( elem, name ) { + dataUser.remove( elem, name ); + }, + + // TODO: Now that all calls to _data and _removeData have been replaced + // with direct calls to dataPriv methods, these can be deprecated. + _data: function( elem, name, data ) { + return dataPriv.access( elem, name, data ); + }, + + _removeData: function( elem, name ) { + dataPriv.remove( elem, name ); + } +} ); + +jQuery.fn.extend( { + data: function( key, value ) { + var i, name, data, + elem = this[ 0 ], + attrs = elem && elem.attributes; + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = dataUser.get( elem ); + + if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { + i = attrs.length; + while ( i-- ) { + + // Support: IE 11 only + // The attrs elements can be null (#14894) + if ( attrs[ i ] ) { + name = attrs[ i ].name; + if ( name.indexOf( "data-" ) === 0 ) { + name = camelCase( name.slice( 5 ) ); + dataAttr( elem, name, data[ name ] ); + } + } + } + dataPriv.set( elem, "hasDataAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each( function() { + dataUser.set( this, key ); + } ); + } + + return access( this, function( value ) { + var data; + + // The calling jQuery object (element matches) is not empty + // (and therefore has an element appears at this[ 0 ]) and the + // `value` parameter was not undefined. An empty jQuery object + // will result in `undefined` for elem = this[ 0 ] which will + // throw an exception if an attempt to read a data cache is made. + if ( elem && value === undefined ) { + + // Attempt to get data from the cache + // The key will always be camelCased in Data + data = dataUser.get( elem, key ); + if ( data !== undefined ) { + return data; + } + + // Attempt to "discover" the data in + // HTML5 custom data-* attrs + data = dataAttr( elem, key ); + if ( data !== undefined ) { + return data; + } + + // We tried really hard, but the data doesn't exist. + return; + } + + // Set the data... + this.each( function() { + + // We always store the camelCased key + dataUser.set( this, key, value ); + } ); + }, null, value, arguments.length > 1, null, true ); + }, + + removeData: function( key ) { + return this.each( function() { + dataUser.remove( this, key ); + } ); + } +} ); + + +jQuery.extend( { + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = dataPriv.get( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || Array.isArray( data ) ) { + queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // Clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // Not public - generate a queueHooks object, or return the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { + empty: jQuery.Callbacks( "once memory" ).add( function() { + dataPriv.remove( elem, [ type + "queue", key ] ); + } ) + } ); + } +} ); + +jQuery.fn.extend( { + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[ 0 ], type ); + } + + return data === undefined ? + this : + this.each( function() { + var queue = jQuery.queue( this, type, data ); + + // Ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + } ); + }, + dequeue: function( type ) { + return this.each( function() { + jQuery.dequeue( this, type ); + } ); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while ( i-- ) { + tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +} ); +var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; + +var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); + + +var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; + +var documentElement = document.documentElement; + + + + var isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ); + }, + composed = { composed: true }; + + // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only + // Check attachment across shadow DOM boundaries when possible (gh-3504) + // Support: iOS 10.0-10.2 only + // Early iOS 10 versions support `attachShadow` but not `getRootNode`, + // leading to errors. We need to check for `getRootNode`. + if ( documentElement.getRootNode ) { + isAttached = function( elem ) { + return jQuery.contains( elem.ownerDocument, elem ) || + elem.getRootNode( composed ) === elem.ownerDocument; + }; + } +var isHiddenWithinTree = function( elem, el ) { + + // isHiddenWithinTree might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + + // Inline style trumps all + return elem.style.display === "none" || + elem.style.display === "" && + + // Otherwise, check computed style + // Support: Firefox <=43 - 45 + // Disconnected elements can have computed display: none, so first confirm that elem is + // in the document. + isAttached( elem ) && + + jQuery.css( elem, "display" ) === "none"; + }; + +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + + + +function adjustCSS( elem, prop, valueParts, tween ) { + var adjusted, scale, + maxIterations = 20, + currentValue = tween ? + function() { + return tween.cur(); + } : + function() { + return jQuery.css( elem, prop, "" ); + }, + initial = currentValue(), + unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), + + // Starting value computation is required for potential unit mismatches + initialInUnit = elem.nodeType && + ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + rcssNum.exec( jQuery.css( elem, prop ) ); + + if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { + + // Support: Firefox <=54 + // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) + initial = initial / 2; + + // Trust units reported by jQuery.css + unit = unit || initialInUnit[ 3 ]; + + // Iteratively approximate from a nonzero starting point + initialInUnit = +initial || 1; + + while ( maxIterations-- ) { + + // Evaluate and update our best guess (doubling guesses that zero out). + // Finish if the scale equals or crosses 1 (making the old*new product non-positive). + jQuery.style( elem, prop, initialInUnit + unit ); + if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { + maxIterations = 0; + } + initialInUnit = initialInUnit / scale; + + } + + initialInUnit = initialInUnit * 2; + jQuery.style( elem, prop, initialInUnit + unit ); + + // Make sure we update the tween properties later on + valueParts = valueParts || []; + } + + if ( valueParts ) { + initialInUnit = +initialInUnit || +initial || 0; + + // Apply relative offset (+=/-=) if specified + adjusted = valueParts[ 1 ] ? + initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : + +valueParts[ 2 ]; + if ( tween ) { + tween.unit = unit; + tween.start = initialInUnit; + tween.end = adjusted; + } + } + return adjusted; +} + + +var defaultDisplayMap = {}; + +function getDefaultDisplay( elem ) { + var temp, + doc = elem.ownerDocument, + nodeName = elem.nodeName, + display = defaultDisplayMap[ nodeName ]; + + if ( display ) { + return display; + } + + temp = doc.body.appendChild( doc.createElement( nodeName ) ); + display = jQuery.css( temp, "display" ); + + temp.parentNode.removeChild( temp ); + + if ( display === "none" ) { + display = "block"; + } + defaultDisplayMap[ nodeName ] = display; + + return display; +} + +function showHide( elements, show ) { + var display, elem, + values = [], + index = 0, + length = elements.length; + + // Determine new display value for elements that need to change + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + display = elem.style.display; + if ( show ) { + + // Since we force visibility upon cascade-hidden elements, an immediate (and slow) + // check is required in this first loop unless we have a nonempty display value (either + // inline or about-to-be-restored) + if ( display === "none" ) { + values[ index ] = dataPriv.get( elem, "display" ) || null; + if ( !values[ index ] ) { + elem.style.display = ""; + } + } + if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { + values[ index ] = getDefaultDisplay( elem ); + } + } else { + if ( display !== "none" ) { + values[ index ] = "none"; + + // Remember what we're overwriting + dataPriv.set( elem, "display", display ); + } + } + } + + // Set the display of the elements in a second loop to avoid constant reflow + for ( index = 0; index < length; index++ ) { + if ( values[ index ] != null ) { + elements[ index ].style.display = values[ index ]; + } + } + + return elements; +} + +jQuery.fn.extend( { + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each( function() { + if ( isHiddenWithinTree( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + } ); + } +} ); +var rcheckableType = ( /^(?:checkbox|radio)$/i ); + +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); + +var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); + + + +// We have to close these tags to support XHTML (#13200) +var wrapMap = { + + // Support: IE <=9 only + option: [ 1, "" ], + + // XHTML parsers do not magically insert elements in the + // same way that tag soup parsers do. So we cannot shorten + // this by omitting or other required elements. + thead: [ 1, "", "
" ], + col: [ 2, "", "
" ], + tr: [ 2, "", "
" ], + td: [ 3, "", "
" ], + + _default: [ 0, "", "" ] +}; + +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + + +function getAll( context, tag ) { + + // Support: IE <=9 - 11 only + // Use typeof to avoid zero-argument method invocation on host objects (#15151) + var ret; + + if ( typeof context.getElementsByTagName !== "undefined" ) { + ret = context.getElementsByTagName( tag || "*" ); + + } else if ( typeof context.querySelectorAll !== "undefined" ) { + ret = context.querySelectorAll( tag || "*" ); + + } else { + ret = []; + } + + if ( tag === undefined || tag && nodeName( context, tag ) ) { + return jQuery.merge( [ context ], ret ); + } + + return ret; +} + + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + dataPriv.set( + elems[ i ], + "globalEval", + !refElements || dataPriv.get( refElements[ i ], "globalEval" ) + ); + } +} + + +var rhtml = /<|&#?\w+;/; + +function buildFragment( elems, context, scripts, selection, ignored ) { + var elem, tmp, tag, wrap, attached, j, + fragment = context.createDocumentFragment(), + nodes = [], + i = 0, + l = elems.length; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( toType( elem ) === "object" ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; + + // Descend through wrappers to the right content + j = wrap[ 0 ]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( nodes, tmp.childNodes ); + + // Remember the top-level container + tmp = fragment.firstChild; + + // Ensure the created nodes are orphaned (#12392) + tmp.textContent = ""; + } + } + } + + // Remove wrapper from fragment + fragment.textContent = ""; + + i = 0; + while ( ( elem = nodes[ i++ ] ) ) { + + // Skip elements already in the context collection (trac-4087) + if ( selection && jQuery.inArray( elem, selection ) > -1 ) { + if ( ignored ) { + ignored.push( elem ); + } + continue; + } + + attached = isAttached( elem ); + + // Append to fragment + tmp = getAll( fragment.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( attached ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( ( elem = tmp[ j++ ] ) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + return fragment; +} + + +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); + + +var + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +// Support: IE <=9 - 11+ +// focus() and blur() are asynchronous, except when they are no-op. +// So expect focus to be synchronous when the element is already active, +// and blur to be synchronous when the element is not already active. +// (focus and blur are always synchronous in other supported browsers, +// this just defines when we can count on it). +function expectSync( elem, type ) { + return ( elem === safeActiveElement() ) === ( type === "focus" ); +} + +// Support: IE <=9 only +// Accessing document.activeElement can throw unexpectedly +// https://bugs.jquery.com/ticket/13393 +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +function on( elem, types, selector, data, fn, one ) { + var origFn, type; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + on( elem, type, selector, data, types[ type ], one ); + } + return elem; + } + + if ( data == null && fn == null ) { + + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return elem; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return elem.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + } ); +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + + var handleObjIn, eventHandle, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.get( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Ensure that invalid selectors throw exceptions at attach time + // Evaluate against documentElement in case elem is a non-element node (e.g., document) + if ( selector ) { + jQuery.find.matchesSelector( documentElement, selector ); + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !( events = elemData.events ) ) { + events = elemData.events = {}; + } + if ( !( eventHandle = elemData.handle ) ) { + eventHandle = elemData.handle = function( e ) { + + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? + jQuery.event.dispatch.apply( elem, arguments ) : undefined; + }; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend( { + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join( "." ) + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !( handlers = events[ type ] ) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener if the special events handler returns false + if ( !special.setup || + special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + + var j, origCount, tmp, + events, t, handleObj, + special, handlers, type, namespaces, origType, + elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); + + if ( !elemData || !( events = elemData.events ) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[ t ] ) || []; + type = origType = tmp[ 1 ]; + namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[ 2 ] && + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || + selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || + special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove data and the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + dataPriv.remove( elem, "handle events" ); + } + }, + + dispatch: function( nativeEvent ) { + + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + + var i, j, ret, matched, handleObj, handlerQueue, + args = new Array( arguments.length ), + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[ 0 ] = event; + + for ( i = 1; i < arguments.length; i++ ) { + args[ i ] = arguments[ i ]; + } + + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( ( handleObj = matched.handlers[ j++ ] ) && + !event.isImmediatePropagationStopped() ) { + + // If the event is namespaced, then each handler is only invoked if it is + // specially universal or its namespaces are a superset of the event's. + if ( !event.rnamespace || handleObj.namespace === false || + event.rnamespace.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || + handleObj.handler ).apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( ( event.result = ret ) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var i, handleObj, sel, matchedHandlers, matchedSelectors, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + if ( delegateCount && + + // Support: IE <=9 + // Black-hole SVG instance trees (trac-13180) + cur.nodeType && + + // Support: Firefox <=42 + // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) + // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click + // Support: IE 11 only + // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) + !( event.type === "click" && event.button >= 1 ) ) { + + for ( ; cur !== this; cur = cur.parentNode || this ) { + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { + matchedHandlers = []; + matchedSelectors = {}; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matchedSelectors[ sel ] === undefined ) { + matchedSelectors[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) > -1 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matchedSelectors[ sel ] ) { + matchedHandlers.push( handleObj ); + } + } + if ( matchedHandlers.length ) { + handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); + } + } + } + } + + // Add the remaining (directly-bound) handlers + cur = this; + if ( delegateCount < handlers.length ) { + handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); + } + + return handlerQueue; + }, + + addProp: function( name, hook ) { + Object.defineProperty( jQuery.Event.prototype, name, { + enumerable: true, + configurable: true, + + get: isFunction( hook ) ? + function() { + if ( this.originalEvent ) { + return hook( this.originalEvent ); + } + } : + function() { + if ( this.originalEvent ) { + return this.originalEvent[ name ]; + } + }, + + set: function( value ) { + Object.defineProperty( this, name, { + enumerable: true, + configurable: true, + writable: true, + value: value + } ); + } + } ); + }, + + fix: function( originalEvent ) { + return originalEvent[ jQuery.expando ] ? + originalEvent : + new jQuery.Event( originalEvent ); + }, + + special: { + load: { + + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + click: { + + // Utilize native event to ensure correct state for checkable inputs + setup: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Claim the first handler + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + // dataPriv.set( el, "click", ... ) + leverageNative( el, "click", returnTrue ); + } + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function( data ) { + + // For mutual compressibility with _default, replace `this` access with a local var. + // `|| data` is dead code meant only to preserve the variable through minification. + var el = this || data; + + // Force setup before triggering a click + if ( rcheckableType.test( el.type ) && + el.click && nodeName( el, "input" ) ) { + + leverageNative( el, "click" ); + } + + // Return non-false to allow normal event-path propagation + return true; + }, + + // For cross-browser consistency, suppress native .click() on links + // Also prevent it if we're currently inside a leveraged native-event stack + _default: function( event ) { + var target = event.target; + return rcheckableType.test( target.type ) && + target.click && nodeName( target, "input" ) && + dataPriv.get( target, "click" ) || + nodeName( target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Support: Firefox 20+ + // Firefox doesn't alert if the returnValue field is not set. + if ( event.result !== undefined && event.originalEvent ) { + event.originalEvent.returnValue = event.result; + } + } + } + } +}; + +// Ensure the presence of an event listener that handles manually-triggered +// synthetic events by interrupting progress until reinvoked in response to +// *native* events that it fires directly, ensuring that state changes have +// already occurred before other listeners are invoked. +function leverageNative( el, type, expectSync ) { + + // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add + if ( !expectSync ) { + if ( dataPriv.get( el, type ) === undefined ) { + jQuery.event.add( el, type, returnTrue ); + } + return; + } + + // Register the controller as a special universal handler for all event namespaces + dataPriv.set( el, type, false ); + jQuery.event.add( el, type, { + namespace: false, + handler: function( event ) { + var notAsync, result, + saved = dataPriv.get( this, type ); + + if ( ( event.isTrigger & 1 ) && this[ type ] ) { + + // Interrupt processing of the outer synthetic .trigger()ed event + // Saved data should be false in such cases, but might be a leftover capture object + // from an async native handler (gh-4350) + if ( !saved.length ) { + + // Store arguments for use when handling the inner native event + // There will always be at least one argument (an event object), so this array + // will not be confused with a leftover capture object. + saved = slice.call( arguments ); + dataPriv.set( this, type, saved ); + + // Trigger the native event and capture its result + // Support: IE <=9 - 11+ + // focus() and blur() are asynchronous + notAsync = expectSync( this, type ); + this[ type ](); + result = dataPriv.get( this, type ); + if ( saved !== result || notAsync ) { + dataPriv.set( this, type, false ); + } else { + result = {}; + } + if ( saved !== result ) { + + // Cancel the outer synthetic event + event.stopImmediatePropagation(); + event.preventDefault(); + return result.value; + } + + // If this is an inner synthetic event for an event with a bubbling surrogate + // (focus or blur), assume that the surrogate already propagated from triggering the + // native event and prevent that from happening again here. + // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the + // bubbling surrogate propagates *after* the non-bubbling base), but that seems + // less bad than duplication. + } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { + event.stopPropagation(); + } + + // If this is a native event triggered above, everything is now in order + // Fire an inner synthetic event with the original arguments + } else if ( saved.length ) { + + // ...and capture the result + dataPriv.set( this, type, { + value: jQuery.event.trigger( + + // Support: IE <=9 - 11+ + // Extend with the prototype to reset the above stopImmediatePropagation() + jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), + saved.slice( 1 ), + this + ) + } ); + + // Abort handling of the native event + event.stopImmediatePropagation(); + } + } + } ); +} + +jQuery.removeEvent = function( elem, type, handle ) { + + // This "if" is needed for plain objects + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle ); + } +}; + +jQuery.Event = function( src, props ) { + + // Allow instantiation without the 'new' keyword + if ( !( this instanceof jQuery.Event ) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = src.defaultPrevented || + src.defaultPrevented === undefined && + + // Support: Android <=2.3 only + src.returnValue === false ? + returnTrue : + returnFalse; + + // Create target properties + // Support: Safari <=6 - 7 only + // Target should not be a text node (#504, #13143) + this.target = ( src.target && src.target.nodeType === 3 ) ? + src.target.parentNode : + src.target; + + this.currentTarget = src.currentTarget; + this.relatedTarget = src.relatedTarget; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || Date.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + constructor: jQuery.Event, + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + isSimulated: false, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + + if ( e && !this.isSimulated ) { + e.preventDefault(); + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopPropagation(); + } + }, + stopImmediatePropagation: function() { + var e = this.originalEvent; + + this.isImmediatePropagationStopped = returnTrue; + + if ( e && !this.isSimulated ) { + e.stopImmediatePropagation(); + } + + this.stopPropagation(); + } +}; + +// Includes all common event props including KeyEvent and MouseEvent specific props +jQuery.each( { + altKey: true, + bubbles: true, + cancelable: true, + changedTouches: true, + ctrlKey: true, + detail: true, + eventPhase: true, + metaKey: true, + pageX: true, + pageY: true, + shiftKey: true, + view: true, + "char": true, + code: true, + charCode: true, + key: true, + keyCode: true, + button: true, + buttons: true, + clientX: true, + clientY: true, + offsetX: true, + offsetY: true, + pointerId: true, + pointerType: true, + screenX: true, + screenY: true, + targetTouches: true, + toElement: true, + touches: true, + + which: function( event ) { + var button = event.button; + + // Add which for key events + if ( event.which == null && rkeyEvent.test( event.type ) ) { + return event.charCode != null ? event.charCode : event.keyCode; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { + if ( button & 1 ) { + return 1; + } + + if ( button & 2 ) { + return 3; + } + + if ( button & 4 ) { + return 2; + } + + return 0; + } + + return event.which; + } +}, jQuery.event.addProp ); + +jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { + jQuery.event.special[ type ] = { + + // Utilize native event if possible so blur/focus sequence is correct + setup: function() { + + // Claim the first handler + // dataPriv.set( this, "focus", ... ) + // dataPriv.set( this, "blur", ... ) + leverageNative( this, type, expectSync ); + + // Return false to allow normal processing in the caller + return false; + }, + trigger: function() { + + // Force setup before trigger + leverageNative( this, type ); + + // Return non-false to allow normal event-path propagation + return true; + }, + + delegateType: delegateType + }; +} ); + +// Create mouseenter/leave events using mouseover/out and event-time checks +// so that event delegation works in jQuery. +// Do the same for pointerenter/pointerleave and pointerover/pointerout +// +// Support: Safari 7 only +// Safari sends mouseenter too often; see: +// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 +// for the description of the bug (it existed in older Chrome versions as well). +jQuery.each( { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mouseenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +} ); + +jQuery.fn.extend( { + + on: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn ); + }, + one: function( types, selector, data, fn ) { + return on( this, types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? + handleObj.origType + "." + handleObj.namespace : + handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each( function() { + jQuery.event.remove( this, types, fn, selector ); + } ); + } +} ); + + +var + + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + + // Support: IE <=10 - 11, Edge 12 - 13 only + // In IE/Edge using regex groups here causes severe slowdowns. + // See https://connect.microsoft.com/IE/feedback/details/1736512/ + rnoInnerhtml = /\s*$/g; + +// Prefer a tbody over its parent table for containing new rows +function manipulationTarget( elem, content ) { + if ( nodeName( elem, "table" ) && + nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { + + return jQuery( elem ).children( "tbody" )[ 0 ] || elem; + } + + return elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { + elem.type = elem.type.slice( 5 ); + } else { + elem.removeAttribute( "type" ); + } + + return elem; +} + +function cloneCopyEvent( src, dest ) { + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; + + if ( dest.nodeType !== 1 ) { + return; + } + + // 1. Copy private data: events, handlers, etc. + if ( dataPriv.hasData( src ) ) { + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); + events = pdataOld.events; + + if ( events ) { + delete pdataCur.handle; + pdataCur.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + } + + // 2. Copy user data + if ( dataUser.hasData( src ) ) { + udataOld = dataUser.access( src ); + udataCur = jQuery.extend( {}, udataOld ); + + dataUser.set( dest, udataCur ); + } +} + +// Fix IE bugs, see support tests +function fixInput( src, dest ) { + var nodeName = dest.nodeName.toLowerCase(); + + // Fails to persist the checked state of a cloned checkbox or radio button. + if ( nodeName === "input" && rcheckableType.test( src.type ) ) { + dest.checked = src.checked; + + // Fails to return the selected option to the default selected state when cloning options + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +function domManip( collection, args, callback, ignored ) { + + // Flatten any nested arrays + args = concat.apply( [], args ); + + var fragment, first, scripts, hasScripts, node, doc, + i = 0, + l = collection.length, + iNoClone = l - 1, + value = args[ 0 ], + valueIsFunction = isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( valueIsFunction || + ( l > 1 && typeof value === "string" && + !support.checkClone && rchecked.test( value ) ) ) { + return collection.each( function( index ) { + var self = collection.eq( index ); + if ( valueIsFunction ) { + args[ 0 ] = value.call( this, index, self.html() ); + } + domManip( self, args, callback, ignored ); + } ); + } + + if ( l ) { + fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + // Require either new content or an interest in ignored elements to invoke the callback + if ( first || ignored ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item + // instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( collection[ i ], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !dataPriv.access( node, "globalEval" ) && + jQuery.contains( doc, node ) ) { + + if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { + + // Optional AJAX dependency, but won't run scripts if not present + if ( jQuery._evalUrl && !node.noModule ) { + jQuery._evalUrl( node.src, { + nonce: node.nonce || node.getAttribute( "nonce" ) + } ); + } + } else { + DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + } + } + } + } + } + } + + return collection; +} + +function remove( elem, selector, keepData ) { + var node, + nodes = selector ? jQuery.filter( selector, elem ) : elem, + i = 0; + + for ( ; ( node = nodes[ i ] ) != null; i++ ) { + if ( !keepData && node.nodeType === 1 ) { + jQuery.cleanData( getAll( node ) ); + } + + if ( node.parentNode ) { + if ( keepData && isAttached( node ) ) { + setGlobalEval( getAll( node, "script" ) ); + } + node.parentNode.removeChild( node ); + } + } + + return elem; +} + +jQuery.extend( { + htmlPrefilter: function( html ) { + return html.replace( rxhtmlTag, "<$1>" ); + }, + + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var i, l, srcElements, destElements, + clone = elem.cloneNode( true ), + inPage = isAttached( elem ); + + // Fix IE cloning issues + if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && + !jQuery.isXMLDoc( elem ) ) { + + // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + fixInput( srcElements[ i ], destElements[ i ] ); + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0, l = srcElements.length; i < l; i++ ) { + cloneCopyEvent( srcElements[ i ], destElements[ i ] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + // Return the cloned set + return clone; + }, + + cleanData: function( elems ) { + var data, elem, type, + special = jQuery.event.special, + i = 0; + + for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { + if ( acceptData( elem ) ) { + if ( ( data = elem[ dataPriv.expando ] ) ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataPriv.expando ] = undefined; + } + if ( elem[ dataUser.expando ] ) { + + // Support: Chrome <=35 - 45+ + // Assign undefined instead of using delete, see Data#remove + elem[ dataUser.expando ] = undefined; + } + } + } + } +} ); + +jQuery.fn.extend( { + detach: function( selector ) { + return remove( this, selector, true ); + }, + + remove: function( selector ) { + return remove( this, selector ); + }, + + text: function( value ) { + return access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().each( function() { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + this.textContent = value; + } + } ); + }, null, value, arguments.length ); + }, + + append: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + } ); + }, + + prepend: function() { + return domManip( this, arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + } ); + }, + + before: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + } ); + }, + + after: function() { + return domManip( this, arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + } ); + }, + + empty: function() { + var elem, + i = 0; + + for ( ; ( elem = this[ i ] ) != null; i++ ) { + if ( elem.nodeType === 1 ) { + + // Prevent memory leaks + jQuery.cleanData( getAll( elem, false ) ); + + // Remove any remaining nodes + elem.textContent = ""; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function() { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + } ); + }, + + html: function( value ) { + return access( this, function( value ) { + var elem = this[ 0 ] || {}, + i = 0, + l = this.length; + + if ( value === undefined && elem.nodeType === 1 ) { + return elem.innerHTML; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { + + value = jQuery.htmlPrefilter( value ); + + try { + for ( ; i < l; i++ ) { + elem = this[ i ] || {}; + + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch ( e ) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var ignored = []; + + // Make the changes, replacing each non-ignored context element with the new content + return domManip( this, arguments, function( elem ) { + var parent = this.parentNode; + + if ( jQuery.inArray( this, ignored ) < 0 ) { + jQuery.cleanData( getAll( this ) ); + if ( parent ) { + parent.replaceChild( elem, this ); + } + } + + // Force callback invocation + }, ignored ); + } +} ); + +jQuery.each( { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1, + i = 0; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone( true ); + jQuery( insert[ i ] )[ original ]( elems ); + + // Support: Android <=4.0 only, PhantomJS 1 only + // .get() because push.apply(_, arraylike) throws on ancient WebKit + push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +} ); +var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); + +var getStyles = function( elem ) { + + // Support: IE <=11 only, Firefox <=30 (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + var view = elem.ownerDocument.defaultView; + + if ( !view || !view.opener ) { + view = window; + } + + return view.getComputedStyle( elem ); + }; + +var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); + + + +( function() { + + // Executing both pixelPosition & boxSizingReliable tests require only one layout + // so they're executed at the same time to save the second computation. + function computeStyleTests() { + + // This is a singleton, we need to execute it only once + if ( !div ) { + return; + } + + container.style.cssText = "position:absolute;left:-11111px;width:60px;" + + "margin-top:1px;padding:0;border:0"; + div.style.cssText = + "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + + "margin:auto;border:1px;padding:1px;" + + "width:60%;top:1%"; + documentElement.appendChild( container ).appendChild( div ); + + var divStyle = window.getComputedStyle( div ); + pixelPositionVal = divStyle.top !== "1%"; + + // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 + reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; + + // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 + // Some styles come back with percentage values, even though they shouldn't + div.style.right = "60%"; + pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; + + // Support: IE 9 - 11 only + // Detect misreporting of content dimensions for box-sizing:border-box elements + boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; + + // Support: IE 9 only + // Detect overflow:scroll screwiness (gh-3699) + // Support: Chrome <=64 + // Don't get tricked when zoom affects offsetWidth (gh-4029) + div.style.position = "absolute"; + scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + + documentElement.removeChild( container ); + + // Nullify the div so it wouldn't be stored in the memory and + // it will also be a sign that checks already performed + div = null; + } + + function roundPixelMeasures( measure ) { + return Math.round( parseFloat( measure ) ); + } + + var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, + reliableMarginLeftVal, + container = document.createElement( "div" ), + div = document.createElement( "div" ); + + // Finish early in limited (non-browser) environments + if ( !div.style ) { + return; + } + + // Support: IE <=9 - 11 only + // Style of cloned element affects source element cloned (#8908) + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + jQuery.extend( support, { + boxSizingReliable: function() { + computeStyleTests(); + return boxSizingReliableVal; + }, + pixelBoxStyles: function() { + computeStyleTests(); + return pixelBoxStylesVal; + }, + pixelPosition: function() { + computeStyleTests(); + return pixelPositionVal; + }, + reliableMarginLeft: function() { + computeStyleTests(); + return reliableMarginLeftVal; + }, + scrollboxSize: function() { + computeStyleTests(); + return scrollboxSizeVal; + } + } ); +} )(); + + +function curCSS( elem, name, computed ) { + var width, minWidth, maxWidth, ret, + + // Support: Firefox 51+ + // Retrieving style before computed somehow + // fixes an issue with getting wrong values + // on detached elements + style = elem.style; + + computed = computed || getStyles( elem ); + + // getPropertyValue is needed for: + // .css('filter') (IE 9 only, #12537) + // .css('--customProperty) (#3144) + if ( computed ) { + ret = computed.getPropertyValue( name ) || computed[ name ]; + + if ( ret === "" && !isAttached( elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Android Browser returns percentage for some values, + // but width seems to be reliably pixels. + // This is against the CSSOM draft spec: + // https://drafts.csswg.org/cssom/#resolved-values + if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret !== undefined ? + + // Support: IE <=9 - 11 only + // IE returns zIndex value as an integer. + ret + "" : + ret; +} + + +function addGetHookIf( conditionFn, hookFn ) { + + // Define the hook, we'll check on the first run if it's really needed. + return { + get: function() { + if ( conditionFn() ) { + + // Hook not needed (or it's not possible to use it due + // to missing dependency), remove it. + delete this.get; + return; + } + + // Hook needed; redefine it so that the support test is not executed again. + return ( this.get = hookFn ).apply( this, arguments ); + } + }; +} + + +var cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style, + vendorProps = {}; + +// Return a vendor-prefixed property or undefined +function vendorPropName( name ) { + + // Check for vendor prefixed names + var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in emptyStyle ) { + return name; + } + } +} + +// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +function finalPropName( name ) { + var final = jQuery.cssProps[ name ] || vendorProps[ name ]; + + if ( final ) { + return final; + } + if ( name in emptyStyle ) { + return name; + } + return vendorProps[ name ] = vendorPropName( name ) || name; +} + + +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }; + +function setPositiveNumber( elem, value, subtract ) { + + // Any relative (+/-) values have already been + // normalized at this point + var matches = rcssNum.exec( value ); + return matches ? + + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : + value; +} + +function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { + var i = dimension === "width" ? 1 : 0, + extra = 0, + delta = 0; + + // Adjustment may not be necessary + if ( box === ( isBorderBox ? "border" : "content" ) ) { + return 0; + } + + for ( ; i < 4; i += 2 ) { + + // Both box models exclude margin + if ( box === "margin" ) { + delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); + } + + // If we get here with a content-box, we're seeking "padding" or "border" or "margin" + if ( !isBorderBox ) { + + // Add padding + delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // For "border" or "margin", add border + if ( box !== "padding" ) { + delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + + // But still keep track of it otherwise + } else { + extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + + // If we get here with a border-box (content + padding + border), we're seeking "content" or + // "padding" or "margin" + } else { + + // For "content", subtract padding + if ( box === "content" ) { + delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // For "content" or "padding", subtract border + if ( box !== "margin" ) { + delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + // Account for positive content-box scroll gutter when requested by providing computedVal + if ( !isBorderBox && computedVal >= 0 ) { + + // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border + // Assuming integer scroll gutter, subtract the rest and round down + delta += Math.max( 0, Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + computedVal - + delta - + extra - + 0.5 + + // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter + // Use an explicit zero to avoid NaN (gh-3964) + ) ) || 0; + } + + return delta; +} + +function getWidthOrHeight( elem, dimension, extra ) { + + // Start with computed style + var styles = getStyles( elem ), + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). + // Fake content-box until we know it's needed to know the true value. + boxSizingNeeded = !support.boxSizingReliable() || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox, + + val = curCSS( elem, dimension, styles ), + offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + + // Support: Firefox <=54 + // Return a confounding non-pixel value or feign ignorance, as appropriate. + if ( rnumnonpx.test( val ) ) { + if ( !extra ) { + return val; + } + val = "auto"; + } + + + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + // Support: IE 9-11 only + // Also use offsetWidth/offsetHeight for when box sizing is unreliable + // We use getClientRects() to check for hidden/disconnected. + // In those cases, the computed value can be trusted to be border-box + if ( ( !support.boxSizingReliable() && isBorderBox || + val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + elem.getClientRects().length ) { + + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // Where available, offsetWidth/offsetHeight approximate border box dimensions. + // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the + // retrieved value as a content box dimension. + valueIsBorderBox = offsetProp in elem; + if ( valueIsBorderBox ) { + val = elem[ offsetProp ]; + } + } + + // Normalize "" and auto + val = parseFloat( val ) || 0; + + // Adjust for the element's box model + return ( val + + boxModelAdjustment( + elem, + dimension, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles, + + // Provide the current computed size to request scroll gutter calculation (gh-3589) + val + ) + ) + "px"; +} + +jQuery.extend( { + + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "animationIterationCount": true, + "columnCount": true, + "fillOpacity": true, + "flexGrow": true, + "flexShrink": true, + "fontWeight": true, + "gridArea": true, + "gridColumn": true, + "gridColumnEnd": true, + "gridColumnStart": true, + "gridRow": true, + "gridRowEnd": true, + "gridRowStart": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: {}, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ), + style = elem.style; + + // Make sure that we're working with the right name. We don't + // want to query the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Gets hook for the prefixed version, then unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // Convert "+=" or "-=" to relative numbers (#7345) + if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { + value = adjustCSS( elem, name, ret ); + + // Fixes bug #9237 + type = "number"; + } + + // Make sure that null and NaN values aren't set (#7116) + if ( value == null || value !== value ) { + return; + } + + // If a number was passed in, add the unit (except for certain CSS properties) + // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append + // "px" to a few hardcoded values. + if ( type === "number" && !isCustomProp ) { + value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); + } + + // background-* props affect original clone's values + if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !( "set" in hooks ) || + ( value = hooks.set( elem, value, extra ) ) !== undefined ) { + + if ( isCustomProp ) { + style.setProperty( name, value ); + } else { + style[ name ] = value; + } + } + + } else { + + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && + ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { + + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var val, num, hooks, + origName = camelCase( name ), + isCustomProp = rcustomProp.test( name ); + + // Make sure that we're working with the right name. We don't + // want to modify the value if it is a CSS custom property + // since they are user-defined. + if ( !isCustomProp ) { + name = finalPropName( origName ); + } + + // Try prefixed name followed by the unprefixed name + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + // Convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Make numeric if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || isFinite( num ) ? num || 0 : val; + } + + return val; + } +} ); + +jQuery.each( [ "height", "width" ], function( i, dimension ) { + jQuery.cssHooks[ dimension ] = { + get: function( elem, computed, extra ) { + if ( computed ) { + + // Certain elements can have dimension info if we invisibly show them + // but it must have a current display style that would benefit + return rdisplayswap.test( jQuery.css( elem, "display" ) ) && + + // Support: Safari 8+ + // Table columns in Safari have non-zero offsetWidth & zero + // getBoundingClientRect().width unless display is changed. + // Support: IE <=11 only + // Running getBoundingClientRect on a disconnected node + // in IE throws an error. + ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? + swap( elem, cssShow, function() { + return getWidthOrHeight( elem, dimension, extra ); + } ) : + getWidthOrHeight( elem, dimension, extra ); + } + }, + + set: function( elem, value, extra ) { + var matches, + styles = getStyles( elem ), + + // Only read styles.position if the test has a chance to fail + // to avoid forcing a reflow. + scrollboxSizeBuggy = !support.scrollboxSize() && + styles.position === "absolute", + + // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) + boxSizingNeeded = scrollboxSizeBuggy || extra, + isBorderBox = boxSizingNeeded && + jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra ? + boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ) : + 0; + + // Account for unreliable border-box dimensions by comparing offset* to computed and + // faking a content-box to get border and padding (gh-3699) + if ( isBorderBox && scrollboxSizeBuggy ) { + subtract -= Math.ceil( + elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - + parseFloat( styles[ dimension ] ) - + boxModelAdjustment( elem, dimension, "border", false, styles ) - + 0.5 + ); + } + + // Convert to pixels if value adjustment is needed + if ( subtract && ( matches = rcssNum.exec( value ) ) && + ( matches[ 3 ] || "px" ) !== "px" ) { + + elem.style[ dimension ] = value; + value = jQuery.css( elem, dimension ); + } + + return setPositiveNumber( elem, value, subtract ); + } + }; +} ); + +jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, + function( elem, computed ) { + if ( computed ) { + return ( parseFloat( curCSS( elem, "marginLeft" ) ) || + elem.getBoundingClientRect().left - + swap( elem, { marginLeft: 0 }, function() { + return elem.getBoundingClientRect().left; + } ) + ) + "px"; + } + } +); + +// These hooks are used by animate to expand properties +jQuery.each( { + margin: "", + padding: "", + border: "Width" +}, function( prefix, suffix ) { + jQuery.cssHooks[ prefix + suffix ] = { + expand: function( value ) { + var i = 0, + expanded = {}, + + // Assumes a single number if not a string + parts = typeof value === "string" ? value.split( " " ) : [ value ]; + + for ( ; i < 4; i++ ) { + expanded[ prefix + cssExpand[ i ] + suffix ] = + parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; + } + + return expanded; + } + }; + + if ( prefix !== "margin" ) { + jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; + } +} ); + +jQuery.fn.extend( { + css: function( name, value ) { + return access( this, function( elem, name, value ) { + var styles, len, + map = {}, + i = 0; + + if ( Array.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + } +} ); + + +function Tween( elem, options, prop, end, easing ) { + return new Tween.prototype.init( elem, options, prop, end, easing ); +} +jQuery.Tween = Tween; + +Tween.prototype = { + constructor: Tween, + init: function( elem, options, prop, end, easing, unit ) { + this.elem = elem; + this.prop = prop; + this.easing = easing || jQuery.easing._default; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); + }, + cur: function() { + var hooks = Tween.propHooks[ this.prop ]; + + return hooks && hooks.get ? + hooks.get( this ) : + Tween.propHooks._default.get( this ); + }, + run: function( percent ) { + var eased, + hooks = Tween.propHooks[ this.prop ]; + + if ( this.options.duration ) { + this.pos = eased = jQuery.easing[ this.easing ]( + percent, this.options.duration * percent, 0, 1, this.options.duration + ); + } else { + this.pos = eased = percent; + } + this.now = ( this.end - this.start ) * eased + this.start; + + if ( this.options.step ) { + this.options.step.call( this.elem, this.now, this ); + } + + if ( hooks && hooks.set ) { + hooks.set( this ); + } else { + Tween.propHooks._default.set( this ); + } + return this; + } +}; + +Tween.prototype.init.prototype = Tween.prototype; + +Tween.propHooks = { + _default: { + get: function( tween ) { + var result; + + // Use a property on the element directly when it is not a DOM element, + // or when there is no matching style property that exists. + if ( tween.elem.nodeType !== 1 || + tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { + return tween.elem[ tween.prop ]; + } + + // Passing an empty string as a 3rd parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails. + // Simple values such as "10px" are parsed to Float; + // complex values such as "rotate(1rad)" are returned as-is. + result = jQuery.css( tween.elem, tween.prop, "" ); + + // Empty strings, null, undefined and "auto" are converted to 0. + return !result || result === "auto" ? 0 : result; + }, + set: function( tween ) { + + // Use step hook for back compat. + // Use cssHook if its there. + // Use .style if available and use plain properties where available. + if ( jQuery.fx.step[ tween.prop ] ) { + jQuery.fx.step[ tween.prop ]( tween ); + } else if ( tween.elem.nodeType === 1 && ( + jQuery.cssHooks[ tween.prop ] || + tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); + } else { + tween.elem[ tween.prop ] = tween.now; + } + } + } +}; + +// Support: IE <=9 only +// Panic based approach to setting things on disconnected nodes +Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function( tween ) { + if ( tween.elem.nodeType && tween.elem.parentNode ) { + tween.elem[ tween.prop ] = tween.now; + } + } +}; + +jQuery.easing = { + linear: function( p ) { + return p; + }, + swing: function( p ) { + return 0.5 - Math.cos( p * Math.PI ) / 2; + }, + _default: "swing" +}; + +jQuery.fx = Tween.prototype.init; + +// Back compat <1.8 extension point +jQuery.fx.step = {}; + + + + +var + fxNow, inProgress, + rfxtypes = /^(?:toggle|show|hide)$/, + rrun = /queueHooks$/; + +function schedule() { + if ( inProgress ) { + if ( document.hidden === false && window.requestAnimationFrame ) { + window.requestAnimationFrame( schedule ); + } else { + window.setTimeout( schedule, jQuery.fx.interval ); + } + + jQuery.fx.tick(); + } +} + +// Animations created synchronously will run synchronously +function createFxNow() { + window.setTimeout( function() { + fxNow = undefined; + } ); + return ( fxNow = Date.now() ); +} + +// Generate parameters to create a standard animation +function genFx( type, includeWidth ) { + var which, + i = 0, + attrs = { height: type }; + + // If we include width, step value is 1 to do all cssExpand values, + // otherwise step value is 2 to skip over Left and Right + includeWidth = includeWidth ? 1 : 0; + for ( ; i < 4; i += 2 - includeWidth ) { + which = cssExpand[ i ]; + attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; + } + + if ( includeWidth ) { + attrs.opacity = attrs.width = type; + } + + return attrs; +} + +function createTween( value, prop, animation ) { + var tween, + collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), + index = 0, + length = collection.length; + for ( ; index < length; index++ ) { + if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { + + // We're done with this property + return tween; + } + } +} + +function defaultPrefilter( elem, props, opts ) { + var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, + isBox = "width" in props || "height" in props, + anim = this, + orig = {}, + style = elem.style, + hidden = elem.nodeType && isHiddenWithinTree( elem ), + dataShow = dataPriv.get( elem, "fxshow" ); + + // Queue-skipping animations hijack the fx hooks + if ( !opts.queue ) { + hooks = jQuery._queueHooks( elem, "fx" ); + if ( hooks.unqueued == null ) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + hooks.empty.fire = function() { + if ( !hooks.unqueued ) { + oldfire(); + } + }; + } + hooks.unqueued++; + + anim.always( function() { + + // Ensure the complete handler is called before this completes + anim.always( function() { + hooks.unqueued--; + if ( !jQuery.queue( elem, "fx" ).length ) { + hooks.empty.fire(); + } + } ); + } ); + } + + // Detect show/hide animations + for ( prop in props ) { + value = props[ prop ]; + if ( rfxtypes.test( value ) ) { + delete props[ prop ]; + toggle = toggle || value === "toggle"; + if ( value === ( hidden ? "hide" : "show" ) ) { + + // Pretend to be hidden if this is a "show" and + // there is still data from a stopped show/hide + if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { + hidden = true; + + // Ignore all other no-op show/hide data + } else { + continue; + } + } + orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); + } + } + + // Bail out if this is a no-op like .hide().hide() + propTween = !jQuery.isEmptyObject( props ); + if ( !propTween && jQuery.isEmptyObject( orig ) ) { + return; + } + + // Restrict "overflow" and "display" styles during box animations + if ( isBox && elem.nodeType === 1 ) { + + // Support: IE <=9 - 11, Edge 12 - 15 + // Record all 3 overflow attributes because IE does not infer the shorthand + // from identically-valued overflowX and overflowY and Edge just mirrors + // the overflowX value there. + opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; + + // Identify a display type, preferring old show/hide data over the CSS cascade + restoreDisplay = dataShow && dataShow.display; + if ( restoreDisplay == null ) { + restoreDisplay = dataPriv.get( elem, "display" ); + } + display = jQuery.css( elem, "display" ); + if ( display === "none" ) { + if ( restoreDisplay ) { + display = restoreDisplay; + } else { + + // Get nonempty value(s) by temporarily forcing visibility + showHide( [ elem ], true ); + restoreDisplay = elem.style.display || restoreDisplay; + display = jQuery.css( elem, "display" ); + showHide( [ elem ] ); + } + } + + // Animate inline elements as inline-block + if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { + if ( jQuery.css( elem, "float" ) === "none" ) { + + // Restore the original display value at the end of pure show/hide animations + if ( !propTween ) { + anim.done( function() { + style.display = restoreDisplay; + } ); + if ( restoreDisplay == null ) { + display = style.display; + restoreDisplay = display === "none" ? "" : display; + } + } + style.display = "inline-block"; + } + } + } + + if ( opts.overflow ) { + style.overflow = "hidden"; + anim.always( function() { + style.overflow = opts.overflow[ 0 ]; + style.overflowX = opts.overflow[ 1 ]; + style.overflowY = opts.overflow[ 2 ]; + } ); + } + + // Implement show/hide animations + propTween = false; + for ( prop in orig ) { + + // General show/hide setup for this element animation + if ( !propTween ) { + if ( dataShow ) { + if ( "hidden" in dataShow ) { + hidden = dataShow.hidden; + } + } else { + dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); + } + + // Store hidden/visible for toggle so `.stop().toggle()` "reverses" + if ( toggle ) { + dataShow.hidden = !hidden; + } + + // Show elements before animating them + if ( hidden ) { + showHide( [ elem ], true ); + } + + /* eslint-disable no-loop-func */ + + anim.done( function() { + + /* eslint-enable no-loop-func */ + + // The final step of a "hide" animation is actually hiding the element + if ( !hidden ) { + showHide( [ elem ] ); + } + dataPriv.remove( elem, "fxshow" ); + for ( prop in orig ) { + jQuery.style( elem, prop, orig[ prop ] ); + } + } ); + } + + // Per-property setup + propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); + if ( !( prop in dataShow ) ) { + dataShow[ prop ] = propTween.start; + if ( hidden ) { + propTween.end = propTween.start; + propTween.start = 0; + } + } + } +} + +function propFilter( props, specialEasing ) { + var index, name, easing, value, hooks; + + // camelCase, specialEasing and expand cssHook pass + for ( index in props ) { + name = camelCase( index ); + easing = specialEasing[ name ]; + value = props[ index ]; + if ( Array.isArray( value ) ) { + easing = value[ 1 ]; + value = props[ index ] = value[ 0 ]; + } + + if ( index !== name ) { + props[ name ] = value; + delete props[ index ]; + } + + hooks = jQuery.cssHooks[ name ]; + if ( hooks && "expand" in hooks ) { + value = hooks.expand( value ); + delete props[ name ]; + + // Not quite $.extend, this won't overwrite existing keys. + // Reusing 'index' because we have the correct "name" + for ( index in value ) { + if ( !( index in props ) ) { + props[ index ] = value[ index ]; + specialEasing[ index ] = easing; + } + } + } else { + specialEasing[ name ] = easing; + } + } +} + +function Animation( elem, properties, options ) { + var result, + stopped, + index = 0, + length = Animation.prefilters.length, + deferred = jQuery.Deferred().always( function() { + + // Don't match elem in the :animated selector + delete tick.elem; + } ), + tick = function() { + if ( stopped ) { + return false; + } + var currentTime = fxNow || createFxNow(), + remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), + + // Support: Android 2.3 only + // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) + temp = remaining / animation.duration || 0, + percent = 1 - temp, + index = 0, + length = animation.tweens.length; + + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( percent ); + } + + deferred.notifyWith( elem, [ animation, percent, remaining ] ); + + // If there's more to do, yield + if ( percent < 1 && length ) { + return remaining; + } + + // If this was an empty animation, synthesize a final progress notification + if ( !length ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + } + + // Resolve the animation and report its conclusion + deferred.resolveWith( elem, [ animation ] ); + return false; + }, + animation = deferred.promise( { + elem: elem, + props: jQuery.extend( {}, properties ), + opts: jQuery.extend( true, { + specialEasing: {}, + easing: jQuery.easing._default + }, options ), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function( prop, end ) { + var tween = jQuery.Tween( elem, animation.opts, prop, end, + animation.opts.specialEasing[ prop ] || animation.opts.easing ); + animation.tweens.push( tween ); + return tween; + }, + stop: function( gotoEnd ) { + var index = 0, + + // If we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + if ( stopped ) { + return this; + } + stopped = true; + for ( ; index < length; index++ ) { + animation.tweens[ index ].run( 1 ); + } + + // Resolve when we played the last frame; otherwise, reject + if ( gotoEnd ) { + deferred.notifyWith( elem, [ animation, 1, 0 ] ); + deferred.resolveWith( elem, [ animation, gotoEnd ] ); + } else { + deferred.rejectWith( elem, [ animation, gotoEnd ] ); + } + return this; + } + } ), + props = animation.props; + + propFilter( props, animation.opts.specialEasing ); + + for ( ; index < length; index++ ) { + result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); + if ( result ) { + if ( isFunction( result.stop ) ) { + jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = + result.stop.bind( result ); + } + return result; + } + } + + jQuery.map( props, createTween, animation ); + + if ( isFunction( animation.opts.start ) ) { + animation.opts.start.call( elem, animation ); + } + + // Attach callbacks from options + animation + .progress( animation.opts.progress ) + .done( animation.opts.done, animation.opts.complete ) + .fail( animation.opts.fail ) + .always( animation.opts.always ); + + jQuery.fx.timer( + jQuery.extend( tick, { + elem: elem, + anim: animation, + queue: animation.opts.queue + } ) + ); + + return animation; +} + +jQuery.Animation = jQuery.extend( Animation, { + + tweeners: { + "*": [ function( prop, value ) { + var tween = this.createTween( prop, value ); + adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); + return tween; + } ] + }, + + tweener: function( props, callback ) { + if ( isFunction( props ) ) { + callback = props; + props = [ "*" ]; + } else { + props = props.match( rnothtmlwhite ); + } + + var prop, + index = 0, + length = props.length; + + for ( ; index < length; index++ ) { + prop = props[ index ]; + Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; + Animation.tweeners[ prop ].unshift( callback ); + } + }, + + prefilters: [ defaultPrefilter ], + + prefilter: function( callback, prepend ) { + if ( prepend ) { + Animation.prefilters.unshift( callback ); + } else { + Animation.prefilters.push( callback ); + } + } +} ); + +jQuery.speed = function( speed, easing, fn ) { + var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { + complete: fn || !fn && easing || + isFunction( speed ) && speed, + duration: speed, + easing: fn && easing || easing && !isFunction( easing ) && easing + }; + + // Go to the end state if fx are off + if ( jQuery.fx.off ) { + opt.duration = 0; + + } else { + if ( typeof opt.duration !== "number" ) { + if ( opt.duration in jQuery.fx.speeds ) { + opt.duration = jQuery.fx.speeds[ opt.duration ]; + + } else { + opt.duration = jQuery.fx.speeds._default; + } + } + } + + // Normalize opt.queue - true/undefined/null -> "fx" + if ( opt.queue == null || opt.queue === true ) { + opt.queue = "fx"; + } + + // Queueing + opt.old = opt.complete; + + opt.complete = function() { + if ( isFunction( opt.old ) ) { + opt.old.call( this ); + } + + if ( opt.queue ) { + jQuery.dequeue( this, opt.queue ); + } + }; + + return opt; +}; + +jQuery.fn.extend( { + fadeTo: function( speed, to, easing, callback ) { + + // Show any hidden elements after setting opacity to 0 + return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() + + // Animate to the value specified + .end().animate( { opacity: to }, speed, easing, callback ); + }, + animate: function( prop, speed, easing, callback ) { + var empty = jQuery.isEmptyObject( prop ), + optall = jQuery.speed( speed, easing, callback ), + doAnimation = function() { + + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation( this, jQuery.extend( {}, prop ), optall ); + + // Empty animations, or finishing resolves immediately + if ( empty || dataPriv.get( this, "finish" ) ) { + anim.stop( true ); + } + }; + doAnimation.finish = doAnimation; + + return empty || optall.queue === false ? + this.each( doAnimation ) : + this.queue( optall.queue, doAnimation ); + }, + stop: function( type, clearQueue, gotoEnd ) { + var stopQueue = function( hooks ) { + var stop = hooks.stop; + delete hooks.stop; + stop( gotoEnd ); + }; + + if ( typeof type !== "string" ) { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + if ( clearQueue && type !== false ) { + this.queue( type || "fx", [] ); + } + + return this.each( function() { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = dataPriv.get( this ); + + if ( index ) { + if ( data[ index ] && data[ index ].stop ) { + stopQueue( data[ index ] ); + } + } else { + for ( index in data ) { + if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { + stopQueue( data[ index ] ); + } + } + } + + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && + ( type == null || timers[ index ].queue === type ) ) { + + timers[ index ].anim.stop( gotoEnd ); + dequeue = false; + timers.splice( index, 1 ); + } + } + + // Start the next in the queue if the last step wasn't forced. + // Timers currently will call their complete callbacks, which + // will dequeue but only if they were gotoEnd. + if ( dequeue || !gotoEnd ) { + jQuery.dequeue( this, type ); + } + } ); + }, + finish: function( type ) { + if ( type !== false ) { + type = type || "fx"; + } + return this.each( function() { + var index, + data = dataPriv.get( this ), + queue = data[ type + "queue" ], + hooks = data[ type + "queueHooks" ], + timers = jQuery.timers, + length = queue ? queue.length : 0; + + // Enable finishing flag on private data + data.finish = true; + + // Empty the queue first + jQuery.queue( this, type, [] ); + + if ( hooks && hooks.stop ) { + hooks.stop.call( this, true ); + } + + // Look for any active animations, and finish them + for ( index = timers.length; index--; ) { + if ( timers[ index ].elem === this && timers[ index ].queue === type ) { + timers[ index ].anim.stop( true ); + timers.splice( index, 1 ); + } + } + + // Look for any animations in the old queue and finish them + for ( index = 0; index < length; index++ ) { + if ( queue[ index ] && queue[ index ].finish ) { + queue[ index ].finish.call( this ); + } + } + + // Turn off finishing flag + delete data.finish; + } ); + } +} ); + +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { + var cssFn = jQuery.fn[ name ]; + jQuery.fn[ name ] = function( speed, easing, callback ) { + return speed == null || typeof speed === "boolean" ? + cssFn.apply( this, arguments ) : + this.animate( genFx( name, true ), speed, easing, callback ); + }; +} ); + +// Generate shortcuts for custom animations +jQuery.each( { + slideDown: genFx( "show" ), + slideUp: genFx( "hide" ), + slideToggle: genFx( "toggle" ), + fadeIn: { opacity: "show" }, + fadeOut: { opacity: "hide" }, + fadeToggle: { opacity: "toggle" } +}, function( name, props ) { + jQuery.fn[ name ] = function( speed, easing, callback ) { + return this.animate( props, speed, easing, callback ); + }; +} ); + +jQuery.timers = []; +jQuery.fx.tick = function() { + var timer, + i = 0, + timers = jQuery.timers; + + fxNow = Date.now(); + + for ( ; i < timers.length; i++ ) { + timer = timers[ i ]; + + // Run the timer and safely remove it when done (allowing for external removal) + if ( !timer() && timers[ i ] === timer ) { + timers.splice( i--, 1 ); + } + } + + if ( !timers.length ) { + jQuery.fx.stop(); + } + fxNow = undefined; +}; + +jQuery.fx.timer = function( timer ) { + jQuery.timers.push( timer ); + jQuery.fx.start(); +}; + +jQuery.fx.interval = 13; +jQuery.fx.start = function() { + if ( inProgress ) { + return; + } + + inProgress = true; + schedule(); +}; + +jQuery.fx.stop = function() { + inProgress = null; +}; + +jQuery.fx.speeds = { + slow: 600, + fast: 200, + + // Default speed + _default: 400 +}; + + +// Based off of the plugin by Clint Helfers, with permission. +// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ +jQuery.fn.delay = function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = window.setTimeout( next, time ); + hooks.stop = function() { + window.clearTimeout( timeout ); + }; + } ); +}; + + +( function() { + var input = document.createElement( "input" ), + select = document.createElement( "select" ), + opt = select.appendChild( document.createElement( "option" ) ); + + input.type = "checkbox"; + + // Support: Android <=4.3 only + // Default value for a checkbox should be "on" + support.checkOn = input.value !== ""; + + // Support: IE <=11 only + // Must access selectedIndex to make default options select + support.optSelected = opt.selected; + + // Support: IE <=11 only + // An input loses its value after becoming a radio + input = document.createElement( "input" ); + input.value = "t"; + input.type = "radio"; + support.radioValue = input.value === "t"; +} )(); + + +var boolHook, + attrHandle = jQuery.expr.attrHandle; + +jQuery.fn.extend( { + attr: function( name, value ) { + return access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each( function() { + jQuery.removeAttr( this, name ); + } ); + } +} ); + +jQuery.extend( { + attr: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set attributes on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === "undefined" ) { + return jQuery.prop( elem, name, value ); + } + + // Attribute hooks are determined by the lowercase version + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + hooks = jQuery.attrHooks[ name.toLowerCase() ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); + } + + if ( value !== undefined ) { + if ( value === null ) { + jQuery.removeAttr( elem, name ); + return; + } + + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + elem.setAttribute( name, value + "" ); + return value; + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? undefined : ret; + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !support.radioValue && value === "radio" && + nodeName( elem, "input" ) ) { + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + removeAttr: function( elem, value ) { + var name, + i = 0, + + // Attribute names can contain non-HTML whitespace characters + // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 + attrNames = value && value.match( rnothtmlwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( ( name = attrNames[ i++ ] ) ) { + elem.removeAttribute( name ); + } + } + } +} ); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else { + elem.setAttribute( name, name ); + } + return name; + } +}; + +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = attrHandle[ name ] || jQuery.find.attr; + + attrHandle[ name ] = function( elem, name, isXML ) { + var ret, handle, + lowercaseName = name.toLowerCase(); + + if ( !isXML ) { + + // Avoid an infinite loop by temporarily removing this function from the getter + handle = attrHandle[ lowercaseName ]; + attrHandle[ lowercaseName ] = ret; + ret = getter( elem, name, isXML ) != null ? + lowercaseName : + null; + attrHandle[ lowercaseName ] = handle; + } + return ret; + }; +} ); + + + + +var rfocusable = /^(?:input|select|textarea|button)$/i, + rclickable = /^(?:a|area)$/i; + +jQuery.fn.extend( { + prop: function( name, value ) { + return access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + return this.each( function() { + delete this[ jQuery.propFix[ name ] || name ]; + } ); + } +} ); + +jQuery.extend( { + prop: function( elem, name, value ) { + var ret, hooks, + nType = elem.nodeType; + + // Don't get/set properties on text, comment and attribute nodes + if ( nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + if ( hooks && "set" in hooks && + ( ret = hooks.set( elem, value, name ) ) !== undefined ) { + return ret; + } + + return ( elem[ name ] = value ); + } + + if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { + return ret; + } + + return elem[ name ]; + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + + // Support: IE <=9 - 11 only + // elem.tabIndex doesn't always return the + // correct value when it hasn't been explicitly set + // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + if ( tabindex ) { + return parseInt( tabindex, 10 ); + } + + if ( + rfocusable.test( elem.nodeName ) || + rclickable.test( elem.nodeName ) && + elem.href + ) { + return 0; + } + + return -1; + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + } +} ); + +// Support: IE <=11 only +// Accessing the selectedIndex property +// forces the browser to respect setting selected +// on the option +// The getter ensures a default option is selected +// when in an optgroup +// eslint rule "no-unused-expressions" is disabled for this code +// since it considers such accessions noop +if ( !support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent && parent.parentNode ) { + parent.parentNode.selectedIndex; + } + return null; + }, + set: function( elem ) { + + /* eslint no-unused-expressions: "off" */ + + var parent = elem.parentNode; + if ( parent ) { + parent.selectedIndex; + + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + } + }; +} + +jQuery.each( [ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +} ); + + + + + // Strip and collapse whitespace according to HTML spec + // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace + function stripAndCollapse( value ) { + var tokens = value.match( rnothtmlwhite ) || []; + return tokens.join( " " ); + } + + +function getClass( elem ) { + return elem.getAttribute && elem.getAttribute( "class" ) || ""; +} + +function classesToArray( value ) { + if ( Array.isArray( value ) ) { + return value; + } + if ( typeof value === "string" ) { + return value.match( rnothtmlwhite ) || []; + } + return []; +} + +jQuery.fn.extend( { + addClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, curValue, clazz, j, finalValue, + i = 0; + + if ( isFunction( value ) ) { + return this.each( function( j ) { + jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); + } ); + } + + if ( !arguments.length ) { + return this.attr( "class", "" ); + } + + classes = classesToArray( value ); + + if ( classes.length ) { + while ( ( elem = this[ i++ ] ) ) { + curValue = getClass( elem ); + + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); + + if ( cur ) { + j = 0; + while ( ( clazz = classes[ j++ ] ) ) { + + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) > -1 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + + // Only assign if different to avoid unneeded rendering. + finalValue = stripAndCollapse( cur ); + if ( curValue !== finalValue ) { + elem.setAttribute( "class", finalValue ); + } + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value, + isValidValue = type === "string" || Array.isArray( value ); + + if ( typeof stateVal === "boolean" && isValidValue ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( isFunction( value ) ) { + return this.each( function( i ) { + jQuery( this ).toggleClass( + value.call( this, i, getClass( this ), stateVal ), + stateVal + ); + } ); + } + + return this.each( function() { + var className, i, self, classNames; + + if ( isValidValue ) { + + // Toggle individual class names + i = 0; + self = jQuery( this ); + classNames = classesToArray( value ); + + while ( ( className = classNames[ i++ ] ) ) { + + // Check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( value === undefined || type === "boolean" ) { + className = getClass( this ); + if ( className ) { + + // Store className if set + dataPriv.set( this, "__className__", className ); + } + + // If the element has a class name or if we're passed `false`, + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + if ( this.setAttribute ) { + this.setAttribute( "class", + className || value === false ? + "" : + dataPriv.get( this, "__className__" ) || "" + ); + } + } + } ); + }, + + hasClass: function( selector ) { + var className, elem, + i = 0; + + className = " " + selector + " "; + while ( ( elem = this[ i++ ] ) ) { + if ( elem.nodeType === 1 && + ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { + return true; + } + } + + return false; + } +} ); + + + + +var rreturn = /\r/g; + +jQuery.fn.extend( { + val: function( value ) { + var hooks, ret, valueIsFunction, + elem = this[ 0 ]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || + jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && + "get" in hooks && + ( ret = hooks.get( elem, "value" ) ) !== undefined + ) { + return ret; + } + + ret = elem.value; + + // Handle most common string cases + if ( typeof ret === "string" ) { + return ret.replace( rreturn, "" ); + } + + // Handle cases where value is null/undef or number + return ret == null ? "" : ret; + } + + return; + } + + valueIsFunction = isFunction( value ); + + return this.each( function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( valueIsFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + + } else if ( typeof val === "number" ) { + val += ""; + + } else if ( Array.isArray( val ) ) { + val = jQuery.map( val, function( value ) { + return value == null ? "" : value + ""; + } ); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + } ); + } +} ); + +jQuery.extend( { + valHooks: { + option: { + get: function( elem ) { + + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + + // Support: IE <=10 - 11 only + // option.text throws exceptions (#14686, #14858) + // Strip and collapse whitespace + // https://html.spec.whatwg.org/#strip-and-collapse-whitespace + stripAndCollapse( jQuery.text( elem ) ); + } + }, + select: { + get: function( elem ) { + var value, option, i, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one", + values = one ? null : [], + max = one ? index + 1 : options.length; + + if ( index < 0 ) { + i = max; + + } else { + i = one ? index : 0; + } + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // Support: IE <=9 only + // IE8-9 doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + + // Don't return options that are disabled or in a disabled optgroup + !option.disabled && + ( !option.parentNode.disabled || + !nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + + /* eslint-disable no-cond-assign */ + + if ( option.selected = + jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 + ) { + optionSet = true; + } + + /* eslint-enable no-cond-assign */ + } + + // Force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + } +} ); + +// Radios and checkboxes getter/setter +jQuery.each( [ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( Array.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); + } + } + }; + if ( !support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + return elem.getAttribute( "value" ) === null ? "on" : elem.value; + }; + } +} ); + + + + +// Return jQuery for attributes-only inclusion + + +support.focusin = "onfocusin" in window; + + +var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + stopPropagationCallback = function( e ) { + e.stopPropagation(); + }; + +jQuery.extend( jQuery.event, { + + trigger: function( event, data, elem, onlyHandlers ) { + + var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, + eventPath = [ elem || document ], + type = hasOwn.call( event, "type" ) ? event.type : event, + namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; + + cur = lastElement = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf( "." ) > -1 ) { + + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split( "." ); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf( ":" ) < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join( "." ); + event.rnamespace = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === ( elem.ownerDocument || document ) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { + lastElement = cur; + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && + dataPriv.get( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && handle.apply && acceptData( cur ) ) { + event.result = handle.apply( cur, data ); + if ( event.result === false ) { + event.preventDefault(); + } + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( ( !special._default || + special._default.apply( eventPath.pop(), data ) === false ) && + acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name as the event. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + + if ( event.isPropagationStopped() ) { + lastElement.addEventListener( type, stopPropagationCallback ); + } + + elem[ type ](); + + if ( event.isPropagationStopped() ) { + lastElement.removeEventListener( type, stopPropagationCallback ); + } + + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + // Piggyback on a donor event to simulate a different one + // Used only for `focus(in | out)` events + simulate: function( type, elem, event ) { + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true + } + ); + + jQuery.event.trigger( e, null, elem ); + } + +} ); + +jQuery.fn.extend( { + + trigger: function( type, data ) { + return this.each( function() { + jQuery.event.trigger( type, data, this ); + } ); + }, + triggerHandler: function( type, data ) { + var elem = this[ 0 ]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +} ); + + +// Support: Firefox <=44 +// Firefox doesn't have focus(in | out) events +// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 +// +// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 +// focus(in | out) events fire after focus & blur events, +// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order +// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 +if ( !support.focusin ) { + jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler on the document while someone wants focusin/focusout + var handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ); + + if ( !attaches ) { + doc.addEventListener( orig, handler, true ); + } + dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); + }, + teardown: function() { + var doc = this.ownerDocument || this, + attaches = dataPriv.access( doc, fix ) - 1; + + if ( !attaches ) { + doc.removeEventListener( orig, handler, true ); + dataPriv.remove( doc, fix ); + + } else { + dataPriv.access( doc, fix, attaches ); + } + } + }; + } ); +} +var location = window.location; + +var nonce = Date.now(); + +var rquery = ( /\?/ ); + + + +// Cross-browser xml parsing +jQuery.parseXML = function( data ) { + var xml; + if ( !data || typeof data !== "string" ) { + return null; + } + + // Support: IE 9 - 11 only + // IE throws on parseFromString with invalid input. + try { + xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); + } catch ( e ) { + xml = undefined; + } + + if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; +}; + + +var + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, + rsubmittable = /^(?:input|select|textarea|keygen)/i; + +function buildParams( prefix, obj, traditional, add ) { + var name; + + if ( Array.isArray( obj ) ) { + + // Serialize array item. + jQuery.each( obj, function( i, v ) { + if ( traditional || rbracket.test( prefix ) ) { + + // Treat each array item as a scalar. + add( prefix, v ); + + } else { + + // Item is non-scalar (array or object), encode its numeric index. + buildParams( + prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", + v, + traditional, + add + ); + } + } ); + + } else if ( !traditional && toType( obj ) === "object" ) { + + // Serialize object item. + for ( name in obj ) { + buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); + } + + } else { + + // Serialize scalar item. + add( prefix, obj ); + } +} + +// Serialize an array of form elements or a set of +// key/values into a query string +jQuery.param = function( a, traditional ) { + var prefix, + s = [], + add = function( key, valueOrFunction ) { + + // If value is a function, invoke it and use its return value + var value = isFunction( valueOrFunction ) ? + valueOrFunction() : + valueOrFunction; + + s[ s.length ] = encodeURIComponent( key ) + "=" + + encodeURIComponent( value == null ? "" : value ); + }; + + if ( a == null ) { + return ""; + } + + // If an array was passed in, assume that it is an array of form elements. + if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { + + // Serialize the form elements + jQuery.each( a, function() { + add( this.name, this.value ); + } ); + + } else { + + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for ( prefix in a ) { + buildParams( prefix, a[ prefix ], traditional, add ); + } + } + + // Return the resulting serialization + return s.join( "&" ); +}; + +jQuery.fn.extend( { + serialize: function() { + return jQuery.param( this.serializeArray() ); + }, + serializeArray: function() { + return this.map( function() { + + // Can add propHook for "elements" to filter or add form elements + var elements = jQuery.prop( this, "elements" ); + return elements ? jQuery.makeArray( elements ) : this; + } ) + .filter( function() { + var type = this.type; + + // Use .is( ":disabled" ) so that fieldset[disabled] works + return this.name && !jQuery( this ).is( ":disabled" ) && + rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && + ( this.checked || !rcheckableType.test( type ) ); + } ) + .map( function( i, elem ) { + var val = jQuery( this ).val(); + + if ( val == null ) { + return null; + } + + if ( Array.isArray( val ) ) { + return jQuery.map( val, function( val ) { + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ); + } + + return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; + } ).get(); + } +} ); + + +var + r20 = /%20/g, + rhash = /#.*$/, + rantiCache = /([?&])_=[^&]*/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, + + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = "*/".concat( "*" ), + + // Anchor tag for parsing the document origin + originAnchor = document.createElement( "a" ); + originAnchor.href = location.href; + +// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport +function addToPrefiltersOrTransports( structure ) { + + // dataTypeExpression is optional and defaults to "*" + return function( dataTypeExpression, func ) { + + if ( typeof dataTypeExpression !== "string" ) { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + i = 0, + dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; + + if ( isFunction( func ) ) { + + // For each dataType in the dataTypeExpression + while ( ( dataType = dataTypes[ i++ ] ) ) { + + // Prepend if requested + if ( dataType[ 0 ] === "+" ) { + dataType = dataType.slice( 1 ) || "*"; + ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); + + // Otherwise append + } else { + ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); + } + } + } + }; +} + +// Base inspection function for prefilters and transports +function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { + + var inspected = {}, + seekingTransport = ( structure === transports ); + + function inspect( dataType ) { + var selected; + inspected[ dataType ] = true; + jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { + var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); + if ( typeof dataTypeOrTransport === "string" && + !seekingTransport && !inspected[ dataTypeOrTransport ] ) { + + options.dataTypes.unshift( dataTypeOrTransport ); + inspect( dataTypeOrTransport ); + return false; + } else if ( seekingTransport ) { + return !( selected = dataTypeOrTransport ); + } + } ); + return selected; + } + + return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); +} + +// A special extend for ajax options +// that takes "flat" options (not to be deep extended) +// Fixes #9887 +function ajaxExtend( target, src ) { + var key, deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for ( key in src ) { + if ( src[ key ] !== undefined ) { + ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; + } + } + if ( deep ) { + jQuery.extend( true, target, deep ); + } + + return target; +} + +/* Handles responses to an ajax request: + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ +function ajaxHandleResponses( s, jqXHR, responses ) { + + var ct, type, finalDataType, firstDataType, + contents = s.contents, + dataTypes = s.dataTypes; + + // Remove auto dataType and get content-type in the process + while ( dataTypes[ 0 ] === "*" ) { + dataTypes.shift(); + if ( ct === undefined ) { + ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); + } + } + + // Check if we're dealing with a known content-type + if ( ct ) { + for ( type in contents ) { + if ( contents[ type ] && contents[ type ].test( ct ) ) { + dataTypes.unshift( type ); + break; + } + } + } + + // Check to see if we have a response for the expected dataType + if ( dataTypes[ 0 ] in responses ) { + finalDataType = dataTypes[ 0 ]; + } else { + + // Try convertible dataTypes + for ( type in responses ) { + if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { + finalDataType = type; + break; + } + if ( !firstDataType ) { + firstDataType = type; + } + } + + // Or just use first one + finalDataType = finalDataType || firstDataType; + } + + // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + if ( finalDataType ) { + if ( finalDataType !== dataTypes[ 0 ] ) { + dataTypes.unshift( finalDataType ); + } + return responses[ finalDataType ]; + } +} + +/* Chain conversions given the request and the original response + * Also sets the responseXXX fields on the jqXHR instance + */ +function ajaxConvert( s, response, jqXHR, isSuccess ) { + var conv2, current, conv, tmp, prev, + converters = {}, + + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(); + + // Create converters map with lowercased keys + if ( dataTypes[ 1 ] ) { + for ( conv in s.converters ) { + converters[ conv.toLowerCase() ] = s.converters[ conv ]; + } + } + + current = dataTypes.shift(); + + // Convert to each sequential dataType + while ( current ) { + + if ( s.responseFields[ current ] ) { + jqXHR[ s.responseFields[ current ] ] = response; + } + + // Apply the dataFilter if provided + if ( !prev && isSuccess && s.dataFilter ) { + response = s.dataFilter( response, s.dataType ); + } + + prev = current; + current = dataTypes.shift(); + + if ( current ) { + + // There's only work to do if current dataType is non-auto + if ( current === "*" ) { + + current = prev; + + // Convert response if prev dataType is non-auto and differs from current + } else if ( prev !== "*" && prev !== current ) { + + // Seek a direct converter + conv = converters[ prev + " " + current ] || converters[ "* " + current ]; + + // If none found, seek a pair + if ( !conv ) { + for ( conv2 in converters ) { + + // If conv2 outputs current + tmp = conv2.split( " " ); + if ( tmp[ 1 ] === current ) { + + // If prev can be converted to accepted input + conv = converters[ prev + " " + tmp[ 0 ] ] || + converters[ "* " + tmp[ 0 ] ]; + if ( conv ) { + + // Condense equivalence converters + if ( conv === true ) { + conv = converters[ conv2 ]; + + // Otherwise, insert the intermediate dataType + } else if ( converters[ conv2 ] !== true ) { + current = tmp[ 0 ]; + dataTypes.unshift( tmp[ 1 ] ); + } + break; + } + } + } + } + + // Apply converter (if not an equivalence) + if ( conv !== true ) { + + // Unless errors are allowed to bubble, catch and return them + if ( conv && s.throws ) { + response = conv( response ); + } else { + try { + response = conv( response ); + } catch ( e ) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } + } + } + + return { state: "success", data: response }; +} + +jQuery.extend( { + + // Counter for holding the number of active queries + active: 0, + + // Last-Modified header cache for next request + lastModified: {}, + etag: {}, + + ajaxSettings: { + url: location.href, + type: "GET", + isLocal: rlocalProtocol.test( location.protocol ), + global: true, + processData: true, + async: true, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + + accepts: { + "*": allTypes, + 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" + }, + + // Data converters + // Keys separate source (or catchall "*") and destination types with a single space + converters: { + + // Convert anything to text + "* text": String, + + // Text to html (true = no transformation) + "text html": true, + + // Evaluate text as a json expression + "text json": JSON.parse, + + // Parse text as xml + "text xml": jQuery.parseXML + }, + + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + url: true, + context: true + } + }, + + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function( target, settings ) { + return settings ? + + // Building a settings object + ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : + + // Extending ajaxSettings + ajaxExtend( jQuery.ajaxSettings, target ); + }, + + ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), + ajaxTransport: addToPrefiltersOrTransports( transports ), + + // Main method + ajax: function( url, options ) { + + // If url is an object, simulate pre-1.5 signature + if ( typeof url === "object" ) { + options = url; + url = undefined; + } + + // Force options to be an object + options = options || {}; + + var transport, + + // URL without anti-cache param + cacheURL, + + // Response headers + responseHeadersString, + responseHeaders, + + // timeout handle + timeoutTimer, + + // Url cleanup var + urlAnchor, + + // Request state (becomes false upon send and true upon completion) + completed, + + // To know if global events are to be dispatched + fireGlobals, + + // Loop variable + i, + + // uncached part of the url + uncached, + + // Create the final options object + s = jQuery.ajaxSetup( {}, options ), + + // Callbacks context + callbackContext = s.context || s, + + // Context for global events is callbackContext if it is a DOM node or jQuery collection + globalEventContext = s.context && + ( callbackContext.nodeType || callbackContext.jquery ) ? + jQuery( callbackContext ) : + jQuery.event, + + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks( "once memory" ), + + // Status-dependent callbacks + statusCode = s.statusCode || {}, + + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + + // Default abort message + strAbort = "canceled", + + // Fake xhr + jqXHR = { + readyState: 0, + + // Builds headers hashtable if needed + getResponseHeader: function( key ) { + var match; + if ( completed ) { + if ( !responseHeaders ) { + responseHeaders = {}; + while ( ( match = rheaders.exec( responseHeadersString ) ) ) { + responseHeaders[ match[ 1 ].toLowerCase() + " " ] = + ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) + .concat( match[ 2 ] ); + } + } + match = responseHeaders[ key.toLowerCase() + " " ]; + } + return match == null ? null : match.join( ", " ); + }, + + // Raw string + getAllResponseHeaders: function() { + return completed ? responseHeadersString : null; + }, + + // Caches the header + setRequestHeader: function( name, value ) { + if ( completed == null ) { + name = requestHeadersNames[ name.toLowerCase() ] = + requestHeadersNames[ name.toLowerCase() ] || name; + requestHeaders[ name ] = value; + } + return this; + }, + + // Overrides response content-type header + overrideMimeType: function( type ) { + if ( completed == null ) { + s.mimeType = type; + } + return this; + }, + + // Status-dependent callbacks + statusCode: function( map ) { + var code; + if ( map ) { + if ( completed ) { + + // Execute the appropriate callbacks + jqXHR.always( map[ jqXHR.status ] ); + } else { + + // Lazy-add the new callbacks in a way that preserves old ones + for ( code in map ) { + statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; + } + } + } + return this; + }, + + // Cancel the request + abort: function( statusText ) { + var finalText = statusText || strAbort; + if ( transport ) { + transport.abort( finalText ); + } + done( 0, finalText ); + return this; + } + }; + + // Attach deferreds + deferred.promise( jqXHR ); + + // Add protocol if not provided (prefilters might expect it) + // Handle falsy url in the settings object (#10093: consistency with old signature) + // We also use the url parameter if available + s.url = ( ( url || s.url || location.href ) + "" ) + .replace( rprotocol, location.protocol + "//" ); + + // Alias method option to type as per ticket #12004 + s.type = options.method || options.type || s.method || s.type; + + // Extract dataTypes list + s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; + + // A cross-domain request is in order when the origin doesn't match the current origin. + if ( s.crossDomain == null ) { + urlAnchor = document.createElement( "a" ); + + // Support: IE <=8 - 11, Edge 12 - 15 + // IE throws exception on accessing the href property if url is malformed, + // e.g. http://example.com:80x/ + try { + urlAnchor.href = s.url; + + // Support: IE <=8 - 11 only + // Anchor's host property isn't correctly set when s.url is relative + urlAnchor.href = urlAnchor.href; + s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== + urlAnchor.protocol + "//" + urlAnchor.host; + } catch ( e ) { + + // If there is an error parsing the URL, assume it is crossDomain, + // it can be rejected by the transport if it is invalid + s.crossDomain = true; + } + } + + // Convert data if not already a string + if ( s.data && s.processData && typeof s.data !== "string" ) { + s.data = jQuery.param( s.data, s.traditional ); + } + + // Apply prefilters + inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); + + // If request was aborted inside a prefilter, stop there + if ( completed ) { + return jqXHR; + } + + // We can fire global events as of now if asked to + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; + + // Watch for a new set of requests + if ( fireGlobals && jQuery.active++ === 0 ) { + jQuery.event.trigger( "ajaxStart" ); + } + + // Uppercase the type + s.type = s.type.toUpperCase(); + + // Determine if request has content + s.hasContent = !rnoContent.test( s.type ); + + // Save the URL in case we're toying with the If-Modified-Since + // and/or If-None-Match header later on + // Remove hash to simplify url manipulation + cacheURL = s.url.replace( rhash, "" ); + + // More options handling for requests with no content + if ( !s.hasContent ) { + + // Remember the hash so we can put it back + uncached = s.url.slice( cacheURL.length ); + + // If data is available and should be processed, append data to url + if ( s.data && ( s.processData || typeof s.data === "string" ) ) { + cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; + + // #9682: remove data so that it's not used in an eventual retry + delete s.data; + } + + // Add or update anti-cache param if needed + if ( s.cache === false ) { + cacheURL = cacheURL.replace( rantiCache, "$1" ); + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; + } + + // Put hash and anti-cache on the URL that will be requested (gh-1732) + s.url = cacheURL + uncached; + + // Change '%20' to '+' if this is encoded form body content (gh-2658) + } else if ( s.data && s.processData && + ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { + s.data = s.data.replace( r20, "+" ); + } + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + if ( jQuery.lastModified[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); + } + if ( jQuery.etag[ cacheURL ] ) { + jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); + } + } + + // Set the correct header, if data is being sent + if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { + jqXHR.setRequestHeader( "Content-Type", s.contentType ); + } + + // Set the Accepts header for the server, depending on the dataType + jqXHR.setRequestHeader( + "Accept", + s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? + s.accepts[ s.dataTypes[ 0 ] ] + + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : + s.accepts[ "*" ] + ); + + // Check for headers option + for ( i in s.headers ) { + jqXHR.setRequestHeader( i, s.headers[ i ] ); + } + + // Allow custom headers/mimetypes and early abort + if ( s.beforeSend && + ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { + + // Abort if not done already and return + return jqXHR.abort(); + } + + // Aborting is no longer a cancellation + strAbort = "abort"; + + // Install callbacks on deferreds + completeDeferred.add( s.complete ); + jqXHR.done( s.success ); + jqXHR.fail( s.error ); + + // Get transport + transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); + + // If no transport, we auto-abort + if ( !transport ) { + done( -1, "No Transport" ); + } else { + jqXHR.readyState = 1; + + // Send global event + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); + } + + // If request was aborted inside ajaxSend, stop there + if ( completed ) { + return jqXHR; + } + + // Timeout + if ( s.async && s.timeout > 0 ) { + timeoutTimer = window.setTimeout( function() { + jqXHR.abort( "timeout" ); + }, s.timeout ); + } + + try { + completed = false; + transport.send( requestHeaders, done ); + } catch ( e ) { + + // Rethrow post-completion exceptions + if ( completed ) { + throw e; + } + + // Propagate others as results + done( -1, e ); + } + } + + // Callback for when everything is done + function done( status, nativeStatusText, responses, headers ) { + var isSuccess, success, error, response, modified, + statusText = nativeStatusText; + + // Ignore repeat invocations + if ( completed ) { + return; + } + + completed = true; + + // Clear timeout if it exists + if ( timeoutTimer ) { + window.clearTimeout( timeoutTimer ); + } + + // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + transport = undefined; + + // Cache response headers + responseHeadersString = headers || ""; + + // Set readyState + jqXHR.readyState = status > 0 ? 4 : 0; + + // Determine if successful + isSuccess = status >= 200 && status < 300 || status === 304; + + // Get response data + if ( responses ) { + response = ajaxHandleResponses( s, jqXHR, responses ); + } + + // Convert no matter what (that way responseXXX fields are always set) + response = ajaxConvert( s, response, jqXHR, isSuccess ); + + // If successful, handle type chaining + if ( isSuccess ) { + + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if ( s.ifModified ) { + modified = jqXHR.getResponseHeader( "Last-Modified" ); + if ( modified ) { + jQuery.lastModified[ cacheURL ] = modified; + } + modified = jqXHR.getResponseHeader( "etag" ); + if ( modified ) { + jQuery.etag[ cacheURL ] = modified; + } + } + + // if no content + if ( status === 204 || s.type === "HEAD" ) { + statusText = "nocontent"; + + // if not modified + } else if ( status === 304 ) { + statusText = "notmodified"; + + // If we have data, let's convert it + } else { + statusText = response.state; + success = response.data; + error = response.error; + isSuccess = !error; + } + } else { + + // Extract error from statusText and normalize for non-aborts + error = statusText; + if ( status || !statusText ) { + statusText = "error"; + if ( status < 0 ) { + status = 0; + } + } + } + + // Set data for the fake xhr object + jqXHR.status = status; + jqXHR.statusText = ( nativeStatusText || statusText ) + ""; + + // Success/Error + if ( isSuccess ) { + deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); + } else { + deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); + } + + // Status-dependent callbacks + jqXHR.statusCode( statusCode ); + statusCode = undefined; + + if ( fireGlobals ) { + globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", + [ jqXHR, s, isSuccess ? success : error ] ); + } + + // Complete + completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); + + if ( fireGlobals ) { + globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); + + // Handle the global AJAX counter + if ( !( --jQuery.active ) ) { + jQuery.event.trigger( "ajaxStop" ); + } + } + } + + return jqXHR; + }, + + getJSON: function( url, data, callback ) { + return jQuery.get( url, data, callback, "json" ); + }, + + getScript: function( url, callback ) { + return jQuery.get( url, undefined, callback, "script" ); + } +} ); + +jQuery.each( [ "get", "post" ], function( i, method ) { + jQuery[ method ] = function( url, data, callback, type ) { + + // Shift arguments if data argument was omitted + if ( isFunction( data ) ) { + type = type || callback; + callback = data; + data = undefined; + } + + // The url can be an options object (which then must have .url) + return jQuery.ajax( jQuery.extend( { + url: url, + type: method, + dataType: type, + data: data, + success: callback + }, jQuery.isPlainObject( url ) && url ) ); + }; +} ); + + +jQuery._evalUrl = function( url, options ) { + return jQuery.ajax( { + url: url, + + // Make this explicit, since user can override this through ajaxSetup (#11264) + type: "GET", + dataType: "script", + cache: true, + async: false, + global: false, + + // Only evaluate the response if it is successful (gh-4126) + // dataFilter is not invoked for failure responses, so using it instead + // of the default converter is kludgy but it works. + converters: { + "text script": function() {} + }, + dataFilter: function( response ) { + jQuery.globalEval( response, options ); + } + } ); +}; + + +jQuery.fn.extend( { + wrapAll: function( html ) { + var wrap; + + if ( this[ 0 ] ) { + if ( isFunction( html ) ) { + html = html.call( this[ 0 ] ); + } + + // The elements to wrap the target around + wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); + + if ( this[ 0 ].parentNode ) { + wrap.insertBefore( this[ 0 ] ); + } + + wrap.map( function() { + var elem = this; + + while ( elem.firstElementChild ) { + elem = elem.firstElementChild; + } + + return elem; + } ).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( isFunction( html ) ) { + return this.each( function( i ) { + jQuery( this ).wrapInner( html.call( this, i ) ); + } ); + } + + return this.each( function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + } ); + }, + + wrap: function( html ) { + var htmlIsFunction = isFunction( html ); + + return this.each( function( i ) { + jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); + } ); + }, + + unwrap: function( selector ) { + this.parent( selector ).not( "body" ).each( function() { + jQuery( this ).replaceWith( this.childNodes ); + } ); + return this; + } +} ); + + +jQuery.expr.pseudos.hidden = function( elem ) { + return !jQuery.expr.pseudos.visible( elem ); +}; +jQuery.expr.pseudos.visible = function( elem ) { + return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); +}; + + + + +jQuery.ajaxSettings.xhr = function() { + try { + return new window.XMLHttpRequest(); + } catch ( e ) {} +}; + +var xhrSuccessStatus = { + + // File protocol always yields status code 0, assume 200 + 0: 200, + + // Support: IE <=9 only + // #1450: sometimes IE returns 1223 when it should be 204 + 1223: 204 + }, + xhrSupported = jQuery.ajaxSettings.xhr(); + +support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); +support.ajax = xhrSupported = !!xhrSupported; + +jQuery.ajaxTransport( function( options ) { + var callback, errorCallback; + + // Cross domain only allowed if supported through XMLHttpRequest + if ( support.cors || xhrSupported && !options.crossDomain ) { + return { + send: function( headers, complete ) { + var i, + xhr = options.xhr(); + + xhr.open( + options.type, + options.url, + options.async, + options.username, + options.password + ); + + // Apply custom fields if provided + if ( options.xhrFields ) { + for ( i in options.xhrFields ) { + xhr[ i ] = options.xhrFields[ i ]; + } + } + + // Override mime type if needed + if ( options.mimeType && xhr.overrideMimeType ) { + xhr.overrideMimeType( options.mimeType ); + } + + // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { + headers[ "X-Requested-With" ] = "XMLHttpRequest"; + } + + // Set headers + for ( i in headers ) { + xhr.setRequestHeader( i, headers[ i ] ); + } + + // Callback + callback = function( type ) { + return function() { + if ( callback ) { + callback = errorCallback = xhr.onload = + xhr.onerror = xhr.onabort = xhr.ontimeout = + xhr.onreadystatechange = null; + + if ( type === "abort" ) { + xhr.abort(); + } else if ( type === "error" ) { + + // Support: IE <=9 only + // On a manual native abort, IE9 throws + // errors on any property access that is not readyState + if ( typeof xhr.status !== "number" ) { + complete( 0, "error" ); + } else { + complete( + + // File: protocol always yields status 0; see #8605, #14207 + xhr.status, + xhr.statusText + ); + } + } else { + complete( + xhrSuccessStatus[ xhr.status ] || xhr.status, + xhr.statusText, + + // Support: IE <=9 only + // IE9 has no XHR2 but throws on binary (trac-11426) + // For XHR2 non-text, let the caller handle it (gh-2498) + ( xhr.responseType || "text" ) !== "text" || + typeof xhr.responseText !== "string" ? + { binary: xhr.response } : + { text: xhr.responseText }, + xhr.getAllResponseHeaders() + ); + } + } + }; + }; + + // Listen to events + xhr.onload = callback(); + errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); + + // Support: IE 9 only + // Use onreadystatechange to replace onabort + // to handle uncaught aborts + if ( xhr.onabort !== undefined ) { + xhr.onabort = errorCallback; + } else { + xhr.onreadystatechange = function() { + + // Check readyState before timeout as it changes + if ( xhr.readyState === 4 ) { + + // Allow onerror to be called first, + // but that will not handle a native abort + // Also, save errorCallback to a variable + // as xhr.onerror cannot be accessed + window.setTimeout( function() { + if ( callback ) { + errorCallback(); + } + } ); + } + }; + } + + // Create the abort callback + callback = callback( "abort" ); + + try { + + // Do send the request (this may raise an exception) + xhr.send( options.hasContent && options.data || null ); + } catch ( e ) { + + // #14683: Only rethrow if this hasn't been notified as an error yet + if ( callback ) { + throw e; + } + } + }, + + abort: function() { + if ( callback ) { + callback(); + } + } + }; + } +} ); + + + + +// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) +jQuery.ajaxPrefilter( function( s ) { + if ( s.crossDomain ) { + s.contents.script = false; + } +} ); + +// Install script dataType +jQuery.ajaxSetup( { + accepts: { + script: "text/javascript, application/javascript, " + + "application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function( text ) { + jQuery.globalEval( text ); + return text; + } + } +} ); + +// Handle cache's special case and crossDomain +jQuery.ajaxPrefilter( "script", function( s ) { + if ( s.cache === undefined ) { + s.cache = false; + } + if ( s.crossDomain ) { + s.type = "GET"; + } +} ); + +// Bind script tag hack transport +jQuery.ajaxTransport( "script", function( s ) { + + // This transport only deals with cross domain or forced-by-attrs requests + if ( s.crossDomain || s.scriptAttrs ) { + var script, callback; + return { + send: function( _, complete ) { + script = jQuery( " + + diff --git a/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.eot b/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.eot new file mode 100644 index 0000000000000000000000000000000000000000..352a9b2355298234a9a5e7b158e95617e7476968 GIT binary patch literal 307332 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

IHEclQLo@u$~ECKLp=y76D@|K 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 literal 0 HcmV?d00001 diff --git a/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.svg b/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.svg new file mode 100644 index 0000000..bf75889 --- /dev/null +++ b/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.svg @@ -0,0 +1,1530 @@ + + + +Generated by IcoMoon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.ttf b/www/assets/sweet-alert/block/fonts/icomoon/fonts/icomoon.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c3d4be0c58ca1c7896c12ae026905956094c4baf GIT binary patch literal 307168 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

y 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'); + if (title) $m.append('

'+title+'

'); + if (message) $m.append('

'+message+'

'); + if (timeout === undefined) timeout = 3000; + + // Added by konapun: Set timeout to 30 seconds if this growl is moused over, like normal toast notifications + var callBlock = function(opts) { + opts = opts || {}; + + $.blockUI({ + message: $m, + fadeIn : typeof opts.fadeIn !== 'undefined' ? opts.fadeIn : 700, + fadeOut: typeof opts.fadeOut !== 'undefined' ? opts.fadeOut : 1000, + timeout: typeof opts.timeout !== 'undefined' ? opts.timeout : timeout, + centerY: false, + showOverlay: false, + onUnblock: onClose, + css: $.blockUI.defaults.growlCSS + }); + }; + + callBlock(); + var nonmousedOpacity = $m.css('opacity'); + $m.mouseover(function() { + callBlock({ + fadeIn: 0, + timeout: 30000 + }); + + var displayBlock = $('.blockMsg'); + displayBlock.stop(); // cancel fadeout if it has started + displayBlock.fadeTo(300, 1); // make it easier to read the message by removing transparency + }).mouseout(function() { + $('.blockMsg').fadeOut(1000); + }); + // End konapun additions + }; + + // plugin method for blocking element content + $.fn.block = function(opts) { + if ( this[0] === window ) { + $.blockUI( opts ); + return this; + } + var fullOpts = $.extend({}, $.blockUI.defaults, opts || {}); + this.each(function() { + var $el = $(this); + if (fullOpts.ignoreIfBlocked && $el.data('blockUI.isBlocked')) + return; + $el.unblock({ fadeOut: 0 }); + }); + + return this.each(function() { + if ($.css(this,'position') == 'static') { + this.style.position = 'relative'; + $(this).data('blockUI.static', true); + } + this.style.zoom = 1; // force 'hasLayout' in ie + install(this, opts); + }); + }; + + // plugin method for unblocking element content + $.fn.unblock = function(opts) { + if ( this[0] === window ) { + $.unblockUI( opts ); + return this; + } + return this.each(function() { + remove(this, opts); + }); + }; + + $.blockUI.version = 2.70; // 2nd generation blocking at no extra cost! + + // override these in your code to change the default behavior and style + $.blockUI.defaults = { + // message displayed when blocking (use null for no message) + message: '

Please wait...

', + + title: null, // title string; only used when theme == true + draggable: true, // only used when theme == true (requires jquery-ui.js to be loaded) + + theme: false, // set to true to use with jQuery UI themes + + // styles for the message when blocking; if you wish to disable + // these and use an external stylesheet then do this in your code: + // $.blockUI.defaults.css = {}; + css: { + padding: 0, + margin: 0, + width: '30%', + top: '40%', + left: '35%', + textAlign: 'center', + color: '#000', + border: '3px solid #aaa', + backgroundColor:'#fff', + cursor: 'wait' + }, + + // minimal style set used when themes are used + themedCSS: { + width: '30%', + top: '40%', + left: '35%' + }, + + // styles for the overlay + overlayCSS: { + backgroundColor: '#000', + opacity: 0.6, + cursor: 'wait' + }, + + // style to replace wait cursor before unblocking to correct issue + // of lingering wait cursor + cursorReset: 'default', + + // styles applied when using $.growlUI + growlCSS: { + width: '350px', + top: '10px', + left: '', + right: '10px', + border: 'none', + padding: '5px', + opacity: 0.6, + cursor: 'default', + color: '#fff', + backgroundColor: '#000', + '-webkit-border-radius':'10px', + '-moz-border-radius': '10px', + 'border-radius': '10px' + }, + + // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w + // (hat tip to Jorge H. N. de Vasconcelos) + /*jshint scripturl:true */ + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank', + + // force usage of iframe in non-IE browsers (handy for blocking applets) + forceIframe: false, + + // z-index for the blocking overlay + baseZ: 1000, + + // set these to true to have the message automatically centered + centerX: true, // <-- only effects element blocking (page block controlled via css above) + centerY: true, + + // allow body element to be stetched in ie6; this makes blocking look better + // on "short" pages. disable if you wish to prevent changes to the body height + allowBodyStretch: true, + + // enable if you want key and mouse events to be disabled for content that is blocked + bindEvents: true, + + // be default blockUI will supress tab navigation from leaving blocking content + // (if bindEvents is true) + constrainTabKey: true, + + // fadeIn time in millis; set to 0 to disable fadeIn on block + fadeIn: 200, + + // fadeOut time in millis; set to 0 to disable fadeOut on unblock + fadeOut: 400, + + // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock + timeout: 0, + + // disable if you don't want to show the overlay + showOverlay: true, + + // if true, focus will be placed in the first available input field when + // page blocking + focusInput: true, + + // elements that can receive focus + focusableElements: ':input:enabled:visible', + + // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity) + // no longer needed in 2012 + // applyPlatformOpacityRules: true, + + // callback method invoked when fadeIn has completed and blocking message is visible + onBlock: null, + + // callback method invoked when unblocking has completed; the callback is + // passed the element that has been unblocked (which is the window object for page + // blocks) and the options that were passed to the unblock call: + // onUnblock(element, options) + onUnblock: null, + + // callback method invoked when the overlay area is clicked. + // setting this will turn the cursor to a pointer, otherwise cursor defined in overlayCss will be used. + onOverlayClick: null, + + // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493 + quirksmodeOffsetHack: 4, + + // class name of the message block + blockMsgClass: 'blockMsg', + + // if it is already blocked, then ignore it (don't unblock and reblock) + ignoreIfBlocked: false + }; + + // private data and functions follow... + + var pageBlock = null; + var pageBlockEls = []; + + function install(el, opts) { + var css, themedCSS; + var full = (el == window); + var msg = (opts && opts.message !== undefined ? opts.message : undefined); + opts = $.extend({}, $.blockUI.defaults, opts || {}); + + if (opts.ignoreIfBlocked && $(el).data('blockUI.isBlocked')) + return; + + opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {}); + css = $.extend({}, $.blockUI.defaults.css, opts.css || {}); + if (opts.onOverlayClick) + opts.overlayCSS.cursor = 'pointer'; + + themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {}); + msg = msg === undefined ? opts.message : msg; + + // remove the current block (if there is one) + if (full && pageBlock) + remove(window, {fadeOut:0}); + + // if an existing element is being used as the blocking content then we capture + // its current place in the DOM (and current display style) so we can restore + // it when we unblock + if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) { + var node = msg.jquery ? msg[0] : msg; + var data = {}; + $(el).data('blockUI.history', data); + data.el = node; + data.parent = node.parentNode; + data.display = node.style.display; + data.position = node.style.position; + if (data.parent) + data.parent.removeChild(node); + } + + $(el).data('blockUI.onUnblock', opts.onUnblock); + var z = opts.baseZ; + + // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform; + // layer1 is the iframe layer which is used to supress bleed through of underlying content + // layer2 is the overlay layer which has opacity and a wait cursor (by default) + // layer3 is the message content that is displayed while blocking + var lyr1, lyr2, lyr3, s; + if (msie || opts.forceIframe) + lyr1 = $(''); + else + lyr1 = $(''); + + if (opts.theme) + lyr2 = $(''); + else + lyr2 = $(''); + + if (opts.theme && full) { + s = ''; + } + else if (opts.theme) { + s = ''; + } + else if (full) { + s = ''; + } + else { + s = ''; + } + lyr3 = $(s); + + // if we have a message, style it + if (msg) { + if (opts.theme) { + lyr3.css(themedCSS); + lyr3.addClass('ui-widget-content'); + } + else + lyr3.css(css); + } + + // style the overlay + if (!opts.theme /*&& (!opts.applyPlatformOpacityRules)*/) + lyr2.css(opts.overlayCSS); + lyr2.css('position', full ? 'fixed' : 'absolute'); + + // make iframe layer transparent in IE + if (msie || opts.forceIframe) + lyr1.css('opacity',0.0); + + //$([lyr1[0],lyr2[0],lyr3[0]]).appendTo(full ? 'body' : el); + var layers = [lyr1,lyr2,lyr3], $par = full ? $('body') : $(el); + $.each(layers, function() { + this.appendTo($par); + }); + + if (opts.theme && opts.draggable && $.fn.draggable) { + lyr3.draggable({ + handle: '.ui-dialog-titlebar', + cancel: 'li' + }); + } + + // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling) + var expr = setExpr && (!$.support.boxModel || $('object,embed', full ? null : el).length > 0); + if (ie6 || expr) { + // give body 100% height + if (full && opts.allowBodyStretch && $.support.boxModel) + $('html,body').css('height','100%'); + + // fix ie6 issue when blocked element has a border width + if ((ie6 || !$.support.boxModel) && !full) { + var t = sz(el,'borderTopWidth'), l = sz(el,'borderLeftWidth'); + var fixT = t ? '(0 - '+t+')' : 0; + var fixL = l ? '(0 - '+l+')' : 0; + } + + // simulate fixed position + $.each(layers, function(i,o) { + var s = o[0].style; + s.position = 'absolute'; + if (i < 2) { + if (full) + s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"'); + else + s.setExpression('height','this.parentNode.offsetHeight + "px"'); + if (full) + s.setExpression('width','jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'); + else + s.setExpression('width','this.parentNode.offsetWidth + "px"'); + if (fixL) s.setExpression('left', fixL); + if (fixT) s.setExpression('top', fixT); + } + else if (opts.centerY) { + if (full) s.setExpression('top','(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'); + s.marginTop = 0; + } + else if (!opts.centerY && full) { + var top = (opts.css && opts.css.top) ? parseInt(opts.css.top, 10) : 0; + var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + '+top+') + "px"'; + s.setExpression('top',expression); + } + }); + } + + // show the message + if (msg) { + if (opts.theme) + lyr3.find('.ui-widget-content').append(msg); + else + lyr3.append(msg); + if (msg.jquery || msg.nodeType) + $(msg).show(); + } + + if ((msie || opts.forceIframe) && opts.showOverlay) + lyr1.show(); // opacity is zero + if (opts.fadeIn) { + var cb = opts.onBlock ? opts.onBlock : noOp; + var cb1 = (opts.showOverlay && !msg) ? cb : noOp; + var cb2 = msg ? cb : noOp; + if (opts.showOverlay) + lyr2._fadeIn(opts.fadeIn, cb1); + if (msg) + lyr3._fadeIn(opts.fadeIn, cb2); + } + else { + if (opts.showOverlay) + lyr2.show(); + if (msg) + lyr3.show(); + if (opts.onBlock) + opts.onBlock.bind(lyr3)(); + } + + // bind key and mouse events + bind(1, el, opts); + + if (full) { + pageBlock = lyr3[0]; + pageBlockEls = $(opts.focusableElements,pageBlock); + if (opts.focusInput) + setTimeout(focus, 20); + } + else + center(lyr3[0], opts.centerX, opts.centerY); + + if (opts.timeout) { + // auto-unblock + var to = setTimeout(function() { + if (full) + $.unblockUI(opts); + else + $(el).unblock(opts); + }, opts.timeout); + $(el).data('blockUI.timeout', to); + } + } + + // remove the block + function remove(el, opts) { + var count; + var full = (el == window); + var $el = $(el); + var data = $el.data('blockUI.history'); + var to = $el.data('blockUI.timeout'); + if (to) { + clearTimeout(to); + $el.removeData('blockUI.timeout'); + } + opts = $.extend({}, $.blockUI.defaults, opts || {}); + bind(0, el, opts); // unbind events + + if (opts.onUnblock === null) { + opts.onUnblock = $el.data('blockUI.onUnblock'); + $el.removeData('blockUI.onUnblock'); + } + + var els; + if (full) // crazy selector to handle odd field errors in ie6/7 + els = $('body').children().filter('.blockUI').add('body > .blockUI'); + else + els = $el.find('>.blockUI'); + + // fix cursor issue + if ( opts.cursorReset ) { + if ( els.length > 1 ) + els[1].style.cursor = opts.cursorReset; + if ( els.length > 2 ) + els[2].style.cursor = opts.cursorReset; + } + + if (full) + pageBlock = pageBlockEls = null; + + if (opts.fadeOut) { + count = els.length; + els.stop().fadeOut(opts.fadeOut, function() { + if ( --count === 0) + reset(els,data,opts,el); + }); + } + else + reset(els, data, opts, el); + } + + // move blocking element back into the DOM where it started + function reset(els,data,opts,el) { + var $el = $(el); + if ( $el.data('blockUI.isBlocked') ) + return; + + els.each(function(i,o) { + // remove via DOM calls so we don't lose event handlers + if (this.parentNode) + this.parentNode.removeChild(this); + }); + + if (data && data.el) { + data.el.style.display = data.display; + data.el.style.position = data.position; + data.el.style.cursor = 'default'; // #59 + if (data.parent) + data.parent.appendChild(data.el); + $el.removeData('blockUI.history'); + } + + if ($el.data('blockUI.static')) { + $el.css('position', 'static'); // #22 + } + + if (typeof opts.onUnblock == 'function') + opts.onUnblock(el,opts); + + // fix issue in Safari 6 where block artifacts remain until reflow + var body = $(document.body), w = body.width(), cssW = body[0].style.width; + body.width(w-1).width(w); + body[0].style.width = cssW; + } + + // bind/unbind the handler + function bind(b, el, opts) { + var full = el == window, $el = $(el); + + // don't bother unbinding if there is nothing to unbind + if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked'))) + return; + + $el.data('blockUI.isBlocked', b); + + // don't bind events when overlay is not in use or if bindEvents is false + if (!full || !opts.bindEvents || (b && !opts.showOverlay)) + return; + + // bind anchors and inputs for mouse and key events + var events = 'mousedown mouseup keydown keypress keyup touchstart touchend touchmove'; + if (b) + $(document).bind(events, opts, handler); + else + $(document).unbind(events, handler); + + // former impl... + // var $e = $('a,:input'); + // b ? $e.bind(events, opts, handler) : $e.unbind(events, handler); + } + + // event handler to suppress keyboard/mouse events when blocking + function handler(e) { + // allow tab navigation (conditionally) + if (e.type === 'keydown' && e.keyCode && e.keyCode == 9) { + if (pageBlock && e.data.constrainTabKey) { + var els = pageBlockEls; + var fwd = !e.shiftKey && e.target === els[els.length-1]; + var back = e.shiftKey && e.target === els[0]; + if (fwd || back) { + setTimeout(function(){focus(back);},10); + return false; + } + } + } + var opts = e.data; + var target = $(e.target); + if (target.hasClass('blockOverlay') && opts.onOverlayClick) + opts.onOverlayClick(e); + + // allow events within the message content + if (target.parents('div.' + opts.blockMsgClass).length > 0) + return true; + + // allow events for content that is not being blocked + return target.parents().children().filter('div.blockUI').length === 0; + } + + function focus(back) { + if (!pageBlockEls) + return; + var e = pageBlockEls[back===true ? pageBlockEls.length-1 : 0]; + if (e) + e.focus(); + } + + function center(el, x, y) { + var p = el.parentNode, s = el.style; + var l = ((p.offsetWidth - el.offsetWidth)/2) - sz(p,'borderLeftWidth'); + var t = ((p.offsetHeight - el.offsetHeight)/2) - sz(p,'borderTopWidth'); + if (x) s.left = l > 0 ? (l+'px') : '0'; + if (y) s.top = t > 0 ? (t+'px') : '0'; + } + + function sz(el, p) { + return parseInt($.css(el,p),10)||0; + } + + } + + + /*global define:true */ + if (typeof define === 'function' && define.amd && define.amd.jQuery) { + define(['jquery'], setup); + } else { + setup(jQuery); + } + +})(); \ No newline at end of file diff --git a/www/assets/sweet-alert/block/js/aos.js b/www/assets/sweet-alert/block/js/aos.js new file mode 100644 index 0000000..2d37d78 --- /dev/null +++ b/www/assets/sweet-alert/block/js/aos.js @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,j),(0,b.default)(w,j.once),w},S=function(){w=(0,h.default)(),O()},_=function(){w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")})},E=function(e){return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0},z=function(e){return j=i(j,e),w=(0,h.default)(),E(j.disable)||x?_():(document.querySelector("body").setAttribute("data-aos-easing",j.easing),document.querySelector("body").setAttribute("data-aos-duration",j.duration),document.querySelector("body").setAttribute("data-aos-delay",j.delay),"DOMContentLoaded"===j.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?O(!0):"load"===j.startEvent?window.addEventListener(j.startEvent,function(){O(!0)}):document.addEventListener(j.startEvent,function(){O(!0)}),window.addEventListener("resize",(0,f.default)(O,50,!0)),window.addEventListener("orientationchange",(0,f.default)(O,50,!0)),window.addEventListener("scroll",(0,u.default)(function(){(0,b.default)(w,j.once)},99)),document.addEventListener("DOMNodeRemoved",function(e){var t=e.target;t&&1===t.nodeType&&t.hasAttribute&&t.hasAttribute("data-aos")&&(0,f.default)(S,50,!0)}),(0,d.default)("[data-aos]",S),w)};e.exports={init:z,refresh:O,refreshHard:S}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(s,t),S?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return _?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||_&&o>=y}function s(){var e=O();return c(e)?d(e):void(h=setTimeout(s,a(e)))}function d(e){return h=void 0,E&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(_)return h=setTimeout(s,t),o(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,k=0,S=!1,_=!1,E=!0;if("function"!=typeof e)throw new TypeError(f);return t=u(t)||0,i(n)&&(S=!!n.leading,_="maxWait"in n,y=_?x(u(n.maxWait)||0,t):y,E="trailing"in n?!!n.trailing:E),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(f);return i(o)&&(r="leading"in o?!!o.leading:r,a="trailing"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(e))}function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||r(e)&&k.call(e)==d}function u(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?s:+e}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f="Expected a function",s=NaN,d="[object Symbol]",l=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(s,t),S?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return _?x(i,y-o):i}function f(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||_&&o>=y}function s(){var e=j();return f(e)?d(e):void(h=setTimeout(s,u(e)))}function d(e){return h=void 0,E&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=f(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(_)return h=setTimeout(s,t),i(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,O=0,S=!1,_=!1,E=!0;if("function"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(S=!!n.leading,_="maxWait"in n,y=_?k(a(n.maxWait)||0,t):y,E="trailing"in n?!!n.trailing:E),m.cancel=l,m.flush=p,m}function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==s}function a(e){if("number"==typeof e)return e;if(r(e))return f;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c="Expected a function",f=NaN,s="[object Symbol]",d=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,g=v||y||Function("return this")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e,t){a.push({selector:e,fn:t}),!u&&r&&(u=new r(o),u.observe(i.documentElement,{childList:!0,subtree:!0,removedNodes:!0})),o()}function o(){for(var e,t,n=0,o=a.length;ne.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add("aos-init"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){e=e||document.querySelectorAll("[data-aos]");var t=[];return[].forEach.call(e,function(e,n){t.push({node:e})}),t};t.default=n}])}); +//# sourceMappingURL=aos.js.map \ No newline at end of file diff --git a/www/assets/sweet-alert/block/js/bootstrap-datepicker.min.js b/www/assets/sweet-alert/block/js/bootstrap-datepicker.min.js new file mode 100644 index 0000000..48cb452 --- /dev/null +++ b/www/assets/sweet-alert/block/js/bootstrap-datepicker.min.js @@ -0,0 +1,9 @@ +/*! + * Datepicker for Bootstrap v1.6.4 (https://github.com/eternicode/bootstrap-datepicker) + * + * Copyright 2012 Stefan Petre + * Improvements by Andrew Rowls + * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0) + */ +!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):jQuery)}(function(a,b){function c(){return new Date(Date.UTC.apply(Date,arguments))}function d(){var a=new Date;return c(a.getFullYear(),a.getMonth(),a.getDate())}function e(a,b){return a.getUTCFullYear()===b.getUTCFullYear()&&a.getUTCMonth()===b.getUTCMonth()&&a.getUTCDate()===b.getUTCDate()}function f(a){return function(){return this[a].apply(this,arguments)}}function g(a){return a&&!isNaN(a.getTime())}function h(b,c){function d(a,b){return b.toLowerCase()}var e,f=a(b).data(),g={},h=new RegExp("^"+c.toLowerCase()+"([A-Z])");c=new RegExp("^"+c.toLowerCase());for(var i in f)c.test(i)&&(e=i.replace(h,d),g[e]=f[i]);return g}function i(b){var c={};if(q[b]||(b=b.split("-")[0],q[b])){var d=q[b];return a.each(p,function(a,b){b in d&&(c[b]=d[b])}),c}}var j=function(){var b={get:function(a){return this.slice(a)[0]},contains:function(a){for(var b=a&&a.valueOf(),c=0,d=this.length;d>c;c++)if(this[c].valueOf()===b)return c;return-1},remove:function(a){this.splice(a,1)},replace:function(b){b&&(a.isArray(b)||(b=[b]),this.clear(),this.push.apply(this,b))},clear:function(){this.length=0},copy:function(){var a=new j;return a.replace(this),a}};return function(){var c=[];return c.push.apply(c,arguments),a.extend(c,b),c}}(),k=function(b,c){a(b).data("datepicker",this),this._process_options(c),this.dates=new j,this.viewDate=this.o.defaultViewDate,this.focusDate=null,this.element=a(b),this.isInput=this.element.is("input"),this.inputField=this.isInput?this.element:this.element.find("input"),this.component=this.element.hasClass("date")?this.element.find(".add-on, .input-group-addon, .btn"):!1,this.hasInput=this.component&&this.inputField.length,this.component&&0===this.component.length&&(this.component=!1),this.isInline=!this.component&&this.element.is("div"),this.picker=a(r.template),this._check_template(this.o.templates.leftArrow)&&this.picker.find(".prev").html(this.o.templates.leftArrow),this._check_template(this.o.templates.rightArrow)&&this.picker.find(".next").html(this.o.templates.rightArrow),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&this.picker.addClass("datepicker-rtl"),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("thead .datepicker-title, tfoot .today, tfoot .clear").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this._o.startDate),this.setEndDate(this._o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.setDaysOfWeekHighlighted(this.o.daysOfWeekHighlighted),this.setDatesDisabled(this.o.datesDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};k.prototype={constructor:k,_resolveViewName:function(a,c){return 0===a||"days"===a||"month"===a?0:1===a||"months"===a||"year"===a?1:2===a||"years"===a||"decade"===a?2:3===a||"decades"===a||"century"===a?3:4===a||"centuries"===a||"millennium"===a?4:c===b?!1:c},_check_template:function(c){try{if(c===b||""===c)return!1;if((c.match(/[<>]/g)||[]).length<=0)return!0;var d=a(c);return d.length>0}catch(e){return!1}},_process_options:function(b){this._o=a.extend({},this._o,b);var e=this.o=a.extend({},this._o),f=e.language;q[f]||(f=f.split("-")[0],q[f]||(f=o.language)),e.language=f,e.startView=this._resolveViewName(e.startView,0),e.minViewMode=this._resolveViewName(e.minViewMode,0),e.maxViewMode=this._resolveViewName(e.maxViewMode,4),e.startView=Math.min(e.startView,e.maxViewMode),e.startView=Math.max(e.startView,e.minViewMode),e.multidate!==!0&&(e.multidate=Number(e.multidate)||!1,e.multidate!==!1&&(e.multidate=Math.max(0,e.multidate))),e.multidateSeparator=String(e.multidateSeparator),e.weekStart%=7,e.weekEnd=(e.weekStart+6)%7;var g=r.parseFormat(e.format);e.startDate!==-(1/0)&&(e.startDate?e.startDate instanceof Date?e.startDate=this._local_to_utc(this._zero_time(e.startDate)):e.startDate=r.parseDate(e.startDate,g,e.language,e.assumeNearbyYear):e.startDate=-(1/0)),e.endDate!==1/0&&(e.endDate?e.endDate instanceof Date?e.endDate=this._local_to_utc(this._zero_time(e.endDate)):e.endDate=r.parseDate(e.endDate,g,e.language,e.assumeNearbyYear):e.endDate=1/0),e.daysOfWeekDisabled=e.daysOfWeekDisabled||[],a.isArray(e.daysOfWeekDisabled)||(e.daysOfWeekDisabled=e.daysOfWeekDisabled.split(/[,\s]*/)),e.daysOfWeekDisabled=a.map(e.daysOfWeekDisabled,function(a){return parseInt(a,10)}),e.daysOfWeekHighlighted=e.daysOfWeekHighlighted||[],a.isArray(e.daysOfWeekHighlighted)||(e.daysOfWeekHighlighted=e.daysOfWeekHighlighted.split(/[,\s]*/)),e.daysOfWeekHighlighted=a.map(e.daysOfWeekHighlighted,function(a){return parseInt(a,10)}),e.datesDisabled=e.datesDisabled||[],a.isArray(e.datesDisabled)||(e.datesDisabled=[e.datesDisabled]),e.datesDisabled=a.map(e.datesDisabled,function(a){return r.parseDate(a,g,e.language,e.assumeNearbyYear)});var h=String(e.orientation).toLowerCase().split(/\s+/g),i=e.orientation.toLowerCase();if(h=a.grep(h,function(a){return/^auto|left|right|top|bottom$/.test(a)}),e.orientation={x:"auto",y:"auto"},i&&"auto"!==i)if(1===h.length)switch(h[0]){case"top":case"bottom":e.orientation.y=h[0];break;case"left":case"right":e.orientation.x=h[0]}else i=a.grep(h,function(a){return/^left|right$/.test(a)}),e.orientation.x=i[0]||"auto",i=a.grep(h,function(a){return/^top|bottom$/.test(a)}),e.orientation.y=i[0]||"auto";else;if(e.defaultViewDate){var j=e.defaultViewDate.year||(new Date).getFullYear(),k=e.defaultViewDate.month||0,l=e.defaultViewDate.day||1;e.defaultViewDate=c(j,k,l)}else e.defaultViewDate=d()},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var c,d,e,f=0;ff?(this.picker.addClass("datepicker-orient-right"),n+=m-b):this.picker.addClass("datepicker-orient-left");var p,q=this.o.orientation.y;if("auto"===q&&(p=-g+o-c,q=0>p?"bottom":"top"),this.picker.addClass("datepicker-orient-"+q),"top"===q?o-=c+parseInt(this.picker.css("padding-top")):o+=l,this.o.rtl){var r=f-(n+m);this.picker.css({top:o,right:r,zIndex:j})}else this.picker.css({top:o,left:n,zIndex:j});return this},_allow_update:!0,update:function(){if(!this._allow_update)return this;var b=this.dates.copy(),c=[],d=!1;return arguments.length?(a.each(arguments,a.proxy(function(a,b){b instanceof Date&&(b=this._local_to_utc(b)),c.push(b)},this)),d=!0):(c=this.isInput?this.element.val():this.element.data("date")||this.inputField.val(),c=c&&this.o.multidate?c.split(this.o.multidateSeparator):[c],delete this.element.data().date),c=a.map(c,a.proxy(function(a){return r.parseDate(a,this.o.format,this.o.language,this.o.assumeNearbyYear)},this)),c=a.grep(c,a.proxy(function(a){return!this.dateWithinRange(a)||!a},this),!0),this.dates.replace(c),this.dates.length?this.viewDate=new Date(this.dates.get(-1)):this.viewDatethis.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=this.o.defaultViewDate,d?this.setValue():c.length&&String(b)!==String(this.dates)&&this._trigger("changeDate"),!this.dates.length&&b.length&&this._trigger("clearDate"),this.fill(),this.element.change(),this},fillDow:function(){var b=this.o.weekStart,c="";for(this.o.calendarWeeks&&(this.picker.find(".datepicker-days .datepicker-switch").attr("colspan",function(a,b){return parseInt(b)+1}),c+=' ');b";c+="",this.picker.find(".datepicker-days thead").append(c)},fillMonths:function(){for(var a=this._utc_to_local(this.viewDate),b="",c=0;12>c;){var d=a&&a.getMonth()===c?" focused":"";b+=''+q[this.o.language].monthsShort[c++]+""}this.picker.find(".datepicker-months td").html(b)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),f=new Date;return b.getUTCFullYear()d||b.getUTCFullYear()===d&&b.getUTCMonth()>e)&&c.push("new"),this.focusDate&&b.valueOf()===this.focusDate.valueOf()&&c.push("focused"),this.o.todayHighlight&&b.getUTCFullYear()===f.getFullYear()&&b.getUTCMonth()===f.getMonth()&&b.getUTCDate()===f.getDate()&&c.push("today"),-1!==this.dates.contains(b)&&c.push("active"),this.dateWithinRange(b)||c.push("disabled"),this.dateIsDisabled(b)&&c.push("disabled","disabled-date"),-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekHighlighted)&&c.push("highlighted"),this.range&&(b>this.range[0]&&br;r+=1)s=[d],t=null,-1===r?s.push("old"):10===r&&s.push("new"),-1!==a.inArray(q,n)&&s.push("active"),(o>q||q>p)&&s.push("disabled"),q===this.viewDate.getFullYear()&&s.push("focused"),j!==a.noop&&(u=j(new Date(q,0,1)),u===b?u={}:"boolean"==typeof u?u={enabled:u}:"string"==typeof u&&(u={classes:u}),u.enabled===!1&&s.push("disabled"),u.classes&&(s=s.concat(u.classes.split(/\s+/))),u.tooltip&&(t=u.tooltip)),k+='"+q+"",q+=f;l.find("td").html(k)},fill:function(){var d,e,f=new Date(this.viewDate),g=f.getUTCFullYear(),h=f.getUTCMonth(),i=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),j=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),k=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,l=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0,m=q[this.o.language].today||q.en.today||"",n=q[this.o.language].clear||q.en.clear||"",o=q[this.o.language].titleFormat||q.en.titleFormat;if(!isNaN(g)&&!isNaN(h)){this.picker.find(".datepicker-days .datepicker-switch").text(r.formatDate(f,o,this.o.language)),this.picker.find("tfoot .today").text(m).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot .clear").text(n).toggle(this.o.clearBtn!==!1),this.picker.find("thead .datepicker-title").text(this.o.title).toggle(""!==this.o.title),this.updateNavArrows(),this.fillMonths();var p=c(g,h-1,28),s=r.getDaysInMonth(p.getUTCFullYear(),p.getUTCMonth());p.setUTCDate(s),p.setUTCDate(s-(p.getUTCDay()-this.o.weekStart+7)%7);var t=new Date(p);p.getUTCFullYear()<100&&t.setUTCFullYear(p.getUTCFullYear()),t.setUTCDate(t.getUTCDate()+42),t=t.valueOf();for(var u,v=[];p.valueOf()"),this.o.calendarWeeks)){var w=new Date(+p+(this.o.weekStart-p.getUTCDay()-7)%7*864e5),x=new Date(Number(w)+(11-w.getUTCDay())%7*864e5),y=new Date(Number(y=c(x.getUTCFullYear(),0,1))+(11-y.getUTCDay())%7*864e5),z=(x-y)/864e5/7+1;v.push(''+z+"")}u=this.getClassNames(p),u.push("day"),this.o.beforeShowDay!==a.noop&&(e=this.o.beforeShowDay(this._utc_to_local(p)),e===b?e={}:"boolean"==typeof e?e={enabled:e}:"string"==typeof e&&(e={classes:e}),e.enabled===!1&&u.push("disabled"),e.classes&&(u=u.concat(e.classes.split(/\s+/))),e.tooltip&&(d=e.tooltip)),u=a.isFunction(a.uniqueSort)?a.uniqueSort(u):a.unique(u),v.push('"+p.getUTCDate()+""),d=null,p.getUTCDay()===this.o.weekEnd&&v.push(""),p.setUTCDate(p.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(v.join(""));var A=q[this.o.language].monthsTitle||q.en.monthsTitle||"Months",B=this.picker.find(".datepicker-months").find(".datepicker-switch").text(this.o.maxViewMode<2?A:g).end().find("span").removeClass("active");if(a.each(this.dates,function(a,b){b.getUTCFullYear()===g&&B.eq(b.getUTCMonth()).addClass("active")}),(i>g||g>k)&&B.addClass("disabled"),g===i&&B.slice(0,j).addClass("disabled"),g===k&&B.slice(l+1).addClass("disabled"),this.o.beforeShowMonth!==a.noop){var C=this;a.each(B,function(c,d){var e=new Date(g,c,1),f=C.o.beforeShowMonth(e);f===b?f={}:"boolean"==typeof f?f={enabled:f}:"string"==typeof f&&(f={classes:f}),f.enabled!==!1||a(d).hasClass("disabled")||a(d).addClass("disabled"),f.classes&&a(d).addClass(f.classes),f.tooltip&&a(d).prop("title",f.tooltip)})}this._fill_yearsView(".datepicker-years","year",10,1,g,i,k,this.o.beforeShowYear),this._fill_yearsView(".datepicker-decades","decade",100,10,g,i,k,this.o.beforeShowDecade),this._fill_yearsView(".datepicker-centuries","century",1e3,100,g,i,k,this.o.beforeShowCentury)}},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:case 2:case 3:case 4:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()||this.o.maxViewMode<2?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()||this.o.maxViewMode<2?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}}},click:function(b){b.preventDefault(),b.stopPropagation();var e,f,g,h,i,j,k;e=a(b.target),e.hasClass("datepicker-switch")&&this.showMode(1);var l=e.closest(".prev, .next");l.length>0&&(f=r.modes[this.viewMode].navStep*(l.hasClass("prev")?-1:1),0===this.viewMode?(this.viewDate=this.moveMonth(this.viewDate,f),this._trigger("changeMonth",this.viewDate)):(this.viewDate=this.moveYear(this.viewDate,f),1===this.viewMode&&this._trigger("changeYear",this.viewDate)),this.fill()),e.hasClass("today")&&!e.hasClass("day")&&(this.showMode(-2),this._setDate(d(),"linked"===this.o.todayBtn?null:"view")),e.hasClass("clear")&&this.clearDates(),e.hasClass("disabled")||(e.hasClass("day")&&(g=parseInt(e.text(),10)||1,h=this.viewDate.getUTCFullYear(),i=this.viewDate.getUTCMonth(),e.hasClass("old")&&(0===i?(i=11,h-=1,j=!0,k=!0):(i-=1,j=!0)),e.hasClass("new")&&(11===i?(i=0,h+=1,j=!0,k=!0):(i+=1,j=!0)),this._setDate(c(h,i,g)),k&&this._trigger("changeYear",this.viewDate),j&&this._trigger("changeMonth",this.viewDate)),e.hasClass("month")&&(this.viewDate.setUTCDate(1),g=1,i=e.parent().find("span").index(e),h=this.viewDate.getUTCFullYear(),this.viewDate.setUTCMonth(i),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode?(this._setDate(c(h,i,g)),this.showMode()):this.showMode(-1),this.fill()),(e.hasClass("year")||e.hasClass("decade")||e.hasClass("century"))&&(this.viewDate.setUTCDate(1),g=1,i=0,h=parseInt(e.text(),10)||0,this.viewDate.setUTCFullYear(h),e.hasClass("year")&&(this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(c(h,i,g))),e.hasClass("decade")&&(this._trigger("changeDecade",this.viewDate),3===this.o.minViewMode&&this._setDate(c(h,i,g))),e.hasClass("century")&&(this._trigger("changeCentury",this.viewDate),4===this.o.minViewMode&&this._setDate(c(h,i,g))),this.showMode(-1),this.fill())),this.picker.is(":visible")&&this._focused_from&&a(this._focused_from).focus(),delete this._focused_from},_toggle_multidate:function(a){var b=this.dates.contains(a);if(a||this.dates.clear(),-1!==b?(this.o.multidate===!0||this.o.multidate>1||this.o.toggleActive)&&this.dates.remove(b):this.o.multidate===!1?(this.dates.clear(),this.dates.push(a)):this.dates.push(a),"number"==typeof this.o.multidate)for(;this.dates.length>this.o.multidate;)this.dates.remove(0)},_setDate:function(a,b){b&&"date"!==b||this._toggle_multidate(a&&new Date(a)),b&&"view"!==b||(this.viewDate=a&&new Date(a)),this.fill(),this.setValue(),b&&"view"===b||this._trigger("changeDate"),this.inputField&&this.inputField.change(),!this.o.autoclose||b&&"date"!==b||this.hide()},moveDay:function(a,b){var c=new Date(a);return c.setUTCDate(a.getUTCDate()+b),c},moveWeek:function(a,b){return this.moveDay(a,7*b)},moveMonth:function(a,b){if(!g(a))return this.o.defaultViewDate;if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),h=e.getUTCMonth(),i=Math.abs(b);if(b=b>0?1:-1,1===i)d=-1===b?function(){return e.getUTCMonth()===h}:function(){return e.getUTCMonth()!==c},c=h+b,e.setUTCMonth(c),(0>c||c>11)&&(c=(c+12)%12);else{for(var j=0;i>j;j++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!==e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},moveAvailableDate:function(a,b,c){do{if(a=this[c](a,b),!this.dateWithinRange(a))return!1;c="moveDay"}while(this.dateIsDisabled(a));return a},weekOfDateIsDisabled:function(b){return-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled)},dateIsDisabled:function(b){return this.weekOfDateIsDisabled(b)||a.grep(this.o.datesDisabled,function(a){return e(b,a)}).length>0},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(!this.picker.is(":visible"))return void((40===a.keyCode||27===a.keyCode)&&(this.show(),a.stopPropagation()));var b,c,d=!1,e=this.focusDate||this.viewDate;switch(a.keyCode){case 27:this.focusDate?(this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill()):this.hide(),a.preventDefault(),a.stopPropagation();break;case 37:case 38:case 39:case 40:if(!this.o.keyboardNavigation||7===this.o.daysOfWeekDisabled.length)break;b=37===a.keyCode||38===a.keyCode?-1:1,0===this.viewMode?a.ctrlKey?(c=this.moveAvailableDate(e,b,"moveYear"),c&&this._trigger("changeYear",this.viewDate)):a.shiftKey?(c=this.moveAvailableDate(e,b,"moveMonth"),c&&this._trigger("changeMonth",this.viewDate)):37===a.keyCode||39===a.keyCode?c=this.moveAvailableDate(e,b,"moveDay"):this.weekOfDateIsDisabled(e)||(c=this.moveAvailableDate(e,b,"moveWeek")):1===this.viewMode?((38===a.keyCode||40===a.keyCode)&&(b=4*b),c=this.moveAvailableDate(e,b,"moveMonth")):2===this.viewMode&&((38===a.keyCode||40===a.keyCode)&&(b=4*b),c=this.moveAvailableDate(e,b,"moveYear")),c&&(this.focusDate=this.viewDate=c,this.setValue(),this.fill(),a.preventDefault());break;case 13:if(!this.o.forceParse)break;e=this.focusDate||this.dates.get(-1)||this.viewDate,this.o.keyboardNavigation&&(this._toggle_multidate(e),d=!0),this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.setValue(),this.fill(),this.picker.is(":visible")&&(a.preventDefault(),a.stopPropagation(),this.o.autoclose&&this.hide());break;case 9:this.focusDate=null,this.viewDate=this.dates.get(-1)||this.viewDate,this.fill(),this.hide()}d&&(this.dates.length?this._trigger("changeDate"):this._trigger("clearDate"),this.inputField&&this.inputField.change())},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(this.o.maxViewMode,this.viewMode+a))),this.picker.children("div").hide().filter(".datepicker-"+r.modes[this.viewMode].clsName).show(),this.updateNavArrows()}};var l=function(b,c){a(b).data("datepicker",this),this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,n.call(a(this.inputs),c).on("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};l.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.getUTCDate()}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){if(!this.updating){this.updating=!0;var c=a(b.target).data("datepicker");if("undefined"!=typeof c){var d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=e-1,g=e+1,h=this.inputs.length;if(-1!==e){if(a.each(this.pickers,function(a,b){b.getUTCDate()||b.setUTCDate(d)}),d=0&&dthis.dates[g])for(;h>g&&d>this.dates[g];)this.pickers[g++].setUTCDate(d);this.updateDates(),delete this.updating}}}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var m=a.fn.datepicker,n=function(c){var d=Array.apply(null,arguments);d.shift();var e;if(this.each(function(){var b=a(this),f=b.data("datepicker"),g="object"==typeof c&&c;if(!f){var j=h(this,"date"),m=a.extend({},o,j,g),n=i(m.language),p=a.extend({},o,n,j,g);b.hasClass("input-daterange")||p.inputs?(a.extend(p,{inputs:p.inputs||b.find("input").toArray()}),f=new l(this,p)):f=new k(this,p),b.data("datepicker",f)}"string"==typeof c&&"function"==typeof f[c]&&(e=f[c].apply(f,d))}),e===b||e instanceof k||e instanceof l)return this;if(this.length>1)throw new Error("Using only allowed for the collection of a single element ("+c+" function)");return e};a.fn.datepicker=n;var o=a.fn.datepicker.defaults={assumeNearbyYear:!1,autoclose:!1,beforeShowDay:a.noop,beforeShowMonth:a.noop,beforeShowYear:a.noop,beforeShowDecade:a.noop,beforeShowCentury:a.noop,calendarWeeks:!1,clearBtn:!1,toggleActive:!1,daysOfWeekDisabled:[],daysOfWeekHighlighted:[],datesDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,maxViewMode:4,multidate:!1,multidateSeparator:",",orientation:"auto",rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0,disableTouchKeyboard:!1,enableOnReadonly:!0,showOnFocus:!0,zIndexOffset:10,container:"body",immediateUpdates:!1,title:"",templates:{leftArrow:"«",rightArrow:"»"}},p=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=k;var q=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear",titleFormat:"MM yyyy"}},r={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10},{clsName:"decades",navFnc:"FullDecade",navStep:100},{clsName:"centuries",navFnc:"FullCentury",navStep:1e3}],isLeapYear:function(a){return a%4===0&&a%100!==0||a%400===0},getDaysInMonth:function(a,b){return[31,r.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\u5e74\u6708\u65e5\[-`{-~\t\n\r]+/g,parseFormat:function(a){if("function"==typeof a.toValue&&"function"==typeof a.toDisplay)return a;var b=a.replace(this.validParts,"\x00").split("\x00"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(e,f,g,h){function i(a,b){return b===!0&&(b=10),100>a&&(a+=2e3,a>(new Date).getFullYear()+b&&(a-=100)),a}function j(){var a=this.slice(0,s[n].length),b=s[n].slice(0,a.length);return a.toLowerCase()===b.toLowerCase()}if(!e)return b;if(e instanceof Date)return e;if("string"==typeof f&&(f=r.parseFormat(f)),f.toValue)return f.toValue(e,f,g);var l,m,n,o,p=/([\-+]\d+)([dmwy])/,s=e.match(/([\-+]\d+)([dmwy])/g),t={d:"moveDay",m:"moveMonth",w:"moveWeek",y:"moveYear"},u={yesterday:"-1d",today:"+0d",tomorrow:"+1d"};if(/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(e)){for(e=new Date,n=0;nb;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!==b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};z.M=z.MM=z.mm=z.m,z.dd=z.d,e=d();var A=f.parts.slice();if(s.length!==A.length&&(A=a(A).filter(function(b,c){return-1!==a.inArray(c,y)}).toArray()),s.length===A.length){var B;for(n=0,B=A.length;B>n;n++){if(v=parseInt(s[n],10),l=A[n],isNaN(v))switch(l){case"MM":w=a(q[g].months).filter(j),v=a.inArray(w[0],q[g].months)+1;break;case"M":w=a(q[g].monthsShort).filter(j),v=a.inArray(w[0],q[g].monthsShort)+1}x[l]=v}var C,D;for(n=0;n=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'«»',contTemplate:'',footTemplate:''};r.template='
'+r.headTemplate+""+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+'
'+r.headTemplate+r.contTemplate+r.footTemplate+"
",a.fn.datepicker.DPGlobal=r,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=m,this},a.fn.datepicker.version="1.6.4",a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),n.call(c,"show"))}),a(function(){n.call(a('[data-provide="datepicker-inline"]'))})}); \ No newline at end of file diff --git a/www/assets/sweet-alert/block/js/bootstrap.min.js b/www/assets/sweet-alert/block/js/bootstrap.min.js new file mode 100644 index 0000000..00c895f --- /dev/null +++ b/www/assets/sweet-alert/block/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v4.1.3 (https://getbootstrap.com/) + * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,h){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!(Ie={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(Se={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},we="out",Ne={HIDE:"hide"+Ee,HIDDEN:"hidden"+Ee,SHOW:(De="show")+Ee,SHOWN:"shown"+Ee,INSERTED:"inserted"+Ee,CLICK:"click"+Ee,FOCUSIN:"focusin"+Ee,FOCUSOUT:"focusout"+Ee,MOUSEENTER:"mouseenter"+Ee,MOUSELEAVE:"mouseleave"+Ee},Oe="fade",ke="show",Pe=".tooltip-inner",je=".arrow",He="hover",Le="focus",Re="click",xe="manual",We=function(){function i(t,e){if("undefined"==typeof h)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=pe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(pe(this.getTipElement()).hasClass(ke))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),pe.removeData(this.element,this.constructor.DATA_KEY),pe(this.element).off(this.constructor.EVENT_KEY),pe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&pe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===pe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=pe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){pe(this.element).trigger(t);var n=pe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Fn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&pe(i).addClass(Oe);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:pe(document).find(this.config.container);pe(i).data(this.constructor.DATA_KEY,this),pe.contains(this.element.ownerDocument.documentElement,this.tip)||pe(i).appendTo(a),pe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new h(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:je},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),pe(i).addClass(ke),"ontouchstart"in document.documentElement&&pe(document.body).children().on("mouseover",null,pe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,pe(e.element).trigger(e.constructor.Event.SHOWN),t===we&&e._leave(null,e)};if(pe(this.tip).hasClass(Oe)){var c=Fn.getTransitionDurationFromElement(this.tip);pe(this.tip).one(Fn.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=pe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==De&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),pe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(pe(this.element).trigger(i),!i.isDefaultPrevented()){if(pe(n).removeClass(ke),"ontouchstart"in document.documentElement&&pe(document.body).children().off("mouseover",null,pe.noop),this._activeTrigger[Re]=!1,this._activeTrigger[Le]=!1,this._activeTrigger[He]=!1,pe(this.tip).hasClass(Oe)){var o=Fn.getTransitionDurationFromElement(n);pe(n).one(Fn.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){pe(this.getTipElement()).addClass(Te+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||pe(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(pe(t.querySelectorAll(Pe)),this.getTitle()),pe(t).removeClass(Oe+" "+ke)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?pe(e).parent().is(t)||t.empty().append(e):t.text(pe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return Ie[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)pe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==xe){var e=t===He?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===He?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;pe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}pe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||pe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Le:He]=!0),pe(e.getTipElement()).hasClass(ke)||e._hoverState===De?e._hoverState=De:(clearTimeout(e._timeout),e._hoverState=De,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===De&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||pe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),pe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Le:He]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=we,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===we&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=l({},this.constructor.Default,pe(this.element).data(),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Fn.typeCheckConfig(ve,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=pe(this.getTipElement()),e=t.attr("class").match(be);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(pe(t).removeClass(Oe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=pe(this).data(ye),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),pe(this).data(ye,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.3"}},{key:"Default",get:function(){return Ae}},{key:"NAME",get:function(){return ve}},{key:"DATA_KEY",get:function(){return ye}},{key:"Event",get:function(){return Ne}},{key:"EVENT_KEY",get:function(){return Ee}},{key:"DefaultType",get:function(){return Se}}]),i}(),pe.fn[ve]=We._jQueryInterface,pe.fn[ve].Constructor=We,pe.fn[ve].noConflict=function(){return pe.fn[ve]=Ce,We._jQueryInterface},We),Jn=(qe="popover",Ke="."+(Fe="bs.popover"),Me=(Ue=e).fn[qe],Qe="bs-popover",Be=new RegExp("(^|\\s)"+Qe+"\\S+","g"),Ve=l({},zn.Default,{placement:"right",trigger:"click",content:"",template:''}),Ye=l({},zn.DefaultType,{content:"(string|element|function)"}),ze="fade",Ze=".popover-header",Ge=".popover-body",$e={HIDE:"hide"+Ke,HIDDEN:"hidden"+Ke,SHOW:(Je="show")+Ke,SHOWN:"shown"+Ke,INSERTED:"inserted"+Ke,CLICK:"click"+Ke,FOCUSIN:"focusin"+Ke,FOCUSOUT:"focusout"+Ke,MOUSEENTER:"mouseenter"+Ke,MOUSELEAVE:"mouseleave"+Ke},Xe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){Ue(this.getTipElement()).addClass(Qe+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||Ue(this.config.template)[0],this.tip},r.setContent=function(){var t=Ue(this.getTipElement());this.setElementContent(t.find(Ze),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ge),e),t.removeClass(ze+" "+Je)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=Ue(this.getTipElement()),e=t.attr("class").match(Be);null!==e&&0=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,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":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w(" + +``` + +```html + + +``` + +### Usage + +Wrap your items (`div`, `a`, `img`, `span`, `li` etc.) with a container element (`div`, `ul` etc.). Only the class `owl-carousel` is mandatory to apply proper styles: + +```html + +``` +**NOTE:** The `owl-theme` class is optional, but without it, you will need to style navigation features on your own. + + +Call the [plugin](https://learn.jquery.com/plugins/) function and your carousel is ready. + +```javascript +$(document).ready(function(){ + $('.owl-carousel').owlCarousel(); +}); +``` + +## Documentation + +The documentation, included in this repo in the root directory, is built with [Assemble](http://assemble.io/) and publicly available at https://owlcarousel2.github.io/OwlCarousel2/. The documentation may also be run locally. + +## Building + +This package comes with [Grunt](http://gruntjs.com/) and [Bower](http://bower.io/). The following tasks are available: + + * `default` compiles the CSS and JS into `/dist` and builds the doc. + * `dist` compiles the CSS and JS into `/dist` only. + * `watch` watches source files and builds them automatically whenever you save. + * `test` runs [JSHint](http://www.jshint.com/) and [QUnit](http://qunitjs.com/) tests headlessly in [PhantomJS](http://phantomjs.org/). + +To define which plugins are build into the distribution just edit `/_config.json` to fit your needs. + +## Contributing + +Please read [CONTRIBUTING.md](CONTRIBUTING.md). + +## Roadmap + +Please make sure to check out our [Roadmap Discussion](https://github.com/OwlCarousel2/OwlCarousel2/issues/1756). + + +## License + +The code and the documentation are released under the [MIT License](LICENSE). diff --git a/www/assets/vendor/owl.carousel/assets/ajax-loader.gif b/www/assets/vendor/owl.carousel/assets/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3962f969930b0a5cb13fa079f273167082abf68 GIT binary patch literal 3208 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%0A;2lG!!z>8L*~z#POx} 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 literal 0 HcmV?d00001 diff --git a/www/assets/vendor/owl.carousel/owl.carousel.js b/www/assets/vendor/owl.carousel/owl.carousel.js new file mode 100644 index 0000000..66c67eb --- /dev/null +++ b/www/assets/vendor/owl.carousel/owl.carousel.js @@ -0,0 +1,3448 @@ +/** + * Owl Carousel v2.3.4 + * Copyright 2013-2018 David Deutsch + * Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE + */ +/** + * Owl carousel + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + * @todo Lazy Load Icon + * @todo prevent animationend bubling + * @todo itemsScaleUp + * @todo Test Zepto + * @todo stagePadding calculate wrong active classes + */ +;(function($, window, document, undefined) { + + /** + * Creates a carousel. + * @class The Owl Carousel. + * @public + * @param {HTMLElement|jQuery} element - The element to create the carousel for. + * @param {Object} [options] - The options + */ + function Owl(element, options) { + + /** + * Current settings for the carousel. + * @public + */ + this.settings = null; + + /** + * Current options set by the caller including defaults. + * @public + */ + this.options = $.extend({}, Owl.Defaults, options); + + /** + * Plugin element. + * @public + */ + this.$element = $(element); + + /** + * Proxied event handlers. + * @protected + */ + this._handlers = {}; + + /** + * References to the running plugins of this carousel. + * @protected + */ + this._plugins = {}; + + /** + * Currently suppressed events to prevent them from being retriggered. + * @protected + */ + this._supress = {}; + + /** + * Absolute current position. + * @protected + */ + this._current = null; + + /** + * Animation speed in milliseconds. + * @protected + */ + this._speed = null; + + /** + * Coordinates of all items in pixel. + * @todo The name of this member is missleading. + * @protected + */ + this._coordinates = []; + + /** + * Current breakpoint. + * @todo Real media queries would be nice. + * @protected + */ + this._breakpoint = null; + + /** + * Current width of the plugin element. + */ + this._width = null; + + /** + * All real items. + * @protected + */ + this._items = []; + + /** + * All cloned items. + * @protected + */ + this._clones = []; + + /** + * Merge values of all items. + * @todo Maybe this could be part of a plugin. + * @protected + */ + this._mergers = []; + + /** + * Widths of all items. + */ + this._widths = []; + + /** + * Invalidated parts within the update process. + * @protected + */ + this._invalidated = {}; + + /** + * Ordered list of workers for the update process. + * @protected + */ + this._pipe = []; + + /** + * Current state information for the drag operation. + * @todo #261 + * @protected + */ + this._drag = { + time: null, + target: null, + pointer: null, + stage: { + start: null, + current: null + }, + direction: null + }; + + /** + * Current state information and their tags. + * @type {Object} + * @protected + */ + this._states = { + current: {}, + tags: { + 'initializing': [ 'busy' ], + 'animating': [ 'busy' ], + 'dragging': [ 'interacting' ] + } + }; + + $.each([ 'onResize', 'onThrottledResize' ], $.proxy(function(i, handler) { + this._handlers[handler] = $.proxy(this[handler], this); + }, this)); + + $.each(Owl.Plugins, $.proxy(function(key, plugin) { + this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] + = new plugin(this); + }, this)); + + $.each(Owl.Workers, $.proxy(function(priority, worker) { + this._pipe.push({ + 'filter': worker.filter, + 'run': $.proxy(worker.run, this) + }); + }, this)); + + this.setup(); + this.initialize(); + } + + /** + * Default options for the carousel. + * @public + */ + Owl.Defaults = { + items: 3, + loop: false, + center: false, + rewind: false, + checkVisibility: true, + + mouseDrag: true, + touchDrag: true, + pullDrag: true, + freeDrag: false, + + margin: 0, + stagePadding: 0, + + merge: false, + mergeFit: true, + autoWidth: false, + + startPosition: 0, + rtl: false, + + smartSpeed: 250, + fluidSpeed: false, + dragEndSpeed: false, + + responsive: {}, + responsiveRefreshRate: 200, + responsiveBaseElement: window, + + fallbackEasing: 'swing', + slideTransition: '', + + info: false, + + nestedItemSelector: false, + itemElement: 'div', + stageElement: 'div', + + refreshClass: 'owl-refresh', + loadedClass: 'owl-loaded', + loadingClass: 'owl-loading', + rtlClass: 'owl-rtl', + responsiveClass: 'owl-responsive', + dragClass: 'owl-drag', + itemClass: 'owl-item', + stageClass: 'owl-stage', + stageOuterClass: 'owl-stage-outer', + grabClass: 'owl-grab' + }; + + /** + * Enumeration for width. + * @public + * @readonly + * @enum {String} + */ + Owl.Width = { + Default: 'default', + Inner: 'inner', + Outer: 'outer' + }; + + /** + * Enumeration for types. + * @public + * @readonly + * @enum {String} + */ + Owl.Type = { + Event: 'event', + State: 'state' + }; + + /** + * Contains all registered plugins. + * @public + */ + Owl.Plugins = {}; + + /** + * List of workers involved in the update process. + */ + Owl.Workers = [ { + filter: [ 'width', 'settings' ], + run: function() { + this._width = this.$element.width(); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + cache.current = this._items && this._items[this.relative(this._current)]; + } + }, { + filter: [ 'items', 'settings' ], + run: function() { + this.$stage.children('.cloned').remove(); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + var margin = this.settings.margin || '', + grid = !this.settings.autoWidth, + rtl = this.settings.rtl, + css = { + 'width': 'auto', + 'margin-left': rtl ? margin : '', + 'margin-right': rtl ? '' : margin + }; + + !grid && this.$stage.children().css(css); + + cache.css = css; + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin, + merge = null, + iterator = this._items.length, + grid = !this.settings.autoWidth, + widths = []; + + cache.items = { + merge: false, + width: width + }; + + while (iterator--) { + merge = this._mergers[iterator]; + merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge; + + cache.items.merge = merge > 1 || cache.items.merge; + + widths[iterator] = !grid ? this._items[iterator].width() : width * merge; + } + + this._widths = widths; + } + }, { + filter: [ 'items', 'settings' ], + run: function() { + var clones = [], + items = this._items, + settings = this.settings, + // TODO: Should be computed from number of min width items in stage + view = Math.max(settings.items * 2, 4), + size = Math.ceil(items.length / 2) * 2, + repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0, + append = '', + prepend = ''; + + repeat /= 2; + + while (repeat > 0) { + // Switch to only using appended clones + clones.push(this.normalize(clones.length / 2, true)); + append = append + items[clones[clones.length - 1]][0].outerHTML; + clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, true)); + prepend = items[clones[clones.length - 1]][0].outerHTML + prepend; + repeat -= 1; + } + + this._clones = clones; + + $(append).addClass('cloned').appendTo(this.$stage); + $(prepend).addClass('cloned').prependTo(this.$stage); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function() { + var rtl = this.settings.rtl ? 1 : -1, + size = this._clones.length + this._items.length, + iterator = -1, + previous = 0, + current = 0, + coordinates = []; + + while (++iterator < size) { + previous = coordinates[iterator - 1] || 0; + current = this._widths[this.relative(iterator)] + this.settings.margin; + coordinates.push(previous + current * rtl); + } + + this._coordinates = coordinates; + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function() { + var padding = this.settings.stagePadding, + coordinates = this._coordinates, + css = { + 'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2, + 'padding-left': padding || '', + 'padding-right': padding || '' + }; + + this.$stage.css(css); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + var iterator = this._coordinates.length, + grid = !this.settings.autoWidth, + items = this.$stage.children(); + + if (grid && cache.items.merge) { + while (iterator--) { + cache.css.width = this._widths[this.relative(iterator)]; + items.eq(iterator).css(cache.css); + } + } else if (grid) { + cache.css.width = cache.items.width; + items.css(cache.css); + } + } + }, { + filter: [ 'items' ], + run: function() { + this._coordinates.length < 1 && this.$stage.removeAttr('style'); + } + }, { + filter: [ 'width', 'items', 'settings' ], + run: function(cache) { + cache.current = cache.current ? this.$stage.children().index(cache.current) : 0; + cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current)); + this.reset(cache.current); + } + }, { + filter: [ 'position' ], + run: function() { + this.animate(this.coordinates(this._current)); + } + }, { + filter: [ 'width', 'position', 'items', 'settings' ], + run: function() { + var rtl = this.settings.rtl ? 1 : -1, + padding = this.settings.stagePadding * 2, + begin = this.coordinates(this.current()) + padding, + end = begin + this.width() * rtl, + inner, outer, matches = [], i, n; + + for (i = 0, n = this._coordinates.length; i < n; i++) { + inner = this._coordinates[i - 1] || 0; + outer = Math.abs(this._coordinates[i]) + padding * rtl; + + if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end))) + || (this.op(outer, '<', begin) && this.op(outer, '>', end))) { + matches.push(i); + } + } + + this.$stage.children('.active').removeClass('active'); + this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active'); + + this.$stage.children('.center').removeClass('center'); + if (this.settings.center) { + this.$stage.children().eq(this.current()).addClass('center'); + } + } + } ]; + + /** + * Create the stage DOM element + */ + Owl.prototype.initializeStage = function() { + this.$stage = this.$element.find('.' + this.settings.stageClass); + + // if the stage is already in the DOM, grab it and skip stage initialization + if (this.$stage.length) { + return; + } + + this.$element.addClass(this.options.loadingClass); + + // create stage + this.$stage = $('<' + this.settings.stageElement + '>', { + "class": this.settings.stageClass + }).wrap( $( '
', { + "class": this.settings.stageOuterClass + })); + + // append stage + this.$element.append(this.$stage.parent()); + }; + + /** + * Create item DOM elements + */ + Owl.prototype.initializeItems = function() { + var $items = this.$element.find('.owl-item'); + + // if the items are already in the DOM, grab them and skip item initialization + if ($items.length) { + this._items = $items.get().map(function(item) { + return $(item); + }); + + this._mergers = this._items.map(function() { + return 1; + }); + + this.refresh(); + + return; + } + + // append content + this.replace(this.$element.children().not(this.$stage.parent())); + + // check visibility + if (this.isVisible()) { + // update view + this.refresh(); + } else { + // invalidate width + this.invalidate('width'); + } + + this.$element + .removeClass(this.options.loadingClass) + .addClass(this.options.loadedClass); + }; + + /** + * Initializes the carousel. + * @protected + */ + Owl.prototype.initialize = function() { + this.enter('initializing'); + this.trigger('initialize'); + + this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl); + + if (this.settings.autoWidth && !this.is('pre-loading')) { + var imgs, nestedSelector, width; + imgs = this.$element.find('img'); + nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined; + width = this.$element.children(nestedSelector).width(); + + if (imgs.length && width <= 0) { + this.preloadAutoWidthImages(imgs); + } + } + + this.initializeStage(); + this.initializeItems(); + + // register event handlers + this.registerEventHandlers(); + + this.leave('initializing'); + this.trigger('initialized'); + }; + + /** + * @returns {Boolean} visibility of $element + * if you know the carousel will always be visible you can set `checkVisibility` to `false` to + * prevent the expensive browser layout forced reflow the $element.is(':visible') does + */ + Owl.prototype.isVisible = function() { + return this.settings.checkVisibility + ? this.$element.is(':visible') + : true; + }; + + /** + * Setups the current settings. + * @todo Remove responsive classes. Why should adaptive designs be brought into IE8? + * @todo Support for media queries by using `matchMedia` would be nice. + * @public + */ + Owl.prototype.setup = function() { + var viewport = this.viewport(), + overwrites = this.options.responsive, + match = -1, + settings = null; + + if (!overwrites) { + settings = $.extend({}, this.options); + } else { + $.each(overwrites, function(breakpoint) { + if (breakpoint <= viewport && breakpoint > match) { + match = Number(breakpoint); + } + }); + + settings = $.extend({}, this.options, overwrites[match]); + if (typeof settings.stagePadding === 'function') { + settings.stagePadding = settings.stagePadding(); + } + delete settings.responsive; + + // responsive class + if (settings.responsiveClass) { + this.$element.attr('class', + this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match) + ); + } + } + + this.trigger('change', { property: { name: 'settings', value: settings } }); + this._breakpoint = match; + this.settings = settings; + this.invalidate('settings'); + this.trigger('changed', { property: { name: 'settings', value: this.settings } }); + }; + + /** + * Updates option logic if necessery. + * @protected + */ + Owl.prototype.optionsLogic = function() { + if (this.settings.autoWidth) { + this.settings.stagePadding = false; + this.settings.merge = false; + } + }; + + /** + * Prepares an item before add. + * @todo Rename event parameter `content` to `item`. + * @protected + * @returns {jQuery|HTMLElement} - The item container. + */ + Owl.prototype.prepare = function(item) { + var event = this.trigger('prepare', { content: item }); + + if (!event.data) { + event.data = $('<' + this.settings.itemElement + '/>') + .addClass(this.options.itemClass).append(item) + } + + this.trigger('prepared', { content: event.data }); + + return event.data; + }; + + /** + * Updates the view. + * @public + */ + Owl.prototype.update = function() { + var i = 0, + n = this._pipe.length, + filter = $.proxy(function(p) { return this[p] }, this._invalidated), + cache = {}; + + while (i < n) { + if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) { + this._pipe[i].run(cache); + } + i++; + } + + this._invalidated = {}; + + !this.is('valid') && this.enter('valid'); + }; + + /** + * Gets the width of the view. + * @public + * @param {Owl.Width} [dimension=Owl.Width.Default] - The dimension to return. + * @returns {Number} - The width of the view in pixel. + */ + Owl.prototype.width = function(dimension) { + dimension = dimension || Owl.Width.Default; + switch (dimension) { + case Owl.Width.Inner: + case Owl.Width.Outer: + return this._width; + default: + return this._width - this.settings.stagePadding * 2 + this.settings.margin; + } + }; + + /** + * Refreshes the carousel primarily for adaptive purposes. + * @public + */ + Owl.prototype.refresh = function() { + this.enter('refreshing'); + this.trigger('refresh'); + + this.setup(); + + this.optionsLogic(); + + this.$element.addClass(this.options.refreshClass); + + this.update(); + + this.$element.removeClass(this.options.refreshClass); + + this.leave('refreshing'); + this.trigger('refreshed'); + }; + + /** + * Checks window `resize` event. + * @protected + */ + Owl.prototype.onThrottledResize = function() { + window.clearTimeout(this.resizeTimer); + this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate); + }; + + /** + * Checks window `resize` event. + * @protected + */ + Owl.prototype.onResize = function() { + if (!this._items.length) { + return false; + } + + if (this._width === this.$element.width()) { + return false; + } + + if (!this.isVisible()) { + return false; + } + + this.enter('resizing'); + + if (this.trigger('resize').isDefaultPrevented()) { + this.leave('resizing'); + return false; + } + + this.invalidate('width'); + + this.refresh(); + + this.leave('resizing'); + this.trigger('resized'); + }; + + /** + * Registers event handlers. + * @todo Check `msPointerEnabled` + * @todo #261 + * @protected + */ + Owl.prototype.registerEventHandlers = function() { + if ($.support.transition) { + this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this)); + } + + if (this.settings.responsive !== false) { + this.on(window, 'resize', this._handlers.onThrottledResize); + } + + if (this.settings.mouseDrag) { + this.$element.addClass(this.options.dragClass); + this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this)); + this.$stage.on('dragstart.owl.core selectstart.owl.core', function() { return false }); + } + + if (this.settings.touchDrag){ + this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this)); + this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this)); + } + }; + + /** + * Handles `touchstart` and `mousedown` events. + * @todo Horizontal swipe threshold as option + * @todo #261 + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragStart = function(event) { + var stage = null; + + if (event.which === 3) { + return; + } + + if ($.support.transform) { + stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(','); + stage = { + x: stage[stage.length === 16 ? 12 : 4], + y: stage[stage.length === 16 ? 13 : 5] + }; + } else { + stage = this.$stage.position(); + stage = { + x: this.settings.rtl ? + stage.left + this.$stage.width() - this.width() + this.settings.margin : + stage.left, + y: stage.top + }; + } + + if (this.is('animating')) { + $.support.transform ? this.animate(stage.x) : this.$stage.stop() + this.invalidate('position'); + } + + this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown'); + + this.speed(0); + + this._drag.time = new Date().getTime(); + this._drag.target = $(event.target); + this._drag.stage.start = stage; + this._drag.stage.current = stage; + this._drag.pointer = this.pointer(event); + + $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this)); + + $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) { + var delta = this.difference(this._drag.pointer, this.pointer(event)); + + $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this)); + + if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) { + return; + } + + event.preventDefault(); + + this.enter('dragging'); + this.trigger('drag'); + }, this)); + }; + + /** + * Handles the `touchmove` and `mousemove` events. + * @todo #261 + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragMove = function(event) { + var minimum = null, + maximum = null, + pull = null, + delta = this.difference(this._drag.pointer, this.pointer(event)), + stage = this.difference(this._drag.stage.start, delta); + + if (!this.is('dragging')) { + return; + } + + event.preventDefault(); + + if (this.settings.loop) { + minimum = this.coordinates(this.minimum()); + maximum = this.coordinates(this.maximum() + 1) - minimum; + stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum; + } else { + minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum()); + maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum()); + pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0; + stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull); + } + + this._drag.stage.current = stage; + + this.animate(stage.x); + }; + + /** + * Handles the `touchend` and `mouseup` events. + * @todo #261 + * @todo Threshold for click event + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onDragEnd = function(event) { + var delta = this.difference(this._drag.pointer, this.pointer(event)), + stage = this._drag.stage.current, + direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right'; + + $(document).off('.owl.core'); + + this.$element.removeClass(this.options.grabClass); + + if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) { + this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed); + this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction)); + this.invalidate('position'); + this.update(); + + this._drag.direction = direction; + + if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) { + this._drag.target.one('click.owl.core', function() { return false; }); + } + } + + if (!this.is('dragging')) { + return; + } + + this.leave('dragging'); + this.trigger('dragged'); + }; + + /** + * Gets absolute position of the closest item for a coordinate. + * @todo Setting `freeDrag` makes `closest` not reusable. See #165. + * @protected + * @param {Number} coordinate - The coordinate in pixel. + * @param {String} direction - The direction to check for the closest item. Ether `left` or `right`. + * @return {Number} - The absolute position of the closest item. + */ + Owl.prototype.closest = function(coordinate, direction) { + var position = -1, + pull = 30, + width = this.width(), + coordinates = this.coordinates(); + + if (!this.settings.freeDrag) { + // check closest item + $.each(coordinates, $.proxy(function(index, value) { + // on a left pull, check on current index + if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) { + position = index; + // on a right pull, check on previous index + // to do so, subtract width from value and set position = index + 1 + } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) { + position = index + 1; + } else if (this.op(coordinate, '<', value) + && this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) { + position = direction === 'left' ? index + 1 : index; + } + return position === -1; + }, this)); + } + + if (!this.settings.loop) { + // non loop boundries + if (this.op(coordinate, '>', coordinates[this.minimum()])) { + position = coordinate = this.minimum(); + } else if (this.op(coordinate, '<', coordinates[this.maximum()])) { + position = coordinate = this.maximum(); + } + } + + return position; + }; + + /** + * Animates the stage. + * @todo #270 + * @public + * @param {Number} coordinate - The coordinate in pixels. + */ + Owl.prototype.animate = function(coordinate) { + var animate = this.speed() > 0; + + this.is('animating') && this.onTransitionEnd(); + + if (animate) { + this.enter('animating'); + this.trigger('translate'); + } + + if ($.support.transform3d && $.support.transition) { + this.$stage.css({ + transform: 'translate3d(' + coordinate + 'px,0px,0px)', + transition: (this.speed() / 1000) + 's' + ( + this.settings.slideTransition ? ' ' + this.settings.slideTransition : '' + ) + }); + } else if (animate) { + this.$stage.animate({ + left: coordinate + 'px' + }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this)); + } else { + this.$stage.css({ + left: coordinate + 'px' + }); + } + }; + + /** + * Checks whether the carousel is in a specific state or not. + * @param {String} state - The state to check. + * @returns {Boolean} - The flag which indicates if the carousel is busy. + */ + Owl.prototype.is = function(state) { + return this._states.current[state] && this._states.current[state] > 0; + }; + + /** + * Sets the absolute position of the current item. + * @public + * @param {Number} [position] - The new absolute position or nothing to leave it unchanged. + * @returns {Number} - The absolute position of the current item. + */ + Owl.prototype.current = function(position) { + if (position === undefined) { + return this._current; + } + + if (this._items.length === 0) { + return undefined; + } + + position = this.normalize(position); + + if (this._current !== position) { + var event = this.trigger('change', { property: { name: 'position', value: position } }); + + if (event.data !== undefined) { + position = this.normalize(event.data); + } + + this._current = position; + + this.invalidate('position'); + + this.trigger('changed', { property: { name: 'position', value: this._current } }); + } + + return this._current; + }; + + /** + * Invalidates the given part of the update routine. + * @param {String} [part] - The part to invalidate. + * @returns {Array.} - The invalidated parts. + */ + Owl.prototype.invalidate = function(part) { + if ($.type(part) === 'string') { + this._invalidated[part] = true; + this.is('valid') && this.leave('valid'); + } + return $.map(this._invalidated, function(v, i) { return i }); + }; + + /** + * Resets the absolute position of the current item. + * @public + * @param {Number} position - The absolute position of the new item. + */ + Owl.prototype.reset = function(position) { + position = this.normalize(position); + + if (position === undefined) { + return; + } + + this._speed = 0; + this._current = position; + + this.suppress([ 'translate', 'translated' ]); + + this.animate(this.coordinates(position)); + + this.release([ 'translate', 'translated' ]); + }; + + /** + * Normalizes an absolute or a relative position of an item. + * @public + * @param {Number} position - The absolute or relative position to normalize. + * @param {Boolean} [relative=false] - Whether the given position is relative or not. + * @returns {Number} - The normalized position. + */ + Owl.prototype.normalize = function(position, relative) { + var n = this._items.length, + m = relative ? 0 : this._clones.length; + + if (!this.isNumeric(position) || n < 1) { + position = undefined; + } else if (position < 0 || position >= n + m) { + position = ((position - m / 2) % n + n) % n + m / 2; + } + + return position; + }; + + /** + * Converts an absolute position of an item into a relative one. + * @public + * @param {Number} position - The absolute position to convert. + * @returns {Number} - The converted position. + */ + Owl.prototype.relative = function(position) { + position -= this._clones.length / 2; + return this.normalize(position, true); + }; + + /** + * Gets the maximum position for the current item. + * @public + * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. + * @returns {Number} + */ + Owl.prototype.maximum = function(relative) { + var settings = this.settings, + maximum = this._coordinates.length, + iterator, + reciprocalItemsWidth, + elementWidth; + + if (settings.loop) { + maximum = this._clones.length / 2 + this._items.length - 1; + } else if (settings.autoWidth || settings.merge) { + iterator = this._items.length; + if (iterator) { + reciprocalItemsWidth = this._items[--iterator].width(); + elementWidth = this.$element.width(); + while (iterator--) { + reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin; + if (reciprocalItemsWidth > elementWidth) { + break; + } + } + } + maximum = iterator + 1; + } else if (settings.center) { + maximum = this._items.length - 1; + } else { + maximum = this._items.length - settings.items; + } + + if (relative) { + maximum -= this._clones.length / 2; + } + + return Math.max(maximum, 0); + }; + + /** + * Gets the minimum position for the current item. + * @public + * @param {Boolean} [relative=false] - Whether to return an absolute position or a relative position. + * @returns {Number} + */ + Owl.prototype.minimum = function(relative) { + return relative ? 0 : this._clones.length / 2; + }; + + /** + * Gets an item at the specified relative position. + * @public + * @param {Number} [position] - The relative position of the item. + * @return {jQuery|Array.} - The item at the given position or all items if no position was given. + */ + Owl.prototype.items = function(position) { + if (position === undefined) { + return this._items.slice(); + } + + position = this.normalize(position, true); + return this._items[position]; + }; + + /** + * Gets an item at the specified relative position. + * @public + * @param {Number} [position] - The relative position of the item. + * @return {jQuery|Array.} - The item at the given position or all items if no position was given. + */ + Owl.prototype.mergers = function(position) { + if (position === undefined) { + return this._mergers.slice(); + } + + position = this.normalize(position, true); + return this._mergers[position]; + }; + + /** + * Gets the absolute positions of clones for an item. + * @public + * @param {Number} [position] - The relative position of the item. + * @returns {Array.} - The absolute positions of clones for the item or all if no position was given. + */ + Owl.prototype.clones = function(position) { + var odd = this._clones.length / 2, + even = odd + this._items.length, + map = function(index) { return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2 }; + + if (position === undefined) { + return $.map(this._clones, function(v, i) { return map(i) }); + } + + return $.map(this._clones, function(v, i) { return v === position ? map(i) : null }); + }; + + /** + * Sets the current animation speed. + * @public + * @param {Number} [speed] - The animation speed in milliseconds or nothing to leave it unchanged. + * @returns {Number} - The current animation speed in milliseconds. + */ + Owl.prototype.speed = function(speed) { + if (speed !== undefined) { + this._speed = speed; + } + + return this._speed; + }; + + /** + * Gets the coordinate of an item. + * @todo The name of this method is missleanding. + * @public + * @param {Number} position - The absolute position of the item within `minimum()` and `maximum()`. + * @returns {Number|Array.} - The coordinate of the item in pixel or all coordinates. + */ + Owl.prototype.coordinates = function(position) { + var multiplier = 1, + newPosition = position - 1, + coordinate; + + if (position === undefined) { + return $.map(this._coordinates, $.proxy(function(coordinate, index) { + return this.coordinates(index); + }, this)); + } + + if (this.settings.center) { + if (this.settings.rtl) { + multiplier = -1; + newPosition = position + 1; + } + + coordinate = this._coordinates[position]; + coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier; + } else { + coordinate = this._coordinates[newPosition] || 0; + } + + coordinate = Math.ceil(coordinate); + + return coordinate; + }; + + /** + * Calculates the speed for a translation. + * @protected + * @param {Number} from - The absolute position of the start item. + * @param {Number} to - The absolute position of the target item. + * @param {Number} [factor=undefined] - The time factor in milliseconds. + * @returns {Number} - The time in milliseconds for the translation. + */ + Owl.prototype.duration = function(from, to, factor) { + if (factor === 0) { + return 0; + } + + return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed)); + }; + + /** + * Slides to the specified item. + * @public + * @param {Number} position - The position of the item. + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.to = function(position, speed) { + var current = this.current(), + revert = null, + distance = position - this.relative(current), + direction = (distance > 0) - (distance < 0), + items = this._items.length, + minimum = this.minimum(), + maximum = this.maximum(); + + if (this.settings.loop) { + if (!this.settings.rewind && Math.abs(distance) > items / 2) { + distance += direction * -1 * items; + } + + position = current + distance; + revert = ((position - minimum) % items + items) % items + minimum; + + if (revert !== position && revert - distance <= maximum && revert - distance > 0) { + current = revert - distance; + position = revert; + this.reset(current); + } + } else if (this.settings.rewind) { + maximum += 1; + position = (position % maximum + maximum) % maximum; + } else { + position = Math.max(minimum, Math.min(maximum, position)); + } + + this.speed(this.duration(current, position, speed)); + this.current(position); + + if (this.isVisible()) { + this.update(); + } + }; + + /** + * Slides to the next item. + * @public + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.next = function(speed) { + speed = speed || false; + this.to(this.relative(this.current()) + 1, speed); + }; + + /** + * Slides to the previous item. + * @public + * @param {Number} [speed] - The time in milliseconds for the transition. + */ + Owl.prototype.prev = function(speed) { + speed = speed || false; + this.to(this.relative(this.current()) - 1, speed); + }; + + /** + * Handles the end of an animation. + * @protected + * @param {Event} event - The event arguments. + */ + Owl.prototype.onTransitionEnd = function(event) { + + // if css2 animation then event object is undefined + if (event !== undefined) { + event.stopPropagation(); + + // Catch only owl-stage transitionEnd event + if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) { + return false; + } + } + + this.leave('animating'); + this.trigger('translated'); + }; + + /** + * Gets viewport width. + * @protected + * @return {Number} - The width in pixel. + */ + Owl.prototype.viewport = function() { + var width; + if (this.options.responsiveBaseElement !== window) { + width = $(this.options.responsiveBaseElement).width(); + } else if (window.innerWidth) { + width = window.innerWidth; + } else if (document.documentElement && document.documentElement.clientWidth) { + width = document.documentElement.clientWidth; + } else { + console.warn('Can not detect viewport width.'); + } + return width; + }; + + /** + * Replaces the current content. + * @public + * @param {HTMLElement|jQuery|String} content - The new content. + */ + Owl.prototype.replace = function(content) { + this.$stage.empty(); + this._items = []; + + if (content) { + content = (content instanceof jQuery) ? content : $(content); + } + + if (this.settings.nestedItemSelector) { + content = content.find('.' + this.settings.nestedItemSelector); + } + + content.filter(function() { + return this.nodeType === 1; + }).each($.proxy(function(index, item) { + item = this.prepare(item); + this.$stage.append(item); + this._items.push(item); + this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + }, this)); + + this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0); + + this.invalidate('items'); + }; + + /** + * Adds an item. + * @todo Use `item` instead of `content` for the event arguments. + * @public + * @param {HTMLElement|jQuery|String} content - The item content to add. + * @param {Number} [position] - The relative position at which to insert the item otherwise the item will be added to the end. + */ + Owl.prototype.add = function(content, position) { + var current = this.relative(this._current); + + position = position === undefined ? this._items.length : this.normalize(position, true); + content = content instanceof jQuery ? content : $(content); + + this.trigger('add', { content: content, position: position }); + + content = this.prepare(content); + + if (this._items.length === 0 || position === this._items.length) { + this._items.length === 0 && this.$stage.append(content); + this._items.length !== 0 && this._items[position - 1].after(content); + this._items.push(content); + this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + } else { + this._items[position].before(content); + this._items.splice(position, 0, content); + this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1); + } + + this._items[current] && this.reset(this._items[current].index()); + + this.invalidate('items'); + + this.trigger('added', { content: content, position: position }); + }; + + /** + * Removes an item by its position. + * @todo Use `item` instead of `content` for the event arguments. + * @public + * @param {Number} position - The relative position of the item to remove. + */ + Owl.prototype.remove = function(position) { + position = this.normalize(position, true); + + if (position === undefined) { + return; + } + + this.trigger('remove', { content: this._items[position], position: position }); + + this._items[position].remove(); + this._items.splice(position, 1); + this._mergers.splice(position, 1); + + this.invalidate('items'); + + this.trigger('removed', { content: null, position: position }); + }; + + /** + * Preloads images with auto width. + * @todo Replace by a more generic approach + * @protected + */ + Owl.prototype.preloadAutoWidthImages = function(images) { + images.each($.proxy(function(i, element) { + this.enter('pre-loading'); + element = $(element); + $(new Image()).one('load', $.proxy(function(e) { + element.attr('src', e.target.src); + element.css('opacity', 1); + this.leave('pre-loading'); + !this.is('pre-loading') && !this.is('initializing') && this.refresh(); + }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina')); + }, this)); + }; + + /** + * Destroys the carousel. + * @public + */ + Owl.prototype.destroy = function() { + + this.$element.off('.owl.core'); + this.$stage.off('.owl.core'); + $(document).off('.owl.core'); + + if (this.settings.responsive !== false) { + window.clearTimeout(this.resizeTimer); + this.off(window, 'resize', this._handlers.onThrottledResize); + } + + for (var i in this._plugins) { + this._plugins[i].destroy(); + } + + this.$stage.children('.cloned').remove(); + + this.$stage.unwrap(); + this.$stage.children().contents().unwrap(); + this.$stage.children().unwrap(); + this.$stage.remove(); + this.$element + .removeClass(this.options.refreshClass) + .removeClass(this.options.loadingClass) + .removeClass(this.options.loadedClass) + .removeClass(this.options.rtlClass) + .removeClass(this.options.dragClass) + .removeClass(this.options.grabClass) + .attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')) + .removeData('owl.carousel'); + }; + + /** + * Operators to calculate right-to-left and left-to-right. + * @protected + * @param {Number} [a] - The left side operand. + * @param {String} [o] - The operator. + * @param {Number} [b] - The right side operand. + */ + Owl.prototype.op = function(a, o, b) { + var rtl = this.settings.rtl; + switch (o) { + case '<': + return rtl ? a > b : a < b; + case '>': + return rtl ? a < b : a > b; + case '>=': + return rtl ? a <= b : a >= b; + case '<=': + return rtl ? a >= b : a <= b; + default: + break; + } + }; + + /** + * Attaches to an internal event. + * @protected + * @param {HTMLElement} element - The event source. + * @param {String} event - The event name. + * @param {Function} listener - The event handler to attach. + * @param {Boolean} capture - Wether the event should be handled at the capturing phase or not. + */ + Owl.prototype.on = function(element, event, listener, capture) { + if (element.addEventListener) { + element.addEventListener(event, listener, capture); + } else if (element.attachEvent) { + element.attachEvent('on' + event, listener); + } + }; + + /** + * Detaches from an internal event. + * @protected + * @param {HTMLElement} element - The event source. + * @param {String} event - The event name. + * @param {Function} listener - The attached event handler to detach. + * @param {Boolean} capture - Wether the attached event handler was registered as a capturing listener or not. + */ + Owl.prototype.off = function(element, event, listener, capture) { + if (element.removeEventListener) { + element.removeEventListener(event, listener, capture); + } else if (element.detachEvent) { + element.detachEvent('on' + event, listener); + } + }; + + /** + * Triggers a public event. + * @todo Remove `status`, `relatedTarget` should be used instead. + * @protected + * @param {String} name - The event name. + * @param {*} [data=null] - The event data. + * @param {String} [namespace=carousel] - The event namespace. + * @param {String} [state] - The state which is associated with the event. + * @param {Boolean} [enter=false] - Indicates if the call enters the specified state or not. + * @returns {Event} - The event arguments. + */ + Owl.prototype.trigger = function(name, data, namespace, state, enter) { + var status = { + item: { count: this._items.length, index: this.current() } + }, handler = $.camelCase( + $.grep([ 'on', name, namespace ], function(v) { return v }) + .join('-').toLowerCase() + ), event = $.Event( + [ name, 'owl', namespace || 'carousel' ].join('.').toLowerCase(), + $.extend({ relatedTarget: this }, status, data) + ); + + if (!this._supress[name]) { + $.each(this._plugins, function(name, plugin) { + if (plugin.onTrigger) { + plugin.onTrigger(event); + } + }); + + this.register({ type: Owl.Type.Event, name: name }); + this.$element.trigger(event); + + if (this.settings && typeof this.settings[handler] === 'function') { + this.settings[handler].call(this, event); + } + } + + return event; + }; + + /** + * Enters a state. + * @param name - The state name. + */ + Owl.prototype.enter = function(name) { + $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { + if (this._states.current[name] === undefined) { + this._states.current[name] = 0; + } + + this._states.current[name]++; + }, this)); + }; + + /** + * Leaves a state. + * @param name - The state name. + */ + Owl.prototype.leave = function(name) { + $.each([ name ].concat(this._states.tags[name] || []), $.proxy(function(i, name) { + this._states.current[name]--; + }, this)); + }; + + /** + * Registers an event or state. + * @public + * @param {Object} object - The event or state to register. + */ + Owl.prototype.register = function(object) { + if (object.type === Owl.Type.Event) { + if (!$.event.special[object.name]) { + $.event.special[object.name] = {}; + } + + if (!$.event.special[object.name].owl) { + var _default = $.event.special[object.name]._default; + $.event.special[object.name]._default = function(e) { + if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) { + return _default.apply(this, arguments); + } + return e.namespace && e.namespace.indexOf('owl') > -1; + }; + $.event.special[object.name].owl = true; + } + } else if (object.type === Owl.Type.State) { + if (!this._states.tags[object.name]) { + this._states.tags[object.name] = object.tags; + } else { + this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags); + } + + this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) { + return $.inArray(tag, this._states.tags[object.name]) === i; + }, this)); + } + }; + + /** + * Suppresses events. + * @protected + * @param {Array.} events - The events to suppress. + */ + Owl.prototype.suppress = function(events) { + $.each(events, $.proxy(function(index, event) { + this._supress[event] = true; + }, this)); + }; + + /** + * Releases suppressed events. + * @protected + * @param {Array.} events - The events to release. + */ + Owl.prototype.release = function(events) { + $.each(events, $.proxy(function(index, event) { + delete this._supress[event]; + }, this)); + }; + + /** + * Gets unified pointer coordinates from event. + * @todo #261 + * @protected + * @param {Event} - The `mousedown` or `touchstart` event. + * @returns {Object} - Contains `x` and `y` coordinates of current pointer position. + */ + Owl.prototype.pointer = function(event) { + var result = { x: null, y: null }; + + event = event.originalEvent || event || window.event; + + event = event.touches && event.touches.length ? + event.touches[0] : event.changedTouches && event.changedTouches.length ? + event.changedTouches[0] : event; + + if (event.pageX) { + result.x = event.pageX; + result.y = event.pageY; + } else { + result.x = event.clientX; + result.y = event.clientY; + } + + return result; + }; + + /** + * Determines if the input is a Number or something that can be coerced to a Number + * @protected + * @param {Number|String|Object|Array|Boolean|RegExp|Function|Symbol} - The input to be tested + * @returns {Boolean} - An indication if the input is a Number or can be coerced to a Number + */ + Owl.prototype.isNumeric = function(number) { + return !isNaN(parseFloat(number)); + }; + + /** + * Gets the difference of two vectors. + * @todo #261 + * @protected + * @param {Object} - The first vector. + * @param {Object} - The second vector. + * @returns {Object} - The difference. + */ + Owl.prototype.difference = function(first, second) { + return { + x: first.x - second.x, + y: first.y - second.y + }; + }; + + /** + * The jQuery Plugin for the Owl Carousel + * @todo Navigation plugin `next` and `prev` + * @public + */ + $.fn.owlCarousel = function(option) { + var args = Array.prototype.slice.call(arguments, 1); + + return this.each(function() { + var $this = $(this), + data = $this.data('owl.carousel'); + + if (!data) { + data = new Owl(this, typeof option == 'object' && option); + $this.data('owl.carousel', data); + + $.each([ + 'next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove' + ], function(i, event) { + data.register({ type: Owl.Type.Event, name: event }); + data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) { + if (e.namespace && e.relatedTarget !== this) { + this.suppress([ event ]); + data[event].apply(this, [].slice.call(arguments, 1)); + this.release([ event ]); + } + }, data)); + }); + } + + if (typeof option == 'string' && option.charAt(0) !== '_') { + data[option].apply(data, args); + } + }); + }; + + /** + * The constructor for the jQuery Plugin + * @public + */ + $.fn.owlCarousel.Constructor = Owl; + +})(window.Zepto || window.jQuery, window, document); + +/** + * AutoRefresh Plugin + * @version 2.3.4 + * @author Artus Kolanowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the auto refresh plugin. + * @class The Auto Refresh Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var AutoRefresh = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Refresh interval. + * @protected + * @type {number} + */ + this._interval = null; + + /** + * Whether the element is currently visible or not. + * @protected + * @type {Boolean} + */ + this._visible = null; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoRefresh) { + this.watch(); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + */ + AutoRefresh.Defaults = { + autoRefresh: true, + autoRefreshInterval: 500 + }; + + /** + * Watches the element. + */ + AutoRefresh.prototype.watch = function() { + if (this._interval) { + return; + } + + this._visible = this._core.isVisible(); + this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval); + }; + + /** + * Refreshes the element. + */ + AutoRefresh.prototype.refresh = function() { + if (this._core.isVisible() === this._visible) { + return; + } + + this._visible = !this._visible; + + this._core.$element.toggleClass('owl-hidden', !this._visible); + + this._visible && (this._core.invalidate('width') && this._core.refresh()); + }; + + /** + * Destroys the plugin. + */ + AutoRefresh.prototype.destroy = function() { + var handler, property; + + window.clearInterval(this._interval); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Lazy Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the lazy plugin. + * @class The Lazy Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var Lazy = function(carousel) { + + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Already loaded items. + * @protected + * @type {Array.} + */ + this._loaded = []; + + /** + * Event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) { + if (!e.namespace) { + return; + } + + if (!this._core.settings || !this._core.settings.lazyLoad) { + return; + } + + if ((e.property && e.property.name == 'position') || e.type == 'initialized') { + var settings = this._core.settings, + n = (settings.center && Math.ceil(settings.items / 2) || settings.items), + i = ((settings.center && n * -1) || 0), + position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i, + clones = this._core.clones().length, + load = $.proxy(function(i, v) { this.load(v) }, this); + //TODO: Need documentation for this new option + if (settings.lazyLoadEager > 0) { + n += settings.lazyLoadEager; + // If the carousel is looping also preload images that are to the "left" + if (settings.loop) { + position -= settings.lazyLoadEager; + n++; + } + } + + while (i++ < n) { + this.load(clones / 2 + this._core.relative(position)); + clones && $.each(this._core.clones(this._core.relative(position)), load); + position++; + } + } + }, this) + }; + + // set the default options + this._core.options = $.extend({}, Lazy.Defaults, this._core.options); + + // register event handler + this._core.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + */ + Lazy.Defaults = { + lazyLoad: false, + lazyLoadEager: 0 + }; + + /** + * Loads all resources of an item at the specified position. + * @param {Number} position - The absolute position of the item. + * @protected + */ + Lazy.prototype.load = function(position) { + var $item = this._core.$stage.children().eq(position), + $elements = $item && $item.find('.owl-lazy'); + + if (!$elements || $.inArray($item.get(0), this._loaded) > -1) { + return; + } + + $elements.each($.proxy(function(index, element) { + var $element = $(element), image, + url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset'); + + this._core.trigger('load', { element: $element, url: url }, 'lazy'); + + if ($element.is('img')) { + $element.one('load.owl.lazy', $.proxy(function() { + $element.css('opacity', 1); + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this)).attr('src', url); + } else if ($element.is('source')) { + $element.one('load.owl.lazy', $.proxy(function() { + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this)).attr('srcset', url); + } else { + image = new Image(); + image.onload = $.proxy(function() { + $element.css({ + 'background-image': 'url("' + url + '")', + 'opacity': '1' + }); + this._core.trigger('loaded', { element: $element, url: url }, 'lazy'); + }, this); + image.src = url; + } + }, this)); + + this._loaded.push($item.get(0)); + }; + + /** + * Destroys the plugin. + * @public + */ + Lazy.prototype.destroy = function() { + var handler, property; + + for (handler in this.handlers) { + this._core.$element.off(handler, this.handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy; + +})(window.Zepto || window.jQuery, window, document); + +/** + * AutoHeight Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the auto height plugin. + * @class The Auto Height Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var AutoHeight = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + this._previousHeight = null; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight) { + this.update(); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position'){ + this.update(); + } + }, this), + 'loaded.owl.lazy': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoHeight + && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) { + this.update(); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + this._intervalId = null; + var refThis = this; + + // These changes have been taken from a PR by gavrochelegnou proposed in #1575 + // and have been made compatible with the latest jQuery version + $(window).on('load', function() { + if (refThis._core.settings.autoHeight) { + refThis.update(); + } + }); + + // Autoresize the height of the carousel when window is resized + // When carousel has images, the height is dependent on the width + // and should also change on resize + $(window).resize(function() { + if (refThis._core.settings.autoHeight) { + if (refThis._intervalId != null) { + clearTimeout(refThis._intervalId); + } + + refThis._intervalId = setTimeout(function() { + refThis.update(); + }, 250); + } + }); + + }; + + /** + * Default options. + * @public + */ + AutoHeight.Defaults = { + autoHeight: false, + autoHeightClass: 'owl-height' + }; + + /** + * Updates the view. + */ + AutoHeight.prototype.update = function() { + var start = this._core._current, + end = start + this._core.settings.items, + lazyLoadEnabled = this._core.settings.lazyLoad, + visible = this._core.$stage.children().toArray().slice(start, end), + heights = [], + maxheight = 0; + + $.each(visible, function(index, item) { + heights.push($(item).height()); + }); + + maxheight = Math.max.apply(null, heights); + + if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) { + maxheight = this._previousHeight; + } + + this._previousHeight = maxheight; + + this._core.$stage.parent() + .height(maxheight) + .addClass(this._core.settings.autoHeightClass); + }; + + AutoHeight.prototype.destroy = function() { + var handler, property; + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] !== 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Video Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the video plugin. + * @class The Video Plugin + * @param {Owl} carousel - The Owl Carousel + */ + var Video = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Cache all video URLs. + * @protected + * @type {Object} + */ + this._videos = {}; + + /** + * Current playing item. + * @protected + * @type {jQuery} + */ + this._playing = null; + + /** + * All event handlers. + * @todo The cloned content removale is too late + * @protected + * @type {Object} + */ + this._handlers = { + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace) { + this._core.register({ type: 'state', name: 'playing', tags: [ 'interacting' ] }); + } + }, this), + 'resize.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.video && this.isInFullScreen()) { + e.preventDefault(); + } + }, this), + 'refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.is('resizing')) { + this._core.$stage.find('.cloned .owl-video-frame').remove(); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name === 'position' && this._playing) { + this.stop(); + } + }, this), + 'prepared.owl.carousel': $.proxy(function(e) { + if (!e.namespace) { + return; + } + + var $element = $(e.content).find('.owl-video'); + + if ($element.length) { + $element.css('display', 'none'); + this.fetch($element, $(e.content)); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, Video.Defaults, this._core.options); + + // register event handlers + this._core.$element.on(this._handlers); + + this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) { + this.play(e); + }, this)); + }; + + /** + * Default options. + * @public + */ + Video.Defaults = { + video: false, + videoHeight: false, + videoWidth: false + }; + + /** + * Gets the video ID and the type (YouTube/Vimeo/vzaar only). + * @protected + * @param {jQuery} target - The target containing the video data. + * @param {jQuery} item - The item containing the video. + */ + Video.prototype.fetch = function(target, item) { + var type = (function() { + if (target.attr('data-vimeo-id')) { + return 'vimeo'; + } else if (target.attr('data-vzaar-id')) { + return 'vzaar' + } else { + return 'youtube'; + } + })(), + id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'), + width = target.attr('data-width') || this._core.settings.videoWidth, + height = target.attr('data-height') || this._core.settings.videoHeight, + url = target.attr('href'); + + if (url) { + + /* + Parses the id's out of the following urls (and probably more): + https://www.youtube.com/watch?v=:id + https://youtu.be/:id + https://vimeo.com/:id + https://vimeo.com/channels/:channel/:id + https://vimeo.com/groups/:group/videos/:id + https://app.vzaar.com/videos/:id + + Visual example: https://regexper.com/#(http%3A%7Chttps%3A%7C)%5C%2F%5C%2F(player.%7Cwww.%7Capp.)%3F(vimeo%5C.com%7Cyoutu(be%5C.com%7C%5C.be%7Cbe%5C.googleapis%5C.com)%7Cvzaar%5C.com)%5C%2F(video%5C%2F%7Cvideos%5C%2F%7Cembed%5C%2F%7Cchannels%5C%2F.%2B%5C%2F%7Cgroups%5C%2F.%2B%5C%2F%7Cwatch%5C%3Fv%3D%7Cv%5C%2F)%3F(%5BA-Za-z0-9._%25-%5D*)(%5C%26%5CS%2B)%3F + */ + + id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/); + + if (id[3].indexOf('youtu') > -1) { + type = 'youtube'; + } else if (id[3].indexOf('vimeo') > -1) { + type = 'vimeo'; + } else if (id[3].indexOf('vzaar') > -1) { + type = 'vzaar'; + } else { + throw new Error('Video URL not supported.'); + } + id = id[6]; + } else { + throw new Error('Missing video URL.'); + } + + this._videos[url] = { + type: type, + id: id, + width: width, + height: height + }; + + item.attr('data-video', url); + + this.thumbnail(target, this._videos[url]); + }; + + /** + * Creates video thumbnail. + * @protected + * @param {jQuery} target - The target containing the video data. + * @param {Object} info - The video info object. + * @see `fetch` + */ + Video.prototype.thumbnail = function(target, video) { + var tnLink, + icon, + path, + dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '', + customTn = target.find('img'), + srcType = 'src', + lazyClass = '', + settings = this._core.settings, + create = function(path) { + icon = '
'; + + if (settings.lazyLoad) { + tnLink = $('
',{ + "class": 'owl-video-tn ' + lazyClass, + "srcType": path + }); + } else { + tnLink = $( '
', { + "class": "owl-video-tn", + "style": 'opacity:1;background-image:url(' + path + ')' + }); + } + target.after(tnLink); + target.after(icon); + }; + + // wrap video content into owl-video-wrapper div + target.wrap( $( '
', { + "class": "owl-video-wrapper", + "style": dimensions + })); + + if (this._core.settings.lazyLoad) { + srcType = 'data-src'; + lazyClass = 'owl-lazy'; + } + + // custom thumbnail + if (customTn.length) { + create(customTn.attr(srcType)); + customTn.remove(); + return false; + } + + if (video.type === 'youtube') { + path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg"; + create(path); + } else if (video.type === 'vimeo') { + $.ajax({ + type: 'GET', + url: '//vimeo.com/api/v2/video/' + video.id + '.json', + jsonp: 'callback', + dataType: 'jsonp', + success: function(data) { + path = data[0].thumbnail_large; + create(path); + } + }); + } else if (video.type === 'vzaar') { + $.ajax({ + type: 'GET', + url: '//vzaar.com/api/videos/' + video.id + '.json', + jsonp: 'callback', + dataType: 'jsonp', + success: function(data) { + path = data.framegrab_url; + create(path); + } + }); + } + }; + + /** + * Stops the current video. + * @public + */ + Video.prototype.stop = function() { + this._core.trigger('stop', null, 'video'); + this._playing.find('.owl-video-frame').remove(); + this._playing.removeClass('owl-video-playing'); + this._playing = null; + this._core.leave('playing'); + this._core.trigger('stopped', null, 'video'); + }; + + /** + * Starts the current video. + * @public + * @param {Event} event - The event arguments. + */ + Video.prototype.play = function(event) { + var target = $(event.target), + item = target.closest('.' + this._core.settings.itemClass), + video = this._videos[item.attr('data-video')], + width = video.width || '100%', + height = video.height || this._core.$stage.height(), + html, + iframe; + + if (this._playing) { + return; + } + + this._core.enter('playing'); + this._core.trigger('play', null, 'video'); + + item = this._core.items(this._core.relative(item.index())); + + this._core.reset(item.index()); + + html = $( '' ); + html.attr( 'height', height ); + html.attr( 'width', width ); + if (video.type === 'youtube') { + html.attr( 'src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id ); + } else if (video.type === 'vimeo') { + html.attr( 'src', '//player.vimeo.com/video/' + video.id + '?autoplay=1' ); + } else if (video.type === 'vzaar') { + html.attr( 'src', '//view.vzaar.com/' + video.id + '/player?autoplay=true' ); + } + + iframe = $(html).wrap( '
' ).insertAfter(item.find('.owl-video')); + + this._playing = item.addClass('owl-video-playing'); + }; + + /** + * Checks whether an video is currently in full screen mode or not. + * @todo Bad style because looks like a readonly method but changes members. + * @protected + * @returns {Boolean} + */ + Video.prototype.isInFullScreen = function() { + var element = document.fullscreenElement || document.mozFullScreenElement || + document.webkitFullscreenElement; + + return element && $(element).parent().hasClass('owl-video-frame'); + }; + + /** + * Destroys the plugin. + */ + Video.prototype.destroy = function() { + var handler, property; + + this._core.$element.off('click.owl.video'); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Video = Video; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Animate Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the animate plugin. + * @class The Navigation Plugin + * @param {Owl} scope - The Owl Carousel + */ + var Animate = function(scope) { + this.core = scope; + this.core.options = $.extend({}, Animate.Defaults, this.core.options); + this.swapping = true; + this.previous = undefined; + this.next = undefined; + + this.handlers = { + 'change.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name == 'position') { + this.previous = this.core.current(); + this.next = e.property.value; + } + }, this), + 'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) { + if (e.namespace) { + this.swapping = e.type == 'translated'; + } + }, this), + 'translate.owl.carousel': $.proxy(function(e) { + if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) { + this.swap(); + } + }, this) + }; + + this.core.$element.on(this.handlers); + }; + + /** + * Default options. + * @public + */ + Animate.Defaults = { + animateOut: false, + animateIn: false + }; + + /** + * Toggles the animation classes whenever an translations starts. + * @protected + * @returns {Boolean|undefined} + */ + Animate.prototype.swap = function() { + + if (this.core.settings.items !== 1) { + return; + } + + if (!$.support.animation || !$.support.transition) { + return; + } + + this.core.speed(0); + + var left, + clear = $.proxy(this.clear, this), + previous = this.core.$stage.children().eq(this.previous), + next = this.core.$stage.children().eq(this.next), + incoming = this.core.settings.animateIn, + outgoing = this.core.settings.animateOut; + + if (this.core.current() === this.previous) { + return; + } + + if (outgoing) { + left = this.core.coordinates(this.previous) - this.core.coordinates(this.next); + previous.one($.support.animation.end, clear) + .css( { 'left': left + 'px' } ) + .addClass('animated owl-animated-out') + .addClass(outgoing); + } + + if (incoming) { + next.one($.support.animation.end, clear) + .addClass('animated owl-animated-in') + .addClass(incoming); + } + }; + + Animate.prototype.clear = function(e) { + $(e.target).css( { 'left': '' } ) + .removeClass('animated owl-animated-out owl-animated-in') + .removeClass(this.core.settings.animateIn) + .removeClass(this.core.settings.animateOut); + this.core.onTransitionEnd(); + }; + + /** + * Destroys the plugin. + * @public + */ + Animate.prototype.destroy = function() { + var handler, property; + + for (handler in this.handlers) { + this.core.$element.off(handler, this.handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.Animate = Animate; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Autoplay Plugin + * @version 2.3.4 + * @author Bartosz Wojciechowski + * @author Artus Kolanowski + * @author David Deutsch + * @author Tom De Caluwé + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + + /** + * Creates the autoplay plugin. + * @class The Autoplay Plugin + * @param {Owl} scope - The Owl Carousel + */ + var Autoplay = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * The autoplay timeout id. + * @type {Number} + */ + this._call = null; + + /** + * Depending on the state of the plugin, this variable contains either + * the start time of the timer or the current timer value if it's + * paused. Since we start in a paused state we initialize the timer + * value. + * @type {Number} + */ + this._time = 0; + + /** + * Stores the timeout currently used. + * @type {Number} + */ + this._timeout = 0; + + /** + * Indicates whenever the autoplay is paused. + * @type {Boolean} + */ + this._paused = true; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name === 'settings') { + if (this._core.settings.autoplay) { + this.play(); + } else { + this.stop(); + } + } else if (e.namespace && e.property.name === 'position' && this._paused) { + // Reset the timer. This code is triggered when the position + // of the carousel was changed through user interaction. + this._time = 0; + } + }, this), + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.autoplay) { + this.play(); + } + }, this), + 'play.owl.autoplay': $.proxy(function(e, t, s) { + if (e.namespace) { + this.play(t, s); + } + }, this), + 'stop.owl.autoplay': $.proxy(function(e) { + if (e.namespace) { + this.stop(); + } + }, this), + 'mouseover.owl.autoplay': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.pause(); + } + }, this), + 'mouseleave.owl.autoplay': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.play(); + } + }, this), + 'touchstart.owl.core': $.proxy(function() { + if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) { + this.pause(); + } + }, this), + 'touchend.owl.core': $.proxy(function() { + if (this._core.settings.autoplayHoverPause) { + this.play(); + } + }, this) + }; + + // register event handlers + this._core.$element.on(this._handlers); + + // set default options + this._core.options = $.extend({}, Autoplay.Defaults, this._core.options); + }; + + /** + * Default options. + * @public + */ + Autoplay.Defaults = { + autoplay: false, + autoplayTimeout: 5000, + autoplayHoverPause: false, + autoplaySpeed: false + }; + + /** + * Transition to the next slide and set a timeout for the next transition. + * @private + * @param {Number} [speed] - The animation speed for the animations. + */ + Autoplay.prototype._next = function(speed) { + this._call = window.setTimeout( + $.proxy(this._next, this, speed), + this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read() + ); + + if (this._core.is('interacting') || document.hidden) { + return; + } + this._core.next(speed || this._core.settings.autoplaySpeed); + } + + /** + * Reads the current timer value when the timer is playing. + * @public + */ + Autoplay.prototype.read = function() { + return new Date().getTime() - this._time; + }; + + /** + * Starts the autoplay. + * @public + * @param {Number} [timeout] - The interval before the next animation starts. + * @param {Number} [speed] - The animation speed for the animations. + */ + Autoplay.prototype.play = function(timeout, speed) { + var elapsed; + + if (!this._core.is('rotating')) { + this._core.enter('rotating'); + } + + timeout = timeout || this._core.settings.autoplayTimeout; + + // Calculate the elapsed time since the last transition. If the carousel + // wasn't playing this calculation will yield zero. + elapsed = Math.min(this._time % (this._timeout || timeout), timeout); + + if (this._paused) { + // Start the clock. + this._time = this.read(); + this._paused = false; + } else { + // Clear the active timeout to allow replacement. + window.clearTimeout(this._call); + } + + // Adjust the origin of the timer to match the new timeout value. + this._time += this.read() % timeout - elapsed; + + this._timeout = timeout; + this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed); + }; + + /** + * Stops the autoplay. + * @public + */ + Autoplay.prototype.stop = function() { + if (this._core.is('rotating')) { + // Reset the clock. + this._time = 0; + this._paused = true; + + window.clearTimeout(this._call); + this._core.leave('rotating'); + } + }; + + /** + * Pauses the autoplay. + * @public + */ + Autoplay.prototype.pause = function() { + if (this._core.is('rotating') && !this._paused) { + // Pause the clock. + this._time = this.read(); + this._paused = true; + + window.clearTimeout(this._call); + } + }; + + /** + * Destroys the plugin. + */ + Autoplay.prototype.destroy = function() { + var handler, property; + + this.stop(); + + for (handler in this._handlers) { + this._core.$element.off(handler, this._handlers[handler]); + } + for (property in Object.getOwnPropertyNames(this)) { + typeof this[property] != 'function' && (this[property] = null); + } + }; + + $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay; + +})(window.Zepto || window.jQuery, window, document); + +/** + * Navigation Plugin + * @version 2.3.4 + * @author Artus Kolanowski + * @author David Deutsch + * @license The MIT License (MIT) + */ +;(function($, window, document, undefined) { + 'use strict'; + + /** + * Creates the navigation plugin. + * @class The Navigation Plugin + * @param {Owl} carousel - The Owl Carousel. + */ + var Navigation = function(carousel) { + /** + * Reference to the core. + * @protected + * @type {Owl} + */ + this._core = carousel; + + /** + * Indicates whether the plugin is initialized or not. + * @protected + * @type {Boolean} + */ + this._initialized = false; + + /** + * The current paging indexes. + * @protected + * @type {Array} + */ + this._pages = []; + + /** + * All DOM elements of the user interface. + * @protected + * @type {Object} + */ + this._controls = {}; + + /** + * Markup for an indicator. + * @protected + * @type {Array.} + */ + this._templates = []; + + /** + * The carousel element. + * @type {jQuery} + */ + this.$element = this._core.$element; + + /** + * Overridden methods of the carousel. + * @protected + * @type {Object} + */ + this._overrides = { + next: this._core.next, + prev: this._core.prev, + to: this._core.to + }; + + /** + * All event handlers. + * @protected + * @type {Object} + */ + this._handlers = { + 'prepared.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.push('
' + + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '
'); + } + }, this), + 'added.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.splice(e.position, 0, this._templates.pop()); + } + }, this), + 'remove.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._core.settings.dotsData) { + this._templates.splice(e.position, 1); + } + }, this), + 'changed.owl.carousel': $.proxy(function(e) { + if (e.namespace && e.property.name == 'position') { + this.draw(); + } + }, this), + 'initialized.owl.carousel': $.proxy(function(e) { + if (e.namespace && !this._initialized) { + this._core.trigger('initialize', null, 'navigation'); + this.initialize(); + this.update(); + this.draw(); + this._initialized = true; + this._core.trigger('initialized', null, 'navigation'); + } + }, this), + 'refreshed.owl.carousel': $.proxy(function(e) { + if (e.namespace && this._initialized) { + this._core.trigger('refresh', null, 'navigation'); + this.update(); + this.draw(); + this._core.trigger('refreshed', null, 'navigation'); + } + }, this) + }; + + // set default options + this._core.options = $.extend({}, Navigation.Defaults, this._core.options); + + // register event handlers + this.$element.on(this._handlers); + }; + + /** + * Default options. + * @public + * @todo Rename `slideBy` to `navBy` + */ + Navigation.Defaults = { + nav: false, + navText: [ + '', + '' + ], + navSpeed: false, + navElement: 'button type="button" role="presentation"', + navContainer: false, + navContainerClass: 'owl-nav', + navClass: [ + 'owl-prev', + 'owl-next' + ], + slideBy: 1, + dotClass: 'owl-dot', + dotsClass: 'owl-dots', + dots: true, + dotsEach: false, + dotsData: false, + dotsSpeed: false, + dotsContainer: false + }; + + /** + * Initializes the layout of the plugin and extends the carousel. + * @protected + */ + Navigation.prototype.initialize = function() { + var override, + settings = this._core.settings; + + // create DOM structure for relative navigation + this._controls.$relative = (settings.navContainer ? $(settings.navContainer) + : $('
').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled'); + + this._controls.$previous = $('<' + settings.navElement + '>') + .addClass(settings.navClass[0]) + .html(settings.navText[0]) + .prependTo(this._controls.$relative) + .on('click', $.proxy(function(e) { + this.prev(settings.navSpeed); + }, this)); + this._controls.$next = $('<' + settings.navElement + '>') + .addClass(settings.navClass[1]) + .html(settings.navText[1]) + .appendTo(this._controls.$relative) + .on('click', $.proxy(function(e) { + this.next(settings.navSpeed); + }, this)); + + // create DOM structure for absolute navigation + if (!settings.dotsData) { + this._templates = [ $('
+ + +
+ +
+ +
+ + + + + +
+
+ +
+ Designed by + Kicap Karan + + +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/map.html b/www/map.html new file mode 100644 index 0000000..82887af --- /dev/null +++ b/www/map.html @@ -0,0 +1,126 @@ + + + + + + + + + Pencarian Puskesmas - Halaman Peta + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+

Info

+

Aplikasi ini menyediakan informasi puskesmas pada area Barru. Tiap puskesmas di Barru akan ditanda pada map. Dimana pengguna dapat menekan icon puskesmas pada peta dan kemudian bisa melihat informasi , lokasi dan rute perjalanan ke puskesmas yang dipilih.

+
+ +
+ +
+ + +
+
+ +
+ + +
+
+ +
+ Designed by Kicap Karan +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/www/route.html b/www/route.html new file mode 100644 index 0000000..a9c466e --- /dev/null +++ b/www/route.html @@ -0,0 +1,193 @@ + + + + + + + + + Pencarian Puskesmas - Halaman Route Puskesmas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+
+ +
+

Informasi Puskesmas

+
+ + + +
+
+
+
+ +
+ +

Puskesmas:

+

sdasd

+
+
+ +
+ +

Alamat:

+

sadasd

+
+
+ + + +
+
+ +

Kontak:

+

0854565

+
+
+ + + +
+ +

Jumlah Perawat:

+

adsas

+
+
+ +
+ +
+
+
+
+
+

+ +
+
+ + +
+ +
+
+ +
+ + +
+
+ +
+ Designed by Kicap Karan +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file