diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 7ecf2f861..4b2fd54ab 100755 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -17,10 +17,9 @@ class Controller extends BaseController public function __construct() { if (Schema::hasTable('configurations')) { - $themeViewPath = realpath(Configuration::getConfiguration('active_theme_path')); - + $themeViewPath = Configuration::getConfiguration('active_theme_path'); $fileViewFinder = View::getFinder(); - $fileViewFinder->prependLocation($themeViewPath); + $fileViewFinder->prependLocation(base_path($themeViewPath)); } } } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index c028ffe0e..c5da05ca2 100755 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -7,7 +7,7 @@ use App\Http\ViewComposers\CheckoutComposer; use App\Http\ViewComposers\MyAccountSidebarComposer; use App\Http\ViewComposers\LayoutAppComposer; -use AvoRed\Framework\Menu\Facade as MenuFacade; +use AvoRed\Framework\Menu\Facades\Menu as MenuFacade; use AvoRed\Framework\Menu\Menu; class AppServiceProvider extends ServiceProvider diff --git a/avored.admin.webpack.mix.js b/avored.admin.webpack.mix.js index 2811e7174..7e3e8feb9 100644 --- a/avored.admin.webpack.mix.js +++ b/avored.admin.webpack.mix.js @@ -14,6 +14,6 @@ let mix = require('laravel-mix'); mix.config.fileLoaderDirs.fonts = 'vendor/avored-admin/fonts'; mix.config.fileLoaderDirs.images = 'vendor/avored-admin/images'; -mix.js('vendor/avored/framework/resources/assets/js/app.js', 'public/vendor/avored-admin/js') - .sass('vendor/avored/framework/resources/assets/sass/app.scss', 'public/vendor/avored-admin/css') +mix.js('packages/framework/resources/assets/js/app.js', 'public/vendor/avored-admin/js') + .sass('packages/framework/resources/assets/sass/app.scss', 'public/vendor/avored-admin/css') // .copyDirectory('vendor/avored/framework/resources/assets/static/images','public/vendor/avored-admin/images'); diff --git a/composer.json b/composer.json index 9e73203de..00f7f8512 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "type" : "project", "require" : { "php": ">=7.1.3", - "avored/dummy-data": "~2.0", + "andreasindal/laravel-markdown": "^3.0", "avored/framework": "~2.3", "avored/module-installer": "1.*", "fabpot/goutte": "^3.2", @@ -35,7 +35,8 @@ "autoload" : { "classmap" : [ "database/seeds", - "database/factories" + "database/factories", + "modules/avored/dummy-data/database/seeds" ], "psr-4" : { "App\\" : "app/" @@ -49,8 +50,7 @@ "scripts" : { "post-root-package-install" : "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"", "post-create-project-cmd" : [ - "@php artisan key:generate", - "@php artisan self-diagnosis" + "@php artisan key:generate" ], "post-autoload-dump" : [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", diff --git a/config/app.php b/config/app.php index 3e120da3f..b688b8f92 100644 --- a/config/app.php +++ b/config/app.php @@ -228,7 +228,7 @@ 'Cart' => AvoRed\Framework\Cart\Facade::class, 'DataGrid' => AvoRed\Framework\DataGrid\Facade::class, 'Image' => AvoRed\Framework\Image\Facades\Image::class, - 'Menu' => AvoRed\Framework\Menu\Facade::class, + 'Menu' => AvoRed\Framework\Menu\Facades\Menu::class, 'Payment' => AvoRed\Framework\Payment\Facade::class, 'Permission' => AvoRed\Framework\Permission\Facade::class, 'Shipping' => AvoRed\Framework\Shipping\Facade::class, diff --git a/config/self-diagnosis.php b/config/self-diagnosis.php deleted file mode 100644 index e39c281c4..000000000 --- a/config/self-diagnosis.php +++ /dev/null @@ -1,95 +0,0 @@ - [ - 'prod' => 'production', - 'live' => 'production', - 'local' => 'development', - ], - - /* - * Common checks that will be performed on all environments. - */ - 'checks' => [ - \BeyondCode\SelfDiagnosis\Checks\AppKeyIsSet::class, - \BeyondCode\SelfDiagnosis\Checks\CorrectPhpVersionIsInstalled::class, - \BeyondCode\SelfDiagnosis\Checks\DatabaseCanBeAccessed::class => [ - 'default_connection' => true, - 'connections' => [], - ], - \BeyondCode\SelfDiagnosis\Checks\DirectoriesHaveCorrectPermissions::class => [ - 'directories' => [ - storage_path(), - base_path('bootstrap/cache'), - ], - ], - \BeyondCode\SelfDiagnosis\Checks\EnvFileExists::class, - \BeyondCode\SelfDiagnosis\Checks\ExampleEnvironmentVariablesAreSet::class, - //\BeyondCode\SelfDiagnosis\Checks\LocalesAreInstalled::class => [ - // 'required_locales' => [ - // 'en_US' - // ], - //], - \BeyondCode\SelfDiagnosis\Checks\MaintenanceModeNotEnabled::class, - //\BeyondCode\SelfDiagnosis\Checks\MigrationsAreUpToDate::class, - \BeyondCode\SelfDiagnosis\Checks\PhpExtensionsAreInstalled::class => [ - 'extensions' => [ - 'openssl', - 'PDO', - 'mbstring', - 'tokenizer', - 'xml', - 'ctype', - 'json', - ], - 'include_composer_extensions' => true, - ], - //\BeyondCode\SelfDiagnosis\Checks\RedisCanBeAccessed::class => [ - // 'default_connection' => true, - // 'connections' => [], - //], - \BeyondCode\SelfDiagnosis\Checks\StorageDirectoryIsLinked::class, - ], - - /* - * Environment specific checks that will only be performed for the corresponding environment. - */ - 'environment_checks' => [ - 'development' => [ - \BeyondCode\SelfDiagnosis\Checks\ComposerWithDevDependenciesIsUpToDate::class, - \BeyondCode\SelfDiagnosis\Checks\ConfigurationIsNotCached::class, - \BeyondCode\SelfDiagnosis\Checks\RoutesAreNotCached::class, - \BeyondCode\SelfDiagnosis\Checks\ExampleEnvironmentVariablesAreUpToDate::class, - ], - 'production' => [ - \BeyondCode\SelfDiagnosis\Checks\ComposerWithoutDevDependenciesIsUpToDate::class, - \BeyondCode\SelfDiagnosis\Checks\ConfigurationIsCached::class, - \BeyondCode\SelfDiagnosis\Checks\DebugModeIsNotEnabled::class, - \BeyondCode\SelfDiagnosis\Checks\PhpExtensionsAreDisabled::class => [ - 'extensions' => [ - 'xdebug', - ], - ], - \BeyondCode\SelfDiagnosis\Checks\RoutesAreCached::class, - //\BeyondCode\SelfDiagnosis\Checks\ServersArePingable::class => [ - // 'servers' => [ - // 'www.google.com', - // ['host' => 'www.google.com', 'port' => 8080], - // '8.8.8.8', - // ['host' => '8.8.8.8', 'port' => 8080, 'timeout' => 5], - // ], - //], - //\BeyondCode\SelfDiagnosis\Checks\SupervisorProgramsAreRunning::class => [ - // 'programs' => [ - // 'horizon', - // ], - // 'restarted_within' => 300, - //], - ], - ], - -]; diff --git a/modules/avored/banner/register.yaml b/modules/avored/banner/register.yml similarity index 100% rename from modules/avored/banner/register.yaml rename to modules/avored/banner/register.yml diff --git a/modules/avored/banner/src/Http/Controllers/BannerController.php b/modules/avored/banner/src/Http/Controllers/BannerController.php index e2cf8e0db..2f99e28f9 100644 --- a/modules/avored/banner/src/Http/Controllers/BannerController.php +++ b/modules/avored/banner/src/Http/Controllers/BannerController.php @@ -6,7 +6,7 @@ use App\Http\Controllers\Controller; use AvoRed\Banner\Models\Database\Banner; use AvoRed\Banner\Http\Requests\BannerRequest; -use AvoRed\Framework\Image\Facade as Image; +use AvoRed\Framework\Image\Facades\Image; use AvoRed\Banner\Models\Contracts\BannerInterface; class BannerController extends Controller @@ -80,7 +80,7 @@ private function _uploadBanner($image) { $tmpPath = str_split(strtolower(str_random(3))); $checkDirectory = '/uploads/cms/images/' . implode('/', $tmpPath); - $localImage = Image::upload($image, $checkDirectory); + $localImage = Image::upload($image, $checkDirectory)->makeSizes()->get(); $symblink = config('avored-framework.symlink_storage_folder'). "/"; diff --git a/modules/avored/brand/register.yaml b/modules/avored/brand/register.yml similarity index 100% rename from modules/avored/brand/register.yaml rename to modules/avored/brand/register.yml diff --git a/modules/avored/cash-on-delivery/register.yaml b/modules/avored/cash-on-delivery/register.yml similarity index 100% rename from modules/avored/cash-on-delivery/register.yaml rename to modules/avored/cash-on-delivery/register.yml diff --git a/modules/avored/contact/register.yaml b/modules/avored/contact/register.yml similarity index 100% rename from modules/avored/contact/register.yaml rename to modules/avored/contact/register.yml diff --git a/modules/avored/contact/src/Module.php b/modules/avored/contact/src/Module.php index c5d5ab626..71635ce29 100644 --- a/modules/avored/contact/src/Module.php +++ b/modules/avored/contact/src/Module.php @@ -1,13 +1,13 @@ registerResources(); $this->registerFrontMenu(); $this->publishFiles(); - } /** @@ -28,7 +27,6 @@ public function boot() */ public function register() { - } /** @@ -53,7 +51,7 @@ public function publishFiles() { $this->publishes([ __DIR__ . '/../resources/views' => base_path('themes/avored/default/views/vendor') - ],'avored-module-views'); + ], 'avored-module-views'); } /** @@ -63,10 +61,9 @@ public function publishFiles() */ protected function registerFrontMenu() { - MenuFacade::make('contact-us',function (Menu $accountMenu){ + MenuFacade::make('contact-us', function (Menu $accountMenu) { $accountMenu->label('Contact Us') ->route('contact.index'); }); - } -} \ No newline at end of file +} diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg new file mode 100644 index 000000000..099991a65 Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/large-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/large-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg new file mode 100644 index 000000000..acf87857e Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/large-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/med-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/med-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg new file mode 100644 index 000000000..d9708a15e Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/med-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/small-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/small-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg new file mode 100644 index 000000000..74f83623e Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/b/k/o/small-TIydVFNLKKJTiqJjUa29LKdVH0sgxadTJGogzGuI.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/large-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/large-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg new file mode 100644 index 000000000..8b7eb8096 Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/large-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/med-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/med-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg new file mode 100644 index 000000000..f0ca8e028 Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/med-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/small-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/small-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg new file mode 100644 index 000000000..10a3e262b Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/small-txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg new file mode 100644 index 000000000..5a3f41e5d Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/n/k/q/txdsemPHuXC9CHvXrXB7vvRVZc4C0YhrOrr4v1Su.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg new file mode 100644 index 000000000..cfd2b2001 Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/large-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/large-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg new file mode 100644 index 000000000..b6a68ca2d Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/large-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/med-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/med-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg new file mode 100644 index 000000000..3cc2a296b Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/med-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg differ diff --git a/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/small-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/small-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg new file mode 100644 index 000000000..2c18923a3 Binary files /dev/null and b/modules/avored/dummy-data/assets/uploads/cms/images/y/v/u/small-CqQjp5hSvRFnx0glalLnpTP7F1PLOCGoLAMPtnmc.jpeg differ diff --git a/modules/avored/dummy-data/database/seeds/AvoRedDataSeeder.php b/modules/avored/dummy-data/database/seeds/AvoRedDataSeeder.php index b689748bc..7bede8e49 100644 --- a/modules/avored/dummy-data/database/seeds/AvoRedDataSeeder.php +++ b/modules/avored/dummy-data/database/seeds/AvoRedDataSeeder.php @@ -6,11 +6,14 @@ use AvoRed\Framework\Models\Database\ProductImage; use AvoRed\Framework\Models\Database\Page; use AvoRed\Framework\Models\Database\Menu; +use AvoRed\Framework\Models\Database\MenuGroup; use AvoRed\Framework\Models\Database\Configuration; use AvoRed\Banner\Models\Database\Banner; use AvoRed\Framework\Models\Database\ProductPropertyIntegerValue; use AvoRed\Framework\Models\Database\Property; use AvoRed\Framework\Models\Database\PropertyDropdownOption; + + class AvoRedDataSeeder extends Seeder { /** @@ -328,31 +331,43 @@ public function run() ProductImage::create(['path' => 'uploads/catalog/images/0/y/4/tsf02crsa.jpg', 'product_id' => $vintageToast->id, 'is_main_image' => 1]); + + $menuGroup = MenuGroup::create([ + 'name' => 'Main Menu', + 'identifier' => 'main-menu' + ]); + Menu::create([ 'name' => $kitchenCategory->name, + 'menu_group_id' => $menuGroup->id, 'params' => $kitchenCategory->slug, 'route' => 'category.view', ]); Menu::create([ 'name' => $bedroomCategory->name, + 'menu_group_id' => $menuGroup->id, 'params' => $bedroomCategory->slug, 'route' => 'category.view', ]); Menu::create([ 'name' => $livingRoomCategory->name, + 'menu_group_id' => $menuGroup->id, 'params' => $livingRoomCategory->slug, 'route' => 'category.view', ]); Menu::create([ 'name' => 'My Account', + 'menu_group_id' => $menuGroup->id, 'route' => 'my-account.home', ]); Menu::create([ 'name' => 'Cart', + 'menu_group_id' => $menuGroup->id, 'route' => 'cart.view', ]); Menu::create([ 'name' => 'Checkout', + 'menu_group_id' => $menuGroup->id, 'route' => 'checkout.index', ]); $homePageContent = html_entity_decode('
### avored-banner ###
HOME PAGE FOR AvoRed E COMMERCE LARAVEL OPEN SOURCE SHOPPING CART
Please star us on https://github.com/avored/laravel-ecommerce
Like us on Facebook : https://www.facebook.com/avored/
Follow us on Twitter: https://twitter.com/avoredecommerce/
### avored-featured ###
'); diff --git a/modules/avored/dummy-data/register.yaml b/modules/avored/dummy-data/register.yml similarity index 100% rename from modules/avored/dummy-data/register.yaml rename to modules/avored/dummy-data/register.yml diff --git a/modules/avored/feature/register.yaml b/modules/avored/feature/register.yml similarity index 100% rename from modules/avored/feature/register.yaml rename to modules/avored/feature/register.yml diff --git a/modules/avored/fixed-rate/register.yaml b/modules/avored/fixed-rate/register.yml similarity index 100% rename from modules/avored/fixed-rate/register.yaml rename to modules/avored/fixed-rate/register.yml diff --git a/modules/avored/pickup/register.yaml b/modules/avored/pickup/register.yml similarity index 100% rename from modules/avored/pickup/register.yaml rename to modules/avored/pickup/register.yml diff --git a/modules/avored/promotion/register.yaml b/modules/avored/promotion/register.yml similarity index 100% rename from modules/avored/promotion/register.yaml rename to modules/avored/promotion/register.yml diff --git a/modules/avored/promotion/src/Http/Controllers/PromotionController.php b/modules/avored/promotion/src/Http/Controllers/PromotionController.php index 47267c62e..725a2e12e 100644 --- a/modules/avored/promotion/src/Http/Controllers/PromotionController.php +++ b/modules/avored/promotion/src/Http/Controllers/PromotionController.php @@ -4,27 +4,41 @@ use AvoRed\Promotion\DataGrid\PromotionDataGrid; use AvoRed\Promotion\Http\Requests\PromotionRequest; -use Illuminate\Http\Request; use AvoRed\Promotion\Models\Database\Promotion; use AvoRed\Framework\System\Controllers\Controller; class PromotionController extends Controller { - public function index() { - + /** + * Display all Promotion datagrid + * + * @return \Illuminate\View\View $response + */ + public function index() + { $dataGrid = new PromotionDataGrid(Promotion::query()); return view('avored-promotion::promotion.index')->with('dataGrid', $dataGrid->dataGrid); } - public function create() { - + /** + * Create a promotion for store product or cart + * + * @return \Illuminate\View\View $response + */ + public function create() + { return view('avored-promotion::promotion.create'); } - public function store(PromotionRequest $request) { - - PromotionModel::create($request->all()); + /** + * Store promotion into a database and redirect back to list all page + * + * @return \Illuminate\Http\RedirectResponse $redirect + */ + public function store(PromotionRequest $request) + { + Promotion::create($request->all()); return redirect()->route('admin.promotion.index'); } -} \ No newline at end of file +} diff --git a/modules/avored/related/register.yaml b/modules/avored/related/register.yml similarity index 100% rename from modules/avored/related/register.yaml rename to modules/avored/related/register.yml diff --git a/modules/avored/review/register.yaml b/modules/avored/review/register.yml similarity index 100% rename from modules/avored/review/register.yaml rename to modules/avored/review/register.yml diff --git a/modules/avored/subscribe/register.yaml b/modules/avored/subscribe/register.yml similarity index 100% rename from modules/avored/subscribe/register.yaml rename to modules/avored/subscribe/register.yml diff --git a/package.json b/package.json index d718b8379..da578f396 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ "postinstall": "opencollective postinstall" }, "devDependencies": { - "@fortawesome/fontawesome-free-webfonts": "^1.0.6", "axios": "^0.18", "ajv": "^6.0.0", "ajv-keywords": "^3.1", @@ -41,7 +40,6 @@ "popper.js": "^1.14.3", "select2": "^4.0.6-rc.1", "skycons": "^1.0.0", - "summernote": "^0.8.10", "vue": "^2.5.7" }, "dependencies": { diff --git a/public/vendor/avored-admin/css/app.css b/public/vendor/avored-admin/css/app.css index f3ae93b59..2558a7845 100644 --- a/public/vendor/avored-admin/css/app.css +++ b/public/vendor/avored-admin/css/app.css @@ -1,4 +1,10 @@ -/*! +/** + * simplemde v1.11.2 + * Copyright Next Step Webs, Inc. + * @link https://github.com/NextStepWebs/simplemde-markdown-editor + * @license MIT + */ +.CodeMirror{color:#000}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-ruler{border-left:1px solid #ccc;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-webkit-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.CodeMirror-focused .CodeMirror-selected,.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.CodeMirror{height:auto;min-height:300px;border:1px solid #ddd;border-bottom-left-radius:4px;border-bottom-right-radius:4px;padding:10px;font:inherit;z-index:1}.CodeMirror-scroll{min-height:300px}.CodeMirror-fullscreen{background:#fff;position:fixed!important;top:50px;left:0;right:0;bottom:0;height:auto;z-index:9}.CodeMirror-sided{width:50%!important}.editor-toolbar{position:relative;opacity:.6;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;padding:0 10px;border-top:1px solid #bbb;border-left:1px solid #bbb;border-right:1px solid #bbb;border-top-left-radius:4px;border-top-right-radius:4px}.editor-toolbar:after,.editor-toolbar:before{display:block;content:' ';height:1px}.editor-toolbar:before{margin-bottom:8px}.editor-toolbar:after{margin-top:8px}.editor-toolbar:hover,.editor-wrapper input.title:focus,.editor-wrapper input.title:hover{opacity:.8}.editor-toolbar.fullscreen{width:100%;height:50px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;padding-top:10px;padding-bottom:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;border:0;position:fixed;top:0;left:0;opacity:1;z-index:9}.editor-toolbar.fullscreen::before{width:20px;height:50px;background:-webkit-gradient(linear,left top, right top,color-stop(0, rgba(255,255,255,1)),to(rgba(255,255,255,0)));background:linear-gradient(to right,rgba(255,255,255,1) 0,rgba(255,255,255,0) 100%);position:fixed;top:0;left:0;margin:0;padding:0}.editor-toolbar.fullscreen::after{width:20px;height:50px;background:-webkit-gradient(linear,left top, right top,color-stop(0, rgba(255,255,255,0)),to(rgba(255,255,255,1)));background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,1) 100%);position:fixed;top:0;right:0;margin:0;padding:0}.editor-toolbar a{display:inline-block;text-align:center;text-decoration:none!important;color:#2c3e50!important;width:30px;height:30px;margin:0;border:1px solid transparent;border-radius:3px;cursor:pointer}.editor-toolbar a.active,.editor-toolbar a:hover{background:#fcfcfc;border-color:#95a5a6}.editor-toolbar a:before{line-height:30px}.editor-toolbar i.separator{display:inline-block;width:0;border-left:1px solid #d9d9d9;border-right:1px solid #fff;color:transparent;text-indent:-10px;margin:0 6px}.editor-toolbar a.fa-header-x:after{font-family:Arial,"Helvetica Neue",Helvetica,sans-serif;font-size:65%;vertical-align:text-bottom;position:relative;top:2px}.editor-toolbar a.fa-header-1:after{content:"1"}.editor-toolbar a.fa-header-2:after{content:"2"}.editor-toolbar a.fa-header-3:after{content:"3"}.editor-toolbar a.fa-header-bigger:after{content:"\25B2"}.editor-toolbar a.fa-header-smaller:after{content:"\25BC"}.editor-toolbar.disabled-for-preview a:not(.no-disable){pointer-events:none;background:#fff;border-color:transparent;text-shadow:inherit}@media only screen and (max-width:700px){.editor-toolbar a.no-mobile{display:none}}.editor-statusbar{padding:8px 10px;font-size:12px;color:#959694;text-align:right}.editor-statusbar span{display:inline-block;min-width:4em;margin-left:1em}.editor-preview,.editor-preview-side{padding:10px;background:#fafafa;overflow:auto;display:none;-webkit-box-sizing:border-box;box-sizing:border-box}.editor-statusbar .lines:before{content:'lines: '}.editor-statusbar .words:before{content:'words: '}.editor-statusbar .characters:before{content:'characters: '}.editor-preview{position:absolute;width:100%;height:100%;top:0;left:0;z-index:7}.editor-preview-side{position:fixed;bottom:0;width:50%;top:50px;right:0;z-index:9;border:1px solid #ddd}.editor-preview-active,.editor-preview-active-side{display:block}.editor-preview-side>p,.editor-preview>p{margin-top:0}.editor-preview pre,.editor-preview-side pre{background:#eee;margin-bottom:10px}.editor-preview table td,.editor-preview table th,.editor-preview-side table td,.editor-preview-side table th{border:1px solid #ddd;padding:5px}.CodeMirror .CodeMirror-code .cm-tag{color:#63a35c}.CodeMirror .CodeMirror-code .cm-attribute{color:#795da3}.CodeMirror .CodeMirror-code .cm-string{color:#183691}.CodeMirror .CodeMirror-selected{background:#d9d9d9}.CodeMirror .CodeMirror-code .cm-header-1{font-size:200%;line-height:200%}.CodeMirror .CodeMirror-code .cm-header-2{font-size:160%;line-height:160%}.CodeMirror .CodeMirror-code .cm-header-3{font-size:125%;line-height:125%}.CodeMirror .CodeMirror-code .cm-header-4{font-size:110%;line-height:110%}.CodeMirror .CodeMirror-code .cm-comment{background:rgba(0,0,0,.05);border-radius:2px}.CodeMirror .CodeMirror-code .cm-link{color:#7f8c8d}.CodeMirror .CodeMirror-code .cm-url{color:#aab2b3}.CodeMirror .CodeMirror-code .cm-strikethrough{text-decoration:line-through}.CodeMirror .CodeMirror-placeholder{opacity:.5}.CodeMirror .cm-spell-error:not(.cm-url):not(.cm-comment):not(.cm-tag):not(.cm-word){background:rgba(255,0,0,.15)}/*! * Bootstrap v4.1.3 (https://getbootstrap.com/) * Copyright 2011-2018 The Bootstrap Authors * Copyright 2011-2018 Twitter, Inc. @@ -77285,3457 +77291,404 @@ footer span { content: "\E75F"; } -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -/* FONT PATH - * -------------------------- */ - -@font-face { - font-family: 'FontAwesome'; - src: url(/vendor/avored-admin/fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713); - src: url(/vendor/avored-admin/fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"), url(/vendor/avored-admin/fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"), url(/vendor/avored-admin/fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"), url(/vendor/avored-admin/fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"), url(/vendor/avored-admin/fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg"); - font-weight: normal; - font-style: normal; -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -/* makes the font 33% larger relative to the icon container */ - -.fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-fw { - width: 1.28571429em; - text-align: center; -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; +.ps__rail-y { + right: 0 !important; + left: auto !important; } -.fa-ul > li { - position: relative; +#jqstooltip { + width: auto !important; + height: auto !important; + padding: 5px 10px !important; + border-radius: 2px !important; } -.fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; +table.dataTable.no-footer { + border-bottom: 1px solid rgba(0, 0, 0, 0.0625); + margin-bottom: 20px; } -.fa-li.fa-lg { - left: -1.85714286em; +.sorting_asc:focus { + outline: none; } -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; +.dataTables_wrapper { + overflow: hidden; + padding-bottom: 5px; } -.fa-pull-left { +.dataTables_wrapper .dataTables_length { + color: #313435; float: left; } -.fa-pull-right { - float: right; -} - -.fa.fa-pull-left { - margin-right: .3em; +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_length { + text-align: left; + } } -.fa.fa-pull-right { - margin-left: .3em; +.dataTables_wrapper .dataTables_length select { + border: 1px solid rgba(0, 0, 0, 0.0625); + border-radius: 2px; + -webkit-box-shadow: none; + box-shadow: none; + height: 35px; + font-size: 14px; + padding: 5px; + margin-left: 5px; + margin-right: 5px; + color: #72777a; + -webkit-transition: all 0.2s ease-in; + transition: all 0.2s ease-in; } -/* Deprecated as of 4.4.0 */ - -.pull-right { +.dataTables_wrapper .dataTables_filter { + color: #313435; float: right; } -.pull-left { - float: left; -} - -.fa.pull-left { - margin-right: .3em; -} - -.fa.pull-right { - margin-left: .3em; -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_filter { + text-align: left; } } -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - transform: rotate(90deg); -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - transform: rotate(180deg); -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - transform: rotate(270deg); -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - transform: scale(-1, 1); -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - transform: scale(1, -1); -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - -webkit-filter: none; - filter: none; -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; -} - -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: #ffffff; -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.fa-glass:before { - content: "\F000"; -} - -.fa-music:before { - content: "\F001"; -} - -.fa-search:before { - content: "\F002"; -} - -.fa-envelope-o:before { - content: "\F003"; -} - -.fa-heart:before { - content: "\F004"; -} - -.fa-star:before { - content: "\F005"; -} - -.fa-star-o:before { - content: "\F006"; -} - -.fa-user:before { - content: "\F007"; -} - -.fa-film:before { - content: "\F008"; -} - -.fa-th-large:before { - content: "\F009"; -} - -.fa-th:before { - content: "\F00A"; -} - -.fa-th-list:before { - content: "\F00B"; -} - -.fa-check:before { - content: "\F00C"; -} - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\F00D"; -} - -.fa-search-plus:before { - content: "\F00E"; -} - -.fa-search-minus:before { - content: "\F010"; -} - -.fa-power-off:before { - content: "\F011"; -} - -.fa-signal:before { - content: "\F012"; -} - -.fa-gear:before, -.fa-cog:before { - content: "\F013"; -} - -.fa-trash-o:before { - content: "\F014"; -} - -.fa-home:before { - content: "\F015"; -} - -.fa-file-o:before { - content: "\F016"; -} - -.fa-clock-o:before { - content: "\F017"; -} - -.fa-road:before { - content: "\F018"; -} - -.fa-download:before { - content: "\F019"; -} - -.fa-arrow-circle-o-down:before { - content: "\F01A"; -} - -.fa-arrow-circle-o-up:before { - content: "\F01B"; -} - -.fa-inbox:before { - content: "\F01C"; -} - -.fa-play-circle-o:before { - content: "\F01D"; -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: "\F01E"; -} - -.fa-refresh:before { - content: "\F021"; -} - -.fa-list-alt:before { - content: "\F022"; -} - -.fa-lock:before { - content: "\F023"; -} - -.fa-flag:before { - content: "\F024"; -} - -.fa-headphones:before { - content: "\F025"; -} - -.fa-volume-off:before { - content: "\F026"; -} - -.fa-volume-down:before { - content: "\F027"; -} - -.fa-volume-up:before { - content: "\F028"; -} - -.fa-qrcode:before { - content: "\F029"; -} - -.fa-barcode:before { - content: "\F02A"; -} - -.fa-tag:before { - content: "\F02B"; -} - -.fa-tags:before { - content: "\F02C"; -} - -.fa-book:before { - content: "\F02D"; -} - -.fa-bookmark:before { - content: "\F02E"; -} - -.fa-print:before { - content: "\F02F"; -} - -.fa-camera:before { - content: "\F030"; -} - -.fa-font:before { - content: "\F031"; -} - -.fa-bold:before { - content: "\F032"; -} - -.fa-italic:before { - content: "\F033"; -} - -.fa-text-height:before { - content: "\F034"; -} - -.fa-text-width:before { - content: "\F035"; -} - -.fa-align-left:before { - content: "\F036"; -} - -.fa-align-center:before { - content: "\F037"; -} - -.fa-align-right:before { - content: "\F038"; -} - -.fa-align-justify:before { - content: "\F039"; -} - -.fa-list:before { - content: "\F03A"; -} - -.fa-dedent:before, -.fa-outdent:before { - content: "\F03B"; -} - -.fa-indent:before { - content: "\F03C"; -} - -.fa-video-camera:before { - content: "\F03D"; -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\F03E"; -} - -.fa-pencil:before { - content: "\F040"; -} - -.fa-map-marker:before { - content: "\F041"; -} - -.fa-adjust:before { - content: "\F042"; -} - -.fa-tint:before { - content: "\F043"; -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\F044"; -} - -.fa-share-square-o:before { - content: "\F045"; -} - -.fa-check-square-o:before { - content: "\F046"; -} - -.fa-arrows:before { - content: "\F047"; -} - -.fa-step-backward:before { - content: "\F048"; +.dataTables_wrapper .dataTables_filter input { + border: 1px solid rgba(0, 0, 0, 0.0625); + border-radius: 2px; + -webkit-box-shadow: none; + box-shadow: none; + height: 35px; + font-size: 14px; + margin-left: 15px; + padding: 5px; + color: #72777a; + -webkit-transition: all 0.2s ease-in; + transition: all 0.2s ease-in; } -.fa-fast-backward:before { - content: "\F049"; +.dataTables_wrapper .dataTables_info { + color: #72777a; + float: left; } -.fa-backward:before { - content: "\F04A"; +.dataTables_wrapper .dataTables_processing { + color: #313435; } -.fa-play:before { - content: "\F04B"; +.dataTables_wrapper .dataTables_paginate { + color: #72777a; + float: right; } -.fa-pause:before { - content: "\F04C"; +.dataTables_wrapper .dataTables_paginate .paginate_button { + color: #72777a !important; + padding: 6px 12px; + border-radius: 2px; + margin-right: 10px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; + text-decoration: none; } -.fa-stop:before { - content: "\F04D"; +.dataTables_wrapper .dataTables_paginate .paginate_button.next, +.dataTables_wrapper .dataTables_paginate .paginate_button.previous, +.dataTables_wrapper .dataTables_paginate .paginate_button.first, +.dataTables_wrapper .dataTables_paginate .paginate_button.last { + border-radius: 2px; + text-decoration: none; } -.fa-forward:before { - content: "\F04E"; +.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover, +.dataTables_wrapper .dataTables_paginate .paginate_button.next:focus, +.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover, +.dataTables_wrapper .dataTables_paginate .paginate_button.previous:focus, +.dataTables_wrapper .dataTables_paginate .paginate_button.first:hover, +.dataTables_wrapper .dataTables_paginate .paginate_button.first:focus, +.dataTables_wrapper .dataTables_paginate .paginate_button.last:hover, +.dataTables_wrapper .dataTables_paginate .paginate_button.last:focus { + color: #fff !important; } -.fa-fast-forward:before { - content: "\F050"; +.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled, +.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled, +.dataTables_wrapper .dataTables_paginate .paginate_button.first.disabled, +.dataTables_wrapper .dataTables_paginate .paginate_button.last.disabled { + opacity: 0.4; + pointer-events: none; } -.fa-step-forward:before { - content: "\F051"; +.dataTables_wrapper .dataTables_paginate .paginate_button:hover { + color: #fff !important; + background: #7774e7; } -.fa-eject:before { - content: "\F052"; +.dataTables_wrapper .dataTables_paginate .paginate_button.current { + color: #fff !important; + background: #7774e7; } -.fa-chevron-left:before { - content: "\F053"; +.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + color: #fff !important; + background: #7774e7; } -.fa-chevron-right:before { - content: "\F054"; +.dataTables_wrapper .status { + width: 5px; + height: 5px; } -.fa-plus-circle:before { - content: "\F055"; +.fc { + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.0625); } -.fa-minus-circle:before { - content: "\F056"; +.fc th { + text-align: center; + padding: 15px; + background-color: transparent; + color: #72777a; + font-size: 12px; + text-transform: uppercase; + border-right-width: 0; + border-left-width: 0; } -.fa-times-circle:before { - content: "\F057"; +.fc button { + background-color: #fff; + background-image: none; + height: 37px; + padding: 0 15px; + color: #595d60; } -.fa-check-circle:before { - content: "\F058"; +.fc button.fc-state-default { + border-color: rgba(0, 0, 0, 0.0625); + -webkit-box-shadow: none; + box-shadow: none; } -.fa-question-circle:before { - content: "\F059"; +.fc button.fc-state-active { + -webkit-box-shadow: none; + box-shadow: none; + background-color: rgba(0, 0, 0, 0.0625); } -.fa-info-circle:before { - content: "\F05A"; +.fc-toolbar { + padding: 20px 20px 0; } -.fa-crosshairs:before { - content: "\F05B"; +.fc-view, +.fc-view > table { + background-color: #fff; } -.fa-times-circle-o:before { - content: "\F05C"; +.fc-basic-view td.fc-day-number, +.fc-basic-view td.fc-week-number span { + padding: 7px 15px; } -.fa-check-circle-o:before { - content: "\F05D"; +.fc-unthemed .fc-content, +.fc-unthemed .fc-divider, +.fc-unthemed .fc-popover, +.fc-unthemed .fc-row, +.fc-unthemed tbody, +.fc-unthemed td, +.fc-unthemed th, +.fc-unthemed thead { + border-color: rgba(0, 0, 0, 0.0625); } -.fa-ban:before { - content: "\F05E"; +.fc-unthemed .fc-today { + background-color: transparent; } -.fa-arrow-left:before { - content: "\F060"; +.fc-basic-view .fc-day-number.fc-today { + background-color: #0f9aee; + color: #fff; + display: inline-block; + float: right; + border-radius: 50%; + padding: 6px 8px; + line-height: 1; + margin: 4px 4px 0 0; } -.fa-arrow-right:before { - content: "\F061"; +.fc-event-container .fc-event { + border-radius: 0; + border: 0; + background-color: #e5f4fd; + color: #0f9aee !important; + font-size: 12px; + line-height: 2.5; + padding: 0 15px; } -.fa-arrow-up:before { - content: "\F062"; +.fc-event-container .fc-day-grid-event { + margin: 1px 5px 5px; } -.fa-arrow-down:before { - content: "\F063"; +.datepicker { + border-radius: 0; + padding: 25px; + -webkit-box-shadow: none; + box-shadow: none; + border: 1px solid rgba(0, 0, 0, 0.0625); } -.fa-mail-forward:before, -.fa-share:before { - content: "\F064"; +.datepicker table tr th, +.datepicker table tr td { + border-radius: 0; + width: 40px; + height: 35px; } -.fa-expand:before { - content: "\F065"; +.datepicker table tr td { + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } -.fa-compress:before { - content: "\F066"; +.datepicker table tr td span { + border-radius: 0; } -.fa-plus:before { - content: "\F067"; +.datepicker table tr td span.active:active, +.datepicker table tr td span.active:hover:active, +.datepicker table tr td span.active.disabled:active, +.datepicker table tr td span.active.disabled:hover:active, +.datepicker table tr td span.active.active, +.datepicker table tr td span.active:hover.active, +.datepicker table tr td span.active.disabled.active, +.datepicker table tr td span.active.disabled:hover.active, +.datepicker table tr td span.active.active:hover, +.datepicker table tr td span.active:hover.active:hover, +.datepicker table tr td.active:active, +.datepicker table tr td.active.highlighted:active, +.datepicker table tr td.active.active, +.datepicker table tr td.active.highlighted.active, +.datepicker table tr td.active:active:hover, +.datepicker table tr td.active.highlighted:active:hover, +.datepicker table tr td.active.active:hover, +.datepicker table tr td.active.highlighted.active:hover, +.datepicker table tr td.active:active:focus, +.datepicker table tr td.active.highlighted:active:focus, +.datepicker table tr td.active.active:focus, +.datepicker table tr td.active.highlighted.active:focus, +.datepicker table tr td.active:active.focus, +.datepicker table tr td.active.highlighted:active.focus, +.datepicker table tr td.active.active.focus, +.datepicker table tr td.active.highlighted.active.focus { + color: #fff; + background-color: #7774e7; + border-color: transparent; } -.fa-minus:before { - content: "\F068"; +.datepicker table tr td span:hover, +.datepicker table tr td span.focused { + background: #7774e7; + color: #fff; } -.fa-asterisk:before { - content: "\F069"; +.datepicker table tr td.day:hover, +.datepicker table tr td.focused { + background: #7774e7; + color: #fff; + cursor: pointer; } -.fa-exclamation-circle:before { - content: "\F06A"; +.datepicker .datepicker-switch:hover, +.datepicker .prev:hover, +.datepicker .next:hover, +.datepicker tfoot tr th:hover { + background: #7774e7; + color: #fff; + cursor: pointer; } -.fa-gift:before { - content: "\F06B"; +.datepicker-inline { + width: 330px; } -.fa-leaf:before { - content: "\F06C"; +.daterangepicker { + border-radius: 0; + padding: 30px; + -webkit-box-shadow: none; + box-shadow: none; + border: 1px solid rgba(0, 0, 0, 0.0625); } -.fa-fire:before { - content: "\F06D"; +.daterangepicker .input-mini { + border-radius: 0; + margin-bottom: 20px; + height: 40px; + padding: 0 6px 0 35px; } -.fa-eye:before { - content: "\F06E"; +.daterangepicker .input-mini.active { + border-radius: 0; + border-color: #6dc2f6; } -.fa-eye-slash:before { - content: "\F070"; +.daterangepicker .daterangepicker_input i { + position: absolute; + left: 10px; + top: 13px; } -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\F071"; +.daterangepicker td, +.daterangepicker th { + border-radius: 0; + width: 40px; + height: 35px; } -.fa-plane:before { - content: "\F072"; +.daterangepicker td.available:hover, +.daterangepicker th.available:hover { + background: #7774e7; + color: #fff; } -.fa-calendar:before { - content: "\F073"; +.daterangepicker td.in-range { + background-color: transparent; + color: #7774e7; } -.fa-random:before { - content: "\F074"; +.daterangepicker td.active { + background-color: #7774e7; + border-color: transparent; + color: #fff; } -.fa-comment:before { - content: "\F075"; +.daterangepicker td.active:hover { + background-color: #7774e7; + border-color: transparent; + color: #fff; } -.fa-magnet:before { - content: "\F076"; +.daterangepicker td.start-date { + border-radius: 0; } -.fa-chevron-up:before { - content: "\F077"; +.daterangepicker td.start-date.end-date { + border-radius: 0; } -.fa-chevron-down:before { - content: "\F078"; +.daterangepicker td.end-date { + border-radius: 0; } -.fa-retweet:before { - content: "\F079"; +.daterangepicker select.hourselect, +.daterangepicker select.minuteselect, +.daterangepicker select.secondselect, +.daterangepicker select.ampmselect { + border: 1px solid rgba(0, 0, 0, 0.0625); + min-height: 30px; } -.fa-shopping-cart:before { - content: "\F07A"; -} - -.fa-folder:before { - content: "\F07B"; -} - -.fa-folder-open:before { - content: "\F07C"; -} - -.fa-arrows-v:before { - content: "\F07D"; -} - -.fa-arrows-h:before { - content: "\F07E"; -} - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\F080"; -} - -.fa-twitter-square:before { - content: "\F081"; -} - -.fa-facebook-square:before { - content: "\F082"; -} - -.fa-camera-retro:before { - content: "\F083"; -} - -.fa-key:before { - content: "\F084"; -} - -.fa-gears:before, -.fa-cogs:before { - content: "\F085"; -} - -.fa-comments:before { - content: "\F086"; -} - -.fa-thumbs-o-up:before { - content: "\F087"; -} - -.fa-thumbs-o-down:before { - content: "\F088"; -} - -.fa-star-half:before { - content: "\F089"; -} - -.fa-heart-o:before { - content: "\F08A"; -} - -.fa-sign-out:before { - content: "\F08B"; -} - -.fa-linkedin-square:before { - content: "\F08C"; -} - -.fa-thumb-tack:before { - content: "\F08D"; -} - -.fa-external-link:before { - content: "\F08E"; -} - -.fa-sign-in:before { - content: "\F090"; -} - -.fa-trophy:before { - content: "\F091"; -} - -.fa-github-square:before { - content: "\F092"; -} - -.fa-upload:before { - content: "\F093"; -} - -.fa-lemon-o:before { - content: "\F094"; -} - -.fa-phone:before { - content: "\F095"; -} - -.fa-square-o:before { - content: "\F096"; -} - -.fa-bookmark-o:before { - content: "\F097"; -} - -.fa-phone-square:before { - content: "\F098"; -} - -.fa-twitter:before { - content: "\F099"; -} - -.fa-facebook-f:before, -.fa-facebook:before { - content: "\F09A"; -} - -.fa-github:before { - content: "\F09B"; -} - -.fa-unlock:before { - content: "\F09C"; -} - -.fa-credit-card:before { - content: "\F09D"; -} - -.fa-feed:before, -.fa-rss:before { - content: "\F09E"; -} - -.fa-hdd-o:before { - content: "\F0A0"; -} - -.fa-bullhorn:before { - content: "\F0A1"; -} - -.fa-bell:before { - content: "\F0F3"; -} - -.fa-certificate:before { - content: "\F0A3"; -} - -.fa-hand-o-right:before { - content: "\F0A4"; -} - -.fa-hand-o-left:before { - content: "\F0A5"; -} - -.fa-hand-o-up:before { - content: "\F0A6"; -} - -.fa-hand-o-down:before { - content: "\F0A7"; -} - -.fa-arrow-circle-left:before { - content: "\F0A8"; -} - -.fa-arrow-circle-right:before { - content: "\F0A9"; -} - -.fa-arrow-circle-up:before { - content: "\F0AA"; -} - -.fa-arrow-circle-down:before { - content: "\F0AB"; -} - -.fa-globe:before { - content: "\F0AC"; -} - -.fa-wrench:before { - content: "\F0AD"; -} - -.fa-tasks:before { - content: "\F0AE"; -} - -.fa-filter:before { - content: "\F0B0"; -} - -.fa-briefcase:before { - content: "\F0B1"; -} - -.fa-arrows-alt:before { - content: "\F0B2"; -} - -.fa-group:before, -.fa-users:before { - content: "\F0C0"; -} - -.fa-chain:before, -.fa-link:before { - content: "\F0C1"; -} - -.fa-cloud:before { - content: "\F0C2"; -} - -.fa-flask:before { - content: "\F0C3"; -} - -.fa-cut:before, -.fa-scissors:before { - content: "\F0C4"; -} - -.fa-copy:before, -.fa-files-o:before { - content: "\F0C5"; -} - -.fa-paperclip:before { - content: "\F0C6"; -} - -.fa-save:before, -.fa-floppy-o:before { - content: "\F0C7"; -} - -.fa-square:before { - content: "\F0C8"; -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\F0C9"; -} - -.fa-list-ul:before { - content: "\F0CA"; -} - -.fa-list-ol:before { - content: "\F0CB"; -} - -.fa-strikethrough:before { - content: "\F0CC"; -} - -.fa-underline:before { - content: "\F0CD"; -} - -.fa-table:before { - content: "\F0CE"; -} - -.fa-magic:before { - content: "\F0D0"; -} - -.fa-truck:before { - content: "\F0D1"; -} - -.fa-pinterest:before { - content: "\F0D2"; -} - -.fa-pinterest-square:before { - content: "\F0D3"; -} - -.fa-google-plus-square:before { - content: "\F0D4"; -} - -.fa-google-plus:before { - content: "\F0D5"; -} - -.fa-money:before { - content: "\F0D6"; -} - -.fa-caret-down:before { - content: "\F0D7"; -} - -.fa-caret-up:before { - content: "\F0D8"; -} - -.fa-caret-left:before { - content: "\F0D9"; -} - -.fa-caret-right:before { - content: "\F0DA"; -} - -.fa-columns:before { - content: "\F0DB"; -} - -.fa-unsorted:before, -.fa-sort:before { - content: "\F0DC"; -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\F0DD"; -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\F0DE"; -} - -.fa-envelope:before { - content: "\F0E0"; -} - -.fa-linkedin:before { - content: "\F0E1"; -} - -.fa-rotate-left:before, -.fa-undo:before { - content: "\F0E2"; -} - -.fa-legal:before, -.fa-gavel:before { - content: "\F0E3"; -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: "\F0E4"; -} - -.fa-comment-o:before { - content: "\F0E5"; -} - -.fa-comments-o:before { - content: "\F0E6"; -} - -.fa-flash:before, -.fa-bolt:before { - content: "\F0E7"; -} - -.fa-sitemap:before { - content: "\F0E8"; -} - -.fa-umbrella:before { - content: "\F0E9"; -} - -.fa-paste:before, -.fa-clipboard:before { - content: "\F0EA"; -} - -.fa-lightbulb-o:before { - content: "\F0EB"; -} - -.fa-exchange:before { - content: "\F0EC"; -} - -.fa-cloud-download:before { - content: "\F0ED"; -} - -.fa-cloud-upload:before { - content: "\F0EE"; -} - -.fa-user-md:before { - content: "\F0F0"; -} - -.fa-stethoscope:before { - content: "\F0F1"; -} - -.fa-suitcase:before { - content: "\F0F2"; -} - -.fa-bell-o:before { - content: "\F0A2"; -} - -.fa-coffee:before { - content: "\F0F4"; -} - -.fa-cutlery:before { - content: "\F0F5"; -} - -.fa-file-text-o:before { - content: "\F0F6"; -} - -.fa-building-o:before { - content: "\F0F7"; -} - -.fa-hospital-o:before { - content: "\F0F8"; -} - -.fa-ambulance:before { - content: "\F0F9"; -} - -.fa-medkit:before { - content: "\F0FA"; -} - -.fa-fighter-jet:before { - content: "\F0FB"; -} - -.fa-beer:before { - content: "\F0FC"; -} - -.fa-h-square:before { - content: "\F0FD"; -} - -.fa-plus-square:before { - content: "\F0FE"; -} - -.fa-angle-double-left:before { - content: "\F100"; -} - -.fa-angle-double-right:before { - content: "\F101"; -} - -.fa-angle-double-up:before { - content: "\F102"; -} - -.fa-angle-double-down:before { - content: "\F103"; -} - -.fa-angle-left:before { - content: "\F104"; -} - -.fa-angle-right:before { - content: "\F105"; -} - -.fa-angle-up:before { - content: "\F106"; -} - -.fa-angle-down:before { - content: "\F107"; -} - -.fa-desktop:before { - content: "\F108"; -} - -.fa-laptop:before { - content: "\F109"; -} - -.fa-tablet:before { - content: "\F10A"; -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\F10B"; -} - -.fa-circle-o:before { - content: "\F10C"; -} - -.fa-quote-left:before { - content: "\F10D"; -} - -.fa-quote-right:before { - content: "\F10E"; -} - -.fa-spinner:before { - content: "\F110"; -} - -.fa-circle:before { - content: "\F111"; -} - -.fa-mail-reply:before, -.fa-reply:before { - content: "\F112"; -} - -.fa-github-alt:before { - content: "\F113"; -} - -.fa-folder-o:before { - content: "\F114"; -} - -.fa-folder-open-o:before { - content: "\F115"; -} - -.fa-smile-o:before { - content: "\F118"; -} - -.fa-frown-o:before { - content: "\F119"; -} - -.fa-meh-o:before { - content: "\F11A"; -} - -.fa-gamepad:before { - content: "\F11B"; -} - -.fa-keyboard-o:before { - content: "\F11C"; -} - -.fa-flag-o:before { - content: "\F11D"; -} - -.fa-flag-checkered:before { - content: "\F11E"; -} - -.fa-terminal:before { - content: "\F120"; -} - -.fa-code:before { - content: "\F121"; -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\F122"; -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\F123"; -} - -.fa-location-arrow:before { - content: "\F124"; -} - -.fa-crop:before { - content: "\F125"; -} - -.fa-code-fork:before { - content: "\F126"; -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: "\F127"; -} - -.fa-question:before { - content: "\F128"; -} - -.fa-info:before { - content: "\F129"; -} - -.fa-exclamation:before { - content: "\F12A"; -} - -.fa-superscript:before { - content: "\F12B"; -} - -.fa-subscript:before { - content: "\F12C"; -} - -.fa-eraser:before { - content: "\F12D"; -} - -.fa-puzzle-piece:before { - content: "\F12E"; -} - -.fa-microphone:before { - content: "\F130"; -} - -.fa-microphone-slash:before { - content: "\F131"; -} - -.fa-shield:before { - content: "\F132"; -} - -.fa-calendar-o:before { - content: "\F133"; -} - -.fa-fire-extinguisher:before { - content: "\F134"; -} - -.fa-rocket:before { - content: "\F135"; -} - -.fa-maxcdn:before { - content: "\F136"; -} - -.fa-chevron-circle-left:before { - content: "\F137"; -} - -.fa-chevron-circle-right:before { - content: "\F138"; -} - -.fa-chevron-circle-up:before { - content: "\F139"; -} - -.fa-chevron-circle-down:before { - content: "\F13A"; -} - -.fa-html5:before { - content: "\F13B"; -} - -.fa-css3:before { - content: "\F13C"; -} - -.fa-anchor:before { - content: "\F13D"; -} - -.fa-unlock-alt:before { - content: "\F13E"; -} - -.fa-bullseye:before { - content: "\F140"; -} - -.fa-ellipsis-h:before { - content: "\F141"; -} - -.fa-ellipsis-v:before { - content: "\F142"; -} - -.fa-rss-square:before { - content: "\F143"; -} - -.fa-play-circle:before { - content: "\F144"; -} - -.fa-ticket:before { - content: "\F145"; -} - -.fa-minus-square:before { - content: "\F146"; -} - -.fa-minus-square-o:before { - content: "\F147"; -} - -.fa-level-up:before { - content: "\F148"; -} - -.fa-level-down:before { - content: "\F149"; -} - -.fa-check-square:before { - content: "\F14A"; -} - -.fa-pencil-square:before { - content: "\F14B"; -} - -.fa-external-link-square:before { - content: "\F14C"; -} - -.fa-share-square:before { - content: "\F14D"; -} - -.fa-compass:before { - content: "\F14E"; -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\F150"; -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\F151"; -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\F152"; -} - -.fa-euro:before, -.fa-eur:before { - content: "\F153"; -} - -.fa-gbp:before { - content: "\F154"; -} - -.fa-dollar:before, -.fa-usd:before { - content: "\F155"; -} - -.fa-rupee:before, -.fa-inr:before { - content: "\F156"; -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\F157"; -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\F158"; -} - -.fa-won:before, -.fa-krw:before { - content: "\F159"; -} - -.fa-bitcoin:before, -.fa-btc:before { - content: "\F15A"; -} - -.fa-file:before { - content: "\F15B"; -} - -.fa-file-text:before { - content: "\F15C"; -} - -.fa-sort-alpha-asc:before { - content: "\F15D"; -} - -.fa-sort-alpha-desc:before { - content: "\F15E"; -} - -.fa-sort-amount-asc:before { - content: "\F160"; -} - -.fa-sort-amount-desc:before { - content: "\F161"; -} - -.fa-sort-numeric-asc:before { - content: "\F162"; -} - -.fa-sort-numeric-desc:before { - content: "\F163"; -} - -.fa-thumbs-up:before { - content: "\F164"; -} - -.fa-thumbs-down:before { - content: "\F165"; -} - -.fa-youtube-square:before { - content: "\F166"; -} - -.fa-youtube:before { - content: "\F167"; -} - -.fa-xing:before { - content: "\F168"; -} - -.fa-xing-square:before { - content: "\F169"; -} - -.fa-youtube-play:before { - content: "\F16A"; -} - -.fa-dropbox:before { - content: "\F16B"; -} - -.fa-stack-overflow:before { - content: "\F16C"; -} - -.fa-instagram:before { - content: "\F16D"; -} - -.fa-flickr:before { - content: "\F16E"; -} - -.fa-adn:before { - content: "\F170"; -} - -.fa-bitbucket:before { - content: "\F171"; -} - -.fa-bitbucket-square:before { - content: "\F172"; -} - -.fa-tumblr:before { - content: "\F173"; -} - -.fa-tumblr-square:before { - content: "\F174"; -} - -.fa-long-arrow-down:before { - content: "\F175"; -} - -.fa-long-arrow-up:before { - content: "\F176"; -} - -.fa-long-arrow-left:before { - content: "\F177"; -} - -.fa-long-arrow-right:before { - content: "\F178"; -} - -.fa-apple:before { - content: "\F179"; -} - -.fa-windows:before { - content: "\F17A"; -} - -.fa-android:before { - content: "\F17B"; -} - -.fa-linux:before { - content: "\F17C"; -} - -.fa-dribbble:before { - content: "\F17D"; -} - -.fa-skype:before { - content: "\F17E"; -} - -.fa-foursquare:before { - content: "\F180"; -} - -.fa-trello:before { - content: "\F181"; -} - -.fa-female:before { - content: "\F182"; -} - -.fa-male:before { - content: "\F183"; -} - -.fa-gittip:before, -.fa-gratipay:before { - content: "\F184"; -} - -.fa-sun-o:before { - content: "\F185"; -} - -.fa-moon-o:before { - content: "\F186"; -} - -.fa-archive:before { - content: "\F187"; -} - -.fa-bug:before { - content: "\F188"; -} - -.fa-vk:before { - content: "\F189"; -} - -.fa-weibo:before { - content: "\F18A"; -} - -.fa-renren:before { - content: "\F18B"; -} - -.fa-pagelines:before { - content: "\F18C"; -} - -.fa-stack-exchange:before { - content: "\F18D"; -} - -.fa-arrow-circle-o-right:before { - content: "\F18E"; -} - -.fa-arrow-circle-o-left:before { - content: "\F190"; -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\F191"; -} - -.fa-dot-circle-o:before { - content: "\F192"; -} - -.fa-wheelchair:before { - content: "\F193"; -} - -.fa-vimeo-square:before { - content: "\F194"; -} - -.fa-turkish-lira:before, -.fa-try:before { - content: "\F195"; -} - -.fa-plus-square-o:before { - content: "\F196"; -} - -.fa-space-shuttle:before { - content: "\F197"; -} - -.fa-slack:before { - content: "\F198"; -} - -.fa-envelope-square:before { - content: "\F199"; -} - -.fa-wordpress:before { - content: "\F19A"; -} - -.fa-openid:before { - content: "\F19B"; -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\F19C"; -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\F19D"; -} - -.fa-yahoo:before { - content: "\F19E"; -} - -.fa-google:before { - content: "\F1A0"; -} - -.fa-reddit:before { - content: "\F1A1"; -} - -.fa-reddit-square:before { - content: "\F1A2"; -} - -.fa-stumbleupon-circle:before { - content: "\F1A3"; -} - -.fa-stumbleupon:before { - content: "\F1A4"; -} - -.fa-delicious:before { - content: "\F1A5"; -} - -.fa-digg:before { - content: "\F1A6"; -} - -.fa-pied-piper-pp:before { - content: "\F1A7"; -} - -.fa-pied-piper-alt:before { - content: "\F1A8"; -} - -.fa-drupal:before { - content: "\F1A9"; -} - -.fa-joomla:before { - content: "\F1AA"; -} - -.fa-language:before { - content: "\F1AB"; -} - -.fa-fax:before { - content: "\F1AC"; -} - -.fa-building:before { - content: "\F1AD"; -} - -.fa-child:before { - content: "\F1AE"; -} - -.fa-paw:before { - content: "\F1B0"; -} - -.fa-spoon:before { - content: "\F1B1"; -} - -.fa-cube:before { - content: "\F1B2"; -} - -.fa-cubes:before { - content: "\F1B3"; -} - -.fa-behance:before { - content: "\F1B4"; -} - -.fa-behance-square:before { - content: "\F1B5"; -} - -.fa-steam:before { - content: "\F1B6"; -} - -.fa-steam-square:before { - content: "\F1B7"; -} - -.fa-recycle:before { - content: "\F1B8"; -} - -.fa-automobile:before, -.fa-car:before { - content: "\F1B9"; -} - -.fa-cab:before, -.fa-taxi:before { - content: "\F1BA"; -} - -.fa-tree:before { - content: "\F1BB"; -} - -.fa-spotify:before { - content: "\F1BC"; -} - -.fa-deviantart:before { - content: "\F1BD"; -} - -.fa-soundcloud:before { - content: "\F1BE"; -} - -.fa-database:before { - content: "\F1C0"; -} - -.fa-file-pdf-o:before { - content: "\F1C1"; -} - -.fa-file-word-o:before { - content: "\F1C2"; -} - -.fa-file-excel-o:before { - content: "\F1C3"; -} - -.fa-file-powerpoint-o:before { - content: "\F1C4"; -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\F1C5"; -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\F1C6"; -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\F1C7"; -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\F1C8"; -} - -.fa-file-code-o:before { - content: "\F1C9"; -} - -.fa-vine:before { - content: "\F1CA"; -} - -.fa-codepen:before { - content: "\F1CB"; -} - -.fa-jsfiddle:before { - content: "\F1CC"; -} - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\F1CD"; -} - -.fa-circle-o-notch:before { - content: "\F1CE"; -} - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "\F1D0"; -} - -.fa-ge:before, -.fa-empire:before { - content: "\F1D1"; -} - -.fa-git-square:before { - content: "\F1D2"; -} - -.fa-git:before { - content: "\F1D3"; -} - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "\F1D4"; -} - -.fa-tencent-weibo:before { - content: "\F1D5"; -} - -.fa-qq:before { - content: "\F1D6"; -} - -.fa-wechat:before, -.fa-weixin:before { - content: "\F1D7"; -} - -.fa-send:before, -.fa-paper-plane:before { - content: "\F1D8"; -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\F1D9"; -} - -.fa-history:before { - content: "\F1DA"; -} - -.fa-circle-thin:before { - content: "\F1DB"; -} - -.fa-header:before { - content: "\F1DC"; -} - -.fa-paragraph:before { - content: "\F1DD"; -} - -.fa-sliders:before { - content: "\F1DE"; -} - -.fa-share-alt:before { - content: "\F1E0"; -} - -.fa-share-alt-square:before { - content: "\F1E1"; -} - -.fa-bomb:before { - content: "\F1E2"; -} - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\F1E3"; -} - -.fa-tty:before { - content: "\F1E4"; -} - -.fa-binoculars:before { - content: "\F1E5"; -} - -.fa-plug:before { - content: "\F1E6"; -} - -.fa-slideshare:before { - content: "\F1E7"; -} - -.fa-twitch:before { - content: "\F1E8"; -} - -.fa-yelp:before { - content: "\F1E9"; -} - -.fa-newspaper-o:before { - content: "\F1EA"; -} - -.fa-wifi:before { - content: "\F1EB"; -} - -.fa-calculator:before { - content: "\F1EC"; -} - -.fa-paypal:before { - content: "\F1ED"; -} - -.fa-google-wallet:before { - content: "\F1EE"; -} - -.fa-cc-visa:before { - content: "\F1F0"; -} - -.fa-cc-mastercard:before { - content: "\F1F1"; -} - -.fa-cc-discover:before { - content: "\F1F2"; -} - -.fa-cc-amex:before { - content: "\F1F3"; -} - -.fa-cc-paypal:before { - content: "\F1F4"; -} - -.fa-cc-stripe:before { - content: "\F1F5"; -} - -.fa-bell-slash:before { - content: "\F1F6"; -} - -.fa-bell-slash-o:before { - content: "\F1F7"; -} - -.fa-trash:before { - content: "\F1F8"; -} - -.fa-copyright:before { - content: "\F1F9"; -} - -.fa-at:before { - content: "\F1FA"; -} - -.fa-eyedropper:before { - content: "\F1FB"; -} - -.fa-paint-brush:before { - content: "\F1FC"; -} - -.fa-birthday-cake:before { - content: "\F1FD"; -} - -.fa-area-chart:before { - content: "\F1FE"; -} - -.fa-pie-chart:before { - content: "\F200"; -} - -.fa-line-chart:before { - content: "\F201"; -} - -.fa-lastfm:before { - content: "\F202"; -} - -.fa-lastfm-square:before { - content: "\F203"; -} - -.fa-toggle-off:before { - content: "\F204"; -} - -.fa-toggle-on:before { - content: "\F205"; -} - -.fa-bicycle:before { - content: "\F206"; -} - -.fa-bus:before { - content: "\F207"; -} - -.fa-ioxhost:before { - content: "\F208"; -} - -.fa-angellist:before { - content: "\F209"; -} - -.fa-cc:before { - content: "\F20A"; -} - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\F20B"; -} - -.fa-meanpath:before { - content: "\F20C"; -} - -.fa-buysellads:before { - content: "\F20D"; -} - -.fa-connectdevelop:before { - content: "\F20E"; -} - -.fa-dashcube:before { - content: "\F210"; -} - -.fa-forumbee:before { - content: "\F211"; -} - -.fa-leanpub:before { - content: "\F212"; -} - -.fa-sellsy:before { - content: "\F213"; -} - -.fa-shirtsinbulk:before { - content: "\F214"; -} - -.fa-simplybuilt:before { - content: "\F215"; -} - -.fa-skyatlas:before { - content: "\F216"; -} - -.fa-cart-plus:before { - content: "\F217"; -} - -.fa-cart-arrow-down:before { - content: "\F218"; -} - -.fa-diamond:before { - content: "\F219"; -} - -.fa-ship:before { - content: "\F21A"; -} - -.fa-user-secret:before { - content: "\F21B"; -} - -.fa-motorcycle:before { - content: "\F21C"; -} - -.fa-street-view:before { - content: "\F21D"; -} - -.fa-heartbeat:before { - content: "\F21E"; -} - -.fa-venus:before { - content: "\F221"; -} - -.fa-mars:before { - content: "\F222"; -} - -.fa-mercury:before { - content: "\F223"; -} - -.fa-intersex:before, -.fa-transgender:before { - content: "\F224"; -} - -.fa-transgender-alt:before { - content: "\F225"; -} - -.fa-venus-double:before { - content: "\F226"; -} - -.fa-mars-double:before { - content: "\F227"; -} - -.fa-venus-mars:before { - content: "\F228"; -} - -.fa-mars-stroke:before { - content: "\F229"; -} - -.fa-mars-stroke-v:before { - content: "\F22A"; -} - -.fa-mars-stroke-h:before { - content: "\F22B"; -} - -.fa-neuter:before { - content: "\F22C"; -} - -.fa-genderless:before { - content: "\F22D"; -} - -.fa-facebook-official:before { - content: "\F230"; -} - -.fa-pinterest-p:before { - content: "\F231"; -} - -.fa-whatsapp:before { - content: "\F232"; -} - -.fa-server:before { - content: "\F233"; -} - -.fa-user-plus:before { - content: "\F234"; -} - -.fa-user-times:before { - content: "\F235"; -} - -.fa-hotel:before, -.fa-bed:before { - content: "\F236"; -} - -.fa-viacoin:before { - content: "\F237"; -} - -.fa-train:before { - content: "\F238"; -} - -.fa-subway:before { - content: "\F239"; -} - -.fa-medium:before { - content: "\F23A"; -} - -.fa-yc:before, -.fa-y-combinator:before { - content: "\F23B"; -} - -.fa-optin-monster:before { - content: "\F23C"; -} - -.fa-opencart:before { - content: "\F23D"; -} - -.fa-expeditedssl:before { - content: "\F23E"; -} - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "\F240"; -} - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "\F241"; -} - -.fa-battery-2:before, -.fa-battery-half:before { - content: "\F242"; -} - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "\F243"; -} - -.fa-battery-0:before, -.fa-battery-empty:before { - content: "\F244"; -} - -.fa-mouse-pointer:before { - content: "\F245"; -} - -.fa-i-cursor:before { - content: "\F246"; -} - -.fa-object-group:before { - content: "\F247"; -} - -.fa-object-ungroup:before { - content: "\F248"; -} - -.fa-sticky-note:before { - content: "\F249"; -} - -.fa-sticky-note-o:before { - content: "\F24A"; -} - -.fa-cc-jcb:before { - content: "\F24B"; -} - -.fa-cc-diners-club:before { - content: "\F24C"; -} - -.fa-clone:before { - content: "\F24D"; -} - -.fa-balance-scale:before { - content: "\F24E"; -} - -.fa-hourglass-o:before { - content: "\F250"; -} - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "\F251"; -} - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "\F252"; -} - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "\F253"; -} - -.fa-hourglass:before { - content: "\F254"; -} - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "\F255"; -} - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "\F256"; -} - -.fa-hand-scissors-o:before { - content: "\F257"; -} - -.fa-hand-lizard-o:before { - content: "\F258"; -} - -.fa-hand-spock-o:before { - content: "\F259"; -} - -.fa-hand-pointer-o:before { - content: "\F25A"; -} - -.fa-hand-peace-o:before { - content: "\F25B"; -} - -.fa-trademark:before { - content: "\F25C"; -} - -.fa-registered:before { - content: "\F25D"; -} - -.fa-creative-commons:before { - content: "\F25E"; -} - -.fa-gg:before { - content: "\F260"; -} - -.fa-gg-circle:before { - content: "\F261"; -} - -.fa-tripadvisor:before { - content: "\F262"; -} - -.fa-odnoklassniki:before { - content: "\F263"; -} - -.fa-odnoklassniki-square:before { - content: "\F264"; -} - -.fa-get-pocket:before { - content: "\F265"; -} - -.fa-wikipedia-w:before { - content: "\F266"; -} - -.fa-safari:before { - content: "\F267"; -} - -.fa-chrome:before { - content: "\F268"; -} - -.fa-firefox:before { - content: "\F269"; -} - -.fa-opera:before { - content: "\F26A"; -} - -.fa-internet-explorer:before { - content: "\F26B"; -} - -.fa-tv:before, -.fa-television:before { - content: "\F26C"; -} - -.fa-contao:before { - content: "\F26D"; -} - -.fa-500px:before { - content: "\F26E"; -} - -.fa-amazon:before { - content: "\F270"; -} - -.fa-calendar-plus-o:before { - content: "\F271"; -} - -.fa-calendar-minus-o:before { - content: "\F272"; -} - -.fa-calendar-times-o:before { - content: "\F273"; -} - -.fa-calendar-check-o:before { - content: "\F274"; -} - -.fa-industry:before { - content: "\F275"; -} - -.fa-map-pin:before { - content: "\F276"; -} - -.fa-map-signs:before { - content: "\F277"; -} - -.fa-map-o:before { - content: "\F278"; -} - -.fa-map:before { - content: "\F279"; -} - -.fa-commenting:before { - content: "\F27A"; -} - -.fa-commenting-o:before { - content: "\F27B"; -} - -.fa-houzz:before { - content: "\F27C"; -} - -.fa-vimeo:before { - content: "\F27D"; -} - -.fa-black-tie:before { - content: "\F27E"; -} - -.fa-fonticons:before { - content: "\F280"; -} - -.fa-reddit-alien:before { - content: "\F281"; -} - -.fa-edge:before { - content: "\F282"; -} - -.fa-credit-card-alt:before { - content: "\F283"; -} - -.fa-codiepie:before { - content: "\F284"; -} - -.fa-modx:before { - content: "\F285"; -} - -.fa-fort-awesome:before { - content: "\F286"; -} - -.fa-usb:before { - content: "\F287"; -} - -.fa-product-hunt:before { - content: "\F288"; -} - -.fa-mixcloud:before { - content: "\F289"; -} - -.fa-scribd:before { - content: "\F28A"; -} - -.fa-pause-circle:before { - content: "\F28B"; -} - -.fa-pause-circle-o:before { - content: "\F28C"; -} - -.fa-stop-circle:before { - content: "\F28D"; -} - -.fa-stop-circle-o:before { - content: "\F28E"; -} - -.fa-shopping-bag:before { - content: "\F290"; -} - -.fa-shopping-basket:before { - content: "\F291"; -} - -.fa-hashtag:before { - content: "\F292"; -} - -.fa-bluetooth:before { - content: "\F293"; -} - -.fa-bluetooth-b:before { - content: "\F294"; -} - -.fa-percent:before { - content: "\F295"; -} - -.fa-gitlab:before { - content: "\F296"; -} - -.fa-wpbeginner:before { - content: "\F297"; -} - -.fa-wpforms:before { - content: "\F298"; -} - -.fa-envira:before { - content: "\F299"; -} - -.fa-universal-access:before { - content: "\F29A"; -} - -.fa-wheelchair-alt:before { - content: "\F29B"; -} - -.fa-question-circle-o:before { - content: "\F29C"; -} - -.fa-blind:before { - content: "\F29D"; -} - -.fa-audio-description:before { - content: "\F29E"; -} - -.fa-volume-control-phone:before { - content: "\F2A0"; -} - -.fa-braille:before { - content: "\F2A1"; -} - -.fa-assistive-listening-systems:before { - content: "\F2A2"; -} - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "\F2A3"; -} - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "\F2A4"; -} - -.fa-glide:before { - content: "\F2A5"; -} - -.fa-glide-g:before { - content: "\F2A6"; -} - -.fa-signing:before, -.fa-sign-language:before { - content: "\F2A7"; -} - -.fa-low-vision:before { - content: "\F2A8"; -} - -.fa-viadeo:before { - content: "\F2A9"; -} - -.fa-viadeo-square:before { - content: "\F2AA"; -} - -.fa-snapchat:before { - content: "\F2AB"; -} - -.fa-snapchat-ghost:before { - content: "\F2AC"; -} - -.fa-snapchat-square:before { - content: "\F2AD"; -} - -.fa-pied-piper:before { - content: "\F2AE"; -} - -.fa-first-order:before { - content: "\F2B0"; -} - -.fa-yoast:before { - content: "\F2B1"; -} - -.fa-themeisle:before { - content: "\F2B2"; -} - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "\F2B3"; -} - -.fa-fa:before, -.fa-font-awesome:before { - content: "\F2B4"; -} - -.fa-handshake-o:before { - content: "\F2B5"; -} - -.fa-envelope-open:before { - content: "\F2B6"; -} - -.fa-envelope-open-o:before { - content: "\F2B7"; -} - -.fa-linode:before { - content: "\F2B8"; -} - -.fa-address-book:before { - content: "\F2B9"; -} - -.fa-address-book-o:before { - content: "\F2BA"; -} - -.fa-vcard:before, -.fa-address-card:before { - content: "\F2BB"; -} - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "\F2BC"; -} - -.fa-user-circle:before { - content: "\F2BD"; -} - -.fa-user-circle-o:before { - content: "\F2BE"; -} - -.fa-user-o:before { - content: "\F2C0"; -} - -.fa-id-badge:before { - content: "\F2C1"; -} - -.fa-drivers-license:before, -.fa-id-card:before { - content: "\F2C2"; -} - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "\F2C3"; -} - -.fa-quora:before { - content: "\F2C4"; -} - -.fa-free-code-camp:before { - content: "\F2C5"; -} - -.fa-telegram:before { - content: "\F2C6"; -} - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "\F2C7"; -} - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "\F2C8"; -} - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "\F2C9"; -} - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "\F2CA"; -} - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "\F2CB"; -} - -.fa-shower:before { - content: "\F2CC"; -} - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "\F2CD"; -} - -.fa-podcast:before { - content: "\F2CE"; -} - -.fa-window-maximize:before { - content: "\F2D0"; -} - -.fa-window-minimize:before { - content: "\F2D1"; -} - -.fa-window-restore:before { - content: "\F2D2"; -} - -.fa-times-rectangle:before, -.fa-window-close:before { - content: "\F2D3"; -} - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "\F2D4"; -} - -.fa-bandcamp:before { - content: "\F2D5"; -} - -.fa-grav:before { - content: "\F2D6"; -} - -.fa-etsy:before { - content: "\F2D7"; -} - -.fa-imdb:before { - content: "\F2D8"; -} - -.fa-ravelry:before { - content: "\F2D9"; -} - -.fa-eercast:before { - content: "\F2DA"; -} - -.fa-microchip:before { - content: "\F2DB"; -} - -.fa-snowflake-o:before { - content: "\F2DC"; -} - -.fa-superpowers:before { - content: "\F2DD"; -} - -.fa-wpexplorer:before { - content: "\F2DE"; -} - -.fa-meetup:before { - content: "\F2E0"; -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; -} - -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; -} - -.ps__rail-y { - right: 0 !important; - left: auto !important; -} - -#jqstooltip { - width: auto !important; - height: auto !important; - padding: 5px 10px !important; - border-radius: 2px !important; -} - -table.dataTable.no-footer { - border-bottom: 1px solid rgba(0, 0, 0, 0.0625); - margin-bottom: 20px; -} - -.sorting_asc:focus { - outline: none; -} - -.dataTables_wrapper { - overflow: hidden; - padding-bottom: 5px; -} - -.dataTables_wrapper .dataTables_length { - color: #313435; - float: left; -} - -@media screen and (max-width: 767px) { - .dataTables_wrapper .dataTables_length { - text-align: left; - } -} - -.dataTables_wrapper .dataTables_length select { - border: 1px solid rgba(0, 0, 0, 0.0625); - border-radius: 2px; - -webkit-box-shadow: none; - box-shadow: none; - height: 35px; - font-size: 14px; - padding: 5px; - margin-left: 5px; - margin-right: 5px; - color: #72777a; - -webkit-transition: all 0.2s ease-in; - transition: all 0.2s ease-in; -} - -.dataTables_wrapper .dataTables_filter { - color: #313435; - float: right; -} - -@media screen and (max-width: 767px) { - .dataTables_wrapper .dataTables_filter { - text-align: left; - } -} - -.dataTables_wrapper .dataTables_filter input { - border: 1px solid rgba(0, 0, 0, 0.0625); - border-radius: 2px; - -webkit-box-shadow: none; - box-shadow: none; - height: 35px; - font-size: 14px; - margin-left: 15px; - padding: 5px; - color: #72777a; - -webkit-transition: all 0.2s ease-in; - transition: all 0.2s ease-in; -} - -.dataTables_wrapper .dataTables_info { - color: #72777a; - float: left; -} - -.dataTables_wrapper .dataTables_processing { - color: #313435; -} - -.dataTables_wrapper .dataTables_paginate { - color: #72777a; - float: right; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button { - color: #72777a !important; - padding: 6px 12px; - border-radius: 2px; - margin-right: 10px; - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; - text-decoration: none; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button.next, -.dataTables_wrapper .dataTables_paginate .paginate_button.previous, -.dataTables_wrapper .dataTables_paginate .paginate_button.first, -.dataTables_wrapper .dataTables_paginate .paginate_button.last { - border-radius: 2px; - text-decoration: none; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover, -.dataTables_wrapper .dataTables_paginate .paginate_button.next:focus, -.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover, -.dataTables_wrapper .dataTables_paginate .paginate_button.previous:focus, -.dataTables_wrapper .dataTables_paginate .paginate_button.first:hover, -.dataTables_wrapper .dataTables_paginate .paginate_button.first:focus, -.dataTables_wrapper .dataTables_paginate .paginate_button.last:hover, -.dataTables_wrapper .dataTables_paginate .paginate_button.last:focus { - color: #fff !important; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled, -.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled, -.dataTables_wrapper .dataTables_paginate .paginate_button.first.disabled, -.dataTables_wrapper .dataTables_paginate .paginate_button.last.disabled { - opacity: 0.4; - pointer-events: none; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button:hover { - color: #fff !important; - background: #7774e7; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button.current { - color: #fff !important; - background: #7774e7; -} - -.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { - color: #fff !important; - background: #7774e7; -} - -.dataTables_wrapper .status { - width: 5px; - height: 5px; -} - -.fc { - background-color: #fff; - border: 1px solid rgba(0, 0, 0, 0.0625); -} - -.fc th { - text-align: center; - padding: 15px; - background-color: transparent; - color: #72777a; - font-size: 12px; - text-transform: uppercase; - border-right-width: 0; - border-left-width: 0; -} - -.fc button { - background-color: #fff; - background-image: none; - height: 37px; - padding: 0 15px; - color: #595d60; -} - -.fc button.fc-state-default { - border-color: rgba(0, 0, 0, 0.0625); - -webkit-box-shadow: none; - box-shadow: none; -} - -.fc button.fc-state-active { - -webkit-box-shadow: none; - box-shadow: none; - background-color: rgba(0, 0, 0, 0.0625); -} - -.fc-toolbar { - padding: 20px 20px 0; -} - -.fc-view, -.fc-view > table { - background-color: #fff; -} - -.fc-basic-view td.fc-day-number, -.fc-basic-view td.fc-week-number span { - padding: 7px 15px; -} - -.fc-unthemed .fc-content, -.fc-unthemed .fc-divider, -.fc-unthemed .fc-popover, -.fc-unthemed .fc-row, -.fc-unthemed tbody, -.fc-unthemed td, -.fc-unthemed th, -.fc-unthemed thead { - border-color: rgba(0, 0, 0, 0.0625); -} - -.fc-unthemed .fc-today { - background-color: transparent; -} - -.fc-basic-view .fc-day-number.fc-today { - background-color: #0f9aee; - color: #fff; - display: inline-block; - float: right; - border-radius: 50%; - padding: 6px 8px; - line-height: 1; - margin: 4px 4px 0 0; -} - -.fc-event-container .fc-event { - border-radius: 0; - border: 0; - background-color: #e5f4fd; - color: #0f9aee !important; - font-size: 12px; - line-height: 2.5; - padding: 0 15px; -} - -.fc-event-container .fc-day-grid-event { - margin: 1px 5px 5px; -} - -.datepicker { - border-radius: 0; - padding: 25px; - -webkit-box-shadow: none; - box-shadow: none; - border: 1px solid rgba(0, 0, 0, 0.0625); -} - -.datepicker table tr th, -.datepicker table tr td { - border-radius: 0; - width: 40px; - height: 35px; -} - -.datepicker table tr td { - -webkit-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; -} - -.datepicker table tr td span { - border-radius: 0; -} - -.datepicker table tr td span.active:active, -.datepicker table tr td span.active:hover:active, -.datepicker table tr td span.active.disabled:active, -.datepicker table tr td span.active.disabled:hover:active, -.datepicker table tr td span.active.active, -.datepicker table tr td span.active:hover.active, -.datepicker table tr td span.active.disabled.active, -.datepicker table tr td span.active.disabled:hover.active, -.datepicker table tr td span.active.active:hover, -.datepicker table tr td span.active:hover.active:hover, -.datepicker table tr td.active:active, -.datepicker table tr td.active.highlighted:active, -.datepicker table tr td.active.active, -.datepicker table tr td.active.highlighted.active, -.datepicker table tr td.active:active:hover, -.datepicker table tr td.active.highlighted:active:hover, -.datepicker table tr td.active.active:hover, -.datepicker table tr td.active.highlighted.active:hover, -.datepicker table tr td.active:active:focus, -.datepicker table tr td.active.highlighted:active:focus, -.datepicker table tr td.active.active:focus, -.datepicker table tr td.active.highlighted.active:focus, -.datepicker table tr td.active:active.focus, -.datepicker table tr td.active.highlighted:active.focus, -.datepicker table tr td.active.active.focus, -.datepicker table tr td.active.highlighted.active.focus { - color: #fff; - background-color: #7774e7; - border-color: transparent; -} - -.datepicker table tr td span:hover, -.datepicker table tr td span.focused { - background: #7774e7; - color: #fff; -} - -.datepicker table tr td.day:hover, -.datepicker table tr td.focused { - background: #7774e7; - color: #fff; - cursor: pointer; -} - -.datepicker .datepicker-switch:hover, -.datepicker .prev:hover, -.datepicker .next:hover, -.datepicker tfoot tr th:hover { - background: #7774e7; - color: #fff; - cursor: pointer; -} - -.datepicker-inline { - width: 330px; -} - -.daterangepicker { - border-radius: 0; - padding: 30px; - -webkit-box-shadow: none; - box-shadow: none; - border: 1px solid rgba(0, 0, 0, 0.0625); -} - -.daterangepicker .input-mini { - border-radius: 0; - margin-bottom: 20px; - height: 40px; - padding: 0 6px 0 35px; -} - -.daterangepicker .input-mini.active { - border-radius: 0; - border-color: #6dc2f6; -} - -.daterangepicker .daterangepicker_input i { - position: absolute; - left: 10px; - top: 13px; -} - -.daterangepicker td, -.daterangepicker th { - border-radius: 0; - width: 40px; - height: 35px; -} - -.daterangepicker td.available:hover, -.daterangepicker th.available:hover { - background: #7774e7; - color: #fff; -} - -.daterangepicker td.in-range { - background-color: transparent; - color: #7774e7; -} - -.daterangepicker td.active { - background-color: #7774e7; - border-color: transparent; - color: #fff; -} - -.daterangepicker td.active:hover { - background-color: #7774e7; - border-color: transparent; - color: #fff; -} - -.daterangepicker td.start-date { - border-radius: 0; -} - -.daterangepicker td.start-date.end-date { - border-radius: 0; -} - -.daterangepicker td.end-date { - border-radius: 0; -} - -.daterangepicker select.hourselect, -.daterangepicker select.minuteselect, -.daterangepicker select.secondselect, -.daterangepicker select.ampmselect { - border: 1px solid rgba(0, 0, 0, 0.0625); - min-height: 30px; -} - -.daterangepicker .calendar-time i { - top: 8px; - left: 35px; +.daterangepicker .calendar-time i { + top: 8px; + left: 35px; } @media screen and (min-width: 768px) { @@ -80744,633 +77697,6 @@ table.dataTable.no-footer { } } -/* Theme Variables - ------------------------------------------*/ - -/* Layout - ------------------------------------------*/ - -.note-editor { - position: relative; - /* dropzone */ -} - -.note-editor .note-dropzone { - position: absolute; - display: none; - z-index: 100; - color: lightskyblue; - background-color: #fff; - opacity: 0.95; -} - -.note-editor .note-dropzone .note-dropzone-message { - display: table-cell; - vertical-align: middle; - text-align: center; - font-size: 28px; - font-weight: 700; -} - -.note-editor .note-dropzone.hover { - color: #098ddf; -} - -.note-editor.dragover .note-dropzone { - display: table; -} - -.note-editor .note-editing-area { - position: relative; -} - -.note-editor .note-editing-area .note-editable { - outline: none; -} - -.note-editor .note-editing-area .note-editable sup { - vertical-align: super; -} - -.note-editor .note-editing-area .note-editable sub { - vertical-align: sub; -} - -.note-editor .note-editing-area .note-editable img.note-float-left { - margin-right: 10px; -} - -.note-editor .note-editing-area .note-editable img.note-float-right { - margin-left: 10px; -} - -/* Frame mode layout -------------------------------------------*/ - -.note-editor.note-frame { - border: 1px solid #a9a9a9; - /* codeview mode */ - /* fullscreen mode */ - /* Notifications */ - /* statusbar */ -} - -.note-editor.note-frame.codeview .note-editing-area .note-editable { - display: none; -} - -.note-editor.note-frame.codeview .note-editing-area .note-codable { - display: block; -} - -.note-editor.note-frame .note-editing-area { - overflow: hidden; - /* editable */ - /* codeable */ -} - -.note-editor.note-frame .note-editing-area .note-editable { - background-color: #fff; - color: #000; - padding: 10px; - overflow: auto; - word-wrap: break-word; -} - -.note-editor.note-frame .note-editing-area .note-editable[contenteditable="false"] { - background-color: #e5e5e5; -} - -.note-editor.note-frame .note-editing-area .note-codable { - display: none; - width: 100%; - padding: 10px; - border: none; - -webkit-box-shadow: none; - box-shadow: none; - font-family: Menlo, Monaco, monospace, sans-serif; - font-size: 14px; - color: #ccc; - background-color: #222; - resize: none; - /* override BS2 default style */ - -ms-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - border-radius: 0; - margin-bottom: 0; -} - -.note-editor.note-frame.fullscreen { - position: fixed; - top: 0; - left: 0; - width: 100% !important; - z-index: 1050; - /* bs3 modal-backdrop: 1030, bs2: 1040 */ -} - -.note-editor.note-frame.fullscreen .note-editable { - background-color: #fff; -} - -.note-editor.note-frame.fullscreen .note-resizebar { - display: none; -} - -.note-editor.note-frame .note-status-output { - display: block; - width: 100%; - font-size: 14px; - line-height: 1.42857143; - height: 20px; - margin-bottom: 0; - color: #000; - border: 0; - border-top: 1px solid #e2e2e2; -} - -.note-editor.note-frame .note-status-output:empty { - height: 0; - border-top: 0 solid transparent; -} - -.note-editor.note-frame .note-status-output .pull-right { - float: right !important; -} - -.note-editor.note-frame .note-status-output .text-muted { - color: #777; -} - -.note-editor.note-frame .note-status-output .text-primary { - color: #286090; -} - -.note-editor.note-frame .note-status-output .text-success { - color: #3c763d; -} - -.note-editor.note-frame .note-status-output .text-info { - color: #31708f; -} - -.note-editor.note-frame .note-status-output .text-warning { - color: #8a6d3b; -} - -.note-editor.note-frame .note-status-output .text-danger { - color: #a94442; -} - -.note-editor.note-frame .note-status-output .alert { - margin: -7px 0 0 0; - padding: 7px 10px 2px 10px; - border-radius: 0; - color: #000; - background-color: #f5f5f5; -} - -.note-editor.note-frame .note-status-output .alert .note-icon { - margin-right: 5px; -} - -.note-editor.note-frame .note-status-output .alert-success { - color: #3c763d !important; - background-color: #dff0d8 !important; -} - -.note-editor.note-frame .note-status-output .alert-info { - color: #31708f !important; - background-color: #d9edf7 !important; -} - -.note-editor.note-frame .note-status-output .alert-warning { - color: #8a6d3b !important; - background-color: #fcf8e3 !important; -} - -.note-editor.note-frame .note-status-output .alert-danger { - color: #a94442 !important; - background-color: #f2dede !important; -} - -.note-editor.note-frame .note-statusbar { - background-color: #f5f5f5; - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - border-top: 1px solid #ddd; -} - -.note-editor.note-frame .note-statusbar .note-resizebar { - padding-top: 1px; - height: 9px; - width: 100%; - cursor: ns-resize; -} - -.note-editor.note-frame .note-statusbar .note-resizebar .note-icon-bar { - width: 20px; - margin: 1px auto; - border-top: 1px solid #a9a9a9; -} - -.note-editor.note-frame .note-statusbar.locked .note-resizebar { - cursor: default; -} - -.note-editor.note-frame .note-statusbar.locked .note-resizebar .note-icon-bar { - display: none; -} - -.note-editor.note-frame .note-placeholder { - padding: 10px; -} - -/* Popover -------------------------------------------*/ - -.note-popover.popover { - max-width: none; -} - -.note-popover.popover .popover-content a { - display: inline-block; - max-width: 200px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - /* for FF */ - vertical-align: middle; - /* for FF */ -} - -.note-popover.popover .arrow { - left: 20px !important; -} - -/* Popover and Toolbar (Button container) -------------------------------------------*/ - -.note-popover .popover-content, -.panel-heading.note-toolbar { - margin: 0; - padding: 0 0 5px 5px; - /* dropdown-menu for toolbar and popover */ - /* color palette for toolbar and popover */ -} - -.note-popover .popover-content > .btn-group, -.panel-heading.note-toolbar > .btn-group { - margin-top: 5px; - margin-left: 0; - margin-right: 5px; -} - -.note-popover .popover-content .btn-group .note-table, -.panel-heading.note-toolbar .btn-group .note-table { - min-width: 0; - padding: 5px; -} - -.note-popover .popover-content .btn-group .note-table .note-dimension-picker, -.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker { - font-size: 18px; -} - -.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher, -.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher { - position: absolute !important; - z-index: 3; - width: 10em; - height: 10em; - cursor: pointer; -} - -.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted, -.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted { - position: relative !important; - z-index: 1; - width: 5em; - height: 5em; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; -} - -.note-popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted, -.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted { - position: absolute !important; - z-index: 2; - width: 1em; - height: 1em; - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC") repeat; -} - -.note-popover .popover-content .note-style .dropdown-style blockquote, -.note-popover .popover-content .note-style .dropdown-style pre, -.panel-heading.note-toolbar .note-style .dropdown-style blockquote, -.panel-heading.note-toolbar .note-style .dropdown-style pre { - margin: 0; - padding: 5px 10px; -} - -.note-popover .popover-content .note-style .dropdown-style h1, -.note-popover .popover-content .note-style .dropdown-style h2, -.note-popover .popover-content .note-style .dropdown-style h3, -.note-popover .popover-content .note-style .dropdown-style h4, -.note-popover .popover-content .note-style .dropdown-style h5, -.note-popover .popover-content .note-style .dropdown-style h6, -.note-popover .popover-content .note-style .dropdown-style p, -.panel-heading.note-toolbar .note-style .dropdown-style h1, -.panel-heading.note-toolbar .note-style .dropdown-style h2, -.panel-heading.note-toolbar .note-style .dropdown-style h3, -.panel-heading.note-toolbar .note-style .dropdown-style h4, -.panel-heading.note-toolbar .note-style .dropdown-style h5, -.panel-heading.note-toolbar .note-style .dropdown-style h6, -.panel-heading.note-toolbar .note-style .dropdown-style p { - margin: 0; - padding: 0; -} - -.note-popover .popover-content .note-color .dropdown-toggle, -.panel-heading.note-toolbar .note-color .dropdown-toggle { - width: 20px; - padding-left: 5px; -} - -.note-popover .popover-content .note-color .dropdown-menu, -.panel-heading.note-toolbar .note-color .dropdown-menu { - min-width: 340px; -} - -.note-popover .popover-content .note-color .dropdown-menu .btn-group, -.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group { - margin: 0; -} - -.note-popover .popover-content .note-color .dropdown-menu .btn-group:first-child, -.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group:first-child { - margin: 0 5px; -} - -.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-palette-title, -.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title { - font-size: 12px; - margin: 2px 7px; - text-align: center; - border-bottom: 1px solid #eee; -} - -.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset, -.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset { - font-size: 11px; - margin: 3px; - padding: 0 3px; - cursor: pointer; - border-radius: 5px; -} - -.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-row, -.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-row { - height: 20px; -} - -.note-popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset:hover, -.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover { - background: #eee; -} - -.note-popover .popover-content .note-para .dropdown-menu, -.panel-heading.note-toolbar .note-para .dropdown-menu { - min-width: 216px; - padding: 5px; -} - -.note-popover .popover-content .note-para .dropdown-menu > div:first-child, -.panel-heading.note-toolbar .note-para .dropdown-menu > div:first-child { - margin-right: 5px; -} - -.note-popover .popover-content .dropdown-menu, -.panel-heading.note-toolbar .dropdown-menu { - min-width: 90px; - /* dropdown-menu right position */ - /* http://forrst.com/posts/Bootstrap_right_positioned_dropdown-2KB */ - /* dropdown-menu for selectbox */ -} - -.note-popover .popover-content .dropdown-menu.right, -.panel-heading.note-toolbar .dropdown-menu.right { - right: 0; - left: auto; -} - -.note-popover .popover-content .dropdown-menu.right::before, -.panel-heading.note-toolbar .dropdown-menu.right::before { - right: 9px; - left: auto !important; -} - -.note-popover .popover-content .dropdown-menu.right::after, -.panel-heading.note-toolbar .dropdown-menu.right::after { - right: 10px; - left: auto !important; -} - -.note-popover .popover-content .dropdown-menu.note-check li a i, -.panel-heading.note-toolbar .dropdown-menu.note-check li a i { - color: deepskyblue; - visibility: hidden; -} - -.note-popover .popover-content .dropdown-menu.note-check li a.checked i, -.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i { - visibility: visible; -} - -.note-popover .popover-content .note-fontsize-10, -.panel-heading.note-toolbar .note-fontsize-10 { - font-size: 10px; -} - -.note-popover .popover-content .note-color-palette, -.panel-heading.note-toolbar .note-color-palette { - line-height: 1; -} - -.note-popover .popover-content .note-color-palette div .note-color-btn, -.panel-heading.note-toolbar .note-color-palette div .note-color-btn { - width: 20px; - height: 20px; - padding: 0; - margin: 0; - border: 1px solid #fff; -} - -.note-popover .popover-content .note-color-palette div .note-color-btn:hover, -.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover { - border: 1px solid #000; -} - -/* Dialog -------------------------------------------*/ - -.note-dialog > div { - display: none; - /* BS2's hide pacth. */ -} - -.note-dialog .form-group { - /* overwrite BS's form-horizontal minus margins */ - margin-left: 0; - margin-right: 0; -} - -.note-dialog .note-modal-form { - margin: 0; - /* overwrite BS2's form margin bottom */ -} - -.note-dialog .note-image-dialog .note-dropzone { - min-height: 100px; - font-size: 30px; - line-height: 4; - /* vertical-align */ - color: lightgray; - text-align: center; - border: 4px dashed lightgray; - margin-bottom: 10px; -} - -/* Placeholder -------------------------------------------*/ - -.note-placeholder { - position: absolute; - display: none; - color: gray; -} - -/* Handle -------------------------------------------*/ - -.note-handle { - /* control selection */ -} - -.note-handle .note-control-selection { - position: absolute; - display: none; - border: 1px solid black; -} - -.note-handle .note-control-selection > div { - position: absolute; -} - -.note-handle .note-control-selection .note-control-selection-bg { - width: 100%; - height: 100%; - background-color: #000; - -webkit-opacity: 0.3; - -khtml-opacity: 0.3; - -moz-opacity: 0.3; - opacity: 0.3; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); - filter: alpha(opacity=30); -} - -.note-handle .note-control-selection .note-control-handle, -.note-handle .note-control-selection .note-control-holder, -.note-handle .note-control-selection .note-control-sizing { - width: 7px; - height: 7px; - border: 1px solid #000; -} - -.note-handle .note-control-selection .note-control-sizing { - background-color: #fff; -} - -.note-handle .note-control-selection .note-control-nw { - top: -5px; - left: -5px; - border-right: none; - border-bottom: none; -} - -.note-handle .note-control-selection .note-control-ne { - top: -5px; - right: -5px; - border-bottom: none; - border-left: none; -} - -.note-handle .note-control-selection .note-control-sw { - bottom: -5px; - left: -5px; - border-top: none; - border-right: none; -} - -.note-handle .note-control-selection .note-control-se { - right: -5px; - bottom: -5px; - cursor: se-resize; -} - -.note-handle .note-control-selection .note-control-se.note-control-holder { - cursor: default; - border-top: none; - border-left: none; -} - -.note-handle .note-control-selection .note-control-selection-info { - right: 0; - bottom: 0; - padding: 5px; - margin: 5px; - color: #fff; - background-color: #000; - font-size: 12px; - border-radius: 5px; - -webkit-opacity: 0.7; - -khtml-opacity: 0.7; - -moz-opacity: 0.7; - opacity: 0.7; - -ms-filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70); - filter: alpha(opacity=70); -} - -.note-hint-popover { - min-width: 100px; - padding: 2px; -} - -.note-hint-popover .popover-content { - padding: 3px; - max-height: 150px; - overflow: auto; -} - -.note-hint-popover .popover-content .note-hint-group .note-hint-item { - display: block !important; - padding: 3px; -} - -.note-hint-popover .popover-content .note-hint-group .note-hint-item.active, -.note-hint-popover .popover-content .note-hint-group .note-hint-item:hover { - display: block; - clear: both; - font-weight: 400; - line-height: 1.4; - color: white; - white-space: nowrap; - text-decoration: none; - background-color: #428bca; - outline: 0; - cursor: pointer; -} - .card-header { color: #ffffff; } diff --git a/public/vendor/avored-admin/fonts/fa-brands-400.eot b/public/vendor/avored-admin/fonts/fa-brands-400.eot deleted file mode 100644 index 0a03d33a5..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-brands-400.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-brands-400.svg b/public/vendor/avored-admin/fonts/fa-brands-400.svg deleted file mode 100644 index 13f314052..000000000 --- a/public/vendor/avored-admin/fonts/fa-brands-400.svg +++ /dev/null @@ -1,1007 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/fa-brands-400.ttf b/public/vendor/avored-admin/fonts/fa-brands-400.ttf deleted file mode 100644 index d235672bd..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-brands-400.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-brands-400.woff b/public/vendor/avored-admin/fonts/fa-brands-400.woff deleted file mode 100644 index 576339946..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-brands-400.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-brands-400.woff2 b/public/vendor/avored-admin/fonts/fa-brands-400.woff2 deleted file mode 100644 index 9203fde68..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-brands-400.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-regular-400.eot b/public/vendor/avored-admin/fonts/fa-regular-400.eot deleted file mode 100644 index 6c80dca7e..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-regular-400.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-regular-400.svg b/public/vendor/avored-admin/fonts/fa-regular-400.svg deleted file mode 100644 index 4b02eae97..000000000 --- a/public/vendor/avored-admin/fonts/fa-regular-400.svg +++ /dev/null @@ -1,362 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/fa-regular-400.ttf b/public/vendor/avored-admin/fonts/fa-regular-400.ttf deleted file mode 100644 index 17a700ca5..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-regular-400.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-regular-400.woff b/public/vendor/avored-admin/fonts/fa-regular-400.woff deleted file mode 100644 index e8e32fe4f..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-regular-400.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-regular-400.woff2 b/public/vendor/avored-admin/fonts/fa-regular-400.woff2 deleted file mode 100644 index d14940e5d..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-regular-400.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-solid-900.eot b/public/vendor/avored-admin/fonts/fa-solid-900.eot deleted file mode 100644 index ffa649f0b..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-solid-900.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-solid-900.svg b/public/vendor/avored-admin/fonts/fa-solid-900.svg deleted file mode 100644 index 9d69a3e3f..000000000 --- a/public/vendor/avored-admin/fonts/fa-solid-900.svg +++ /dev/null @@ -1,1640 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/fa-solid-900.ttf b/public/vendor/avored-admin/fonts/fa-solid-900.ttf deleted file mode 100644 index d9acbb459..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-solid-900.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-solid-900.woff b/public/vendor/avored-admin/fonts/fa-solid-900.woff deleted file mode 100644 index 683de59b2..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-solid-900.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fa-solid-900.woff2 b/public/vendor/avored-admin/fonts/fa-solid-900.woff2 deleted file mode 100644 index 73d97318b..000000000 Binary files a/public/vendor/avored-admin/fonts/fa-solid-900.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fontawesome-webfont.eot b/public/vendor/avored-admin/fonts/fontawesome-webfont.eot deleted file mode 100644 index e9f60ca95..000000000 Binary files a/public/vendor/avored-admin/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fontawesome-webfont.svg b/public/vendor/avored-admin/fonts/fontawesome-webfont.svg deleted file mode 100644 index 855c845e5..000000000 --- a/public/vendor/avored-admin/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,2671 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/fontawesome-webfont.ttf b/public/vendor/avored-admin/fonts/fontawesome-webfont.ttf deleted file mode 100644 index 35acda2fa..000000000 Binary files a/public/vendor/avored-admin/fonts/fontawesome-webfont.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fontawesome-webfont.woff b/public/vendor/avored-admin/fonts/fontawesome-webfont.woff deleted file mode 100644 index 400014a4b..000000000 Binary files a/public/vendor/avored-admin/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/fontawesome-webfont.woff2 b/public/vendor/avored-admin/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 4d13fc604..000000000 Binary files a/public/vendor/avored-admin/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/summernote.eot b/public/vendor/avored-admin/fonts/summernote.eot deleted file mode 100644 index 4f5d02c2d..000000000 Binary files a/public/vendor/avored-admin/fonts/summernote.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/summernote.ttf b/public/vendor/avored-admin/fonts/summernote.ttf deleted file mode 100644 index a5976dbfb..000000000 Binary files a/public/vendor/avored-admin/fonts/summernote.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/summernote.woff b/public/vendor/avored-admin/fonts/summernote.woff deleted file mode 100644 index 6c6dfaaa2..000000000 Binary files a/public/vendor/avored-admin/fonts/summernote.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.eot b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.eot deleted file mode 100644 index 48f0b458a..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.svg b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.svg deleted file mode 100644 index b782c9bae..000000000 --- a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.svg +++ /dev/null @@ -1,1100 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.ttf b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.ttf deleted file mode 100644 index 6c252f667..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.woff b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.woff deleted file mode 100644 index 033e4b774..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.woff2 b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.woff2 deleted file mode 100644 index 762e2f669..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-brands-400.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.eot b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.eot deleted file mode 100644 index 43df54915..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.svg b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.svg deleted file mode 100644 index 0357cc1cb..000000000 --- a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.svg +++ /dev/null @@ -1,368 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.ttf b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.ttf deleted file mode 100644 index 945ec6203..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.woff b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.woff deleted file mode 100644 index 84a0a4962..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.woff2 b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.woff2 deleted file mode 100644 index 3a61d9eb2..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-regular-400.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.eot b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.eot deleted file mode 100644 index 698079497..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.eot and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.svg b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.svg deleted file mode 100644 index 40679fd31..000000000 --- a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.svg +++ /dev/null @@ -1,1892 +0,0 @@ - - - diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.ttf b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.ttf deleted file mode 100644 index acabb8d49..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.ttf and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.woff b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.woff deleted file mode 100644 index 19e0bf381..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.woff and /dev/null differ diff --git a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.woff2 b/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.woff2 deleted file mode 100644 index 21cfb1211..000000000 Binary files a/public/vendor/avored-admin/fonts/vendor/@fortawesome/fontawesome-free-webwebfa-solid-900.woff2 and /dev/null differ diff --git a/public/vendor/avored-admin/js/app.js b/public/vendor/avored-admin/js/app.js index bf566ebd3..f20abbe8b 100644 --- a/public/vendor/avored-admin/js/app.js +++ b/public/vendor/avored-admin/js/app.js @@ -60,1502 +60,113852 @@ /******/ __webpack_require__.p = "/"; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); +/******/ return __webpack_require__(__webpack_require__.s = 146); /******/ }) /************************************************************************/ -/******/ ({ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(module) {var require;//! moment.js + +;(function (global, factory) { + true ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() +}(this, (function () { 'use strict'; + + var hookCallback; + + function hooks () { + return hookCallback.apply(null, arguments); + } + + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; + } + + function isArray(input) { + return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]'; + } + + function isObject(input) { + // IE8 will treat undefined and null as object if it wasn't for + // input != null + return input != null && Object.prototype.toString.call(input) === '[object Object]'; + } + + function isObjectEmpty(obj) { + if (Object.getOwnPropertyNames) { + return (Object.getOwnPropertyNames(obj).length === 0); + } else { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } + } + return true; + } + } + + function isUndefined(input) { + return input === void 0; + } + + function isNumber(input) { + return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]'; + } + + function isDate(input) { + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; + } + + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); + } + + function extend(a, b) { + for (var i in b) { + if (hasOwnProp(b, i)) { + a[i] = b[i]; + } + } + + if (hasOwnProp(b, 'toString')) { + a.toString = b.toString; + } + + if (hasOwnProp(b, 'valueOf')) { + a.valueOf = b.valueOf; + } + + return a; + } + + function createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false, + parsedDateParts : [], + meridiem : null, + rfc2822 : false, + weekdayMismatch : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + + var some; + if (Array.prototype.some) { + some = Array.prototype.some; + } else { + some = function (fun) { + var t = Object(this); + var len = t.length >>> 0; + + for (var i = 0; i < len; i++) { + if (i in t && fun.call(this, t[i], i, t)) { + return true; + } + } + + return false; + }; + } + + function isValid(m) { + if (m._isValid == null) { + var flags = getParsingFlags(m); + var parsedParts = some.call(flags.parsedDateParts, function (i) { + return i != null; + }); + var isNowValid = !isNaN(m._d.getTime()) && + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.invalidWeekday && + !flags.weekdayMismatch && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated && + (!flags.meridiem || (flags.meridiem && parsedParts)); + + if (m._strict) { + isNowValid = isNowValid && + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; + } + + if (Object.isFrozen == null || !Object.isFrozen(m)) { + m._isValid = isNowValid; + } + else { + return isNowValid; + } + } + return m._isValid; + } + + function createInvalid (flags) { + var m = createUTC(NaN); + if (flags != null) { + extend(getParsingFlags(m), flags); + } + else { + getParsingFlags(m).userInvalidated = true; + } + + return m; + } + + // Plugins that add properties should also add the key here (null value), + // so we can properly clone ourselves. + var momentProperties = hooks.momentProperties = []; + + function copyConfig(to, from) { + var i, prop, val; + + if (!isUndefined(from._isAMomentObject)) { + to._isAMomentObject = from._isAMomentObject; + } + if (!isUndefined(from._i)) { + to._i = from._i; + } + if (!isUndefined(from._f)) { + to._f = from._f; + } + if (!isUndefined(from._l)) { + to._l = from._l; + } + if (!isUndefined(from._strict)) { + to._strict = from._strict; + } + if (!isUndefined(from._tzm)) { + to._tzm = from._tzm; + } + if (!isUndefined(from._isUTC)) { + to._isUTC = from._isUTC; + } + if (!isUndefined(from._offset)) { + to._offset = from._offset; + } + if (!isUndefined(from._pf)) { + to._pf = getParsingFlags(from); + } + if (!isUndefined(from._locale)) { + to._locale = from._locale; + } + + if (momentProperties.length > 0) { + for (i = 0; i < momentProperties.length; i++) { + prop = momentProperties[i]; + val = from[prop]; + if (!isUndefined(val)) { + to[prop] = val; + } + } + } + + return to; + } + + var updateInProgress = false; + + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(config._d != null ? config._d.getTime() : NaN); + if (!this.isValid()) { + this._d = new Date(NaN); + } + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks.updateOffset(this); + updateInProgress = false; + } + } + + function isMoment (obj) { + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); + } + + function absFloor (number) { + if (number < 0) { + // -0 -> 0 + return Math.ceil(number) || 0; + } else { + return Math.floor(number); + } + } + + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; + + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + value = absFloor(coercedNumber); + } + + return value; + } + + // compare two arrays, return the number of differences + function compareArrays(array1, array2, dontConvert) { + var len = Math.min(array1.length, array2.length), + lengthDiff = Math.abs(array1.length - array2.length), + diffs = 0, + i; + for (i = 0; i < len; i++) { + if ((dontConvert && array1[i] !== array2[i]) || + (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) { + diffs++; + } + } + return diffs + lengthDiff; + } + + function warn(msg) { + if (hooks.suppressDeprecationWarnings === false && + (typeof console !== 'undefined') && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + + return extend(function () { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(null, msg); + } + if (firstTime) { + var args = []; + var arg; + for (var i = 0; i < arguments.length; i++) { + arg = ''; + if (typeof arguments[i] === 'object') { + arg += '\n[' + i + '] '; + for (var key in arguments[0]) { + arg += key + ': ' + arguments[0][key] + ', '; + } + arg = arg.slice(0, -2); // Remove trailing comma and space + } else { + arg = arguments[i]; + } + args.push(arg); + } + warn(msg + '\nArguments: ' + Array.prototype.slice.call(args).join('') + '\n' + (new Error()).stack); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (hooks.deprecationHandler != null) { + hooks.deprecationHandler(name, msg); + } + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks.suppressDeprecationWarnings = false; + hooks.deprecationHandler = null; + + function isFunction(input) { + return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]'; + } + + function set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (isFunction(prop)) { + this[i] = prop; + } else { + this['_' + i] = prop; + } + } + this._config = config; + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _dayOfMonthOrdinalParse. + // TODO: Remove "ordinalParse" fallback in next major release. + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + + '|' + (/\d{1,2}/).source); + } + + function mergeConfigs(parentConfig, childConfig) { + var res = extend({}, parentConfig), prop; + for (prop in childConfig) { + if (hasOwnProp(childConfig, prop)) { + if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) { + res[prop] = {}; + extend(res[prop], parentConfig[prop]); + extend(res[prop], childConfig[prop]); + } else if (childConfig[prop] != null) { + res[prop] = childConfig[prop]; + } else { + delete res[prop]; + } + } + } + for (prop in parentConfig) { + if (hasOwnProp(parentConfig, prop) && + !hasOwnProp(childConfig, prop) && + isObject(parentConfig[prop])) { + // make sure changes to properties don't modify parent config + res[prop] = extend({}, res[prop]); + } + } + return res; + } + + function Locale(config) { + if (config != null) { + this.set(config); + } + } + + var keys; + + if (Object.keys) { + keys = Object.keys; + } else { + keys = function (obj) { + var i, res = []; + for (i in obj) { + if (hasOwnProp(obj, i)) { + res.push(i); + } + } + return res; + }; + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function calendar (key, mom, now) { + var output = this._calendar[key] || this._calendar['sameElse']; + return isFunction(output) ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY h:mm A', + LLLL : 'dddd, MMMM D, YYYY h:mm A' + }; + + function longDateFormat (key) { + var format = this._longDateFormat[key], + formatUpper = this._longDateFormat[key.toUpperCase()]; + + if (format || !formatUpper) { + return format; + } + + this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + + return this._longDateFormat[key]; + } + + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; + } + + var defaultOrdinal = '%d'; + var defaultDayOfMonthOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); + } + + var defaultRelativeTime = { + future : 'in %s', + past : '%s ago', + s : 'a few seconds', + ss : '%d seconds', + m : 'a minute', + mm : '%d minutes', + h : 'an hour', + hh : '%d hours', + d : 'a day', + dd : '%d days', + M : 'a month', + MM : '%d months', + y : 'a year', + yy : '%d years' + }; + + function relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (isFunction(output)) ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return isFunction(format) ? format(output) : format.replace(/%s/i, output); + } + + var aliases = {}; + + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } + + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } + + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; + + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; + } + } + } + + return normalizedInput; + } + + var priorities = {}; + + function addUnitPriority(unit, priority) { + priorities[unit] = priority; + } + + function getPrioritizedUnits(unitsObj) { + var units = []; + for (var u in unitsObj) { + units.push({unit: u, priority: priorities[u]}); + } + units.sort(function (a, b) { + return a.priority - b.priority; + }); + return units; + } + + function zeroFill(number, targetLength, forceSign) { + var absNumber = '' + Math.abs(number), + zerosToFill = targetLength - absNumber.length, + sign = number >= 0; + return (sign ? (forceSign ? '+' : '') : '-') + + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber; + } + + var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g; + + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; + + var formatFunctions = {}; + + var formatTokenFunctions = {}; + + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; + } + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } + + function removeFormattingTokens(input) { + if (input.match(/\[[\s\S]/)) { + return input.replace(/^\[|\]$/g, ''); + } + return input.replace(/\\/g, ''); + } + + function makeFormatFunction(format) { + var array = format.match(formattingTokens), i, length; + + for (i = 0, length = array.length; i < length; i++) { + if (formatTokenFunctions[array[i]]) { + array[i] = formatTokenFunctions[array[i]]; + } else { + array[i] = removeFormattingTokens(array[i]); + } + } + + return function (mom) { + var output = '', i; + for (i = 0; i < length; i++) { + output += isFunction(array[i]) ? array[i].call(mom, format) : array[i]; + } + return output; + }; + } + + // format date using native date object + function formatMoment(m, format) { + if (!m.isValid()) { + return m.localeData().invalidDate(); + } + + format = expandFormat(format, m.localeData()); + formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format); + + return formatFunctions[format](m); + } + + function expandFormat(format, locale) { + var i = 5; + + function replaceLongDateFormatTokens(input) { + return locale.longDateFormat(input) || input; + } + + localFormattingTokens.lastIndex = 0; + while (i >= 0 && localFormattingTokens.test(format)) { + format = format.replace(localFormattingTokens, replaceLongDateFormatTokens); + localFormattingTokens.lastIndex = 0; + i -= 1; + } + + return format; + } + + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match3to4 = /\d\d\d\d?/; // 999 - 9999 + var match5to6 = /\d\d\d\d\d\d?/; // 99999 - 999999 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + var matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + // includes scottish gaelic two word and hyphenated months + var matchWord = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + })); + } + + function regexEscape(s) { + return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (isNumber(callback)) { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + var WEEK = 7; + var WEEKDAY = 8; + + // FORMATTING + + addFormatToken('Y', 0, 0, function () { + var y = this.year(); + return y <= 9999 ? '' + y : '+' + y; + }); + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PRIORITIES + + addUnitPriority('year', 1); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYYY', 'YYYYYY'], YEAR); + addParseToken('YYYY', function (input, array) { + array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input); + }); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks.parseTwoDigitYear(input); + }); + addParseToken('Y', function (input, array) { + array[YEAR] = parseInt(input, 10); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', true); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + set$1(this, unit, value); + hooks.updateOffset(this, keepTime); + return this; + } else { + return get(this, unit); + } + }; + } + + function get (mom, unit) { + return mom.isValid() ? + mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN; + } + + function set$1 (mom, unit, value) { + if (mom.isValid() && !isNaN(value)) { + if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month())); + } + else { + mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } + } + } + + // MOMENTS + + function stringGet (units) { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](); + } + return this; + } + + + function stringSet (units, value) { + if (typeof units === 'object') { + units = normalizeObjectUnits(units); + var prioritized = getPrioritizedUnits(units); + for (var i = 0; i < prioritized.length; i++) { + this[prioritized[i].unit](units[prioritized[i].unit]); + } + } else { + units = normalizeUnits(units); + if (isFunction(this[units])) { + return this[units](value); + } + } + return this; + } + + function mod(n, x) { + return ((n % x) + x) % x; + } + + var indexOf; + + if (Array.prototype.indexOf) { + indexOf = Array.prototype.indexOf; + } else { + indexOf = function (o) { + // I know + var i; + for (i = 0; i < this.length; ++i) { + if (this[i] === o) { + return i; + } + } + return -1; + }; + } + + function daysInMonth(year, month) { + if (isNaN(year) || isNaN(month)) { + return NaN; + } + var modMonth = mod(month, 12); + year += (month - modMonth) / 12; + return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PRIORITY + + addUnitPriority('month', 8); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', function (isStrict, locale) { + return locale.monthsShortRegex(isStrict); + }); + addRegexToken('MMMM', function (isStrict, locale) { + return locale.monthsRegex(isStrict); + }); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + getParsingFlags(config).invalidMonth = input; + } + }); + + // LOCALES + + var MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/; + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m, format) { + if (!m) { + return isArray(this._months) ? this._months : + this._months['standalone']; + } + return isArray(this._months) ? this._months[m.month()] : + this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m, format) { + if (!m) { + return isArray(this._monthsShort) ? this._monthsShort : + this._monthsShort['standalone']; + } + return isArray(this._monthsShort) ? this._monthsShort[m.month()] : + this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()]; + } + + function handleStrictParse(monthName, format, strict) { + var i, ii, mom, llc = monthName.toLocaleLowerCase(); + if (!this._monthsParse) { + // this is not used + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + for (i = 0; i < 12; ++i) { + mom = createUTC([2000, i]); + this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase(); + this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'MMM') { + ii = indexOf.call(this._shortMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._longMonthsParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._longMonthsParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortMonthsParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (this._monthsParseExact) { + return handleStrictParse.call(this, monthName, format, strict); + } + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + // TODO: add sorting + // Sorting makes sure if one month (or abbr) is a prefix of another + // see sorting in computeMonthsParse + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); + } + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; + } + } + } + + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + if (!mom.isValid()) { + // No op + return mom; + } + + if (typeof value === 'string') { + if (/^\d+$/.test(value)) { + value = toInt(value); + } else { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (!isNumber(value)) { + return mom; + } + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + hooks.updateOffset(this, true); + return this; + } else { + return get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + var defaultMonthsShortRegex = matchWord; + function monthsShortRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsShortStrictRegex; + } else { + return this._monthsShortRegex; + } + } else { + if (!hasOwnProp(this, '_monthsShortRegex')) { + this._monthsShortRegex = defaultMonthsShortRegex; + } + return this._monthsShortStrictRegex && isStrict ? + this._monthsShortStrictRegex : this._monthsShortRegex; + } + } + + var defaultMonthsRegex = matchWord; + function monthsRegex (isStrict) { + if (this._monthsParseExact) { + if (!hasOwnProp(this, '_monthsRegex')) { + computeMonthsParse.call(this); + } + if (isStrict) { + return this._monthsStrictRegex; + } else { + return this._monthsRegex; + } + } else { + if (!hasOwnProp(this, '_monthsRegex')) { + this._monthsRegex = defaultMonthsRegex; + } + return this._monthsStrictRegex && isStrict ? + this._monthsStrictRegex : this._monthsRegex; + } + } + + function computeMonthsParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var shortPieces = [], longPieces = [], mixedPieces = [], + i, mom; + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, i]); + shortPieces.push(this.monthsShort(mom, '')); + longPieces.push(this.months(mom, '')); + mixedPieces.push(this.months(mom, '')); + mixedPieces.push(this.monthsShort(mom, '')); + } + // Sorting makes sure if one month (or abbr) is a prefix of another it + // will match the longer piece. + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 12; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + } + for (i = 0; i < 24; i++) { + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._monthsShortRegex = this._monthsRegex; + this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + } + + function createDate (y, m, d, h, M, s, ms) { + // can't just apply() to create a date: + // https://stackoverflow.com/q/181348 + var date = new Date(y, m, d, h, M, s, ms); + + // the date constructor remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getFullYear())) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + + // the Date.UTC function remaps years 0-99 to 1900-1999 + if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) { + date.setUTCFullYear(y); + } + return date; + } + + // start-of-first-week - start-of-year + function firstWeekOffset(year, dow, doy) { + var // first-week day -- which january is always in the first week (4 for iso, 1 for other) + fwd = 7 + dow - doy, + // first-week day local weekday -- which local weekday is fwd + fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7; + + return -fwdlw + fwd - 1; + } + + // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, dow, doy) { + var localWeekday = (7 + weekday - dow) % 7, + weekOffset = firstWeekOffset(year, dow, doy), + dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset, + resYear, resDayOfYear; + + if (dayOfYear <= 0) { + resYear = year - 1; + resDayOfYear = daysInYear(resYear) + dayOfYear; + } else if (dayOfYear > daysInYear(year)) { + resYear = year + 1; + resDayOfYear = dayOfYear - daysInYear(year); + } else { + resYear = year; + resDayOfYear = dayOfYear; + } + + return { + year: resYear, + dayOfYear: resDayOfYear + }; + } + + function weekOfYear(mom, dow, doy) { + var weekOffset = firstWeekOffset(mom.year(), dow, doy), + week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1, + resWeek, resYear; + + if (week < 1) { + resYear = mom.year() - 1; + resWeek = week + weeksInYear(resYear, dow, doy); + } else if (week > weeksInYear(mom.year(), dow, doy)) { + resWeek = week - weeksInYear(mom.year(), dow, doy); + resYear = mom.year() + 1; + } else { + resYear = mom.year(); + resWeek = week; + } + + return { + week: resWeek, + year: resYear + }; + } + + function weeksInYear(year, dow, doy) { + var weekOffset = firstWeekOffset(year, dow, doy), + weekOffsetNext = firstWeekOffset(year + 1, dow, doy); + return (daysInYear(year) - weekOffset + weekOffsetNext) / 7; + } + + // FORMATTING + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PRIORITIES + + addUnitPriority('week', 5); + addUnitPriority('isoWeek', 5); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + // FORMATTING + + addFormatToken('d', 0, 'do', 'day'); + + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); + + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); + + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); + + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); + + // ALIASES + + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); + + // PRIORITY + addUnitPriority('day', 11); + addUnitPriority('weekday', 11); + addUnitPriority('isoWeekday', 11); + + // PARSING + + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', function (isStrict, locale) { + return locale.weekdaysMinRegex(isStrict); + }); + addRegexToken('ddd', function (isStrict, locale) { + return locale.weekdaysShortRegex(isStrict); + }); + addRegexToken('dddd', function (isStrict, locale) { + return locale.weekdaysRegex(isStrict); + }); + + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) { + var weekday = config._locale.weekdaysParse(input, token, config._strict); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + getParsingFlags(config).invalidWeekday = input; + } + }); + + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); + + // HELPERS + + function parseWeekday(input, locale) { + if (typeof input !== 'string') { + return input; + } + + if (!isNaN(input)) { + return parseInt(input, 10); + } + + input = locale.weekdaysParse(input); + if (typeof input === 'number') { + return input; + } + + return null; + } + + function parseIsoWeekday(input, locale) { + if (typeof input === 'string') { + return locale.weekdaysParse(input) % 7 || 7; + } + return isNaN(input) ? null : input; + } + + // LOCALES + + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m, format) { + if (!m) { + return isArray(this._weekdays) ? this._weekdays : + this._weekdays['standalone']; + } + return isArray(this._weekdays) ? this._weekdays[m.day()] : + this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()]; + } + + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort; + } + + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin; + } + + function handleStrictParse$1(weekdayName, format, strict) { + var i, ii, mom, llc = weekdayName.toLocaleLowerCase(); + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._shortWeekdaysParse = []; + this._minWeekdaysParse = []; + + for (i = 0; i < 7; ++i) { + mom = createUTC([2000, 1]).day(i); + this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase(); + this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase(); + this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase(); + } + } + + if (strict) { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } else { + if (format === 'dddd') { + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else if (format === 'ddd') { + ii = indexOf.call(this._shortWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._minWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } else { + ii = indexOf.call(this._minWeekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._weekdaysParse, llc); + if (ii !== -1) { + return ii; + } + ii = indexOf.call(this._shortWeekdaysParse, llc); + return ii !== -1 ? ii : null; + } + } + } + + function localeWeekdaysParse (weekdayName, format, strict) { + var i, mom, regex; + + if (this._weekdaysParseExact) { + return handleStrictParse$1.call(this, weekdayName, format, strict); + } + + if (!this._weekdaysParse) { + this._weekdaysParse = []; + this._minWeekdaysParse = []; + this._shortWeekdaysParse = []; + this._fullWeekdaysParse = []; + } + + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + + mom = createUTC([2000, 1]).day(i); + if (strict && !this._fullWeekdaysParse[i]) { + this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\.?') + '$', 'i'); + this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$', 'i'); + this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$', 'i'); + } + if (!this._weekdaysParse[i]) { + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); + } + // test the regex + if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) { + return i; + } else if (!strict && this._weekdaysParse[i].test(weekdayName)) { + return i; + } + } + } + + // MOMENTS + + function getSetDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } + + function getSetLocaleDayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } + + function getSetISODayOfWeek (input) { + if (!this.isValid()) { + return input != null ? this : NaN; + } + + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + + if (input != null) { + var weekday = parseIsoWeekday(input, this.localeData()); + return this.day(this.day() % 7 ? weekday : weekday - 7); + } else { + return this.day() || 7; + } + } + + var defaultWeekdaysRegex = matchWord; + function weekdaysRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysStrictRegex; + } else { + return this._weekdaysRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysRegex')) { + this._weekdaysRegex = defaultWeekdaysRegex; + } + return this._weekdaysStrictRegex && isStrict ? + this._weekdaysStrictRegex : this._weekdaysRegex; + } + } + + var defaultWeekdaysShortRegex = matchWord; + function weekdaysShortRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysShortStrictRegex; + } else { + return this._weekdaysShortRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysShortRegex')) { + this._weekdaysShortRegex = defaultWeekdaysShortRegex; + } + return this._weekdaysShortStrictRegex && isStrict ? + this._weekdaysShortStrictRegex : this._weekdaysShortRegex; + } + } + + var defaultWeekdaysMinRegex = matchWord; + function weekdaysMinRegex (isStrict) { + if (this._weekdaysParseExact) { + if (!hasOwnProp(this, '_weekdaysRegex')) { + computeWeekdaysParse.call(this); + } + if (isStrict) { + return this._weekdaysMinStrictRegex; + } else { + return this._weekdaysMinRegex; + } + } else { + if (!hasOwnProp(this, '_weekdaysMinRegex')) { + this._weekdaysMinRegex = defaultWeekdaysMinRegex; + } + return this._weekdaysMinStrictRegex && isStrict ? + this._weekdaysMinStrictRegex : this._weekdaysMinRegex; + } + } + + + function computeWeekdaysParse () { + function cmpLenRev(a, b) { + return b.length - a.length; + } + + var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [], + i, mom, minp, shortp, longp; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + mom = createUTC([2000, 1]).day(i); + minp = this.weekdaysMin(mom, ''); + shortp = this.weekdaysShort(mom, ''); + longp = this.weekdays(mom, ''); + minPieces.push(minp); + shortPieces.push(shortp); + longPieces.push(longp); + mixedPieces.push(minp); + mixedPieces.push(shortp); + mixedPieces.push(longp); + } + // Sorting makes sure if one weekday (or abbr) is a prefix of another it + // will match the longer piece. + minPieces.sort(cmpLenRev); + shortPieces.sort(cmpLenRev); + longPieces.sort(cmpLenRev); + mixedPieces.sort(cmpLenRev); + for (i = 0; i < 7; i++) { + shortPieces[i] = regexEscape(shortPieces[i]); + longPieces[i] = regexEscape(longPieces[i]); + mixedPieces[i] = regexEscape(mixedPieces[i]); + } + + this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i'); + this._weekdaysShortRegex = this._weekdaysRegex; + this._weekdaysMinRegex = this._weekdaysRegex; + + this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i'); + this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i'); + this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i'); + } + + // FORMATTING + + function hFormat() { + return this.hours() % 12 || 12; + } + + function kFormat() { + return this.hours() || 24; + } + + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, hFormat); + addFormatToken('k', ['kk', 2], 0, kFormat); + + addFormatToken('hmm', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2); + }); + + addFormatToken('hmmss', 0, 0, function () { + return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + addFormatToken('Hmm', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2); + }); + + addFormatToken('Hmmss', 0, 0, function () { + return '' + this.hours() + zeroFill(this.minutes(), 2) + + zeroFill(this.seconds(), 2); + }); + + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } + + meridiem('a', true); + meridiem('A', false); + + // ALIASES + + addUnitAlias('hour', 'h'); + + // PRIORITY + addUnitPriority('hour', 13); + + // PARSING + + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } + + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('k', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); + addRegexToken('kk', match1to2, match2); + + addRegexToken('hmm', match3to4); + addRegexToken('hmmss', match5to6); + addRegexToken('Hmm', match3to4); + addRegexToken('Hmmss', match5to6); + + addParseToken(['H', 'HH'], HOUR); + addParseToken(['k', 'kk'], function (input, array, config) { + var kInput = toInt(input); + array[HOUR] = kInput === 24 ? 0 : kInput; + }); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + getParsingFlags(config).bigHour = true; + }); + addParseToken('Hmm', function (input, array, config) { + var pos = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos)); + array[MINUTE] = toInt(input.substr(pos)); + }); + addParseToken('Hmmss', function (input, array, config) { + var pos1 = input.length - 4; + var pos2 = input.length - 2; + array[HOUR] = toInt(input.substr(0, pos1)); + array[MINUTE] = toInt(input.substr(pos1, 2)); + array[SECOND] = toInt(input.substr(pos2)); + }); + + // LOCALES + + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } + + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } + + + // MOMENTS + + // Setting the hour should keep the time, because the user explicitly + // specified which hour they want. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + var baseConfig = { + calendar: defaultCalendar, + longDateFormat: defaultLongDateFormat, + invalidDate: defaultInvalidDate, + ordinal: defaultOrdinal, + dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse, + relativeTime: defaultRelativeTime, + + months: defaultLocaleMonths, + monthsShort: defaultLocaleMonthsShort, + + week: defaultLocaleWeek, + + weekdays: defaultLocaleWeekdays, + weekdaysMin: defaultLocaleWeekdaysMin, + weekdaysShort: defaultLocaleWeekdaysShort, + + meridiemParse: defaultLocaleMeridiemParse + }; + + // internal storage for locale config files + var locales = {}; + var localeFamilies = {}; + var globalLocale; + + function normalizeLocale(key) { + return key ? key.toLowerCase().replace('_', '-') : key; + } + + // pick the locale from the array + // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each + // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root + function chooseLocale(names) { + var i = 0, j, next, locale, split; + + while (i < names.length) { + split = normalizeLocale(names[i]).split('-'); + j = split.length; + next = normalizeLocale(names[i + 1]); + next = next ? next.split('-') : null; + while (j > 0) { + locale = loadLocale(split.slice(0, j).join('-')); + if (locale) { + return locale; + } + if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) { + //the next array item is better than a shallower substring of this one + break; + } + j--; + } + i++; + } + return globalLocale; + } + + function loadLocale(name) { + var oldLocale = null; + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && (typeof module !== 'undefined') && + module && module.exports) { + try { + oldLocale = globalLocale._abbr; + var aliasedRequire = require; + __webpack_require__(150)("./" + name); + getSetGlobalLocale(oldLocale); + } catch (e) {} + } + return locales[name]; + } + + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function getSetGlobalLocale (key, values) { + var data; + if (key) { + if (isUndefined(values)) { + data = getLocale(key); + } + else { + data = defineLocale(key, values); + } + + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + else { + if ((typeof console !== 'undefined') && console.warn) { + //warn user if arguments are passed but the locale could not be set + console.warn('Locale ' + key + ' not found. Did you forget to load it?'); + } + } + } + + return globalLocale._abbr; + } + + function defineLocale (name, config) { + if (config !== null) { + var locale, parentConfig = baseConfig; + config.abbr = name; + if (locales[name] != null) { + deprecateSimple('defineLocaleOverride', + 'use moment.updateLocale(localeName, config) to change ' + + 'an existing locale. moment.defineLocale(localeName, ' + + 'config) should only be used for creating a new locale ' + + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'); + parentConfig = locales[name]._config; + } else if (config.parentLocale != null) { + if (locales[config.parentLocale] != null) { + parentConfig = locales[config.parentLocale]._config; + } else { + locale = loadLocale(config.parentLocale); + if (locale != null) { + parentConfig = locale._config; + } else { + if (!localeFamilies[config.parentLocale]) { + localeFamilies[config.parentLocale] = []; + } + localeFamilies[config.parentLocale].push({ + name: name, + config: config + }); + return null; + } + } + } + locales[name] = new Locale(mergeConfigs(parentConfig, config)); + + if (localeFamilies[name]) { + localeFamilies[name].forEach(function (x) { + defineLocale(x.name, x.config); + }); + } + + // backwards compat for now: also set the locale + // make sure we set the locale AFTER all child locales have been + // created, so we won't end up with the child locale set. + getSetGlobalLocale(name); + + + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } + + function updateLocale(name, config) { + if (config != null) { + var locale, tmpLocale, parentConfig = baseConfig; + // MERGE + tmpLocale = loadLocale(name); + if (tmpLocale != null) { + parentConfig = tmpLocale._config; + } + config = mergeConfigs(parentConfig, config); + locale = new Locale(config); + locale.parentLocale = locales[name]; + locales[name] = locale; + + // backwards compat for now: also set the locale + getSetGlobalLocale(name); + } else { + // pass null for config to unupdate, useful for tests + if (locales[name] != null) { + if (locales[name].parentLocale != null) { + locales[name] = locales[name].parentLocale; + } else if (locales[name] != null) { + delete locales[name]; + } + } + } + return locales[name]; + } + + // returns locale data + function getLocale (key) { + var locale; + + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } + + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; + } + key = [key]; + } + + return chooseLocale(key); + } + + function listLocales() { + return keys(locales); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && getParsingFlags(m).overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + if (getParsingFlags(m)._overflowWeeks && overflow === -1) { + overflow = WEEK; + } + if (getParsingFlags(m)._overflowWeekday && overflow === -1) { + overflow = WEEKDAY; + } + + getParsingFlags(m).overflow = overflow; + } + + return m; + } + + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; + } + if (b != null) { + return b; + } + return c; + } + + function currentDateArray(config) { + // hooks is actually the exported moment object + var nowValue = new Date(hooks.now()); + if (config._useUTC) { + return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()]; + } + return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()]; + } + + // convert an array to a date. + // the array should mirror the parameters below + // note: all values past the year are optional and will default to the lowest possible value. + // [year, month, day , hour, minute, second, millisecond] + function configFromArray (config) { + var i, date, input = [], currentDate, expectedWeekday, yearToUse; + + if (config._d) { + return; + } + + currentDate = currentDateArray(config); + + //compute day of the year from weeks and weekdays + if (config._w && config._a[DATE] == null && config._a[MONTH] == null) { + dayOfYearFromWeekInfo(config); + } + + //if the day of the year is set, figure out what it is + if (config._dayOfYear != null) { + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); + + if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) { + getParsingFlags(config)._overflowDayOfYear = true; + } + + date = createUTCDate(yearToUse, 0, config._dayOfYear); + config._a[MONTH] = date.getUTCMonth(); + config._a[DATE] = date.getUTCDate(); + } + + // Default to current date. + // * if no year, month, day of month are given, default to today + // * if day of month is given, default month and year + // * if month is given, default only year + // * if year is given, don't default anything + for (i = 0; i < 3 && config._a[i] == null; ++i) { + config._a[i] = input[i] = currentDate[i]; + } + + // Zero out whatever was not defaulted, including time + for (; i < 7; i++) { + config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i]; + } + + // Check for 24:00:00.000 + if (config._a[HOUR] === 24 && + config._a[MINUTE] === 0 && + config._a[SECOND] === 0 && + config._a[MILLISECOND] === 0) { + config._nextDay = true; + config._a[HOUR] = 0; + } + + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); + expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); + + // Apply timezone offset from input. The actual utcOffset can be changed + // with parseZone. + if (config._tzm != null) { + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + } + + if (config._nextDay) { + config._a[HOUR] = 24; + } + + // check for mismatching day of week + if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) { + getParsingFlags(config).weekdayMismatch = true; + } + } + + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow; + + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; + + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + if (weekday < 1 || weekday > 7) { + weekdayOverflow = true; + } + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; + + var curWeek = weekOfYear(createLocal(), dow, doy); + + weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); + + // Default to current week. + week = defaults(w.w, curWeek.week); + + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < 0 || weekday > 6) { + weekdayOverflow = true; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + if (w.e < 0 || w.e > 6) { + weekdayOverflow = true; + } + } else { + // default to begining of week + weekday = dow; + } + } + if (week < 1 || week > weeksInYear(weekYear, dow, doy)) { + getParsingFlags(config)._overflowWeeks = true; + } else if (weekdayOverflow != null) { + getParsingFlags(config)._overflowWeekday = true; + } else { + temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy); + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; + } + } + + // iso 8601 regex + // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) + var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/; + + var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/; + + var isoDates = [ + ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/], + ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/], + ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/], + ['GGGG-[W]WW', /\d{4}-W\d\d/, false], + ['YYYY-DDD', /\d{4}-\d{3}/], + ['YYYY-MM', /\d{4}-\d\d/, false], + ['YYYYYYMMDD', /[+-]\d{10}/], + ['YYYYMMDD', /\d{8}/], + // YYYYMM is NOT allowed by the standard + ['GGGG[W]WWE', /\d{4}W\d{3}/], + ['GGGG[W]WW', /\d{4}W\d{2}/, false], + ['YYYYDDD', /\d{7}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/], + ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/], + ['HH:mm:ss', /\d\d:\d\d:\d\d/], + ['HH:mm', /\d\d:\d\d/], + ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/], + ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/], + ['HHmmss', /\d\d\d\d\d\d/], + ['HHmm', /\d\d\d\d/], + ['HH', /\d\d/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string), + allowTime, dateFormat, timeFormat, tzFormat; + + if (match) { + getParsingFlags(config).iso = true; + + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(match[1])) { + dateFormat = isoDates[i][0]; + allowTime = isoDates[i][2] !== false; + break; + } + } + if (dateFormat == null) { + config._isValid = false; + return; + } + if (match[3]) { + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(match[3])) { + // match[2] should be 'T' or space + timeFormat = (match[2] || ' ') + isoTimes[i][0]; + break; + } + } + if (timeFormat == null) { + config._isValid = false; + return; + } + } + if (!allowTime && timeFormat != null) { + config._isValid = false; + return; + } + if (match[4]) { + if (tzRegex.exec(match[4])) { + tzFormat = 'Z'; + } else { + config._isValid = false; + return; + } + } + config._f = dateFormat + (timeFormat || '') + (tzFormat || ''); + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3 + var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/; + + function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) { + var result = [ + untruncateYear(yearStr), + defaultLocaleMonthsShort.indexOf(monthStr), + parseInt(dayStr, 10), + parseInt(hourStr, 10), + parseInt(minuteStr, 10) + ]; + + if (secondStr) { + result.push(parseInt(secondStr, 10)); + } + + return result; + } + + function untruncateYear(yearStr) { + var year = parseInt(yearStr, 10); + if (year <= 49) { + return 2000 + year; + } else if (year <= 999) { + return 1900 + year; + } + return year; + } + + function preprocessRFC2822(s) { + // Remove comments and folding whitespace and replace multiple-spaces with a single space + return s.replace(/\([^)]*\)|[\n\t]/g, ' ').replace(/(\s\s+)/g, ' ').replace(/^\s\s*/, '').replace(/\s\s*$/, ''); + } + + function checkWeekday(weekdayStr, parsedInput, config) { + if (weekdayStr) { + // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check. + var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr), + weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay(); + if (weekdayProvided !== weekdayActual) { + getParsingFlags(config).weekdayMismatch = true; + config._isValid = false; + return false; + } + } + return true; + } + + var obsOffsets = { + UT: 0, + GMT: 0, + EDT: -4 * 60, + EST: -5 * 60, + CDT: -5 * 60, + CST: -6 * 60, + MDT: -6 * 60, + MST: -7 * 60, + PDT: -7 * 60, + PST: -8 * 60 + }; + + function calculateOffset(obsOffset, militaryOffset, numOffset) { + if (obsOffset) { + return obsOffsets[obsOffset]; + } else if (militaryOffset) { + // the only allowed military tz is Z + return 0; + } else { + var hm = parseInt(numOffset, 10); + var m = hm % 100, h = (hm - m) / 100; + return h * 60 + m; + } + } + + // date and time from ref 2822 format + function configFromRFC2822(config) { + var match = rfc2822.exec(preprocessRFC2822(config._i)); + if (match) { + var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]); + if (!checkWeekday(match[1], parsedArray, config)) { + return; + } + + config._a = parsedArray; + config._tzm = calculateOffset(match[8], match[9], match[10]); + + config._d = createUTCDate.apply(null, config._a); + config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm); + + getParsingFlags(config).rfc2822 = true; + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + configFromRFC2822(config); + if (config._isValid === false) { + delete config._isValid; + } else { + return; + } + + // Final attempt, use Input Fallback + hooks.createFromInputFallback(config); + } + + hooks.createFromInputFallback = deprecate( + 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + + 'discouraged and will be removed in an upcoming major release. Please refer to ' + + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', + function (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + // constant that refers to the ISO standard + hooks.ISO_8601 = function () {}; + + // constant that refers to the RFC 2822 form + hooks.RFC_2822 = function () {}; + + // date from string and format string + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks.ISO_8601) { + configFromISO(config); + return; + } + if (config._f === hooks.RFC_2822) { + configFromRFC2822(config); + return; + } + config._a = []; + getParsingFlags(config).empty = true; + + // This array is used to make a Date, either with `new Date` or `Date.UTC` + var string = '' + config._i, + i, parsedInput, tokens, token, skipped, + stringLength = string.length, + totalParsedInputLength = 0; + + tokens = expandFormat(config._f, config._locale).match(formattingTokens) || []; + + for (i = 0; i < tokens.length; i++) { + token = tokens[i]; + parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; + // console.log('token', token, 'parsedInput', parsedInput, + // 'regex', getParseRegexForToken(token, config)); + if (parsedInput) { + skipped = string.substr(0, string.indexOf(parsedInput)); + if (skipped.length > 0) { + getParsingFlags(config).unusedInput.push(skipped); + } + string = string.slice(string.indexOf(parsedInput) + parsedInput.length); + totalParsedInputLength += parsedInput.length; + } + // don't parse if it's not a known token + if (formatTokenFunctions[token]) { + if (parsedInput) { + getParsingFlags(config).empty = false; + } + else { + getParsingFlags(config).unusedTokens.push(token); + } + addTimeToArrayFromToken(token, parsedInput, config); + } + else if (config._strict && !parsedInput) { + getParsingFlags(config).unusedTokens.push(token); + } + } + + // add remaining unparsed input length to the string + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; + if (string.length > 0) { + getParsingFlags(config).unusedInput.push(string); + } + + // clear _12h flag if hour is <= 12 + if (config._a[HOUR] <= 12 && + getParsingFlags(config).bigHour === true && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; + } + + getParsingFlags(config).parsedDateParts = config._a.slice(0); + getParsingFlags(config).meridiem = config._meridiem; + // handle meridiem + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); + checkOverflow(config); + } + + + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } + } + + // date from string and array of format strings + function configFromStringAndArray(config) { + var tempConfig, + bestMoment, + + scoreToBeat, + i, + currentScore; + + if (config._f.length === 0) { + getParsingFlags(config).invalidFormat = true; + config._d = new Date(NaN); + return; + } + + for (i = 0; i < config._f.length; i++) { + currentScore = 0; + tempConfig = copyConfig({}, config); + if (config._useUTC != null) { + tempConfig._useUTC = config._useUTC; + } + tempConfig._f = config._f[i]; + configFromStringAndFormat(tempConfig); + + if (!isValid(tempConfig)) { + continue; + } + + // if there is any input that was not parsed add a penalty for that format + currentScore += getParsingFlags(tempConfig).charsLeftOver; + + //or tokens + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; + + getParsingFlags(tempConfig).score = currentScore; + + if (scoreToBeat == null || currentScore < scoreToBeat) { + scoreToBeat = currentScore; + bestMoment = tempConfig; + } + } + + extend(config, bestMoment || tempConfig); + } + + function configFromObject(config) { + if (config._d) { + return; + } + + var i = normalizeObjectUnits(config._i); + config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) { + return obj && parseInt(obj, 10); + }); + + configFromArray(config); + } + + function createFromConfig (config) { + var res = new Moment(checkOverflow(prepareConfig(config))); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; + } + + return res; + } + + function prepareConfig (config) { + var input = config._i, + format = config._f; + + config._locale = config._locale || getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return createInvalid({nullInput: true}); + } + + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isDate(input)) { + config._d = input; + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + if (!isValid(config)) { + config._d = null; + } + + return config; + } + + function configFromInput(config) { + var input = config._i; + if (isUndefined(input)) { + config._d = new Date(hooks.now()); + } else if (isDate(input)) { + config._d = new Date(input.valueOf()); + } else if (typeof input === 'string') { + configFromString(config); + } else if (isArray(input)) { + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); + configFromArray(config); + } else if (isObject(input)) { + configFromObject(config); + } else if (isNumber(input)) { + // from milliseconds + config._d = new Date(input); + } else { + hooks.createFromInputFallback(config); + } + } + + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; + + if (locale === true || locale === false) { + strict = locale; + locale = undefined; + } + + if ((isObject(input) && isObjectEmpty(input)) || + (isArray(input) && input.length === 0)) { + input = undefined; + } + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + + return createFromConfig(c); + } + + function createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); + } + + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other < this ? this : other; + } else { + return createInvalid(); + } + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', + function () { + var other = createLocal.apply(null, arguments); + if (this.isValid() && other.isValid()) { + return other > this ? this : other; + } else { + return createInvalid(); + } + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (!moments[i].isValid() || moments[i][fn](res)) { + res = moments[i]; + } + } + return res; + } + + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + + return pickBy('isBefore', args); + } + + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); + } + + var now = function () { + return Date.now ? Date.now() : +(new Date()); + }; + + var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond']; + + function isDurationValid(m) { + for (var key in m) { + if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) { + return false; + } + } + + var unitHasDecimal = false; + for (var i = 0; i < ordering.length; ++i) { + if (m[ordering[i]]) { + if (unitHasDecimal) { + return false; // only allow non-integers for smallest unit + } + if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) { + unitHasDecimal = true; + } + } + } + + return true; + } + + function isValid$1() { + return this._isValid; + } + + function createInvalid$1() { + return createDuration(NaN); + } + + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; + + this._isValid = isDurationValid(normalizedInput); + + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible to translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; + + this._data = {}; + + this._locale = getLocale(); + + this._bubble(); + } + + function isDuration (obj) { + return obj instanceof Duration; + } + + function absRound (number) { + if (number < 0) { + return Math.round(-1 * number) * -1; + } else { + return Math.round(number); + } + } + + // FORMATTING + + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + + offset('Z', ':'); + offset('ZZ', ''); + + // PARSING + + addRegexToken('Z', matchShortOffset); + addRegexToken('ZZ', matchShortOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(matchShortOffset, input); + }); + + // HELPERS + + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; + + function offsetFromString(matcher, string) { + var matches = (string || '').match(matcher); + + if (matches === null) { + return null; + } + + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); + + return minutes === 0 ? + 0 : + parts[0] === '+' ? minutes : -minutes; + } + + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); + // Use low-level api, because this fn is low-level api. + res._d.setTime(res._d.valueOf() + diff); + hooks.updateOffset(res, false); + return res; + } else { + return createLocal(input).local(); + } + } + + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } + + // HOOKS + + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks.updateOffset = function () {}; + + // MOMENTS + + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime, keepMinutes) { + var offset = this._offset || 0, + localAdjust; + if (!this.isValid()) { + return input != null ? this : NaN; + } + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(matchShortOffset, input); + if (input === null) { + return this; + } + } else if (Math.abs(input) < 16 && !keepMinutes) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + addSubtract(this, createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks.updateOffset(this, true); + this._changeInProgress = null; + } + } + return this; + } else { + return this._isUTC ? offset : getDateOffset(this); + } + } + + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } + + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); + } + } + + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } + + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; + + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } + } + return this; + } + + function setOffsetToParsedOffset () { + if (this._tzm != null) { + this.utcOffset(this._tzm, false, true); + } else if (typeof this._i === 'string') { + var tZone = offsetFromString(matchOffset, this._i); + if (tZone != null) { + this.utcOffset(tZone); + } + else { + this.utcOffset(0, true); + } + } + return this; + } + + function hasAlignedHourOffset (input) { + if (!this.isValid()) { + return false; + } + input = input ? createLocal(input).utcOffset() : 0; + + return (this.utcOffset() - input) % 60 === 0; + } + + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } + + function isDaylightSavingTimeShifted () { + if (!isUndefined(this._isDSTShifted)) { + return this._isDSTShifted; + } + + var c = {}; + + copyConfig(c, this); + c = prepareConfig(c); + + if (c._a) { + var other = c._isUTC ? createUTC(c._a) : createLocal(c._a); + this._isDSTShifted = this.isValid() && + compareArrays(c._a, other.toArray()) > 0; + } else { + this._isDSTShifted = false; + } + + return this._isDSTShifted; + } + + function isLocal () { + return this.isValid() ? !this._isUTC : false; + } + + function isUtcOffset () { + return this.isValid() ? this._isUTC : false; + } + + function isUtc () { + return this.isValid() ? this._isUTC && this._offset === 0 : false; + } + + // ASP.NET json date format regex + var aspNetRegex = /^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/; + + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + // and further modified to allow for strings containing both week and day + var isoRegex = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function createDuration (input, key) { + var duration = input, + // matching against regexp is expensive, do it on demand + match = null, + sign, + ret, + diffRes; + + if (isDuration(input)) { + duration = { + ms : input._milliseconds, + d : input._days, + M : input._months + }; + } else if (isNumber(input)) { + duration = {}; + if (key) { + duration[key] = input; + } else { + duration.milliseconds = input; + } + } else if (!!(match = aspNetRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : 1; + duration = { + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match + }; + } else if (!!(match = isoRegex.exec(input))) { + sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1; + duration = { + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + w : parseIso(match[4], sign), + d : parseIso(match[5], sign), + h : parseIso(match[6], sign), + m : parseIso(match[7], sign), + s : parseIso(match[8], sign) + }; + } else if (duration == null) {// checks for null or undefined + duration = {}; + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to)); + + duration = {}; + duration.ms = diffRes.milliseconds; + duration.M = diffRes.months; + } + + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + createDuration.fn = Duration.prototype; + createDuration.invalid = createInvalid$1; + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + if (!(base.isValid() && other.isValid())) { + return {milliseconds: 0, months: 0}; + } + + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + // TODO: remove 'name' arg after deprecation is removed + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = createDuration(val, period); + addSubtract(this, dur, direction); + return this; + }; + } + + function addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = absRound(duration._days), + months = absRound(duration._months); + + if (!mom.isValid()) { + // No op + return; + } + + updateOffset = updateOffset == null ? true : updateOffset; + + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); + } + if (days) { + set$1(mom, 'Date', get(mom, 'Date') + days * isAdding); + } + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + } + if (updateOffset) { + hooks.updateOffset(mom, days || months); + } + } + + var add = createAdder(1, 'add'); + var subtract = createAdder(-1, 'subtract'); + + function getCalendarFormat(myMoment, now) { + var diff = myMoment.diff(now, 'days', true); + return diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + } + + function calendar$1 (time, formats) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + format = hooks.calendarFormat(this, sod) || 'sameElse'; + + var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]); + + return this.format(output || this.localeData().calendar(format, this, createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return this.valueOf() > localInput.valueOf(); + } else { + return localInput.valueOf() < this.clone().startOf(units).valueOf(); + } + } + + function isBefore (input, units) { + var localInput = isMoment(input) ? input : createLocal(input); + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(!isUndefined(units) ? units : 'millisecond'); + if (units === 'millisecond') { + return this.valueOf() < localInput.valueOf(); + } else { + return this.clone().endOf(units).valueOf() < localInput.valueOf(); + } + } + + function isBetween (from, to, units, inclusivity) { + inclusivity = inclusivity || '()'; + return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) && + (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units)); + } + + function isSame (input, units) { + var localInput = isMoment(input) ? input : createLocal(input), + inputMs; + if (!(this.isValid() && localInput.isValid())) { + return false; + } + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + return this.valueOf() === localInput.valueOf(); + } else { + inputMs = localInput.valueOf(); + return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf(); + } + } + + function isSameOrAfter (input, units) { + return this.isSame(input, units) || this.isAfter(input,units); + } + + function isSameOrBefore (input, units) { + return this.isSame(input, units) || this.isBefore(input,units); + } + + function diff (input, units, asFloat) { + var that, + zoneDelta, + output; + + if (!this.isValid()) { + return NaN; + } + + that = cloneWithOffset(input, this); + + if (!that.isValid()) { + return NaN; + } + + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4; + + units = normalizeUnits(units); + + switch (units) { + case 'year': output = monthDiff(this, that) / 12; break; + case 'month': output = monthDiff(this, that); break; + case 'quarter': output = monthDiff(this, that) / 3; break; + case 'second': output = (this - that) / 1e3; break; // 1000 + case 'minute': output = (this - that) / 6e4; break; // 1000 * 60 + case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60 + case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst + case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst + default: output = this - that; + } + + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; + + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); + } + + //check for negative zero, return zero if negative zero + return -(wholeMonthDiff + adjust) || 0; + } + + hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function toISOString(keepOffset) { + if (!this.isValid()) { + return null; + } + var utc = keepOffset !== true; + var m = utc ? this.clone().utc() : this; + if (m.year() < 0 || m.year() > 9999) { + return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + if (isFunction(Date.prototype.toISOString)) { + // native implementation is ~50x faster, use it when we can + if (utc) { + return this.toDate().toISOString(); + } else { + return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z')); + } + } + return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'); + } + + /** + * Return a human readable representation of a moment that can + * also be evaluated to get a new moment which is the same + * + * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects + */ + function inspect () { + if (!this.isValid()) { + return 'moment.invalid(/* ' + this._i + ' */)'; + } + var func = 'moment'; + var zone = ''; + if (!this.isLocal()) { + func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone'; + zone = 'Z'; + } + var prefix = '[' + func + '("]'; + var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY'; + var datetime = '-MM-DD[T]HH:mm:ss.SSS'; + var suffix = zone + '[")]'; + + return this.format(prefix + year + datetime + suffix); + } + + function format (inputString) { + if (!inputString) { + inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat; + } + var output = formatMoment(this, inputString); + return this.localeData().postformat(output); + } + + function from (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function fromNow (withoutSuffix) { + return this.from(createLocal(), withoutSuffix); + } + + function to (time, withoutSuffix) { + if (this.isValid() && + ((isMoment(time) && time.isValid()) || + createLocal(time).isValid())) { + return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } else { + return this.localeData().invalidDate(); + } + } + + function toNow (withoutSuffix) { + return this.to(createLocal(), withoutSuffix); + } + + // If passed a locale key, it will set the locale for this + // instance. Otherwise, it will return the locale configuration + // variables for this instance. + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; + } else { + newLocaleData = getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; + } + } + + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', + function (key) { + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } + } + ); + + function localeData () { + return this._locale; + } + + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + case 'date': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + } + + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); + } + + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); + } + + return this; + } + + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + + // 'date' is an alias for 'day', so it should be considered as such. + if (units === 'date') { + units = 'day'; + } + + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } + + function valueOf () { + return this._d.valueOf() - ((this._offset || 0) * 60000); + } + + function unix () { + return Math.floor(this.valueOf() / 1000); + } + + function toDate () { + return new Date(this.valueOf()); + } + + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } + + function toObject () { + var m = this; + return { + years: m.year(), + months: m.month(), + date: m.date(), + hours: m.hours(), + minutes: m.minutes(), + seconds: m.seconds(), + milliseconds: m.milliseconds() + }; + } + + function toJSON () { + // new Date(NaN).toJSON() === null + return this.isValid() ? this.toISOString() : null; + } + + function isValid$2 () { + return isValid(this); + } + + function parsingFlags () { + return extend({}, getParsingFlags(this)); + } + + function invalidAt () { + return getParsingFlags(this).overflow; + } + + function creationData() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + }; + } + + // FORMATTING + + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); + + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } + + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); + + // ALIASES + + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); + + // PRIORITY + + addUnitPriority('weekYear', 1); + addUnitPriority('isoWeekYear', 1); + + + // PARSING + + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); + + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); + + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks.parseTwoDigitYear(input); + }); + + // MOMENTS + + function getSetWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy); + } + + function getSetISOWeekYear (input) { + return getSetWeekYearHelper.call(this, + input, this.isoWeek(), this.isoWeekday(), 1, 4); + } + + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } + + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } + + function getSetWeekYearHelper(input, week, weekday, dow, doy) { + var weeksTarget; + if (input == null) { + return weekOfYear(this, dow, doy).year; + } else { + weeksTarget = weeksInYear(input, dow, doy); + if (week > weeksTarget) { + week = weeksTarget; + } + return setWeekAll.call(this, input, week, weekday, dow, doy); + } + } + + function setWeekAll(weekYear, week, weekday, dow, doy) { + var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy), + date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear); + + this.year(date.getUTCFullYear()); + this.month(date.getUTCMonth()); + this.date(date.getUTCDate()); + return this; + } + + // FORMATTING + + addFormatToken('Q', 0, 'Qo', 'quarter'); + + // ALIASES + + addUnitAlias('quarter', 'Q'); + + // PRIORITY + + addUnitPriority('quarter', 7); + + // PARSING + + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); + + // MOMENTS + + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } + + // FORMATTING + + addFormatToken('D', ['DD', 2], 'Do', 'date'); + + // ALIASES + + addUnitAlias('date', 'D'); + + // PRIORITY + addUnitPriority('date', 9); + + // PARSING + + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + // TODO: Remove "ordinalParse" fallback in next major release. + return isStrict ? + (locale._dayOfMonthOrdinalParse || locale._ordinalParse) : + locale._dayOfMonthOrdinalParseLenient; + }); + + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0]); + }); + + // MOMENTS + + var getSetDayOfMonth = makeGetSet('Date', true); + + // FORMATTING + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PRIORITY + addUnitPriority('dayOfYear', 4); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + // MOMENTS + + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } + + // FORMATTING + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PRIORITY + + addUnitPriority('minute', 14); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + // FORMATTING + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + + // PRIORITY + + addUnitPriority('second', 15); + + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + // FORMATTING + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); + }); + + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); + + addFormatToken(0, ['SSS', 3], 0, 'millisecond'); + addFormatToken(0, ['SSSS', 4], 0, function () { + return this.millisecond() * 10; + }); + addFormatToken(0, ['SSSSS', 5], 0, function () { + return this.millisecond() * 100; + }); + addFormatToken(0, ['SSSSSS', 6], 0, function () { + return this.millisecond() * 1000; + }); + addFormatToken(0, ['SSSSSSS', 7], 0, function () { + return this.millisecond() * 10000; + }); + addFormatToken(0, ['SSSSSSSS', 8], 0, function () { + return this.millisecond() * 100000; + }); + addFormatToken(0, ['SSSSSSSSS', 9], 0, function () { + return this.millisecond() * 1000000; + }); + + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PRIORITY + + addUnitPriority('millisecond', 16); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + + var token; + for (token = 'SSSS'; token.length <= 9; token += 'S') { + addRegexToken(token, matchUnsigned); + } + + function parseMs(input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + } + + for (token = 'S'; token.length <= 9; token += 'S') { + addParseToken(token, parseMs); + } + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + // FORMATTING + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var proto = Moment.prototype; + + proto.add = add; + proto.calendar = calendar$1; + proto.clone = clone; + proto.diff = diff; + proto.endOf = endOf; + proto.format = format; + proto.from = from; + proto.fromNow = fromNow; + proto.to = to; + proto.toNow = toNow; + proto.get = stringGet; + proto.invalidAt = invalidAt; + proto.isAfter = isAfter; + proto.isBefore = isBefore; + proto.isBetween = isBetween; + proto.isSame = isSame; + proto.isSameOrAfter = isSameOrAfter; + proto.isSameOrBefore = isSameOrBefore; + proto.isValid = isValid$2; + proto.lang = lang; + proto.locale = locale; + proto.localeData = localeData; + proto.max = prototypeMax; + proto.min = prototypeMin; + proto.parsingFlags = parsingFlags; + proto.set = stringSet; + proto.startOf = startOf; + proto.subtract = subtract; + proto.toArray = toArray; + proto.toObject = toObject; + proto.toDate = toDate; + proto.toISOString = toISOString; + proto.inspect = inspect; + proto.toJSON = toJSON; + proto.toString = toString; + proto.unix = unix; + proto.valueOf = valueOf; + proto.creationData = creationData; + proto.year = getSetYear; + proto.isLeapYear = getIsLeapYear; + proto.weekYear = getSetWeekYear; + proto.isoWeekYear = getSetISOWeekYear; + proto.quarter = proto.quarters = getSetQuarter; + proto.month = getSetMonth; + proto.daysInMonth = getDaysInMonth; + proto.week = proto.weeks = getSetWeek; + proto.isoWeek = proto.isoWeeks = getSetISOWeek; + proto.weeksInYear = getWeeksInYear; + proto.isoWeeksInYear = getISOWeeksInYear; + proto.date = getSetDayOfMonth; + proto.day = proto.days = getSetDayOfWeek; + proto.weekday = getSetLocaleDayOfWeek; + proto.isoWeekday = getSetISODayOfWeek; + proto.dayOfYear = getSetDayOfYear; + proto.hour = proto.hours = getSetHour; + proto.minute = proto.minutes = getSetMinute; + proto.second = proto.seconds = getSetSecond; + proto.millisecond = proto.milliseconds = getSetMillisecond; + proto.utcOffset = getSetOffset; + proto.utc = setOffsetToUTC; + proto.local = setOffsetToLocal; + proto.parseZone = setOffsetToParsedOffset; + proto.hasAlignedHourOffset = hasAlignedHourOffset; + proto.isDST = isDaylightSavingTime; + proto.isLocal = isLocal; + proto.isUtcOffset = isUtcOffset; + proto.isUtc = isUtc; + proto.isUTC = isUtc; + proto.zoneAbbr = getZoneAbbr; + proto.zoneName = getZoneName; + proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone); + proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted); + + function createUnix (input) { + return createLocal(input * 1000); + } + + function createInZone () { + return createLocal.apply(null, arguments).parseZone(); + } + + function preParsePostFormat (string) { + return string; + } + + var proto$1 = Locale.prototype; + + proto$1.calendar = calendar; + proto$1.longDateFormat = longDateFormat; + proto$1.invalidDate = invalidDate; + proto$1.ordinal = ordinal; + proto$1.preparse = preParsePostFormat; + proto$1.postformat = preParsePostFormat; + proto$1.relativeTime = relativeTime; + proto$1.pastFuture = pastFuture; + proto$1.set = set; + + proto$1.months = localeMonths; + proto$1.monthsShort = localeMonthsShort; + proto$1.monthsParse = localeMonthsParse; + proto$1.monthsRegex = monthsRegex; + proto$1.monthsShortRegex = monthsShortRegex; + proto$1.week = localeWeek; + proto$1.firstDayOfYear = localeFirstDayOfYear; + proto$1.firstDayOfWeek = localeFirstDayOfWeek; + + proto$1.weekdays = localeWeekdays; + proto$1.weekdaysMin = localeWeekdaysMin; + proto$1.weekdaysShort = localeWeekdaysShort; + proto$1.weekdaysParse = localeWeekdaysParse; + + proto$1.weekdaysRegex = weekdaysRegex; + proto$1.weekdaysShortRegex = weekdaysShortRegex; + proto$1.weekdaysMinRegex = weekdaysMinRegex; + + proto$1.isPM = localeIsPM; + proto$1.meridiem = localeMeridiem; + + function get$1 (format, index, field, setter) { + var locale = getLocale(); + var utc = createUTC().set(setter, index); + return locale[field](utc, format); + } + + function listMonthsImpl (format, index, field) { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return get$1(format, index, field, 'month'); + } + + var i; + var out = []; + for (i = 0; i < 12; i++) { + out[i] = get$1(format, i, field, 'month'); + } + return out; + } + + // () + // (5) + // (fmt, 5) + // (fmt) + // (true) + // (true, 5) + // (true, fmt, 5) + // (true, fmt) + function listWeekdaysImpl (localeSorted, format, index, field) { + if (typeof localeSorted === 'boolean') { + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } else { + format = localeSorted; + index = format; + localeSorted = false; + + if (isNumber(format)) { + index = format; + format = undefined; + } + + format = format || ''; + } + + var locale = getLocale(), + shift = localeSorted ? locale._week.dow : 0; + + if (index != null) { + return get$1(format, (index + shift) % 7, field, 'day'); + } + + var i; + var out = []; + for (i = 0; i < 7; i++) { + out[i] = get$1(format, (i + shift) % 7, field, 'day'); + } + return out; + } + + function listMonths (format, index) { + return listMonthsImpl(format, index, 'months'); + } + + function listMonthsShort (format, index) { + return listMonthsImpl(format, index, 'monthsShort'); + } + + function listWeekdays (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdays'); + } + + function listWeekdaysShort (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort'); + } + + function listWeekdaysMin (localeSorted, format, index) { + return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin'); + } + + getSetGlobalLocale('en', { + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); + + // Side effect imports + + hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale); + hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale); + + var mathAbs = Math.abs; + + function abs () { + var data = this._data; + + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); + + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); + + return this; + } + + function addSubtract$1 (duration, input, value, direction) { + var other = createDuration(input, value); + + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; + + return duration._bubble(); + } + + // supports only 2.0-style add(1, 's') or add(duration) + function add$1 (input, value) { + return addSubtract$1(this, input, value, 1); + } + + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function subtract$1 (input, value) { + return addSubtract$1(this, input, value, -1); + } + + function absCeil (number) { + if (number < 0) { + return Math.floor(number); + } else { + return Math.ceil(number); + } + } + + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years, monthsFromDays; + + // if we have a mix of positive and negative values, bubble down first + // check: https://github.com/moment/moment/issues/2166 + if (!((milliseconds >= 0 && days >= 0 && months >= 0) || + (milliseconds <= 0 && days <= 0 && months <= 0))) { + milliseconds += absCeil(monthsToDays(months) + days) * 864e5; + days = 0; + months = 0; + } + + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; + + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; + + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; + + hours = absFloor(minutes / 60); + data.hours = hours % 24; + + days += absFloor(hours / 24); + + // convert days to months + monthsFromDays = absFloor(daysToMonths(days)); + months += monthsFromDays; + days -= absCeil(monthsToDays(monthsFromDays)); + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + data.days = days; + data.months = months; + data.years = years; + + return this; + } + + function daysToMonths (days) { + // 400 years have 146097 days (taking into account leap year rules) + // 400 years have 12 months === 4800 + return days * 4800 / 146097; + } + + function monthsToDays (months) { + // the reverse of daysToMonths + return months * 146097 / 4800; + } + + function as (units) { + if (!this.isValid()) { + return NaN; + } + var days; + var months; + var milliseconds = this._milliseconds; + + units = normalizeUnits(units); + + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToMonths(days); + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(monthsToDays(this._months)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; + default: throw new Error('Unknown unit ' + units); + } + } + } + + // TODO: Use this.as('ms')? + function valueOf$1 () { + if (!this.isValid()) { + return NaN; + } + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } + + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } + + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); + + function clone$1 () { + return createDuration(this); + } + + function get$2 (units) { + units = normalizeUnits(units); + return this.isValid() ? this[units + 's']() : NaN; + } + + function makeGetter(name) { + return function () { + return this.isValid() ? this._data[name] : NaN; + }; + } + + var milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); + } + + var round = Math.round; + var thresholds = { + ss: 44, // a few seconds to seconds + s : 45, // seconds to minute + m : 45, // minutes to hour + h : 22, // hours to day + d : 26, // days to month + M : 11 // months to year + }; + + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + + function relativeTime$1 (posNegDuration, withoutSuffix, locale) { + var duration = createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds <= thresholds.ss && ['s', seconds] || + seconds < thresholds.s && ['ss', seconds] || + minutes <= 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours <= 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days <= 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months <= 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years <= 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } + + // This function allows you to set the rounding function for relative time strings + function getSetRelativeTimeRounding (roundingFunction) { + if (roundingFunction === undefined) { + return round; + } + if (typeof(roundingFunction) === 'function') { + round = roundingFunction; + return true; + } + return false; + } + + // This function allows you to set a threshold for relative time strings + function getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; + } + thresholds[threshold] = limit; + if (threshold === 's') { + thresholds.ss = limit - 1; + } + return true; + } + + function humanize (withSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var locale = this.localeData(); + var output = relativeTime$1(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var abs$1 = Math.abs; + + function sign(x) { + return ((x > 0) - (x < 0)) || +x; + } + + function toISOString$1() { + // for ISO strings we do not use the normal bubbling rules: + // * milliseconds bubble up until they become hours + // * days do not bubble at all + // * months bubble up until they become years + // This is because there is no context-free conversion between hours and days + // (think of clock changes) + // and also not between days and months (28-31 days per month) + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + + var seconds = abs$1(this._milliseconds) / 1000; + var days = abs$1(this._days); + var months = abs$1(this._months); + var minutes, hours, years; + + // 3600 seconds -> 60 minutes -> 1 hour + minutes = absFloor(seconds / 60); + hours = absFloor(minutes / 60); + seconds %= 60; + minutes %= 60; + + // 12 months -> 1 year + years = absFloor(months / 12); + months %= 12; + + + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = years; + var M = months; + var D = days; + var h = hours; + var m = minutes; + var s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : ''; + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + var totalSign = total < 0 ? '-' : ''; + var ymSign = sign(this._months) !== sign(total) ? '-' : ''; + var daysSign = sign(this._days) !== sign(total) ? '-' : ''; + var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : ''; + + return totalSign + 'P' + + (Y ? ymSign + Y + 'Y' : '') + + (M ? ymSign + M + 'M' : '') + + (D ? daysSign + D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? hmsSign + h + 'H' : '') + + (m ? hmsSign + m + 'M' : '') + + (s ? hmsSign + s + 'S' : ''); + } + + var proto$2 = Duration.prototype; + + proto$2.isValid = isValid$1; + proto$2.abs = abs; + proto$2.add = add$1; + proto$2.subtract = subtract$1; + proto$2.as = as; + proto$2.asMilliseconds = asMilliseconds; + proto$2.asSeconds = asSeconds; + proto$2.asMinutes = asMinutes; + proto$2.asHours = asHours; + proto$2.asDays = asDays; + proto$2.asWeeks = asWeeks; + proto$2.asMonths = asMonths; + proto$2.asYears = asYears; + proto$2.valueOf = valueOf$1; + proto$2._bubble = bubble; + proto$2.clone = clone$1; + proto$2.get = get$2; + proto$2.milliseconds = milliseconds; + proto$2.seconds = seconds; + proto$2.minutes = minutes; + proto$2.hours = hours; + proto$2.days = days; + proto$2.weeks = weeks; + proto$2.months = months; + proto$2.years = years; + proto$2.humanize = humanize; + proto$2.toISOString = toISOString$1; + proto$2.toString = toISOString$1; + proto$2.toJSON = toISOString$1; + proto$2.locale = locale; + proto$2.localeData = localeData; + + proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1); + proto$2.lang = lang; + + // Side effect imports + + // FORMATTING + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); + }); + + // Side effect imports + + + hooks.version = '2.22.2'; + + setHookCallback(createLocal); + + hooks.fn = proto; + hooks.min = min; + hooks.max = max; + hooks.now = now; + hooks.utc = createUTC; + hooks.unix = createUnix; + hooks.months = listMonths; + hooks.isDate = isDate; + hooks.locale = getSetGlobalLocale; + hooks.invalid = createInvalid; + hooks.duration = createDuration; + hooks.isMoment = isMoment; + hooks.weekdays = listWeekdays; + hooks.parseZone = createInZone; + hooks.localeData = getLocale; + hooks.isDuration = isDuration; + hooks.monthsShort = listMonthsShort; + hooks.weekdaysMin = listWeekdaysMin; + hooks.defineLocale = defineLocale; + hooks.updateLocale = updateLocale; + hooks.locales = listLocales; + hooks.weekdaysShort = listWeekdaysShort; + hooks.normalizeUnits = normalizeUnits; + hooks.relativeTimeRounding = getSetRelativeTimeRounding; + hooks.relativeTimeThreshold = getSetRelativeTimeThreshold; + hooks.calendarFormat = getCalendarFormat; + hooks.prototype = proto; + + // currently HTML5 input type only supports 24-hour formats + hooks.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'YYYY-[W]WW', // + MONTH: 'YYYY-MM' // + }; + + return hooks; + +}))); + +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(9)(module))) + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + * jQuery JavaScript Library v3.3.1 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2018-01-20T17:24Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket #14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var document = window.document; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var concat = arr.concat; + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML