From 5c1e7570d40a32a595b2bae674ddc4fc44736c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0ng=20Ph=C3=BAc?= Date: Sat, 20 Feb 2016 22:14:46 +0700 Subject: [PATCH 001/272] Fix req.logout() is not found passport --- server/boot/passport.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/boot/passport.js b/server/boot/passport.js index 2ce24536..3a38e249 100644 --- a/server/boot/passport.js +++ b/server/boot/passport.js @@ -109,7 +109,8 @@ module.exports = function(app) { }); app.post('/auth/logout', function(req, res, next) { - req.logout(); - res.redirect('/'); + req.session.destroy(function(err){ + res.redirect('/'); + }); }); }; From ff92a1cd6c523674a324a12e1d9fcf0b08bb5f1a Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Wed, 23 Mar 2016 23:59:19 -0500 Subject: [PATCH 002/272] Update frontend: angular 1.5.2 angular-ui-router 0.2.18 angular-translate 2.11.0 --- bower.json | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/bower.json b/bower.json index 02ac62f3..c58a5793 100644 --- a/bower.json +++ b/bower.json @@ -2,15 +2,15 @@ "name": "loopback", "version": "0.0.1", "dependencies": { - "angular": "1.3.12", + "angular": "1.5.2", "bootstrap": "3.3.2", - "angular-resource": "1.3.12", + "angular-resource": "1.5.2", "angular-cookies": "1.3.12", - "angular-route": "1.3.12", - "angular-sanitize": "1.3.12", - "angular-animate": "1.3.12", - "angular-touch": "1.3.12", - "angular-ui-router": "0.2.10", + "angular-route": "1.5.2", + "angular-sanitize": "1.5.2", + "angular-animate": "1.5.2", + "angular-touch": "1.5.2", + "angular-ui-router": "0.2.18", "font-awesome": "4.3.0", "angular-formly": "6.24.23", "angular-formly-templates-bootstrap": "6.0.0", @@ -29,14 +29,14 @@ "angular-autoFields-bootstrap": "2.1.6", "angular-gettext": "2.0.0", "angular-translate-loader-static-files": "2.6.0", - "angular-translate": "2.6.0", + "angular-translate": "2.11.0", "angular-translate-loader-url": "2.6.0", "angular-ui-grid": "3.0.0-rc.16", "flag-icon-css": "0.6.4", "angular-loading-bar": "0.6.0", "Faker": "2.1.2", - "angular-mocks": "1.3.12", - "angular-scenario": "1.3.12", + "angular-mocks": "1.5.2", + "angular-scenario": "1.5.2", "angular-schema-form": "0.8.3", "angular-schema-form-ui-select": "0.1.1" }, @@ -68,10 +68,6 @@ }, "appPath": "client/app/", "resolutions": { - "angular": "1.3.12", - "angular-animate": "1.3.12", - "angular-translate-loader-static-files": "2.6.0", - "angular-translate": "2.6.0", - "angular-translate-loader-url": "2.6.0" + "angular": "1.3.12" } } From ec4c0f8fd42f5bec9a02424f8ff81a1e96fff563 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Thu, 24 Mar 2016 00:07:33 -0500 Subject: [PATCH 003/272] Remove unused model files (fixes #167) --- common/models/name.js | 3 --- common/models/name.json | 10 ---------- 2 files changed, 13 deletions(-) delete mode 100644 common/models/name.js delete mode 100644 common/models/name.json diff --git a/common/models/name.js b/common/models/name.js deleted file mode 100644 index 1decd3d2..00000000 --- a/common/models/name.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function(Name) { - -}; diff --git a/common/models/name.json b/common/models/name.json deleted file mode 100644 index a2730a86..00000000 --- a/common/models/name.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "name", - "base": "PersistedModel", - "idInjection": true, - "properties": {}, - "validations": [], - "relations": {}, - "acls": [], - "methods": [] -} From 3a280a766bf7ff92674f1d35e2833b6f23fed5ab Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Thu, 24 Mar 2016 00:12:57 -0500 Subject: [PATCH 004/272] Fix saving passport session (fixes #165) --- server/boot/passport.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/boot/passport.js b/server/boot/passport.js index 2ce24536..e368067e 100644 --- a/server/boot/passport.js +++ b/server/boot/passport.js @@ -18,7 +18,7 @@ module.exports = function(app) { })); app.use(loopback.cookieParser(app.get('cookieSecret'))); - app.use(loopback.session({ + app.middleware('session', loopback.session({ secret: app.get('cookieSecret'), saveUninitialized: true, resave: true From 5e0a92e05c53bf90bb3e5bde2588bee36fa931ff Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Wed, 30 Mar 2016 13:07:36 -0500 Subject: [PATCH 005/272] Add related projects to the README --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 538614d6..70d69dbd 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,6 @@ These should help you quickly add code to your project. Further details tailored PhantomJS 1.9.8 (Linux): Executed 1 of 1 SUCCESS (0.007 secs / 0.029 secs) - ### Useful commits These commits might be useful when extending the functionality. @@ -195,6 +194,13 @@ At this moment there is no integration for socket.io or websockets, nor will the Having that said, it's certainly possible to integrate socket.io, check [this](https://github.com/beeman/loopback-angular-admin/pull/44) pull request by [@movibe](https://github.com/movibe). +# Related Projects + +Here are some projects that are related to what this project does. Please send a PR or create an issue if you have any additions to this list. + +- [BoLaMN/loopback-component-admin](https://github.com/BoLaMN/loopback-component-admin) +- [johannesjo/generator-angular-auto-admin-loopback](https://github.com/johannesjo/generator-angular-auto-admin-loopback) + # Issues If you have any problems please [contact me](https://github.com/beeman/loopback-angular-admin/issues/new). From 15fdfad41cac7822ff9c5e6dc3d811ee2bd82667 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Sun, 24 Apr 2016 16:37:28 -0500 Subject: [PATCH 006/272] Update model method config to objects instead of arrays --- common/models/access-token.json | 2 +- common/models/app-model.json | 2 +- common/models/auth-provider.json | 2 +- common/models/category.json | 2 +- common/models/event.json | 2 +- common/models/note.json | 2 +- common/models/page.json | 2 +- common/models/post.json | 2 +- common/models/product.json | 2 +- common/models/setting.json | 2 +- common/models/user-credential.json | 2 +- common/models/user-identity.json | 2 +- common/models/user.json | 6 +++--- server/middleware.json | 13 ++++++------- 14 files changed, 21 insertions(+), 22 deletions(-) diff --git a/common/models/access-token.json b/common/models/access-token.json index 96a41058..569fd4bd 100644 --- a/common/models/access-token.json +++ b/common/models/access-token.json @@ -12,5 +12,5 @@ } }, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/app-model.json b/common/models/app-model.json index f8334576..9aa0e120 100644 --- a/common/models/app-model.json +++ b/common/models/app-model.json @@ -12,5 +12,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/auth-provider.json b/common/models/auth-provider.json index 9894c13b..5898aab9 100644 --- a/common/models/auth-provider.json +++ b/common/models/auth-provider.json @@ -7,5 +7,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/category.json b/common/models/category.json index 2b311e55..5bb4be54 100644 --- a/common/models/category.json +++ b/common/models/category.json @@ -16,5 +16,5 @@ } }, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/event.json b/common/models/event.json index 197188a5..c2b33c67 100644 --- a/common/models/event.json +++ b/common/models/event.json @@ -30,5 +30,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/note.json b/common/models/note.json index 1d033d76..00a45d39 100644 --- a/common/models/note.json +++ b/common/models/note.json @@ -26,5 +26,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/page.json b/common/models/page.json index f76313e7..19eaeace 100644 --- a/common/models/page.json +++ b/common/models/page.json @@ -24,5 +24,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/post.json b/common/models/post.json index ab856d20..43ab084f 100644 --- a/common/models/post.json +++ b/common/models/post.json @@ -20,5 +20,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/product.json b/common/models/product.json index 7906a564..b4747a98 100644 --- a/common/models/product.json +++ b/common/models/product.json @@ -20,5 +20,5 @@ } }, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/setting.json b/common/models/setting.json index 5344085a..c2fe5c77 100644 --- a/common/models/setting.json +++ b/common/models/setting.json @@ -14,5 +14,5 @@ "validations": [], "relations": {}, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/user-credential.json b/common/models/user-credential.json index 15a271fa..b3ed7d7e 100644 --- a/common/models/user-credential.json +++ b/common/models/user-credential.json @@ -12,5 +12,5 @@ } }, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/user-identity.json b/common/models/user-identity.json index d63e5c0a..26f05046 100644 --- a/common/models/user-identity.json +++ b/common/models/user-identity.json @@ -12,5 +12,5 @@ } }, "acls": [], - "methods": [] + "methods": {} } diff --git a/common/models/user.json b/common/models/user.json index 22055b55..5bb42fb5 100644 --- a/common/models/user.json +++ b/common/models/user.json @@ -23,8 +23,8 @@ "roles": { "type": "hasMany", "model": "Role", - "through": "RoleMapping", - "foreignKey": "principalId" + "foreignKey": "principalId", + "through": "RoleMapping" } }, "acls": [ @@ -53,5 +53,5 @@ "permission": "ALLOW" } ], - "methods": [] + "methods": {} } diff --git a/server/middleware.json b/server/middleware.json index d9242bb7..277f065d 100644 --- a/server/middleware.json +++ b/server/middleware.json @@ -12,15 +12,14 @@ } } }, - "session": { - }, - "auth": { - }, - "parse": { - }, + "session": {}, + "auth": {}, + "parse": {}, "routes": { "loopback#rest": { - "paths": ["${restApiRoot}"] + "paths": [ + "${restApiRoot}" + ] } }, "files": { From 9923cdc9991006aa22ce57d43cc961cda82dc748 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Fri, 6 May 2016 15:11:39 -0500 Subject: [PATCH 007/272] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 70d69dbd..8c7d0175 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +# Check the [develop](https://github.com/beeman/loopback-angular-admin/tree/develop) branch for the latest and greatest + +More info on that is happening in the develop branch can be found [here](https://github.com/beeman/loopback-angular-admin/issues/179) + # loopback-angular-admin From 1d62d817dea85e83f39e6dbaf491e57167871010 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Wed, 18 May 2016 20:15:33 -0500 Subject: [PATCH 008/272] Pin versions for angular-animate and angular-translate --- bower.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bower.json b/bower.json index c58a5793..951def11 100644 --- a/bower.json +++ b/bower.json @@ -68,6 +68,8 @@ }, "appPath": "client/app/", "resolutions": { - "angular": "1.3.12" + "angular": "1.3.12", + "angular-animate": "1.5.2", + "angular-translate": "2.11.0" } } From c7b058548ab48788a4234ef7175dd0e2a959a887 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Wed, 18 May 2016 20:21:43 -0500 Subject: [PATCH 009/272] Update angular to latest version --- bower.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/bower.json b/bower.json index 951def11..fa76496e 100644 --- a/bower.json +++ b/bower.json @@ -1,15 +1,15 @@ { - "name": "loopback", + "name": "loopback-angular-admin", "version": "0.0.1", "dependencies": { - "angular": "1.5.2", + "angular": "1.5.5", "bootstrap": "3.3.2", - "angular-resource": "1.5.2", + "angular-resource": "1.5.5", "angular-cookies": "1.3.12", - "angular-route": "1.5.2", - "angular-sanitize": "1.5.2", - "angular-animate": "1.5.2", - "angular-touch": "1.5.2", + "angular-route": "1.5.5", + "angular-sanitize": "1.5.5", + "angular-animate": "1.5.5", + "angular-touch": "1.5.5", "angular-ui-router": "0.2.18", "font-awesome": "4.3.0", "angular-formly": "6.24.23", @@ -35,8 +35,8 @@ "flag-icon-css": "0.6.4", "angular-loading-bar": "0.6.0", "Faker": "2.1.2", - "angular-mocks": "1.5.2", - "angular-scenario": "1.5.2", + "angular-mocks": "1.5.5", + "angular-scenario": "1.5.5", "angular-schema-form": "0.8.3", "angular-schema-form-ui-select": "0.1.1" }, @@ -68,8 +68,8 @@ }, "appPath": "client/app/", "resolutions": { - "angular": "1.3.12", - "angular-animate": "1.5.2", + "angular": "1.5.5", + "angular-animate": "1.5.5", "angular-translate": "2.11.0" } } From 0e388b8561c5ea560f7e7cedcbe3d465245c2e7a Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Sat, 22 Oct 2016 23:57:29 -0500 Subject: [PATCH 010/272] Initial commit --- .editorconfig | 13 + .gitignore | 3 + README.md | 87 + admin/.editorconfig | 13 + admin/.gitignore | 3 + admin/README.md | 31 + admin/angular-cli.json | 47 + admin/coverage/base.css | 212 + admin/coverage/coverage.lcov | 54 + admin/coverage/index.html | 93 + admin/coverage/prettify.css | 1 + admin/coverage/prettify.js | 1 + admin/coverage/sort-arrow-sprite.png | Bin 0 -> 209 bytes admin/coverage/sorter.js | 158 + admin/coverage/src/app/app.component.ts.html | 89 + admin/coverage/src/app/index.html | 93 + admin/coverage/src/index.html | 106 + admin/coverage/src/polyfills.ts.html | 125 + admin/coverage/src/test.ts.html | 170 + admin/e2e/app.e2e-spec.ts | 14 + admin/e2e/app.po.ts | 11 + admin/e2e/tsconfig.json | 16 + admin/karma.conf.js | 38 + admin/package-scripts.js | 13 + admin/package.json | 51 + admin/protractor.conf.js | 32 + admin/src/app/app.component.html | 0 admin/src/app/app.component.spec.ts | 17 + admin/src/app/app.component.ts | 7 + admin/src/app/app.module.ts | 57 + admin/src/app/app.routing.ts | 51 + .../content-authors/authors-routing.module.ts | 19 + .../content-authors/authors.component.html | 75 + .../app/content-authors/authors.component.ts | 72 + .../src/app/content-authors/authors.module.ts | 19 + .../content-events/events-routing.module.ts | 19 + .../app/content-events/events.component.html | 93 + .../app/content-events/events.component.ts | 42 + admin/src/app/content-events/events.module.ts | 20 + .../app/content-posts/posts-routing.module.ts | 19 + .../app/content-posts/posts.component.html | 79 + .../src/app/content-posts/posts.component.ts | 42 + admin/src/app/content-posts/posts.module.ts | 20 + .../products-routing.module.ts | 19 + .../content-products/products.component.html | 91 + .../content-products/products.component.ts | 42 + .../app/content-products/products.module.ts | 20 + .../src/app/content/content-routing.module.ts | 16 + admin/src/app/content/content.module.ts | 24 + admin/src/app/index.ts | 2 + .../app/layouts/full-layout.component.html | 74 + .../src/app/layouts/full-layout.component.ts | 48 + .../app/layouts/simple-layout.component.html | 0 .../app/layouts/simple-layout.component.ts | 12 + admin/src/app/main.ts | 6 + admin/src/app/pages/404.component.html | 21 + admin/src/app/pages/404.component.ts | 10 + admin/src/app/pages/500.component.html | 21 + admin/src/app/pages/500.component.ts | 10 + admin/src/app/pages/login.component.html | 43 + admin/src/app/pages/login.component.ts | 10 + admin/src/app/pages/pages-routing.module.ts | 53 + admin/src/app/pages/pages.module.ts | 19 + admin/src/app/pages/register.component.html | 52 + admin/src/app/pages/register.component.ts | 10 + admin/src/app/shared/aside.directive.ts | 17 + admin/src/app/shared/breadcrumb.component.ts | 42 + .../src/app/shared/nav-dropdown.directive.ts | 64 + admin/src/app/shared/sdk/index.ts | 81 + admin/src/app/shared/sdk/lb.config.ts | 59 + admin/src/app/shared/sdk/models/Author.ts | 41 + admin/src/app/shared/sdk/models/BaseModels.ts | 43 + admin/src/app/shared/sdk/models/Domain.ts | 39 + admin/src/app/shared/sdk/models/Event.ts | 42 + admin/src/app/shared/sdk/models/FireLoop.ts | 20 + .../src/app/shared/sdk/models/FireLoopRef.ts | 90 + admin/src/app/shared/sdk/models/Post.ts | 42 + admin/src/app/shared/sdk/models/Product.ts | 42 + admin/src/app/shared/sdk/models/Tag.ts | 42 + admin/src/app/shared/sdk/models/index.ts | 9 + .../shared/sdk/services/core/auth.service.ts | 82 + .../shared/sdk/services/core/base.service.ts | 115 + .../shared/sdk/services/core/error.service.ts | 15 + .../src/app/shared/sdk/services/core/index.ts | 6 + .../shared/sdk/services/core/io.service.ts | 30 + .../app/shared/sdk/services/core/real.time.ts | 22 + .../shared/sdk/services/core/search.params.ts | 44 + .../app/shared/sdk/services/custom/Author.ts | 507 ++ .../app/shared/sdk/services/custom/Domain.ts | 1691 ++++ .../app/shared/sdk/services/custom/Event.ts | 538 ++ .../app/shared/sdk/services/custom/Post.ts | 538 ++ .../app/shared/sdk/services/custom/Product.ts | 538 ++ .../src/app/shared/sdk/services/custom/Tag.ts | 1236 +++ .../app/shared/sdk/services/custom/index.ts | 8 + .../sdk/services/custom/logger.service.ts | 63 + admin/src/app/shared/sdk/services/index.ts | 3 + admin/src/app/shared/sdk/sockets/index.ts | 2 + .../shared/sdk/sockets/socket.connections.ts | 51 + .../app/shared/sdk/sockets/socket.driver.ts | 7 + .../app/shared/sdk/storage/storage.driver.ts | 12 + admin/src/app/shared/sidebar.directive.ts | 123 + .../app/system-about/about-routing.module.ts | 19 + .../src/app/system-about/about.component.html | 27 + admin/src/app/system-about/about.component.ts | 34 + admin/src/app/system-about/about.module.ts | 19 + .../dashboard-routing.module.ts | 19 + .../system-dashboard/dashboard.component.html | 40 + .../system-dashboard/dashboard.component.ts | 60 + .../app/system-dashboard/dashboard.module.ts | 19 + .../system-domains/domains-routing.module.ts | 19 + .../app/system-domains/domains.component.html | 1 + .../app/system-domains/domains.component.ts | 14 + .../src/app/system-domains/domains.module.ts | 17 + .../settings-routing.module.ts | 19 + .../system-settings/settings.component.html | 1 + .../app/system-settings/settings.component.ts | 14 + .../app/system-settings/settings.module.ts | 17 + .../app/system-users/users-routing.module.ts | 19 + .../src/app/system-users/users.component.html | 1 + admin/src/app/system-users/users.component.ts | 14 + admin/src/app/system-users/users.module.ts | 17 + admin/src/app/system/system-routing.module.ts | 16 + admin/src/app/system/system.module.ts | 26 + admin/src/assets/css/font-awesome.css | 2199 +++++ admin/src/assets/css/font-awesome.css.map | 7 + admin/src/assets/css/font-awesome.min.css | 4 + admin/src/assets/css/simple-line-icons.css | 778 ++ admin/src/assets/css/style.css | 7468 +++++++++++++++++ admin/src/assets/fonts/FontAwesome.otf | Bin 0 -> 124988 bytes admin/src/assets/fonts/Simple-Line-Icons.eot | Bin 0 -> 54266 bytes admin/src/assets/fonts/Simple-Line-Icons.svg | 200 + admin/src/assets/fonts/Simple-Line-Icons.ttf | Bin 0 -> 54056 bytes admin/src/assets/fonts/Simple-Line-Icons.woff | Bin 0 -> 81332 bytes .../src/assets/fonts/Simple-Line-Icons.woff2 | Bin 0 -> 30064 bytes .../src/assets/fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes .../src/assets/fonts/fontawesome-webfont.svg | 685 ++ .../src/assets/fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes .../src/assets/fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes .../assets/fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes admin/src/assets/img/favicon.png | Bin 0 -> 7185 bytes admin/src/assets/img/logo.png | Bin 0 -> 15028 bytes admin/src/assets/style.css | 7183 ++++++++++++++++ admin/src/environments/environment.prod.ts | 3 + admin/src/environments/environment.ts | 8 + admin/src/favicon.ico | Bin 0 -> 5430 bytes admin/src/img/favicon.png | Bin 0 -> 7185 bytes admin/src/img/logo.png | Bin 0 -> 15028 bytes admin/src/index.html | 23 + admin/src/main.ts | 12 + admin/src/polyfills.ts | 19 + .../scss/bootstrap_custom/_breadcrumb.scss | 6 + admin/src/scss/bootstrap_custom/_buttons.scss | 9 + admin/src/scss/bootstrap_custom/_card.scss | 259 + .../src/scss/bootstrap_custom/_dropdown.scss | 45 + .../scss/bootstrap_custom/_input-group.scss | 7 + admin/src/scss/bootstrap_custom/_navbar.scss | 117 + .../src/scss/bootstrap_custom/_progress.scss | 8 + admin/src/scss/bootstrap_custom/_tables.scss | 20 + admin/src/scss/bootstrap_custom/_tags.scss | 3 + admin/src/scss/bootstrap_src/_alert.scss | 56 + admin/src/scss/bootstrap_src/_animation.scss | 36 + admin/src/scss/bootstrap_src/_breadcrumb.scss | 38 + .../src/scss/bootstrap_src/_button-group.scss | 235 + admin/src/scss/bootstrap_src/_buttons.scss | 176 + admin/src/scss/bootstrap_src/_card.scss | 322 + admin/src/scss/bootstrap_src/_carousel.scss | 253 + admin/src/scss/bootstrap_src/_close.scss | 31 + admin/src/scss/bootstrap_src/_code.scss | 57 + .../src/scss/bootstrap_src/_custom-forms.scss | 262 + admin/src/scss/bootstrap_src/_custom.scss | 4 + admin/src/scss/bootstrap_src/_dropdown.scss | 180 + admin/src/scss/bootstrap_src/_forms.scss | 374 + admin/src/scss/bootstrap_src/_grid.scss | 39 + admin/src/scss/bootstrap_src/_images.scss | 43 + .../src/scss/bootstrap_src/_input-group.scss | 188 + admin/src/scss/bootstrap_src/_jumbotron.scss | 20 + admin/src/scss/bootstrap_src/_list-group.scss | 125 + admin/src/scss/bootstrap_src/_media.scss | 81 + admin/src/scss/bootstrap_src/_mixins.scss | 54 + admin/src/scss/bootstrap_src/_modal.scss | 134 + admin/src/scss/bootstrap_src/_nav.scss | 157 + admin/src/scss/bootstrap_src/_navbar.scss | 315 + admin/src/scss/bootstrap_src/_normalize.scss | 422 + admin/src/scss/bootstrap_src/_pagination.scss | 73 + admin/src/scss/bootstrap_src/_popover.scss | 171 + admin/src/scss/bootstrap_src/_print.scss | 122 + admin/src/scss/bootstrap_src/_progress.scss | 145 + admin/src/scss/bootstrap_src/_reboot.scss | 388 + .../scss/bootstrap_src/_responsive-embed.scss | 39 + admin/src/scss/bootstrap_src/_tables.scss | 196 + admin/src/scss/bootstrap_src/_tags.scss | 77 + admin/src/scss/bootstrap_src/_tooltip.scss | 90 + admin/src/scss/bootstrap_src/_type.scss | 150 + admin/src/scss/bootstrap_src/_utilities.scss | 11 + admin/src/scss/bootstrap_src/_variables.scss | 857 ++ .../scss/bootstrap_src/bootstrap-flex.scss | 8 + .../scss/bootstrap_src/bootstrap-grid.scss | 23 + .../scss/bootstrap_src/bootstrap-reboot.scss | 11 + admin/src/scss/bootstrap_src/bootstrap.scss | 54 + .../src/scss/bootstrap_src/mixins/_alert.scss | 14 + .../mixins/_background-variant.scss | 12 + .../bootstrap_src/mixins/_border-radius.scss | 35 + .../bootstrap_src/mixins/_breakpoints.scss | 86 + .../scss/bootstrap_src/mixins/_buttons.scss | 113 + .../src/scss/bootstrap_src/mixins/_cards.scss | 44 + .../scss/bootstrap_src/mixins/_clearfix.scss | 7 + .../src/scss/bootstrap_src/mixins/_float.scss | 6 + .../src/scss/bootstrap_src/mixins/_forms.scss | 81 + .../scss/bootstrap_src/mixins/_gradients.scss | 43 + .../bootstrap_src/mixins/_grid-framework.scss | 69 + .../src/scss/bootstrap_src/mixins/_grid.scss | 107 + .../src/scss/bootstrap_src/mixins/_hover.scss | 60 + .../src/scss/bootstrap_src/mixins/_image.scss | 36 + .../bootstrap_src/mixins/_list-group.scss | 30 + .../src/scss/bootstrap_src/mixins/_lists.scss | 7 + .../bootstrap_src/mixins/_nav-divider.scss | 10 + .../bootstrap_src/mixins/_navbar-align.scss | 9 + .../bootstrap_src/mixins/_pagination.scss | 21 + .../scss/bootstrap_src/mixins/_progress.scss | 23 + .../src/scss/bootstrap_src/mixins/_pulls.scss | 6 + .../bootstrap_src/mixins/_reset-filter.scss | 8 + .../bootstrap_src/mixins/_reset-text.scss | 17 + .../scss/bootstrap_src/mixins/_resize.scss | 6 + .../bootstrap_src/mixins/_screen-reader.scss | 32 + .../src/scss/bootstrap_src/mixins/_size.scss | 6 + .../scss/bootstrap_src/mixins/_tab-focus.scss | 9 + .../scss/bootstrap_src/mixins/_table-row.scss | 30 + admin/src/scss/bootstrap_src/mixins/_tag.scss | 11 + .../bootstrap_src/mixins/_text-emphasis.scss | 12 + .../scss/bootstrap_src/mixins/_text-hide.scss | 8 + .../bootstrap_src/mixins/_text-truncate.scss | 8 + .../scss/bootstrap_src/utilities/_align.scss | 6 + .../bootstrap_src/utilities/_background.scss | 19 + .../bootstrap_src/utilities/_borders.scss | 30 + .../bootstrap_src/utilities/_clearfix.scss | 3 + .../bootstrap_src/utilities/_display.scss | 13 + .../scss/bootstrap_src/utilities/_flex.scss | 37 + .../scss/bootstrap_src/utilities/_float.scss | 13 + .../scss/bootstrap_src/utilities/_pulls.scss | 13 + .../utilities/_screenreaders.scss | 11 + .../bootstrap_src/utilities/_spacing.scss | 44 + .../scss/bootstrap_src/utilities/_text.scss | 59 + .../bootstrap_src/utilities/_visibility.scss | 55 + admin/src/scss/core/_animate.scss | 43 + admin/src/scss/core/_aside.scss | 63 + admin/src/scss/core/_avatars.scss | 52 + admin/src/scss/core/_breadcrumb-menu.scss | 36 + admin/src/scss/core/_buttons.scss | 565 ++ admin/src/scss/core/_callout.scss | 85 + admin/src/scss/core/_charts.scss | 6 + admin/src/scss/core/_custom-variables.scss | 177 + admin/src/scss/core/_custom.scss | 1 + admin/src/scss/core/_footer.scss | 12 + admin/src/scss/core/_grid.scss | 15 + admin/src/scss/core/_layout.scss | 238 + admin/src/scss/core/_loading.scss | 127 + admin/src/scss/core/_mixins.scss | 97 + admin/src/scss/core/_mobile.scss | 89 + admin/src/scss/core/_navigation.scss | 8 + admin/src/scss/core/_others.scss | 13 + admin/src/scss/core/_switches.scss | 314 + admin/src/scss/core/_temp.scss | 13 + admin/src/scss/core/_typography.scss | 36 + admin/src/scss/core/_utilities-border.scss | 18 + admin/src/scss/core/_widgets.scss | 249 + admin/src/scss/core/bootstrap-variables.scss | 99 + admin/src/scss/core/layouts/_default.scss | 0 admin/src/scss/core/layouts/_layout-1.scss | 3 + admin/src/scss/core/navigation/_disabled.scss | 6 + admin/src/scss/core/navigation/_sidebar.scss | 350 + admin/src/scss/core/navigation/_top.scss | 116 + admin/src/scss/style.scss | 102 + admin/src/scss/vendors/_vendors.scss | 1 + admin/src/scss/vendors/chart.js/chart.scss | 45 + admin/src/test.ts | 34 + admin/src/tsconfig.json | 20 + admin/src/typings.d.ts | 10 + admin/tslint.json | 112 + api/.editorconfig | 13 + api/.eslintignore | 1 + api/.eslintrc | 9 + api/.gitignore | 20 + api/.yo-rc.json | 3 + api/README.md | 3 + api/common/models/author.js | 5 + api/common/models/author.json | 56 + api/common/models/domain.js | 5 + api/common/models/domain.json | 44 + api/common/models/event.js | 5 + api/common/models/event.json | 51 + api/common/models/post.js | 5 + api/common/models/post.json | 51 + api/common/models/product.js | 5 + api/common/models/product.json | 51 + api/common/models/tag.js | 5 + api/common/models/tag.json | 51 + api/package-scripts.js | 14 + api/package.json | 33 + api/server/boot/00-init-sample-data.js | 27 + api/server/boot/authentication.js | 6 + api/server/boot/root.js | 8 + api/server/component-config.json | 8 + api/server/config.json | 23 + api/server/datasources.json | 6 + api/server/middleware.development.json | 10 + api/server/middleware.json | 50 + api/server/model-config.json | 60 + api/server/sample-data/development.json | 62 + api/server/server.js | 30 + package-scripts.js | 19 + package.json | 11 + 311 files changed, 39718 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitignore create mode 100644 README.md create mode 100644 admin/.editorconfig create mode 100644 admin/.gitignore create mode 100644 admin/README.md create mode 100644 admin/angular-cli.json create mode 100644 admin/coverage/base.css create mode 100644 admin/coverage/coverage.lcov create mode 100644 admin/coverage/index.html create mode 100644 admin/coverage/prettify.css create mode 100644 admin/coverage/prettify.js create mode 100644 admin/coverage/sort-arrow-sprite.png create mode 100644 admin/coverage/sorter.js create mode 100644 admin/coverage/src/app/app.component.ts.html create mode 100644 admin/coverage/src/app/index.html create mode 100644 admin/coverage/src/index.html create mode 100644 admin/coverage/src/polyfills.ts.html create mode 100644 admin/coverage/src/test.ts.html create mode 100644 admin/e2e/app.e2e-spec.ts create mode 100644 admin/e2e/app.po.ts create mode 100644 admin/e2e/tsconfig.json create mode 100644 admin/karma.conf.js create mode 100644 admin/package-scripts.js create mode 100644 admin/package.json create mode 100644 admin/protractor.conf.js create mode 100644 admin/src/app/app.component.html create mode 100644 admin/src/app/app.component.spec.ts create mode 100644 admin/src/app/app.component.ts create mode 100644 admin/src/app/app.module.ts create mode 100644 admin/src/app/app.routing.ts create mode 100644 admin/src/app/content-authors/authors-routing.module.ts create mode 100644 admin/src/app/content-authors/authors.component.html create mode 100644 admin/src/app/content-authors/authors.component.ts create mode 100644 admin/src/app/content-authors/authors.module.ts create mode 100644 admin/src/app/content-events/events-routing.module.ts create mode 100644 admin/src/app/content-events/events.component.html create mode 100644 admin/src/app/content-events/events.component.ts create mode 100644 admin/src/app/content-events/events.module.ts create mode 100644 admin/src/app/content-posts/posts-routing.module.ts create mode 100644 admin/src/app/content-posts/posts.component.html create mode 100644 admin/src/app/content-posts/posts.component.ts create mode 100644 admin/src/app/content-posts/posts.module.ts create mode 100644 admin/src/app/content-products/products-routing.module.ts create mode 100644 admin/src/app/content-products/products.component.html create mode 100644 admin/src/app/content-products/products.component.ts create mode 100644 admin/src/app/content-products/products.module.ts create mode 100644 admin/src/app/content/content-routing.module.ts create mode 100644 admin/src/app/content/content.module.ts create mode 100644 admin/src/app/index.ts create mode 100644 admin/src/app/layouts/full-layout.component.html create mode 100644 admin/src/app/layouts/full-layout.component.ts create mode 100644 admin/src/app/layouts/simple-layout.component.html create mode 100644 admin/src/app/layouts/simple-layout.component.ts create mode 100644 admin/src/app/main.ts create mode 100644 admin/src/app/pages/404.component.html create mode 100644 admin/src/app/pages/404.component.ts create mode 100644 admin/src/app/pages/500.component.html create mode 100644 admin/src/app/pages/500.component.ts create mode 100644 admin/src/app/pages/login.component.html create mode 100644 admin/src/app/pages/login.component.ts create mode 100644 admin/src/app/pages/pages-routing.module.ts create mode 100644 admin/src/app/pages/pages.module.ts create mode 100644 admin/src/app/pages/register.component.html create mode 100644 admin/src/app/pages/register.component.ts create mode 100644 admin/src/app/shared/aside.directive.ts create mode 100644 admin/src/app/shared/breadcrumb.component.ts create mode 100644 admin/src/app/shared/nav-dropdown.directive.ts create mode 100644 admin/src/app/shared/sdk/index.ts create mode 100644 admin/src/app/shared/sdk/lb.config.ts create mode 100644 admin/src/app/shared/sdk/models/Author.ts create mode 100644 admin/src/app/shared/sdk/models/BaseModels.ts create mode 100644 admin/src/app/shared/sdk/models/Domain.ts create mode 100644 admin/src/app/shared/sdk/models/Event.ts create mode 100644 admin/src/app/shared/sdk/models/FireLoop.ts create mode 100644 admin/src/app/shared/sdk/models/FireLoopRef.ts create mode 100644 admin/src/app/shared/sdk/models/Post.ts create mode 100644 admin/src/app/shared/sdk/models/Product.ts create mode 100644 admin/src/app/shared/sdk/models/Tag.ts create mode 100644 admin/src/app/shared/sdk/models/index.ts create mode 100644 admin/src/app/shared/sdk/services/core/auth.service.ts create mode 100644 admin/src/app/shared/sdk/services/core/base.service.ts create mode 100644 admin/src/app/shared/sdk/services/core/error.service.ts create mode 100644 admin/src/app/shared/sdk/services/core/index.ts create mode 100644 admin/src/app/shared/sdk/services/core/io.service.ts create mode 100644 admin/src/app/shared/sdk/services/core/real.time.ts create mode 100644 admin/src/app/shared/sdk/services/core/search.params.ts create mode 100644 admin/src/app/shared/sdk/services/custom/Author.ts create mode 100644 admin/src/app/shared/sdk/services/custom/Domain.ts create mode 100644 admin/src/app/shared/sdk/services/custom/Event.ts create mode 100644 admin/src/app/shared/sdk/services/custom/Post.ts create mode 100644 admin/src/app/shared/sdk/services/custom/Product.ts create mode 100644 admin/src/app/shared/sdk/services/custom/Tag.ts create mode 100644 admin/src/app/shared/sdk/services/custom/index.ts create mode 100644 admin/src/app/shared/sdk/services/custom/logger.service.ts create mode 100644 admin/src/app/shared/sdk/services/index.ts create mode 100644 admin/src/app/shared/sdk/sockets/index.ts create mode 100644 admin/src/app/shared/sdk/sockets/socket.connections.ts create mode 100644 admin/src/app/shared/sdk/sockets/socket.driver.ts create mode 100644 admin/src/app/shared/sdk/storage/storage.driver.ts create mode 100644 admin/src/app/shared/sidebar.directive.ts create mode 100644 admin/src/app/system-about/about-routing.module.ts create mode 100644 admin/src/app/system-about/about.component.html create mode 100644 admin/src/app/system-about/about.component.ts create mode 100644 admin/src/app/system-about/about.module.ts create mode 100644 admin/src/app/system-dashboard/dashboard-routing.module.ts create mode 100644 admin/src/app/system-dashboard/dashboard.component.html create mode 100644 admin/src/app/system-dashboard/dashboard.component.ts create mode 100644 admin/src/app/system-dashboard/dashboard.module.ts create mode 100644 admin/src/app/system-domains/domains-routing.module.ts create mode 100644 admin/src/app/system-domains/domains.component.html create mode 100644 admin/src/app/system-domains/domains.component.ts create mode 100644 admin/src/app/system-domains/domains.module.ts create mode 100644 admin/src/app/system-settings/settings-routing.module.ts create mode 100644 admin/src/app/system-settings/settings.component.html create mode 100644 admin/src/app/system-settings/settings.component.ts create mode 100644 admin/src/app/system-settings/settings.module.ts create mode 100644 admin/src/app/system-users/users-routing.module.ts create mode 100644 admin/src/app/system-users/users.component.html create mode 100644 admin/src/app/system-users/users.component.ts create mode 100644 admin/src/app/system-users/users.module.ts create mode 100644 admin/src/app/system/system-routing.module.ts create mode 100644 admin/src/app/system/system.module.ts create mode 100644 admin/src/assets/css/font-awesome.css create mode 100644 admin/src/assets/css/font-awesome.css.map create mode 100644 admin/src/assets/css/font-awesome.min.css create mode 100644 admin/src/assets/css/simple-line-icons.css create mode 100644 admin/src/assets/css/style.css create mode 100644 admin/src/assets/fonts/FontAwesome.otf create mode 100644 admin/src/assets/fonts/Simple-Line-Icons.eot create mode 100644 admin/src/assets/fonts/Simple-Line-Icons.svg create mode 100644 admin/src/assets/fonts/Simple-Line-Icons.ttf create mode 100644 admin/src/assets/fonts/Simple-Line-Icons.woff create mode 100644 admin/src/assets/fonts/Simple-Line-Icons.woff2 create mode 100644 admin/src/assets/fonts/fontawesome-webfont.eot create mode 100644 admin/src/assets/fonts/fontawesome-webfont.svg create mode 100644 admin/src/assets/fonts/fontawesome-webfont.ttf create mode 100644 admin/src/assets/fonts/fontawesome-webfont.woff create mode 100644 admin/src/assets/fonts/fontawesome-webfont.woff2 create mode 100644 admin/src/assets/img/favicon.png create mode 100644 admin/src/assets/img/logo.png create mode 100755 admin/src/assets/style.css create mode 100644 admin/src/environments/environment.prod.ts create mode 100644 admin/src/environments/environment.ts create mode 100644 admin/src/favicon.ico create mode 100644 admin/src/img/favicon.png create mode 100644 admin/src/img/logo.png create mode 100644 admin/src/index.html create mode 100644 admin/src/main.ts create mode 100644 admin/src/polyfills.ts create mode 100644 admin/src/scss/bootstrap_custom/_breadcrumb.scss create mode 100644 admin/src/scss/bootstrap_custom/_buttons.scss create mode 100644 admin/src/scss/bootstrap_custom/_card.scss create mode 100644 admin/src/scss/bootstrap_custom/_dropdown.scss create mode 100644 admin/src/scss/bootstrap_custom/_input-group.scss create mode 100644 admin/src/scss/bootstrap_custom/_navbar.scss create mode 100644 admin/src/scss/bootstrap_custom/_progress.scss create mode 100644 admin/src/scss/bootstrap_custom/_tables.scss create mode 100644 admin/src/scss/bootstrap_custom/_tags.scss create mode 100755 admin/src/scss/bootstrap_src/_alert.scss create mode 100755 admin/src/scss/bootstrap_src/_animation.scss create mode 100755 admin/src/scss/bootstrap_src/_breadcrumb.scss create mode 100755 admin/src/scss/bootstrap_src/_button-group.scss create mode 100755 admin/src/scss/bootstrap_src/_buttons.scss create mode 100755 admin/src/scss/bootstrap_src/_card.scss create mode 100755 admin/src/scss/bootstrap_src/_carousel.scss create mode 100755 admin/src/scss/bootstrap_src/_close.scss create mode 100755 admin/src/scss/bootstrap_src/_code.scss create mode 100755 admin/src/scss/bootstrap_src/_custom-forms.scss create mode 100755 admin/src/scss/bootstrap_src/_custom.scss create mode 100755 admin/src/scss/bootstrap_src/_dropdown.scss create mode 100755 admin/src/scss/bootstrap_src/_forms.scss create mode 100755 admin/src/scss/bootstrap_src/_grid.scss create mode 100755 admin/src/scss/bootstrap_src/_images.scss create mode 100755 admin/src/scss/bootstrap_src/_input-group.scss create mode 100755 admin/src/scss/bootstrap_src/_jumbotron.scss create mode 100755 admin/src/scss/bootstrap_src/_list-group.scss create mode 100755 admin/src/scss/bootstrap_src/_media.scss create mode 100755 admin/src/scss/bootstrap_src/_mixins.scss create mode 100755 admin/src/scss/bootstrap_src/_modal.scss create mode 100755 admin/src/scss/bootstrap_src/_nav.scss create mode 100755 admin/src/scss/bootstrap_src/_navbar.scss create mode 100755 admin/src/scss/bootstrap_src/_normalize.scss create mode 100755 admin/src/scss/bootstrap_src/_pagination.scss create mode 100755 admin/src/scss/bootstrap_src/_popover.scss create mode 100755 admin/src/scss/bootstrap_src/_print.scss create mode 100755 admin/src/scss/bootstrap_src/_progress.scss create mode 100755 admin/src/scss/bootstrap_src/_reboot.scss create mode 100755 admin/src/scss/bootstrap_src/_responsive-embed.scss create mode 100755 admin/src/scss/bootstrap_src/_tables.scss create mode 100755 admin/src/scss/bootstrap_src/_tags.scss create mode 100755 admin/src/scss/bootstrap_src/_tooltip.scss create mode 100755 admin/src/scss/bootstrap_src/_type.scss create mode 100755 admin/src/scss/bootstrap_src/_utilities.scss create mode 100755 admin/src/scss/bootstrap_src/_variables.scss create mode 100755 admin/src/scss/bootstrap_src/bootstrap-flex.scss create mode 100755 admin/src/scss/bootstrap_src/bootstrap-grid.scss create mode 100755 admin/src/scss/bootstrap_src/bootstrap-reboot.scss create mode 100755 admin/src/scss/bootstrap_src/bootstrap.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_alert.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_background-variant.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_border-radius.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_breakpoints.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_buttons.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_cards.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_clearfix.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_float.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_forms.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_gradients.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_grid-framework.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_grid.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_hover.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_image.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_list-group.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_lists.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_nav-divider.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_navbar-align.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_pagination.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_progress.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_pulls.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_reset-filter.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_reset-text.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_resize.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_screen-reader.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_size.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_tab-focus.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_table-row.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_tag.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_text-emphasis.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_text-hide.scss create mode 100755 admin/src/scss/bootstrap_src/mixins/_text-truncate.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_align.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_background.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_borders.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_clearfix.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_display.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_flex.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_float.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_pulls.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_screenreaders.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_spacing.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_text.scss create mode 100755 admin/src/scss/bootstrap_src/utilities/_visibility.scss create mode 100644 admin/src/scss/core/_animate.scss create mode 100644 admin/src/scss/core/_aside.scss create mode 100644 admin/src/scss/core/_avatars.scss create mode 100644 admin/src/scss/core/_breadcrumb-menu.scss create mode 100644 admin/src/scss/core/_buttons.scss create mode 100644 admin/src/scss/core/_callout.scss create mode 100644 admin/src/scss/core/_charts.scss create mode 100644 admin/src/scss/core/_custom-variables.scss create mode 100644 admin/src/scss/core/_custom.scss create mode 100644 admin/src/scss/core/_footer.scss create mode 100644 admin/src/scss/core/_grid.scss create mode 100644 admin/src/scss/core/_layout.scss create mode 100644 admin/src/scss/core/_loading.scss create mode 100644 admin/src/scss/core/_mixins.scss create mode 100644 admin/src/scss/core/_mobile.scss create mode 100644 admin/src/scss/core/_navigation.scss create mode 100644 admin/src/scss/core/_others.scss create mode 100644 admin/src/scss/core/_switches.scss create mode 100644 admin/src/scss/core/_temp.scss create mode 100644 admin/src/scss/core/_typography.scss create mode 100644 admin/src/scss/core/_utilities-border.scss create mode 100644 admin/src/scss/core/_widgets.scss create mode 100644 admin/src/scss/core/bootstrap-variables.scss create mode 100644 admin/src/scss/core/layouts/_default.scss create mode 100644 admin/src/scss/core/layouts/_layout-1.scss create mode 100644 admin/src/scss/core/navigation/_disabled.scss create mode 100644 admin/src/scss/core/navigation/_sidebar.scss create mode 100644 admin/src/scss/core/navigation/_top.scss create mode 100644 admin/src/scss/style.scss create mode 100644 admin/src/scss/vendors/_vendors.scss create mode 100644 admin/src/scss/vendors/chart.js/chart.scss create mode 100644 admin/src/test.ts create mode 100644 admin/src/tsconfig.json create mode 100644 admin/src/typings.d.ts create mode 100644 admin/tslint.json create mode 100644 api/.editorconfig create mode 100644 api/.eslintignore create mode 100644 api/.eslintrc create mode 100644 api/.gitignore create mode 100644 api/.yo-rc.json create mode 100644 api/README.md create mode 100644 api/common/models/author.js create mode 100644 api/common/models/author.json create mode 100644 api/common/models/domain.js create mode 100644 api/common/models/domain.json create mode 100644 api/common/models/event.js create mode 100644 api/common/models/event.json create mode 100644 api/common/models/post.js create mode 100644 api/common/models/post.json create mode 100644 api/common/models/product.js create mode 100644 api/common/models/product.json create mode 100644 api/common/models/tag.js create mode 100644 api/common/models/tag.json create mode 100644 api/package-scripts.js create mode 100644 api/package.json create mode 100644 api/server/boot/00-init-sample-data.js create mode 100644 api/server/boot/authentication.js create mode 100644 api/server/boot/root.js create mode 100644 api/server/component-config.json create mode 100644 api/server/config.json create mode 100644 api/server/datasources.json create mode 100644 api/server/middleware.development.json create mode 100644 api/server/middleware.json create mode 100644 api/server/model-config.json create mode 100644 api/server/sample-data/development.json create mode 100644 api/server/server.js create mode 100644 package-scripts.js create mode 100644 package.json diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..3ee22e5d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# http://editorconfig.org + +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..2fd83a6a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.idea +node_modules +dist diff --git a/README.md b/README.md new file mode 100644 index 00000000..799862d8 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +# Colmena CMS + +> Free and Open Source API and Admin + +#### TPFKALAA + +This is a complete rewrite of The Project Formerly Known As Loopback Angular Admin. + +## Warning + +#### This software is under 'active' development! +#### Please do not use it in production as-is. + +## About + +Colmena CMS is a starter kit for an API with an Admin interface that can be easily extended and built upon. + +#### Components + +It is built using a collection of great Open Source projects, including but not limited to: + +- [LoopBack](https://loopback.io/) `v2.x` - API server based on Express. +- [Angular](https://angular.io/) `v2.x` - MVC framework to build web apps. +- [Fireloop](http://fireloop.io/) - Awesome Real-Time integration of Loopback and Angular. +- [CoreUI](http://coreui.io/) - Amazing Bootstrap Admin Template. + +## Installation + +The project consists of 2 components, the API and the Admin interface. + +#### Requirements + +This project is built with node and therefore `node` (v6.x) and `npm` (v3.x) need to be available on your machine. + +Additionally it uses [p-s](https://github.com/kentcdodds/p-s) to run the project, which is recommended to be installed +globally: + + $ npm i -g p-s + +#### Clone repo + +First clone the repository to get the project files: + + $ git clone https://github.com/beeman/colmena-cms.git + $ cd colmena-cms + +### API + +From inside the project dir (`colmena-cms`) enter the `api` directory and run `npm install`: + + $ cd api + $ npm install + +### Admin + +From inside the project dir (`colmena-cms`) enter the `admin` directory and run `npm install`: + + $ cd admin + $ npm install + +## Development + +Currently there is now way to build the project, it can only be run in development mode. + +### Running in development mode + +From inside the project dir (`colmena-cms`) run `nps dev`: + + $ nps dev + +This will start the API and the Admin in the same terminal. + +You can also start the two components separately: + +#### Start the API + + $ cd api + $ nps dev + +#### Start the Admin + + $ cd admin + $ nps dev + +### More commands + +For a list of all the commands available run `nps` in the project dir or in one of the components. diff --git a/admin/.editorconfig b/admin/.editorconfig new file mode 100644 index 00000000..3ee22e5d --- /dev/null +++ b/admin/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# http://editorconfig.org + +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/admin/.gitignore b/admin/.gitignore new file mode 100644 index 00000000..2fd83a6a --- /dev/null +++ b/admin/.gitignore @@ -0,0 +1,3 @@ +.idea +node_modules +dist diff --git a/admin/README.md b/admin/README.md new file mode 100644 index 00000000..2e4e2954 --- /dev/null +++ b/admin/README.md @@ -0,0 +1,31 @@ +# colmena-cms-admin + +This project is based on CoreUI - Angular 2. + +## Development server +Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. + +## Code scaffolding + +Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive/pipe/service/class`. + +## Build + +Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. + +## Running unit tests + +Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). + +## Running end-to-end tests + +Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). +Before running the tests make sure you are serving the app via `ng serve`. + +## Deploying to Github Pages + +Run `ng github-pages:deploy` to deploy to Github Pages. + +## Further help + +To get more help on the `angular-cli` use `ng --help` or go check out the [Angular-CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/admin/angular-cli.json b/admin/angular-cli.json new file mode 100644 index 00000000..99246273 --- /dev/null +++ b/admin/angular-cli.json @@ -0,0 +1,47 @@ +{ + "project": { + "version": "1.0.0-alpha.2", + "name": "core-ui" + }, + "apps": [ + { + "root": "src", + "outDir": "dist", + "assets": "assets", + "index": "index.html", + "main": "main.ts", + "test": "test.ts", + "tsconfig": "tsconfig.json", + "prefix": "app", + "mobile": false, + "styles": [ + "scss/style.scss" + ], + "scripts": [ + "../node_modules/chart.js/dist/Chart.bundle.min.js", + "../node_modules/chart.js/dist/Chart.min.js" + ], + "environments": { + "source": "environments/environment.ts", + "dev": "environments/environment.ts", + "prod": "environments/environment.prod.ts" + } + } + ], + "addons": [], + "packages": [], + "e2e": { + "protractor": { + "config": "./protractor.conf.js" + } + }, + "test": { + "karma": { + "config": "./karma.conf.js" + } + }, + "defaults": { + "styleExt": "scss", + "prefixInterfaces": false + } +} diff --git a/admin/coverage/base.css b/admin/coverage/base.css new file mode 100644 index 00000000..417c7adc --- /dev/null +++ b/admin/coverage/base.css @@ -0,0 +1,212 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } + + +.medium .chart { border:1px solid #666; } +.medium .cover-fill { background: #666; } + +.cbranch-no { background: yellow !important; color: #111; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } +.medium { background: #eaeaea; } + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/admin/coverage/coverage.lcov b/admin/coverage/coverage.lcov new file mode 100644 index 00000000..9180d2f7 --- /dev/null +++ b/admin/coverage/coverage.lcov @@ -0,0 +1,54 @@ +TN: +SF:/Users/beeman/workspace/beeman/colmena-cms/admin/node_modules/angular2-template-loader/index.js!/Users/beeman/workspace/beeman/colmena-cms/admin/node_modules/tslint-loader/index.js!/Users/beeman/workspace/beeman/colmena-cms/admin/src/test.ts +FN:15,(anonymous_1) +FN:23,(anonymous_2) +FN:30,(anonymous_3) +FN:32,(anonymous_4) +FNF:4 +FNH:4 +FNDA:1,(anonymous_1) +FNDA:1,(anonymous_2) +FNDA:1,(anonymous_3) +FNDA:1,(anonymous_4) +DA:1,1 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:15,1 +DA:18,1 +DA:24,1 +DA:30,1 +DA:32,1 +LF:12 +LH:12 +BRF:0 +BRH:0 +end_of_record +TN: +SF:/Users/beeman/workspace/beeman/colmena-cms/admin/node_modules/angular2-template-loader/index.js!/Users/beeman/workspace/beeman/colmena-cms/admin/node_modules/tslint-loader/index.js!/Users/beeman/workspace/beeman/colmena-cms/admin/src/polyfills.ts +FNF:0 +FNH:0 +DA:3,1 +DA:4,1 +DA:5,1 +DA:6,1 +DA:7,1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:13,1 +DA:14,1 +DA:15,1 +DA:16,1 +DA:18,1 +DA:19,1 +LF:16 +LH:16 +BRF:0 +BRH:0 +end_of_record diff --git a/admin/coverage/index.html b/admin/coverage/index.html new file mode 100644 index 00000000..69c49dd7 --- /dev/null +++ b/admin/coverage/index.html @@ -0,0 +1,93 @@ + + + + Code coverage report for All files + + + + + + + +
+
+

+ / +

+
+
+ 100% + Statements + 28/28 +
+
+ 100% + Branches + 0/0 +
+
+ 100% + Functions + 4/4 +
+
+ 100% + Lines + 28/28 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
src/
100%28/28100%0/0100%4/4100%28/28
+
+
+ + + + + + + diff --git a/admin/coverage/prettify.css b/admin/coverage/prettify.css new file mode 100644 index 00000000..b317a7cd --- /dev/null +++ b/admin/coverage/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/admin/coverage/prettify.js b/admin/coverage/prettify.js new file mode 100644 index 00000000..ef51e038 --- /dev/null +++ b/admin/coverage/prettify.js @@ -0,0 +1 @@ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/admin/coverage/sort-arrow-sprite.png b/admin/coverage/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function (a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function (a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function () { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i =0 ; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function () { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(cols); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/admin/coverage/src/app/app.component.ts.html b/admin/coverage/src/app/app.component.ts.html new file mode 100644 index 00000000..5e700c0b --- /dev/null +++ b/admin/coverage/src/app/app.component.ts.html @@ -0,0 +1,89 @@ + + + + Code coverage report for src/app/app.component.ts + + + + + + + +
+
+

+ all files / src/app/ app.component.ts +

+
+
+ 100% + Statements + 5/5 +
+
+ 100% + Branches + 0/0 +
+
+ 100% + Functions + 1/1 +
+
+ 100% + Lines + 3/3 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +  + +  +  +  + +  + 
import { Component } from '@angular/core';
+ 
+@Component({
+    selector: 'body',
+    template: '<router-outlet></router-outlet>'
+})
+export class AppComponent { }
+ 
+ 
+
+
+ + + + + + + diff --git a/admin/coverage/src/app/index.html b/admin/coverage/src/app/index.html new file mode 100644 index 00000000..7b9bab27 --- /dev/null +++ b/admin/coverage/src/app/index.html @@ -0,0 +1,93 @@ + + + + Code coverage report for src/app/ + + + + + + + +
+
+

+ all files src/app/ +

+
+
+ 100% + Statements + 5/5 +
+
+ 100% + Branches + 0/0 +
+
+ 100% + Functions + 1/1 +
+
+ 100% + Lines + 3/3 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
app.component.ts
100%5/5100%0/0100%1/1100%3/3
+
+
+ + + + + + + diff --git a/admin/coverage/src/index.html b/admin/coverage/src/index.html new file mode 100644 index 00000000..d097f73b --- /dev/null +++ b/admin/coverage/src/index.html @@ -0,0 +1,106 @@ + + + + Code coverage report for src/ + + + + + + + +
+
+

+ all files src/ +

+
+
+ 100% + Statements + 28/28 +
+
+ 100% + Branches + 0/0 +
+
+ 100% + Functions + 4/4 +
+
+ 100% + Lines + 28/28 +
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
polyfills.ts
100%16/16100%0/0100%0/0100%16/16
test.ts
100%12/12100%0/0100%4/4100%12/12
+
+
+ + + + + + + diff --git a/admin/coverage/src/polyfills.ts.html b/admin/coverage/src/polyfills.ts.html new file mode 100644 index 00000000..272122ed --- /dev/null +++ b/admin/coverage/src/polyfills.ts.html @@ -0,0 +1,125 @@ + + + + Code coverage report for src/polyfills.ts + + + + + + + +
+
+

+ all files / src/ polyfills.ts +

+
+
+ 100% + Statements + 16/16 +
+
+ 100% + Branches + 0/0 +
+
+ 100% + Functions + 0/0 +
+
+ 100% + Lines + 16/16 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21  +  + + + + + + + + + + + + + + +  + + +  + 
// This file includes polyfills needed by Angular 2 and is loaded before
+// the app. You can add your own extra polyfills to this file.
+import 'core-js/es6/symbol';
+import 'core-js/es6/object';
+import 'core-js/es6/function';
+import 'core-js/es6/parse-int';
+import 'core-js/es6/parse-float';
+import 'core-js/es6/number';
+import 'core-js/es6/math';
+import 'core-js/es6/string';
+import 'core-js/es6/date';
+import 'core-js/es6/array';
+import 'core-js/es6/regexp';
+import 'core-js/es6/map';
+import 'core-js/es6/set';
+import 'core-js/es6/reflect';
+ 
+import 'core-js/es7/reflect';
+import 'zone.js/dist/zone';
+ 
+ 
+
+
+ + + + + + + diff --git a/admin/coverage/src/test.ts.html b/admin/coverage/src/test.ts.html new file mode 100644 index 00000000..894311c7 --- /dev/null +++ b/admin/coverage/src/test.ts.html @@ -0,0 +1,170 @@ + + + + Code coverage report for src/test.ts + + + + + + + +
+
+

+ all files / src/ test.ts +

+
+
+ 100% + Statements + 12/12 +
+
+ 100% + Branches + 0/0 +
+
+ 100% + Functions + 4/4 +
+
+ 100% + Lines + 12/12 +
+
+
+
+

+
+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +  + + + + + + +  +  +  +  +  +  + +  +  + +  +  +  +  +  + +  +  +  +  +  + +  + +  +  +  + 
import './polyfills.ts';
+ 
+import 'zone.js/dist/long-stack-trace-zone';
+import 'zone.js/dist/proxy.js';
+import 'zone.js/dist/sync-test';
+import 'zone.js/dist/jasmine-patch';
+import 'zone.js/dist/async-test';
+import 'zone.js/dist/fake-async-test';
+ 
+// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any.
+declare var __karma__: any;
+declare var require: any;
+ 
+// Prevent Karma from running prematurely.
+__karma__.loaded = function () {};
+ 
+ 
+Promise.all([
+  System.import('@angular/core/testing'),
+  System.import('@angular/platform-browser-dynamic/testing')
+])
+  // First, initialize the Angular testing environment.
+  .then(([testing, testingBrowser]) => {
+    testing.getTestBed().initTestEnvironment(
+      testingBrowser.BrowserDynamicTestingModule,
+      testingBrowser.platformBrowserDynamicTesting()
+    );
+  })
+  // Then we find all the tests.
+  .then(() => require.context('./', true, /\.spec\.ts/))
+  // And load the modules.
+  .then(context => context.keys().map(context))
+  // Finally, start Karma to run the tests.
+  .then(__karma__.start, __karma__.error);
+ 
+ 
+
+
+ + + + + + + diff --git a/admin/e2e/app.e2e-spec.ts b/admin/e2e/app.e2e-spec.ts new file mode 100644 index 00000000..022797d6 --- /dev/null +++ b/admin/e2e/app.e2e-spec.ts @@ -0,0 +1,14 @@ +import { CoreUIPage } from './app.po'; + +describe('core-ui App', function() { + let page: CoreUIPage; + + beforeEach(() => { + page = new CoreUIPage(); + }); + + it('should display message saying app works', () => { + page.navigateTo(); + expect(page.getParagraphText()).toEqual('app works!'); + }); +}); diff --git a/admin/e2e/app.po.ts b/admin/e2e/app.po.ts new file mode 100644 index 00000000..d51eaf2b --- /dev/null +++ b/admin/e2e/app.po.ts @@ -0,0 +1,11 @@ +import { browser, element, by } from 'protractor/globals'; + +export class CoreUIPage { + navigateTo() { + return browser.get('/'); + } + + getParagraphText() { + return element(by.css('app-root h1')).getText(); + } +} diff --git a/admin/e2e/tsconfig.json b/admin/e2e/tsconfig.json new file mode 100644 index 00000000..656bdb14 --- /dev/null +++ b/admin/e2e/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "declaration": false, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "module": "commonjs", + "moduleResolution": "node", + "outDir": "../dist/out-tsc-e2e", + "sourceMap": true, + "target": "es5", + "typeRoots": [ + "../node_modules/@types" + ] + } +} diff --git a/admin/karma.conf.js b/admin/karma.conf.js new file mode 100644 index 00000000..e28922ac --- /dev/null +++ b/admin/karma.conf.js @@ -0,0 +1,38 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/0.13/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', 'angular-cli'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-remap-istanbul'), + require('angular-cli/plugins/karma') + ], + files: [ + { pattern: './src/test.ts', watched: false } + ], + preprocessors: { + './src/test.ts': ['angular-cli'] + }, + remapIstanbulReporter: { + reports: { + html: 'coverage', + lcovonly: './coverage/coverage.lcov' + } + }, + angularCli: { + config: './angular-cli.json', + environment: 'dev' + }, + reporters: ['progress', 'karma-remap-istanbul'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/admin/package-scripts.js b/admin/package-scripts.js new file mode 100644 index 00000000..d8e43927 --- /dev/null +++ b/admin/package-scripts.js @@ -0,0 +1,13 @@ +module.exports = { + scripts: { + dev: 'ng serve', + lint: 'tslint "src/**/*.ts"', + test: { + default: 'ng test', + e2e: { + default: 'nps test.e2e.pre; protractor', + pre: 'webdriver-manager update' + } + } + } +}; diff --git a/admin/package.json b/admin/package.json new file mode 100644 index 00000000..6482f5df --- /dev/null +++ b/admin/package.json @@ -0,0 +1,51 @@ +{ + "name": "colmena-cms-admin", + "version": "1.0.0-beta.1", + "description": "Colmena CMS Admin", + "license": "MIT", + "author": "Bram Borggreve ", + "url": "https://github.com/colmena/cms", + "scripts": { + "pree2e": "nps test.e2e.pre", + "e2e": "nps test.e2e", + "start": "nps", + "test": "nps test" + }, + "dependencies": { + "@angular/common": "2.1.0", + "@angular/compiler": "2.1.0", + "@angular/core": "2.1.0", + "@angular/forms": "2.1.0", + "@angular/http": "2.1.0", + "@angular/platform-browser": "2.1.0", + "@angular/platform-browser-dynamic": "2.1.0", + "@angular/router": "3.1.0", + "@angular/upgrade": "2.1.0", + "@types/socket.io-client": "^1.4.27", + "chart.js": "2.3.0", + "core-js": "2.4.1", + "moment": "2.15.1", + "ng2-bootstrap": "1.1.14", + "ng2-charts": "1.4.0", + "rxjs": "5.0.0-rc.1", + "socket.io-client": "^1.5.0", + "ts-helpers": "1.1.2", + "zone.js": "0.6.26" + }, + "devDependencies": { + "@types/jasmine": "2.5.35", + "angular-cli": "1.0.0-beta.17", + "codelyzer": "1.0.0-beta.2", + "jasmine-core": "2.5.2", + "jasmine-spec-reporter": "2.7.0", + "karma": "1.3.0", + "karma-chrome-launcher": "2.0.0", + "karma-jasmine": "1.0.2", + "karma-remap-istanbul": "0.2.1", + "protractor": "4.0.9", + "ts-node": "1.6.0", + "tslint": "3.15.1", + "typescript": "2.0.3" + }, + "angular-cli": {} +} diff --git a/admin/protractor.conf.js b/admin/protractor.conf.js new file mode 100644 index 00000000..169743b3 --- /dev/null +++ b/admin/protractor.conf.js @@ -0,0 +1,32 @@ +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/docs/referenceConf.js + +/*global jasmine */ +var SpecReporter = require('jasmine-spec-reporter'); + +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './e2e/**/*.e2e-spec.ts' + ], + capabilities: { + 'browserName': 'chrome' + }, + directConnect: true, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function() {} + }, + useAllAngular2AppRoots: true, + beforeLaunch: function() { + require('ts-node').register({ + project: 'e2e' + }); + }, + onPrepare: function() { + jasmine.getEnv().addReporter(new SpecReporter()); + } +}; diff --git a/admin/src/app/app.component.html b/admin/src/app/app.component.html new file mode 100644 index 00000000..e69de29b diff --git a/admin/src/app/app.component.spec.ts b/admin/src/app/app.component.spec.ts new file mode 100644 index 00000000..cf871b04 --- /dev/null +++ b/admin/src/app/app.component.spec.ts @@ -0,0 +1,17 @@ +/* tslint:disable:no-unused-variable */ +import { AppComponent } from './app.component'; + +import { TestBed } from '@angular/core/testing'; + +import { By } from '@angular/platform-browser'; + +//////// SPECS ///////////// + +/// Delete this +describe('Smoke test', () => { + it('should run a passing test', () => { + expect(true).toEqual(true, 'should pass'); + }); +}); + + diff --git a/admin/src/app/app.component.ts b/admin/src/app/app.component.ts new file mode 100644 index 00000000..a5f091d6 --- /dev/null +++ b/admin/src/app/app.component.ts @@ -0,0 +1,7 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'body', + template: '' +}) +export class AppComponent { } diff --git a/admin/src/app/app.module.ts b/admin/src/app/app.module.ts new file mode 100644 index 00000000..f14dc7dd --- /dev/null +++ b/admin/src/app/app.module.ts @@ -0,0 +1,57 @@ +import {NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import { + CommonModule, + LocationStrategy, + HashLocationStrategy +} from '@angular/common'; + +import {FormsModule} from '@angular/forms'; +import {HttpModule} from '@angular/http'; + +import {AppComponent} from './app.component'; +import {Ng2BootstrapModule} from 'ng2-bootstrap/ng2-bootstrap'; +import {NAV_DROPDOWN_DIRECTIVES} from './shared/nav-dropdown.directive'; + +import {ChartsModule} from 'ng2-charts/ng2-charts'; +import {SIDEBAR_TOGGLE_DIRECTIVES} from './shared/sidebar.directive'; +import {AsideToggleDirective} from './shared/aside.directive'; +import {BreadcrumbsComponent} from './shared/breadcrumb.component'; +import {SDKModule} from './shared/sdk'; + + +// Routing Module +import {AppRoutingModule} from './app.routing'; + +// Layouts +import {FullLayoutComponent} from './layouts/full-layout.component'; +import {SimpleLayoutComponent} from './layouts/simple-layout.component'; + +@NgModule({ + imports: [ + BrowserModule, + AppRoutingModule, + Ng2BootstrapModule, + ChartsModule, + CommonModule, + FormsModule, + HttpModule, + SDKModule.forRoot() + ], + declarations: [ + AppComponent, + FullLayoutComponent, + SimpleLayoutComponent, + NAV_DROPDOWN_DIRECTIVES, + BreadcrumbsComponent, + SIDEBAR_TOGGLE_DIRECTIVES, + AsideToggleDirective + ], + providers: [{ + provide: LocationStrategy, + useClass: HashLocationStrategy + }], + bootstrap: [AppComponent] +}) +export class AppModule { +} diff --git a/admin/src/app/app.routing.ts b/admin/src/app/app.routing.ts new file mode 100644 index 00000000..3d310ae1 --- /dev/null +++ b/admin/src/app/app.routing.ts @@ -0,0 +1,51 @@ +import {NgModule} from '@angular/core'; +import { + Routes, + RouterModule +} from '@angular/router'; + +// Layouts +import {FullLayoutComponent} from './layouts/full-layout.component'; +import {SimpleLayoutComponent} from './layouts/simple-layout.component'; + +export const routes: Routes = [ + { + path: '', + redirectTo: 'dashboard', + pathMatch: 'full', + }, + { + path: '', + component: FullLayoutComponent, + data: { + title: 'Home' + }, + children: [{ + path: '', + loadChildren: 'app/system/system.module#SystemModule' + }, { + path: 'content', + loadChildren: 'app/content/content.module#ContentModule' + }] + }, + { + path: 'pages', + component: SimpleLayoutComponent, + data: { + title: 'Pages' + }, + children: [ + { + path: '', + loadChildren: 'app/pages/pages.module#PagesModule', + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { +} diff --git a/admin/src/app/content-authors/authors-routing.module.ts b/admin/src/app/content-authors/authors-routing.module.ts new file mode 100644 index 00000000..d24f92ff --- /dev/null +++ b/admin/src/app/content-authors/authors-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {AuthorsComponent} from './authors.component'; + +const routes: Routes = [{ + path: 'authors', + component: AuthorsComponent, + data: { + title: 'Authors' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AuthorsRoutingModule { +} diff --git a/admin/src/app/content-authors/authors.component.html b/admin/src/app/content-authors/authors.component.html new file mode 100644 index 00000000..f292c55b --- /dev/null +++ b/admin/src/app/content-authors/authors.component.html @@ -0,0 +1,75 @@ +
+
+
+
+
+ {{page.title}} +
+
+ + + + + + + + + + + + + +
{{column.label}}Actions
+ + {{item[column.field]}} + + + + {{item[column.field]}} + + + + +
+
+
+
+
+
+
+
+ + Edit + Add +
+
+
+ + +
+
+ +
+
+
+
+
diff --git a/admin/src/app/content-authors/authors.component.ts b/admin/src/app/content-authors/authors.component.ts new file mode 100644 index 00000000..e723ea0c --- /dev/null +++ b/admin/src/app/content-authors/authors.component.ts @@ -0,0 +1,72 @@ +import { Component, OnInit } from '@angular/core'; +import { Observable } from 'rxjs/Observable'; + +import { Author, FireLoopRef } from '../shared/sdk/models'; +import { RealTime } from '../shared/sdk/services'; + +@Component({ + selector: 'app-authors', + templateUrl: './authors.component.html', +}) +export class AuthorsComponent implements OnInit { + + private page = { + title: 'Authors', + icon: 'icon-people', + }; + + private tableConfig = { + class: 'table table-bordered table-striped table-condensed', + columns: [ + { field: 'firstName', label: 'First name', click: item => this.select(item) }, + { field: 'lastName', label: 'Last name', click: item => this.select(item) }, + { field: 'username', label: 'Username' }, + { field: 'email', label: 'Email' }, + ], + rowButtons: [ + { class: 'btn btn-sm btn-outline-primary', icon: 'fa fa-fw fa-pencil', click: item => this.select(item) }, + { class: 'btn btn-sm btn-outline-danger', icon: 'fa fa-fw fa-trash', click: item => this.remove(item) }, + ] + }; + + private formConfig = { + fields: [ + { name: 'firstName', label: 'First name', type: 'text', placeholder: 'First name'}, + { name: 'lastName', label: 'Last name', type: 'text', placeholder: 'Last name'}, + { name: 'username', label: 'Username', type: 'text', placeholder: 'Username'}, + { name: 'email', label: 'Email', type: 'email', placeholder: 'Email'}, + ] + }; + + private item: Author = new Author(); + private items: Observable; + private reference: FireLoopRef; + + constructor(private rt: RealTime) {} + + ngOnInit() { + this.reference = this.rt.FireLoop.ref(Author); + this.items = this.reference.on('changes'); + } + + upsert(): void { + if (this.item.id) { + this.reference.upsert(this.item).subscribe(); + this.new(); + } else { + this.reference.create(this.item).subscribe(() => this.item = new Author()); + } + } + + select(item: Author): void { + this.item = item; + } + + remove(item: Author): void { + this.reference.remove(item).subscribe(); + } + + new(): void { + this.item = new Author(); + } +} diff --git a/admin/src/app/content-authors/authors.module.ts b/admin/src/app/content-authors/authors.module.ts new file mode 100644 index 00000000..29d78b4b --- /dev/null +++ b/admin/src/app/content-authors/authors.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; + +import { AuthorsComponent } from './authors.component'; + +import { AuthorsRoutingModule } from './authors-routing.module'; + +@NgModule({ + imports: [ + AuthorsRoutingModule, + CommonModule, + FormsModule + ], + declarations: [ + AuthorsComponent, + ] +}) +export class AuthorsModule { } diff --git a/admin/src/app/content-events/events-routing.module.ts b/admin/src/app/content-events/events-routing.module.ts new file mode 100644 index 00000000..d1232419 --- /dev/null +++ b/admin/src/app/content-events/events-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {EventsComponent} from './events.component'; + +const routes: Routes = [{ + path: 'events', + component: EventsComponent, + data: { + title: 'Events' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class EventsRoutingModule { +} diff --git a/admin/src/app/content-events/events.component.html b/admin/src/app/content-events/events.component.html new file mode 100644 index 00000000..e9b8536f --- /dev/null +++ b/admin/src/app/content-events/events.component.html @@ -0,0 +1,93 @@ +
+
+
+
+
+ Events +
+
+ + + + + + + + + + + + + + + + + +
NameDateLocationActions
{{event.name}}{{event.date}}{{event.location}} + + +
+
+
+
+
+
+
+
+ + Edit + Add + Event +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
+
+
diff --git a/admin/src/app/content-events/events.component.ts b/admin/src/app/content-events/events.component.ts new file mode 100644 index 00000000..b6117bde --- /dev/null +++ b/admin/src/app/content-events/events.component.ts @@ -0,0 +1,42 @@ +import {Component} from '@angular/core'; +import {Observable} from 'rxjs/Observable'; + +import {Event, FireLoopRef} from '../shared/sdk/models'; +import {RealTime} from '../shared/sdk/services'; + +@Component({ + selector: 'app-events', + templateUrl: './events.component.html' +}) +export class EventsComponent { + + private event: Event = new Event(); + private events: Observable; + private reference: FireLoopRef; + + constructor(private rt: RealTime) { + this.reference = this.rt.FireLoop.ref(Event); + this.events = this.reference.on('changes'); + } + + upsert(): void { + if (this.event.id) { + this.reference.upsert(this.event).subscribe(); + this.new(); + } else { + this.reference.create(this.event).subscribe(() => this.event = new Event()); + } + } + + select(event: Event): void { + this.event = event; + } + + remove(event: Event): void { + this.reference.remove(event).subscribe(); + } + + new(): void { + this.event = new Event(); + } +} diff --git a/admin/src/app/content-events/events.module.ts b/admin/src/app/content-events/events.module.ts new file mode 100644 index 00000000..9b42f7e8 --- /dev/null +++ b/admin/src/app/content-events/events.module.ts @@ -0,0 +1,20 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {EventsComponent} from './events.component'; + +import {EventsRoutingModule} from './events-routing.module'; + +@NgModule({ + imports: [ + EventsRoutingModule, + CommonModule, + FormsModule + ], + declarations: [ + EventsComponent, + ] +}) +export class EventsModule { +} diff --git a/admin/src/app/content-posts/posts-routing.module.ts b/admin/src/app/content-posts/posts-routing.module.ts new file mode 100644 index 00000000..0e553fe6 --- /dev/null +++ b/admin/src/app/content-posts/posts-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {PostsComponent} from './posts.component'; + +const routes: Routes = [{ + path: 'posts', + component: PostsComponent, + data: { + title: 'Posts' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class PostsRoutingModule { +} diff --git a/admin/src/app/content-posts/posts.component.html b/admin/src/app/content-posts/posts.component.html new file mode 100644 index 00000000..6214288b --- /dev/null +++ b/admin/src/app/content-posts/posts.component.html @@ -0,0 +1,79 @@ +
+
+
+
+
+ Posts +
+
+ + + + + + + + + + + + + +
TitleActions
{{post.title}} + + +
+
+
+
+
+
+
+
+ + Edit + Add + Post +
+
+
+ + +
+ +
+ + +
+ +
+ +
+
+
+
+
diff --git a/admin/src/app/content-posts/posts.component.ts b/admin/src/app/content-posts/posts.component.ts new file mode 100644 index 00000000..20dfdda8 --- /dev/null +++ b/admin/src/app/content-posts/posts.component.ts @@ -0,0 +1,42 @@ +import {Component} from '@angular/core'; +import {Observable} from 'rxjs/Observable'; + +import {Post, FireLoopRef} from '../shared/sdk/models'; +import {RealTime} from '../shared/sdk/services'; + +@Component({ + selector: 'app-posts', + templateUrl: './posts.component.html' +}) +export class PostsComponent { + + private post: Post = new Post(); + private posts: Observable; + private reference: FireLoopRef; + + constructor(private rt: RealTime) { + this.reference = this.rt.FireLoop.ref(Post); + this.posts = this.reference.on('changes'); + } + + upsert(): void { + if (this.post.id) { + this.reference.upsert(this.post).subscribe(); + this.new(); + } else { + this.reference.create(this.post).subscribe(() => this.post = new Post()); + } + } + + select(post: Post): void { + this.post = post; + } + + remove(post: Post): void { + this.reference.remove(post).subscribe(); + } + + new(): void { + this.post = new Post(); + } +} diff --git a/admin/src/app/content-posts/posts.module.ts b/admin/src/app/content-posts/posts.module.ts new file mode 100644 index 00000000..d1587d85 --- /dev/null +++ b/admin/src/app/content-posts/posts.module.ts @@ -0,0 +1,20 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {PostsComponent} from './posts.component'; + +import {PostsRoutingModule} from './posts-routing.module'; + +@NgModule({ + imports: [ + PostsRoutingModule, + CommonModule, + FormsModule + ], + declarations: [ + PostsComponent, + ] +}) +export class PostsModule { +} diff --git a/admin/src/app/content-products/products-routing.module.ts b/admin/src/app/content-products/products-routing.module.ts new file mode 100644 index 00000000..127179ac --- /dev/null +++ b/admin/src/app/content-products/products-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {ProductsComponent} from './products.component'; + +const routes: Routes = [{ + path: 'products', + component: ProductsComponent, + data: { + title: 'Products' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ProductsRoutingModule { +} diff --git a/admin/src/app/content-products/products.component.html b/admin/src/app/content-products/products.component.html new file mode 100644 index 00000000..3ac797c7 --- /dev/null +++ b/admin/src/app/content-products/products.component.html @@ -0,0 +1,91 @@ +
+
+
+
+
+ Products +
+
+ + + + + + + + + + + + + + + +
NameSKUActions
{{product.name}}{{product.sku}} + + +
+
+
+
+
+
+
+
+ + Edit + Add + Product +
+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+
+
+
+
diff --git a/admin/src/app/content-products/products.component.ts b/admin/src/app/content-products/products.component.ts new file mode 100644 index 00000000..6fe2ec76 --- /dev/null +++ b/admin/src/app/content-products/products.component.ts @@ -0,0 +1,42 @@ +import {Component} from '@angular/core'; +import {Observable} from 'rxjs/Observable'; + +import {Product, FireLoopRef} from '../shared/sdk/models'; +import {RealTime} from '../shared/sdk/services'; + +@Component({ + selector: 'app-products', + templateUrl: './products.component.html' +}) +export class ProductsComponent { + + private product: Product = new Product(); + private products: Observable; + private reference: FireLoopRef; + + constructor(private rt: RealTime) { + this.reference = this.rt.FireLoop.ref(Product); + this.products = this.reference.on('changes'); + } + + upsert(): void { + if (this.product.id) { + this.reference.upsert(this.product).subscribe(); + this.new(); + } else { + this.reference.create(this.product).subscribe(() => this.product = new Product()); + } + } + + select(product: Product): void { + this.product = product; + } + + remove(product: Product): void { + this.reference.remove(product).subscribe(); + } + + new(): void { + this.product = new Product(); + } +} diff --git a/admin/src/app/content-products/products.module.ts b/admin/src/app/content-products/products.module.ts new file mode 100644 index 00000000..f3155575 --- /dev/null +++ b/admin/src/app/content-products/products.module.ts @@ -0,0 +1,20 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {ProductsComponent} from './products.component'; + +import {ProductsRoutingModule} from './products-routing.module'; + +@NgModule({ + imports: [ + ProductsRoutingModule, + CommonModule, + FormsModule + ], + declarations: [ + ProductsComponent, + ] +}) +export class ProductsModule { +} diff --git a/admin/src/app/content/content-routing.module.ts b/admin/src/app/content/content-routing.module.ts new file mode 100644 index 00000000..c3370df0 --- /dev/null +++ b/admin/src/app/content/content-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +const routes: Routes = [{ + path: '', + data: { + title: 'Content' + }, +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ContentRoutingModule { +} diff --git a/admin/src/app/content/content.module.ts b/admin/src/app/content/content.module.ts new file mode 100644 index 00000000..5fcc1f93 --- /dev/null +++ b/admin/src/app/content/content.module.ts @@ -0,0 +1,24 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {AuthorsModule} from '../content-authors/authors.module'; +import {EventsModule} from '../content-events/events.module'; +import {PostsModule} from '../content-posts/posts.module'; +import {ProductsModule} from '../content-products/products.module'; + +import {ContentRoutingModule} from './content-routing.module'; + +@NgModule({ + imports: [ + AuthorsModule, + CommonModule, + ContentRoutingModule, + EventsModule, + FormsModule, + PostsModule, + ProductsModule + ] +}) +export class ContentModule { +} diff --git a/admin/src/app/index.ts b/admin/src/app/index.ts new file mode 100644 index 00000000..875bdb2f --- /dev/null +++ b/admin/src/app/index.ts @@ -0,0 +1,2 @@ +export * from './app.component'; +export * from './app.module'; diff --git a/admin/src/app/layouts/full-layout.component.html b/admin/src/app/layouts/full-layout.component.html new file mode 100644 index 00000000..7028d046 --- /dev/null +++ b/admin/src/app/layouts/full-layout.component.html @@ -0,0 +1,74 @@ + + + + + +
+ + + + +
+ +
+ +
+ + diff --git a/admin/src/app/layouts/full-layout.component.ts b/admin/src/app/layouts/full-layout.component.ts new file mode 100644 index 00000000..44538e15 --- /dev/null +++ b/admin/src/app/layouts/full-layout.component.ts @@ -0,0 +1,48 @@ +import {Component, OnInit} from '@angular/core'; + +@Component({ + selector: 'app-dashboard', + templateUrl: './full-layout.component.html' +}) +export class FullLayoutComponent implements OnInit { + + constructor() { + } + + private navItems = [ + {type: 'item', label: 'Dashboard', icon: 'icon-speedometer', link: '/dashboard'}, + {type: 'divider'}, + {type: 'title', label: 'Content'}, + {type: 'item', label: 'Authors', icon: 'icon-people', link: '/content/authors'}, + {type: 'item', label: 'Events', icon: 'icon-calendar', link: '/content/events'}, + {type: 'item', label: 'Posts', icon: 'icon-pencil', link: '/content/posts'}, + {type: 'item', label: 'Products', icon: 'icon-basket', link: '/content/products'}, + {type: 'title', label: 'System'}, + {type: 'item', label: 'Domains', icon: 'icon-globe', link: '/domains'}, + {type: 'item', label: 'Settings', icon: 'icon-settings', link: '/settings'}, + {type: 'item', label: 'Users', icon: 'icon-people', link: '/users'}, + ]; + + private topNavItems = [ + {label: 'Dashboard', link: '/dashboard'}, + {label: 'Domains', link: '/domains'}, + {label: 'Settings', link: '/settings'}, + {label: 'Users', link: '/users'}, + ]; + + public disabled: boolean = false; + public status: {isopen: boolean} = {isopen: false}; + + public toggled(open: boolean): void { + console.log('Dropdown is now: ', open); + } + + public toggleDropdown($event: MouseEvent): void { + $event.preventDefault(); + $event.stopPropagation(); + this.status.isopen = !this.status.isopen; + } + + ngOnInit(): void { + } +} diff --git a/admin/src/app/layouts/simple-layout.component.html b/admin/src/app/layouts/simple-layout.component.html new file mode 100644 index 00000000..e69de29b diff --git a/admin/src/app/layouts/simple-layout.component.ts b/admin/src/app/layouts/simple-layout.component.ts new file mode 100644 index 00000000..23d2e602 --- /dev/null +++ b/admin/src/app/layouts/simple-layout.component.ts @@ -0,0 +1,12 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-dashboard', + template: '', +}) +export class SimpleLayoutComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { } +} diff --git a/admin/src/app/main.ts b/admin/src/app/main.ts new file mode 100644 index 00000000..44f34b22 --- /dev/null +++ b/admin/src/app/main.ts @@ -0,0 +1,6 @@ +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app.module'; + +const platform = platformBrowserDynamic(); +platform.bootstrapModule(AppModule); diff --git a/admin/src/app/pages/404.component.html b/admin/src/app/pages/404.component.html new file mode 100644 index 00000000..d82354f1 --- /dev/null +++ b/admin/src/app/pages/404.component.html @@ -0,0 +1,21 @@ +
+
+
+
+
+

404

+

Oops! You're lost.

+

The page you are looking for was not found.

+
+
+ + + + + + +
+
+
+
+
diff --git a/admin/src/app/pages/404.component.ts b/admin/src/app/pages/404.component.ts new file mode 100644 index 00000000..02024a09 --- /dev/null +++ b/admin/src/app/pages/404.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + templateUrl: '404.component.html' +}) +export class p404Component { + + constructor() { } + +} diff --git a/admin/src/app/pages/500.component.html b/admin/src/app/pages/500.component.html new file mode 100644 index 00000000..7f3a9c85 --- /dev/null +++ b/admin/src/app/pages/500.component.html @@ -0,0 +1,21 @@ +
+
+
+
+
+

500

+

Houston, we have a problem!

+

The page you are looking for is temporarily unavailable.

+
+
+ + + + + + +
+
+
+
+
diff --git a/admin/src/app/pages/500.component.ts b/admin/src/app/pages/500.component.ts new file mode 100644 index 00000000..99b8dd68 --- /dev/null +++ b/admin/src/app/pages/500.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + templateUrl: '500.component.html' +}) +export class p500Component { + + constructor() { } + +} diff --git a/admin/src/app/pages/login.component.html b/admin/src/app/pages/login.component.html new file mode 100644 index 00000000..9efc6955 --- /dev/null +++ b/admin/src/app/pages/login.component.html @@ -0,0 +1,43 @@ +
+
+
+
+
+
+
+

Login

+

Sign In to your account

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

Sign up

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

+ +
+
+
+
+
+
+
+
diff --git a/admin/src/app/pages/login.component.ts b/admin/src/app/pages/login.component.ts new file mode 100644 index 00000000..113bb5b6 --- /dev/null +++ b/admin/src/app/pages/login.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + templateUrl: 'login.component.html' +}) +export class LoginComponent { + + constructor() { } + +} diff --git a/admin/src/app/pages/pages-routing.module.ts b/admin/src/app/pages/pages-routing.module.ts new file mode 100644 index 00000000..a0afe1d6 --- /dev/null +++ b/admin/src/app/pages/pages-routing.module.ts @@ -0,0 +1,53 @@ +import { NgModule } from '@angular/core'; +import { Routes, + RouterModule } from '@angular/router'; + +import { p404Component } from './404.component'; +import { p500Component } from './500.component'; +import { LoginComponent } from './login.component'; +import { RegisterComponent } from './register.component'; + +const routes: Routes = [ + { + path: '', + data: { + title: 'Example Pages' + }, + children: [ + { + path: '404', + component: p404Component, + data: { + title: 'Page 404' + } + }, + { + path: '500', + component: p500Component, + data: { + title: 'Page 500' + } + }, + { + path: 'login', + component: LoginComponent, + data: { + title: 'Login Page' + } + }, + { + path: 'register', + component: RegisterComponent, + data: { + title: 'Register Page' + } + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class PagesRoutingModule {} diff --git a/admin/src/app/pages/pages.module.ts b/admin/src/app/pages/pages.module.ts new file mode 100644 index 00000000..6a2e7142 --- /dev/null +++ b/admin/src/app/pages/pages.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; + +import { p404Component } from './404.component'; +import { p500Component } from './500.component'; +import { LoginComponent } from './login.component'; +import { RegisterComponent } from './register.component'; + +import { PagesRoutingModule } from './pages-routing.module'; + +@NgModule({ + imports: [ PagesRoutingModule ], + declarations: [ + p404Component, + p500Component, + LoginComponent, + RegisterComponent + ] +}) +export class PagesModule { } diff --git a/admin/src/app/pages/register.component.html b/admin/src/app/pages/register.component.html new file mode 100644 index 00000000..f44dc8fc --- /dev/null +++ b/admin/src/app/pages/register.component.html @@ -0,0 +1,52 @@ +
+
+
+
+
+
+

Register

+

Create your account

+
+ + + +
+ +
+ @ + +
+ +
+ + + +
+ +
+ + + +
+ + +
+ +
+
+
+
+
diff --git a/admin/src/app/pages/register.component.ts b/admin/src/app/pages/register.component.ts new file mode 100644 index 00000000..88e50774 --- /dev/null +++ b/admin/src/app/pages/register.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + templateUrl: 'register.component.html' +}) +export class RegisterComponent { + + constructor() { } + +} diff --git a/admin/src/app/shared/aside.directive.ts b/admin/src/app/shared/aside.directive.ts new file mode 100644 index 00000000..ab3d3e3a --- /dev/null +++ b/admin/src/app/shared/aside.directive.ts @@ -0,0 +1,17 @@ +import { Directive, HostListener } from '@angular/core'; + +/** +* Allows the aside to be toggled via click. +*/ +@Directive({ + selector: '.aside-toggle', +}) +export class AsideToggleDirective { + constructor() { } + + @HostListener('click', ['$event']) + toggleOpen($event:any) { + $event.preventDefault(); + document.querySelector('body').classList.toggle('aside-menu-open'); + } +} diff --git a/admin/src/app/shared/breadcrumb.component.ts b/admin/src/app/shared/breadcrumb.component.ts new file mode 100644 index 00000000..2e793ad6 --- /dev/null +++ b/admin/src/app/shared/breadcrumb.component.ts @@ -0,0 +1,42 @@ +import {Component} from '@angular/core'; +import {Router, ActivatedRoute, NavigationEnd} from '@angular/router'; +import 'rxjs/add/operator/filter'; + +@Component({ + selector: 'breadcrumbs', + template: ` + ` +}) +export class BreadcrumbsComponent { + breadcrumbs: Array; + + constructor(private router: Router, private route: ActivatedRoute) { + } + + ngOnInit(): void { + this.router.events.filter(event => event instanceof NavigationEnd).subscribe(event => { + this.breadcrumbs = []; + let currentRoute = this.route.root, + url = ''; + do { + let childrenRoutes = currentRoute.children; + currentRoute = null; + childrenRoutes.forEach(route => { + if (route.outlet === 'primary') { + let routeSnapshot = route.snapshot; + url += '/' + routeSnapshot.url.map(segment => segment.path).join('/'); + this.breadcrumbs.push({ + label: route.snapshot.data, + url: url + }); + currentRoute = route; + }; + }) + } while (currentRoute); + }) + } +} diff --git a/admin/src/app/shared/nav-dropdown.directive.ts b/admin/src/app/shared/nav-dropdown.directive.ts new file mode 100644 index 00000000..6652f138 --- /dev/null +++ b/admin/src/app/shared/nav-dropdown.directive.ts @@ -0,0 +1,64 @@ +import {Directive, HostListener} from '@angular/core'; + +@Directive({ + selector: '.nav-dropdown', + host: { + '[class.open]': '_open', + } +}) +export class NavDropdownDirective { + + private _open = false; + + /** + * Checks if the dropdown menu is open or not. + */ + isOpen() { + return this._open; + } + + /** + * Opens the dropdown menu. + */ + open() { + this._open = true; + } + + /** + * Closes the dropdown menu . + */ + close() { + this._open = false; + } + + /** + * Toggles the dropdown menu. + */ + toggle() { + if (this.isOpen()) { + this.close(); + } else { + this.open(); + } + } +} + +/** + * Allows the dropdown to be toggled via click. + */ +@Directive({ + selector: '.nav-dropdown-toggle', +}) +export class NavDropdownToggleDirective { + constructor(private dropdown: NavDropdownDirective) { + } + + @HostListener('click', ['$event']) + toggleOpen($event: any) { + $event.preventDefault(); + this.dropdown.toggle(); + } +} + +export const NAV_DROPDOWN_DIRECTIVES = [NavDropdownDirective, NavDropdownToggleDirective]; +// export const NGB_DROPDOWN_DIRECTIVES = [NgbDropdownToggle, NgbDropdown]; diff --git a/admin/src/app/shared/sdk/index.ts b/admin/src/app/shared/sdk/index.ts new file mode 100644 index 00000000..4caa274e --- /dev/null +++ b/admin/src/app/shared/sdk/index.ts @@ -0,0 +1,81 @@ +/** +* @module SDKModule +* @author Jonathan Casarrubias +* @license MTI 2016 Jonathan Casarrubias +* @description +* The SDKModule is a generated Software Development Kit automatically built by +* the LoopBack SDK Builder open source module. +* +* The SDKModule provides Angular 2 >= RC.5 support, which means that NgModules +* can import this Software Development Kit as follows: +* +* +* APP Route Module Context +* ============================================================================ +* import { NgModule } from '@angular/core'; +* import { BrowserModule } from '@angular/platform-browser'; +* // App Root +* import { AppComponent } from './app.component'; +* // Feature Modules +* import { SDKModule } from './shared/sdk/sdk.module'; +* // Import Routing +* import { routing } from './app.routing'; +* @NgModule({ +* imports: [ +* BrowserModule, +* routing, +* SDKModule.forRoot() +* ], +* declarations: [ AppComponent ], +* bootstrap: [ AppComponent ] +* }) +* export class AppModule { } +* +**/ +import { JSONSearchParams } from './services/core/search.params'; +import { ErrorHandler } from './services/core/error.service'; +import { LoopBackAuth } from './services/core/auth.service'; +import { LoggerService } from './services/custom/logger.service'; +import { HttpModule } from '@angular/http'; +import { CommonModule } from '@angular/common'; +import { NgModule, ModuleWithProviders } from '@angular/core'; +import { RealTime } from './services/core/real.time'; +import { AuthorApi } from './services/custom/Author'; +import { DomainApi } from './services/custom/Domain'; +import { EventApi } from './services/custom/Event'; +import { PostApi } from './services/custom/Post'; +import { ProductApi } from './services/custom/Product'; +import { TagApi } from './services/custom/Tag'; + +@NgModule({ + imports: [ CommonModule, HttpModule ], + declarations: [ ], + exports: [ ], + providers: [ ] +}) + +export class SDKModule { + static forRoot(): ModuleWithProviders { + return { + ngModule: SDKModule, + providers: [ + RealTime, + LoopBackAuth, + ErrorHandler, + LoggerService, + JSONSearchParams, + AuthorApi, + DomainApi, + EventApi, + PostApi, + ProductApi, + TagApi + ] + }; + } +} + +export * from './models/index'; +export * from './services/index'; +export * from './lb.config'; +export * from './sockets/index'; diff --git a/admin/src/app/shared/sdk/lb.config.ts b/admin/src/app/shared/sdk/lb.config.ts new file mode 100644 index 00000000..b7be3f6c --- /dev/null +++ b/admin/src/app/shared/sdk/lb.config.ts @@ -0,0 +1,59 @@ +/* tslint:disable */ +/** +* @module LoopBackConfig +* @description +* +* The LoopBackConfig module help developers to externally +* configure the base url and api version for loopback.io +* +* Example +* +* import { LoopBackConfig } from './sdk'; +* +* @Component() // No metadata needed for this module +* +* export class MyApp { +* constructor() { +* LoopBackConfig.setBaseURL('http://localhost:3000'); +* LoopBackConfig.setApiVersion('api'); +* } +* } +**/ +export class LoopBackConfig { + private static path: string = '//0.0.0.0:3000'; + private static version: string | number = 'api/v1'; + private static authPrefix: string = ''; + private static debug: boolean = true; + + public static setApiVersion(version: string = 'api'): void { + LoopBackConfig.version = version; + } + + public static getApiVersion(): string | number { + return LoopBackConfig.version; + } + + public static setBaseURL(url: string = '/'): void { + LoopBackConfig.path = url; + } + + public static getPath(): string { + return LoopBackConfig.path; + } + + public static setAuthPrefix(authPrefix: string = ''): void { + LoopBackConfig.authPrefix = authPrefix; + } + + public static getAuthPrefix(): string { + return LoopBackConfig.authPrefix; + } + + public static setDebugMode(isEnabled: boolean): void { + LoopBackConfig.debug = isEnabled; + } + + public static debuggable(): boolean { + return LoopBackConfig.debug; + } +} diff --git a/admin/src/app/shared/sdk/models/Author.ts b/admin/src/app/shared/sdk/models/Author.ts new file mode 100644 index 00000000..2526e61e --- /dev/null +++ b/admin/src/app/shared/sdk/models/Author.ts @@ -0,0 +1,41 @@ +/* tslint:disable */ +import { + Domain +} from '../index'; + +declare var Object: any; +export interface AuthorInterface { + id?: number; + domainId?: string; + firstName: string; + lastName: string; + username: string; + email: string; + active: boolean; + modified?: any; + created?: any; + domain?: Domain; +} + +export class Author implements AuthorInterface { + id: number; + domainId: string; + firstName: string; + lastName: string; + username: string; + email: string; + active: boolean; + modified: any; + created: any; + domain: Domain; + constructor(instance?: AuthorInterface) { + Object.assign(this, instance); + } + /** + * The name of the model represented by this $resource, + * i.e. `Author`. + */ + public static getModelName() { + return "Author"; + } +} diff --git a/admin/src/app/shared/sdk/models/BaseModels.ts b/admin/src/app/shared/sdk/models/BaseModels.ts new file mode 100644 index 00000000..e5cd2ed9 --- /dev/null +++ b/admin/src/app/shared/sdk/models/BaseModels.ts @@ -0,0 +1,43 @@ +/* tslint:disable */ + +declare var Object: any; +export interface LoopBackFilter { + fields?: any; + include?: any; + limit?: any; + order?: any; + skip?: any; + offset?: any; + where?: any; +} + +export interface AccessTokenInterface { + id?: string; + ttl?: number; + created?: any; + userId?: string; + rememberMe?: boolean; +} + +export class AccessToken implements AccessTokenInterface { + id:string; + ttl: number; + created: any; + userId: string; + user: any; + constructor(instance?: AccessToken) { + Object.assign(this, instance); + } +} + +export class SDKToken extends AccessToken { + id: any = null; + ttl: number = null; + created: any = null; + userId: any = null; + user: any = null; + rememberMe: boolean = null; + constructor(instance?: AccessToken) { + super(instance); + } +} diff --git a/admin/src/app/shared/sdk/models/Domain.ts b/admin/src/app/shared/sdk/models/Domain.ts new file mode 100644 index 00000000..a45e80cc --- /dev/null +++ b/admin/src/app/shared/sdk/models/Domain.ts @@ -0,0 +1,39 @@ +/* tslint:disable */ +import { + Author, + Event, + Post, + Product, + Tag +} from '../index'; + +declare var Object: any; +export interface DomainInterface { + id: string; + name?: string; + authors?: Array; + events?: Array; + posts?: Array; + products?: Array; + tags?: Array; +} + +export class Domain implements DomainInterface { + id: string; + name: string; + authors: Array; + events: Array; + posts: Array; + products: Array; + tags: Array; + constructor(instance?: DomainInterface) { + Object.assign(this, instance); + } + /** + * The name of the model represented by this $resource, + * i.e. `Domain`. + */ + public static getModelName() { + return "Domain"; + } +} diff --git a/admin/src/app/shared/sdk/models/Event.ts b/admin/src/app/shared/sdk/models/Event.ts new file mode 100644 index 00000000..ee2732e4 --- /dev/null +++ b/admin/src/app/shared/sdk/models/Event.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +import { + Domain, + Tag +} from '../index'; + +declare var Object: any; +export interface EventInterface { + id?: number; + domainId?: string; + name?: string; + date?: any; + location?: string; + created?: any; + modified?: any; + tagId?: number; + domain?: Domain; + tag?: Tag; +} + +export class Event implements EventInterface { + id: number; + domainId: string; + name: string; + date: any; + location: string; + created: any; + modified: any; + tagId: number; + domain: Domain; + tag: Tag; + constructor(instance?: EventInterface) { + Object.assign(this, instance); + } + /** + * The name of the model represented by this $resource, + * i.e. `Event`. + */ + public static getModelName() { + return "Event"; + } +} diff --git a/admin/src/app/shared/sdk/models/FireLoop.ts b/admin/src/app/shared/sdk/models/FireLoop.ts new file mode 100644 index 00000000..327a839a --- /dev/null +++ b/admin/src/app/shared/sdk/models/FireLoop.ts @@ -0,0 +1,20 @@ +import { LoopBackConfig } from '../lb.config'; +import { AccessToken, FireLoopRef } from './index'; +import { SocketConnections } from '../sockets/socket.connections'; + +export class FireLoop { + + private socket: any; + private references: any = {}; + + constructor(token: AccessToken) { + this.socket = SocketConnections.getHandler(LoopBackConfig.getPath(), token); + } + + public ref(model: { getModelName(): string }): FireLoopRef { + let name: string = model.getModelName(); + if (this.references[name]) { return this.references[name]; } + this.references[name] = new FireLoopRef(name, this.socket); + return this.references[name]; + } +} diff --git a/admin/src/app/shared/sdk/models/FireLoopRef.ts b/admin/src/app/shared/sdk/models/FireLoopRef.ts new file mode 100644 index 00000000..3ca785d5 --- /dev/null +++ b/admin/src/app/shared/sdk/models/FireLoopRef.ts @@ -0,0 +1,90 @@ +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import { LoopBackFilter } from './index'; + +export class FireLoopRef { + + private instance: any; + private socket: any; + private name: string; + private parent: FireLoopRef; + private childs: any = {}; + private observables: any = {}; + + constructor(name: string, socket: any, parent: FireLoopRef = null) { + this.name = name; + this.parent = parent; + this.socket = socket; + return this; + } + + private operation(event: string, data: any): Observable { + let id: number = Math.floor(Math.random() * 100800) * + Math.floor(Math.random() * 100700) * + Math.floor(Math.random() * 198500); + let subject: Subject = new Subject(); + this.socket.emit(`${this.name}.${event}`, { + id: id, + data: data, + parent: this.parent && this.parent.instance ? this.parent.instance : null + }); + this.socket.on(`${this.name}.value.result.${id}`, (res: any) => + subject.next(res.error ? Observable.throw(res.error) : res) + ); + return subject.asObservable(); + } + + public upsert(data: any): Observable { + return this.operation('upsert', data); + } + + public create(data: any): Observable { + return this.operation('create', data); + } + + public remove(data: any): Observable { + return this.operation('remove', data); + } + + public on(event: string, filter: LoopBackFilter = { limit: 100, order: 'id DESC' }): Observable { + event = `${this.name}.${event}`; + if (this.observables[event]) { return this.observables[event]; } + let subject: Subject = new Subject(); + if (event.match(/(value|changes)/)) { + this.pull(event, filter, subject); + } + // Listen for broadcast announces + this.socket.on( + // When there is a broadcast announce + `${event}.broadcast.announce`, + // We send a request containing the filtering options + () => this.socket.emit(`${event}.broadcast.request`, filter) + ); + // Once processed our request will return a unique result + this.socket.on(`${event}.broadcast`, (res: any) => subject.next(res)); + this.observables[event] = subject.asObservable(); + return this.observables[event]; + } + + private pull(event: string, filter: any, subject: Subject): void { + this.socket.emit(`${event}.pull.request`, filter); + this.socket.on(`${event}.pull.requested`, (res: any) => subject.next(res)); + } + + public make(instance: any): FireLoopRef { + this.instance = instance; + return this; + } + + public child(name: string): FireLoopRef { + if (!this.parent) { + let childName = `${this.name}.${name}`; + if (this.childs[childName]) { return this.childs[childName]; } + this.childs[childName] = new FireLoopRef(childName, this.socket, this); + return this.childs[childName]; + } else { + console.warn('Only 1 child level is supported'); + // TODO ADD UNLIMITED LEVELS + } + } +} diff --git a/admin/src/app/shared/sdk/models/Post.ts b/admin/src/app/shared/sdk/models/Post.ts new file mode 100644 index 00000000..6989d835 --- /dev/null +++ b/admin/src/app/shared/sdk/models/Post.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +import { + Domain, + Tag +} from '../index'; + +declare var Object: any; +export interface PostInterface { + id?: number; + domainId?: string; + title?: string; + content?: string; + authorId?: number; + created?: any; + modified?: any; + tagId?: number; + domain?: Domain; + tag?: Tag; +} + +export class Post implements PostInterface { + id: number; + domainId: string; + title: string; + content: string; + authorId: number; + created: any; + modified: any; + tagId: number; + domain: Domain; + tag: Tag; + constructor(instance?: PostInterface) { + Object.assign(this, instance); + } + /** + * The name of the model represented by this $resource, + * i.e. `Post`. + */ + public static getModelName() { + return "Post"; + } +} diff --git a/admin/src/app/shared/sdk/models/Product.ts b/admin/src/app/shared/sdk/models/Product.ts new file mode 100644 index 00000000..c26dce09 --- /dev/null +++ b/admin/src/app/shared/sdk/models/Product.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +import { + Domain, + Tag +} from '../index'; + +declare var Object: any; +export interface ProductInterface { + id?: number; + domainId?: string; + name?: string; + description?: string; + sku?: string; + created?: any; + modified?: any; + tagId?: number; + domain?: Domain; + tag?: Tag; +} + +export class Product implements ProductInterface { + id: number; + domainId: string; + name: string; + description: string; + sku: string; + created: any; + modified: any; + tagId: number; + domain: Domain; + tag: Tag; + constructor(instance?: ProductInterface) { + Object.assign(this, instance); + } + /** + * The name of the model represented by this $resource, + * i.e. `Product`. + */ + public static getModelName() { + return "Product"; + } +} diff --git a/admin/src/app/shared/sdk/models/Tag.ts b/admin/src/app/shared/sdk/models/Tag.ts new file mode 100644 index 00000000..441426b3 --- /dev/null +++ b/admin/src/app/shared/sdk/models/Tag.ts @@ -0,0 +1,42 @@ +/* tslint:disable */ +import { + Domain, + Event, + Product, + Post +} from '../index'; + +declare var Object: any; +export interface TagInterface { + id?: number; + domainId?: string; + tag?: string; + created?: any; + modified?: any; + domain?: Domain; + events?: Array; + products?: Array; + posts?: Array; +} + +export class Tag implements TagInterface { + id: number; + domainId: string; + tag: string; + created: any; + modified: any; + domain: Domain; + events: Array; + products: Array; + posts: Array; + constructor(instance?: TagInterface) { + Object.assign(this, instance); + } + /** + * The name of the model represented by this $resource, + * i.e. `Tag`. + */ + public static getModelName() { + return "Tag"; + } +} diff --git a/admin/src/app/shared/sdk/models/index.ts b/admin/src/app/shared/sdk/models/index.ts new file mode 100644 index 00000000..6c7396ac --- /dev/null +++ b/admin/src/app/shared/sdk/models/index.ts @@ -0,0 +1,9 @@ +/* tslint:disable */ +export * from './Author'; +export * from './Domain'; +export * from './Event'; +export * from './Post'; +export * from './Product'; +export * from './Tag'; +export * from './BaseModels'; +export * from './FireLoopRef'; diff --git a/admin/src/app/shared/sdk/services/core/auth.service.ts b/admin/src/app/shared/sdk/services/core/auth.service.ts new file mode 100644 index 00000000..1c306c7d --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/auth.service.ts @@ -0,0 +1,82 @@ +/* tslint:disable */ +declare var Object: any; +import { Injectable } from '@angular/core'; +import { StorageDriver } from '../../storage/storage.driver'; +import { SDKToken, AccessToken } from '../../models/BaseModels'; + +/** + * @module LoopBackAuth + * @author Jonathan Casarrubias <@johncasarrubias> + * @license MTI + * @description + * Provides with a LoopBack compatible authentication mechanism. + */ +@Injectable() +export class LoopBackAuth { + + private token: SDKToken = new SDKToken(); + protected prefix: string = '$LoopBackSDK$'; + + constructor() { + this.token.id = this.load('id'); + this.token.user = this.load('user'); + this.token.userId = this.load('userId'); + this.token.rememberMe = this.load('rememberMe'); + } + + public setRememberMe(value: boolean): void { + this.token.rememberMe = value; + } + + public getToken(): AccessToken { + return this.token; + } + + public getAccessTokenId(): any { + return this.token.id; + } + + public getCurrentUserId(): any { + return this.token.userId; + } + + public getCurrentUserData(): any { + return (typeof this.token.user === 'string') ? JSON.parse(this.token.user) : this.token.user; + } + + public save(): void { + if (this.token.rememberMe) { + this.persist('id', this.token.id); + this.persist('user', this.token.user); + this.persist('userId', this.token.userId); + this.persist('rememberMe', this.token.rememberMe); + } + }; + + public setUser(token: SDKToken) { + this.token = Object.assign(this.token, token); + } + + protected load(prop: string): any { + return StorageDriver.get(`${this.prefix}${prop}`); + } + + public clear(): void { + Object.keys(this.token).forEach(prop => StorageDriver.remove(`${this.prefix}${prop}`)); + this.token = new SDKToken(); + } + // I do not persist everything in 1 value because I want + // to decouple user from token data. User can be larger than + // expected and will be easier to handle as will perform better. + protected persist(prop: string, value: any): void { + try { + StorageDriver.set( + `${this.prefix}${prop}`, + (typeof value === 'object') ? JSON.stringify(value) : value + ); + } + catch(err) { + console.error('Cannot access local/session storage:', err); + } + } +} diff --git a/admin/src/app/shared/sdk/services/core/base.service.ts b/admin/src/app/shared/sdk/services/core/base.service.ts new file mode 100644 index 00000000..eac19124 --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/base.service.ts @@ -0,0 +1,115 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Headers, Request } from '@angular/http'; +import { NgModule, ModuleWithProviders } from '@angular/core'; +import { JSONSearchParams } from './search.params'; +import { ErrorHandler } from './error.service'; +import { LoopBackAuth } from './auth.service'; +import { LoopBackConfig } from '../../lb.config'; +import { AccessToken } from '../../models/index'; +import { Observable } from 'rxjs/Observable'; +import { ErrorObservable } from 'rxjs/observable/ErrorObservable'; +import 'rxjs/add/operator/catch'; +import 'rxjs/add/operator/map'; +import { Subject } from 'rxjs/Subject'; +import { SocketConnections } from '../../sockets/socket.connections'; +/** +* @module BaseLoopBackApi +* @author Nikolay Matiushenkov +* @contributor Jonathan Casarrubias <@johncasarrubias> +* @license MTI +* @description +* Abstract class that will be implemented in every custom service automatically built +* by the sdk builder. +* It provides the core functionallity for every API call, either by HTTP Calls or by +* WebSockets. +**/ +@Injectable() +export abstract class BaseLoopBackApi { + + protected path: string; + + constructor( + @Inject(Http) protected http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) protected errorHandler: ErrorHandler + ) {} + + /** + * Process request + * @param string method Request method (GET, POST, PUT) + * @param string url Request url (my-host/my-url/:id) + * @param any routeParams Values of url parameters + * @param any urlParams Parameters for building url (filter and other) + * @param any postBody Request postBody + * @param boolean isio Request socket connection (When IO is enabled) + */ + public request( + method : string, + url : string, + routeParams : any = {}, + urlParams : any = {}, + postBody : any = null, + isio : boolean = false + ): Observable { + + let headers = new Headers(); + headers.append('Content-Type', 'application/json'); + + if (this.auth.getAccessTokenId()) { + headers.append( + 'Authorization', + LoopBackConfig.getAuthPrefix() + this.auth.getAccessTokenId() + ); + } + + let requestUrl = url; + let key: string; + for (key in routeParams) { + requestUrl = requestUrl.replace( + new RegExp(":" + key + "(\/|$)", "g"), + routeParams[key] + "$1" + ); + } + + if (isio) { + if (requestUrl.match(/fk/)) { + let arr = requestUrl.split('/'); arr.pop(); + requestUrl = arr.join('/'); + } + let event: string = (`[${method}]${requestUrl}`).replace(/\?/, ''); + let subject: Subject = new Subject(); + let token: AccessToken = new AccessToken(); + token.id = this.auth.getAccessTokenId(); + token.userId = this.auth.getCurrentUserId(); + let socket: any = SocketConnections.getHandler(LoopBackConfig.getPath(), token); + socket.on(event, (res: any) => subject.next(res)); + return subject.asObservable(); + } + + // Body fix for built in remote methods using "data", "options" or "credentials + // that are the actual body, Custom remote method properties are different and need + // to be wrapped into a body object + let body: any; + let postBodyKeys = typeof postBody === 'object' ? Object.keys(postBody) : [] + if (postBodyKeys.length === 1) { + body = postBody[postBodyKeys[0]] + } else { + body = postBody; + } + this.searchParams.setJSON(urlParams); + let request: Request = new Request({ + headers : headers, + method : method, + url : urlParams.filter ? `${requestUrl}?filter=${ encodeURI(JSON.stringify(urlParams.filter))}` + : requestUrl, + search : !urlParams.filter && Object.keys(urlParams).length > 0 + ? this.searchParams.getURLSearchParams() : null, + body : body ? JSON.stringify(body) : undefined + }); + return this.http.request(request) + .map((res: any) => (res.text() != "" ? res.json() : {})) + .catch(this.errorHandler.handleError); + } +} diff --git a/admin/src/app/shared/sdk/services/core/error.service.ts b/admin/src/app/shared/sdk/services/core/error.service.ts new file mode 100644 index 00000000..92c2d0ef --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/error.service.ts @@ -0,0 +1,15 @@ +/* tslint:disable */ +import { Injectable } from '@angular/core'; +import { Response } from '@angular/http'; +import { Observable } from 'rxjs/Observable'; +import { ErrorObservable } from 'rxjs/observable/ErrorObservable'; +import 'rxjs/add/observable/throw'; +/** + * Default error handler + */ +@Injectable() +export class ErrorHandler { + public handleError(error: Response): ErrorObservable { + return Observable.throw(error.json().error || 'Server error'); + } +} diff --git a/admin/src/app/shared/sdk/services/core/index.ts b/admin/src/app/shared/sdk/services/core/index.ts new file mode 100644 index 00000000..c3d4b7ec --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/index.ts @@ -0,0 +1,6 @@ +/* tslint:disable */ +export * from './auth.service'; +export * from './error.service'; +export * from './search.params'; +export * from './base.service'; +export * from './real.time'; diff --git a/admin/src/app/shared/sdk/services/core/io.service.ts b/admin/src/app/shared/sdk/services/core/io.service.ts new file mode 100644 index 00000000..785e90dd --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/io.service.ts @@ -0,0 +1,30 @@ +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import { AccessToken } from '../../models'; +import { LoopBackConfig } from '../../lb.config'; +import { SocketConnections } from '../../sockets/socket.connections'; + +export class IO { + + private socket: any; + private observables: any = {}; + + constructor(token: AccessToken) { + this.socket = SocketConnections.getHandler(LoopBackConfig.getPath(), token); + } + + emit(event: string, data: any): void { + this.socket.emit('ME:RT:1://event', { + event : event, + data : data + }); + } + + on(event: string): Observable { + if (this.observables[event]) { return this.observables[event]; } + let subject: Subject = new Subject(); + this.socket.on(event, (res: any) => subject.next(res)); + this.observables[event] = subject.asObservable(); + return this.observables[event]; + } +} diff --git a/admin/src/app/shared/sdk/services/core/real.time.ts b/admin/src/app/shared/sdk/services/core/real.time.ts new file mode 100644 index 00000000..18bf25de --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/real.time.ts @@ -0,0 +1,22 @@ +import { Injectable, Inject } from '@angular/core'; +import { IO } from './io.service'; +import { JSONSearchParams } from './search.params'; +import { LoopBackAuth } from './auth.service'; +import { AccessToken } from '../../models'; +import { FireLoop } from '../../models/FireLoop'; + +@Injectable() +export class RealTime { + + public IO: IO; + public FireLoop: FireLoop; + + constructor( + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams + ) { + let token: AccessToken = this.auth.getToken(); + this.IO = new IO(token); + this.FireLoop = new FireLoop(token); + } +} diff --git a/admin/src/app/shared/sdk/services/core/search.params.ts b/admin/src/app/shared/sdk/services/core/search.params.ts new file mode 100644 index 00000000..992d4223 --- /dev/null +++ b/admin/src/app/shared/sdk/services/core/search.params.ts @@ -0,0 +1,44 @@ +/* tslint:disable */ +import { Injectable } from '@angular/core'; +import { URLSearchParams } from '@angular/http'; +/** +* @author Jonathan Casarrubias +* @module JSONSearchParams +* @license MTI +* @description +* JSON Parser and Wrapper for the Angular2 URLSearchParams +* This module correctly encodes a json object into a query string and then creates +* an instance of the URLSearchParams component for later use in HTTP Calls +**/ +@Injectable() +export class JSONSearchParams { + + private _usp: URLSearchParams; + + public setJSON(obj: any) { + this._usp = new URLSearchParams(this._JSON2URL(obj, false)); + } + + public getURLSearchParams(): URLSearchParams { + return this._usp; + } + + private _JSON2URL(obj: any, parent: any) { + var parts: any = []; + for (var key in obj) + parts.push(this._parseParam(key, obj[key], parent)); + return parts.join('&'); + } + + private _parseParam(key: string, value: any, parent: string) { + if (typeof value !== 'object' && typeof value !== 'array') { + return parent ? parent + '[' + key + ']=' + value + : key + '=' + value; + } else if (typeof value === 'object' ||  typeof value === 'array') { + return parent ? this._JSON2URL(value, parent + '[' + key + ']') + : this._JSON2URL(value, key); + } else { + throw new Error('Unexpected Type'); + } + } +} diff --git a/admin/src/app/shared/sdk/services/custom/Author.ts b/admin/src/app/shared/sdk/services/custom/Author.ts new file mode 100644 index 00000000..cec72db3 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/Author.ts @@ -0,0 +1,507 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Response } from '@angular/http'; +import { BaseLoopBackApi } from '../core/base.service'; +import { LoopBackConfig } from '../../lb.config'; +import { LoopBackAuth } from '../core/auth.service'; +import { LoopBackFilter, } from '../../models/BaseModels'; +import { JSONSearchParams } from '../core/search.params'; +import { ErrorHandler } from '../core/error.service'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map'; +import { Author } from '../../models/Author'; +import { Domain } from '../../models/Domain'; + +// Making Sure EventSource Type is available to avoid compilation issues. +declare var EventSource: any; + +/** + * Api services for the `Author` model. + */ +@Injectable() +export class AuthorApi extends BaseLoopBackApi { + + constructor( + @Inject(Http) http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) errorHandler: ErrorHandler + ) { + super(http, auth, searchParams, errorHandler); + } + + /** + * Fetches belongsTo relation domain. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public getDomain(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/:id/domain"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public create(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Author) => new Author(instance)); + } + + /** + * Patch an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public upsert(data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Author) => new Author(instance)); + } + + /** + * Replace an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public replaceOrCreate(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/replaceOrCreate"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update an existing model instance or insert a new one into the data source based on the where criteria. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public upsertWithWhere(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/upsertWithWhere"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Author) => new Author(instance)); + } + + /** + * Check whether a model instance exists in the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `exists` – `{boolean}` - + */ + public exists(id: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/:id/exists"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @param object filter Filter defining fields and include + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public findById(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Author) => new Author(instance)); + } + + /** + * Replace attributes for a model instance and persist it into the data source. + * + * @param any id Model id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public replaceById(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/:id/replace"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find all instances of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public find(filter: LoopBackFilter = undefined): Observable> { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Author) => new Author(instance)) + ); + } + + /** + * Find first instance of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public findOne(filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/findOne"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Author) => new Author(instance)); + } + + /** + * Update instances of the model matched by {{where}} from the data source. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * The number of instances updated + */ + public updateAll(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/update"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public deleteById(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Count instances of the model matched by where from the data source. + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public count(where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/count"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Patch attributes for a model instance and persist it into the data source. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public updateAttributes(id: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a change stream. + * + * @param object data Request data. + * + * - `options` – `{object}` - + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `changes` – `{ReadableStream}` - + */ + public createChangeStream(): Observable { + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors/change-stream"; + let subject = new Subject(); + if (typeof EventSource !== 'undefined') { + let emit = (msg: any) => subject.next(JSON.parse(msg.data)); + var source = new EventSource(url); + source.addEventListener('data', emit); + source.onerror = emit; + } else { + console.warn('SDK Builder: EventSource is not supported'); + } + return subject.asObservable(); + } + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Author` object.) + * + */ + public createMany(data: Array = undefined): Observable> { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Authors"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Author) => new Author(instance)) + ); + } + + /** + * The name of the model represented by this $resource, + * i.e. `Author`. + */ + public getModelName() { + return "Author"; + } +} diff --git a/admin/src/app/shared/sdk/services/custom/Domain.ts b/admin/src/app/shared/sdk/services/custom/Domain.ts new file mode 100644 index 00000000..cddd6846 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/Domain.ts @@ -0,0 +1,1691 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Response } from '@angular/http'; +import { BaseLoopBackApi } from '../core/base.service'; +import { LoopBackConfig } from '../../lb.config'; +import { LoopBackAuth } from '../core/auth.service'; +import { LoopBackFilter, } from '../../models/BaseModels'; +import { JSONSearchParams } from '../core/search.params'; +import { ErrorHandler } from '../core/error.service'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map'; +import { Domain } from '../../models/Domain'; +import { Author } from '../../models/Author'; +import { Event } from '../../models/Event'; +import { Post } from '../../models/Post'; +import { Product } from '../../models/Product'; +import { Tag } from '../../models/Tag'; + +// Making Sure EventSource Type is available to avoid compilation issues. +declare var EventSource: any; + +/** + * Api services for the `Domain` model. + */ +@Injectable() +export class DomainApi extends BaseLoopBackApi { + + constructor( + @Inject(Http) http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) errorHandler: ErrorHandler + ) { + super(http, auth, searchParams, errorHandler); + } + + /** + * Find a related item by id for authors. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for authors + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findByIdAuthors(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for authors. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for authors + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdAuthors(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for authors. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for authors + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public updateByIdAuthors(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for events. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for events + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findByIdEvents(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for events. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for events + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdEvents(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for events. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for events + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public updateByIdEvents(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for posts. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for posts + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findByIdPosts(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for posts. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for posts + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdPosts(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for posts. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for posts + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public updateByIdPosts(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for products. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for products + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findByIdProducts(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for products. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for products + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdProducts(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for products. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for products + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public updateByIdProducts(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for tags. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for tags + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findByIdTags(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for tags. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for tags + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdTags(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for tags. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for tags + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public updateByIdTags(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries authors of Domain. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public getAuthors(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in authors of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createAuthors(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all authors of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deleteAuthors(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts authors of Domain. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countAuthors(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries events of Domain. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public getEvents(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in events of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createEvents(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all events of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deleteEvents(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts events of Domain. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countEvents(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries posts of Domain. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public getPosts(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in posts of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createPosts(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all posts of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deletePosts(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts posts of Domain. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countPosts(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries products of Domain. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public getProducts(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in products of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createProducts(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all products of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deleteProducts(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts products of Domain. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countProducts(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries tags of Domain. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public getTags(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in tags of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createTags(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all tags of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deleteTags(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts tags of Domain. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countTags(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public create(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Domain) => new Domain(instance)); + } + + /** + * Patch an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public upsert(data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Domain) => new Domain(instance)); + } + + /** + * Replace an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public replaceOrCreate(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/replaceOrCreate"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update an existing model instance or insert a new one into the data source based on the where criteria. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public upsertWithWhere(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/upsertWithWhere"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Domain) => new Domain(instance)); + } + + /** + * Check whether a model instance exists in the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `exists` – `{boolean}` - + */ + public exists(id: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/exists"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @param object filter Filter defining fields and include + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findById(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Domain) => new Domain(instance)); + } + + /** + * Replace attributes for a model instance and persist it into the data source. + * + * @param any id Model id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public replaceById(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/replace"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find all instances of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public find(filter: LoopBackFilter = undefined): Observable> { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Domain) => new Domain(instance)) + ); + } + + /** + * Find first instance of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public findOne(filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/findOne"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Domain) => new Domain(instance)); + } + + /** + * Update instances of the model matched by {{where}} from the data source. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * The number of instances updated + */ + public updateAll(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/update"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public deleteById(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Count instances of the model matched by where from the data source. + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public count(where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/count"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Patch attributes for a model instance and persist it into the data source. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public updateAttributes(id: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a change stream. + * + * @param object data Request data. + * + * - `options` – `{object}` - + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `changes` – `{ReadableStream}` - + */ + public createChangeStream(): Observable { + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/change-stream"; + let subject = new Subject(); + if (typeof EventSource !== 'undefined') { + let emit = (msg: any) => subject.next(JSON.parse(msg.data)); + var source = new EventSource(url); + source.addEventListener('data', emit); + source.onerror = emit; + } else { + console.warn('SDK Builder: EventSource is not supported'); + } + return subject.asObservable(); + } + /** + * Creates a new instance in authors of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createManyAuthors(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/authors"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in events of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createManyEvents(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in posts of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createManyPosts(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in products of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createManyProducts(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in tags of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createManyTags(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains/:id/tags"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Domain` object.) + * + */ + public createMany(data: Array = undefined): Observable> { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Domains"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Domain) => new Domain(instance)) + ); + } + + /** + * The name of the model represented by this $resource, + * i.e. `Domain`. + */ + public getModelName() { + return "Domain"; + } +} diff --git a/admin/src/app/shared/sdk/services/custom/Event.ts b/admin/src/app/shared/sdk/services/custom/Event.ts new file mode 100644 index 00000000..d4117d13 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/Event.ts @@ -0,0 +1,538 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Response } from '@angular/http'; +import { BaseLoopBackApi } from '../core/base.service'; +import { LoopBackConfig } from '../../lb.config'; +import { LoopBackAuth } from '../core/auth.service'; +import { LoopBackFilter, } from '../../models/BaseModels'; +import { JSONSearchParams } from '../core/search.params'; +import { ErrorHandler } from '../core/error.service'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map'; +import { Event } from '../../models/Event'; +import { Domain } from '../../models/Domain'; +import { Tag } from '../../models/Tag'; + +// Making Sure EventSource Type is available to avoid compilation issues. +declare var EventSource: any; + +/** + * Api services for the `Event` model. + */ +@Injectable() +export class EventApi extends BaseLoopBackApi { + + constructor( + @Inject(Http) http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) errorHandler: ErrorHandler + ) { + super(http, auth, searchParams, errorHandler); + } + + /** + * Fetches belongsTo relation domain. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public getDomain(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id/domain"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Fetches belongsTo relation tag. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public getTag(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id/tag"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public create(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Event) => new Event(instance)); + } + + /** + * Patch an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public upsert(data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Event) => new Event(instance)); + } + + /** + * Replace an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public replaceOrCreate(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/replaceOrCreate"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update an existing model instance or insert a new one into the data source based on the where criteria. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public upsertWithWhere(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/upsertWithWhere"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Event) => new Event(instance)); + } + + /** + * Check whether a model instance exists in the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `exists` – `{boolean}` - + */ + public exists(id: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id/exists"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @param object filter Filter defining fields and include + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public findById(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Event) => new Event(instance)); + } + + /** + * Replace attributes for a model instance and persist it into the data source. + * + * @param any id Model id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public replaceById(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id/replace"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find all instances of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public find(filter: LoopBackFilter = undefined): Observable> { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Event) => new Event(instance)) + ); + } + + /** + * Find first instance of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public findOne(filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/findOne"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Event) => new Event(instance)); + } + + /** + * Update instances of the model matched by {{where}} from the data source. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * The number of instances updated + */ + public updateAll(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/update"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public deleteById(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Count instances of the model matched by where from the data source. + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public count(where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/count"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Patch attributes for a model instance and persist it into the data source. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public updateAttributes(id: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a change stream. + * + * @param object data Request data. + * + * - `options` – `{object}` - + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `changes` – `{ReadableStream}` - + */ + public createChangeStream(): Observable { + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events/change-stream"; + let subject = new Subject(); + if (typeof EventSource !== 'undefined') { + let emit = (msg: any) => subject.next(JSON.parse(msg.data)); + var source = new EventSource(url); + source.addEventListener('data', emit); + source.onerror = emit; + } else { + console.warn('SDK Builder: EventSource is not supported'); + } + return subject.asObservable(); + } + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Event` object.) + * + */ + public createMany(data: Array = undefined): Observable> { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Events"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Event) => new Event(instance)) + ); + } + + /** + * The name of the model represented by this $resource, + * i.e. `Event`. + */ + public getModelName() { + return "Event"; + } +} diff --git a/admin/src/app/shared/sdk/services/custom/Post.ts b/admin/src/app/shared/sdk/services/custom/Post.ts new file mode 100644 index 00000000..5c9bd7b6 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/Post.ts @@ -0,0 +1,538 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Response } from '@angular/http'; +import { BaseLoopBackApi } from '../core/base.service'; +import { LoopBackConfig } from '../../lb.config'; +import { LoopBackAuth } from '../core/auth.service'; +import { LoopBackFilter, } from '../../models/BaseModels'; +import { JSONSearchParams } from '../core/search.params'; +import { ErrorHandler } from '../core/error.service'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map'; +import { Post } from '../../models/Post'; +import { Domain } from '../../models/Domain'; +import { Tag } from '../../models/Tag'; + +// Making Sure EventSource Type is available to avoid compilation issues. +declare var EventSource: any; + +/** + * Api services for the `Post` model. + */ +@Injectable() +export class PostApi extends BaseLoopBackApi { + + constructor( + @Inject(Http) http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) errorHandler: ErrorHandler + ) { + super(http, auth, searchParams, errorHandler); + } + + /** + * Fetches belongsTo relation domain. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public getDomain(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id/domain"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Fetches belongsTo relation tag. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public getTag(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id/tag"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public create(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Post) => new Post(instance)); + } + + /** + * Patch an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public upsert(data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Post) => new Post(instance)); + } + + /** + * Replace an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public replaceOrCreate(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/replaceOrCreate"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update an existing model instance or insert a new one into the data source based on the where criteria. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public upsertWithWhere(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/upsertWithWhere"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Post) => new Post(instance)); + } + + /** + * Check whether a model instance exists in the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `exists` – `{boolean}` - + */ + public exists(id: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id/exists"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @param object filter Filter defining fields and include + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public findById(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Post) => new Post(instance)); + } + + /** + * Replace attributes for a model instance and persist it into the data source. + * + * @param any id Model id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public replaceById(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id/replace"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find all instances of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public find(filter: LoopBackFilter = undefined): Observable> { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Post) => new Post(instance)) + ); + } + + /** + * Find first instance of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public findOne(filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/findOne"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Post) => new Post(instance)); + } + + /** + * Update instances of the model matched by {{where}} from the data source. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * The number of instances updated + */ + public updateAll(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/update"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public deleteById(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Count instances of the model matched by where from the data source. + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public count(where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/count"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Patch attributes for a model instance and persist it into the data source. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public updateAttributes(id: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a change stream. + * + * @param object data Request data. + * + * - `options` – `{object}` - + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `changes` – `{ReadableStream}` - + */ + public createChangeStream(): Observable { + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts/change-stream"; + let subject = new Subject(); + if (typeof EventSource !== 'undefined') { + let emit = (msg: any) => subject.next(JSON.parse(msg.data)); + var source = new EventSource(url); + source.addEventListener('data', emit); + source.onerror = emit; + } else { + console.warn('SDK Builder: EventSource is not supported'); + } + return subject.asObservable(); + } + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Post` object.) + * + */ + public createMany(data: Array = undefined): Observable> { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Posts"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Post) => new Post(instance)) + ); + } + + /** + * The name of the model represented by this $resource, + * i.e. `Post`. + */ + public getModelName() { + return "Post"; + } +} diff --git a/admin/src/app/shared/sdk/services/custom/Product.ts b/admin/src/app/shared/sdk/services/custom/Product.ts new file mode 100644 index 00000000..3dfd4d07 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/Product.ts @@ -0,0 +1,538 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Response } from '@angular/http'; +import { BaseLoopBackApi } from '../core/base.service'; +import { LoopBackConfig } from '../../lb.config'; +import { LoopBackAuth } from '../core/auth.service'; +import { LoopBackFilter, } from '../../models/BaseModels'; +import { JSONSearchParams } from '../core/search.params'; +import { ErrorHandler } from '../core/error.service'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map'; +import { Product } from '../../models/Product'; +import { Domain } from '../../models/Domain'; +import { Tag } from '../../models/Tag'; + +// Making Sure EventSource Type is available to avoid compilation issues. +declare var EventSource: any; + +/** + * Api services for the `Product` model. + */ +@Injectable() +export class ProductApi extends BaseLoopBackApi { + + constructor( + @Inject(Http) http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) errorHandler: ErrorHandler + ) { + super(http, auth, searchParams, errorHandler); + } + + /** + * Fetches belongsTo relation domain. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public getDomain(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id/domain"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Fetches belongsTo relation tag. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public getTag(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id/tag"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public create(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Product) => new Product(instance)); + } + + /** + * Patch an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public upsert(data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Product) => new Product(instance)); + } + + /** + * Replace an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public replaceOrCreate(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/replaceOrCreate"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update an existing model instance or insert a new one into the data source based on the where criteria. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public upsertWithWhere(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/upsertWithWhere"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Product) => new Product(instance)); + } + + /** + * Check whether a model instance exists in the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `exists` – `{boolean}` - + */ + public exists(id: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id/exists"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @param object filter Filter defining fields and include + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public findById(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Product) => new Product(instance)); + } + + /** + * Replace attributes for a model instance and persist it into the data source. + * + * @param any id Model id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public replaceById(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id/replace"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find all instances of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public find(filter: LoopBackFilter = undefined): Observable> { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Product) => new Product(instance)) + ); + } + + /** + * Find first instance of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public findOne(filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/findOne"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Product) => new Product(instance)); + } + + /** + * Update instances of the model matched by {{where}} from the data source. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * The number of instances updated + */ + public updateAll(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/update"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public deleteById(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Count instances of the model matched by where from the data source. + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public count(where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/count"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Patch attributes for a model instance and persist it into the data source. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public updateAttributes(id: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a change stream. + * + * @param object data Request data. + * + * - `options` – `{object}` - + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `changes` – `{ReadableStream}` - + */ + public createChangeStream(): Observable { + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products/change-stream"; + let subject = new Subject(); + if (typeof EventSource !== 'undefined') { + let emit = (msg: any) => subject.next(JSON.parse(msg.data)); + var source = new EventSource(url); + source.addEventListener('data', emit); + source.onerror = emit; + } else { + console.warn('SDK Builder: EventSource is not supported'); + } + return subject.asObservable(); + } + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Product` object.) + * + */ + public createMany(data: Array = undefined): Observable> { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Products"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Product) => new Product(instance)) + ); + } + + /** + * The name of the model represented by this $resource, + * i.e. `Product`. + */ + public getModelName() { + return "Product"; + } +} diff --git a/admin/src/app/shared/sdk/services/custom/Tag.ts b/admin/src/app/shared/sdk/services/custom/Tag.ts new file mode 100644 index 00000000..da9191e2 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/Tag.ts @@ -0,0 +1,1236 @@ +/* tslint:disable */ +import { Injectable, Inject, Optional } from '@angular/core'; +import { Http, Response } from '@angular/http'; +import { BaseLoopBackApi } from '../core/base.service'; +import { LoopBackConfig } from '../../lb.config'; +import { LoopBackAuth } from '../core/auth.service'; +import { LoopBackFilter, } from '../../models/BaseModels'; +import { JSONSearchParams } from '../core/search.params'; +import { ErrorHandler } from '../core/error.service'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; +import 'rxjs/add/operator/map'; +import { Tag } from '../../models/Tag'; +import { Domain } from '../../models/Domain'; +import { Event } from '../../models/Event'; +import { Product } from '../../models/Product'; +import { Post } from '../../models/Post'; + +// Making Sure EventSource Type is available to avoid compilation issues. +declare var EventSource: any; + +/** + * Api services for the `Tag` model. + */ +@Injectable() +export class TagApi extends BaseLoopBackApi { + + constructor( + @Inject(Http) http: Http, + @Inject(LoopBackAuth) protected auth: LoopBackAuth, + @Inject(JSONSearchParams) protected searchParams: JSONSearchParams, + @Optional() @Inject(ErrorHandler) errorHandler: ErrorHandler + ) { + super(http, auth, searchParams, errorHandler); + } + + /** + * Fetches belongsTo relation domain. + * + * @param any id PersistedModel id + * + * @param boolean refresh + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public getDomain(id: any, refresh: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/domain"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (refresh) urlParams.refresh = refresh; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for events. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for events + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public findByIdEvents(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for events. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for events + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdEvents(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for events. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for events + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public updateByIdEvents(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for products. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for products + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public findByIdProducts(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for products. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for products + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdProducts(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for products. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for products + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public updateByIdProducts(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a related item by id for posts. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for posts + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public findByIdPosts(id: any, fk: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a related item by id for posts. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for posts + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public destroyByIdPosts(id: any, fk: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update a related item by id for posts. + * + * @param any id PersistedModel id + * + * @param any fk Foreign key for posts + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public updateByIdPosts(id: any, fk: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts/:fk"; + let routeParams: any = { + id: id, + fk: fk + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries events of Tag. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public getEvents(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in events of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createEvents(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all events of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deleteEvents(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts events of Tag. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countEvents(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries products of Tag. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public getProducts(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in products of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createProducts(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all products of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deleteProducts(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts products of Tag. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countProducts(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Queries posts of Tag. + * + * @param any id PersistedModel id + * + * @param object filter + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public getPosts(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in posts of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createPosts(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Deletes all posts of this model. + * + * @param any id PersistedModel id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * This method returns no data. + */ + public deletePosts(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Counts posts of Tag. + * + * @param any id PersistedModel id + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public countPosts(id: any, where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts/count"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public create(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Tag) => new Tag(instance)); + } + + /** + * Patch an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public upsert(data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Tag) => new Tag(instance)); + } + + /** + * Replace an existing model instance or insert a new one into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public replaceOrCreate(data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/replaceOrCreate"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Update an existing model instance or insert a new one into the data source based on the where criteria. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public upsertWithWhere(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/upsertWithWhere"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Tag) => new Tag(instance)); + } + + /** + * Check whether a model instance exists in the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `exists` – `{boolean}` - + */ + public exists(id: any): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/exists"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @param object filter Filter defining fields and include + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public findById(id: any, filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Tag) => new Tag(instance)); + } + + /** + * Replace attributes for a model instance and persist it into the data source. + * + * @param any id Model id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public replaceById(id: any, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/replace"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Find all instances of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public find(filter: LoopBackFilter = undefined): Observable> { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Tag) => new Tag(instance)) + ); + } + + /** + * Find first instance of the model matched by filter from the data source. + * + * @param object filter Filter defining fields, where, include, order, offset, and limit + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public findOne(filter: LoopBackFilter = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/findOne"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (filter) urlParams.filter = filter; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instance: Tag) => new Tag(instance)); + } + + /** + * Update instances of the model matched by {{where}} from the data source. + * + * @param object where Criteria to match model instances + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * The number of instances updated + */ + public updateAll(where: any = undefined, data: any = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/update"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Delete a model instance by {{id}} from the data source. + * + * @param any id Model id + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public deleteById(id: any): Observable { + let method: string = "DELETE"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = {}; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Count instances of the model matched by where from the data source. + * + * @param object where Criteria to match model instances + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `count` – `{number}` - + */ + public count(where: any = undefined): Observable { + let method: string = "GET"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/count"; + let routeParams: any = {}; + let postBody: any = {}; + let urlParams: any = {}; + if (where) urlParams.where = where; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Patch attributes for a model instance and persist it into the data source. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public updateAttributes(id: any, data: any = undefined): Observable { + let method: string = "PUT"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a change stream. + * + * @param object data Request data. + * + * - `options` – `{object}` - + * + * @returns object An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * Data properties: + * + * - `changes` – `{ReadableStream}` - + */ + public createChangeStream(): Observable { + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/change-stream"; + let subject = new Subject(); + if (typeof EventSource !== 'undefined') { + let emit = (msg: any) => subject.next(JSON.parse(msg.data)); + var source = new EventSource(url); + source.addEventListener('data', emit); + source.onerror = emit; + } else { + console.warn('SDK Builder: EventSource is not supported'); + } + return subject.asObservable(); + } + /** + * Creates a new instance in events of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createManyEvents(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/events"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in products of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createManyProducts(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/products"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Creates a new instance in posts of this model. + * + * @param any id PersistedModel id + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createManyPosts(id: any, data: Array = undefined): Observable { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags/:id/posts"; + let routeParams: any = { + id: id + }; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result; + } + + /** + * Create a new instance of the model and persist it into the data source. + * + * @param object data Request data. + * + * This method expects a subset of model properties as request parameters. + * + * @returns object[] An empty reference that will be + * populated with the actual data once the response is returned + * from the server. + * + * + * (The remote method definition does not provide any description. + * This usually means the response is a `Tag` object.) + * + */ + public createMany(data: Array = undefined): Observable> { + let method: string = "POST"; + let url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() + + "/Tags"; + let routeParams: any = {}; + let postBody: any = { + data: data + }; + let urlParams: any = {}; + let result = this.request(method, url, routeParams, urlParams, postBody); + return result.map((instances: Array) => + instances.map((instance: Tag) => new Tag(instance)) + ); + } + + /** + * The name of the model represented by this $resource, + * i.e. `Tag`. + */ + public getModelName() { + return "Tag"; + } +} diff --git a/admin/src/app/shared/sdk/services/custom/index.ts b/admin/src/app/shared/sdk/services/custom/index.ts new file mode 100644 index 00000000..2ecc6f51 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/index.ts @@ -0,0 +1,8 @@ +/* tslint:disable */ +export * from './Author'; +export * from './Domain'; +export * from './Event'; +export * from './Post'; +export * from './Product'; +export * from './Tag'; +export * from './logger.service'; diff --git a/admin/src/app/shared/sdk/services/custom/logger.service.ts b/admin/src/app/shared/sdk/services/custom/logger.service.ts new file mode 100644 index 00000000..94d95be2 --- /dev/null +++ b/admin/src/app/shared/sdk/services/custom/logger.service.ts @@ -0,0 +1,63 @@ +/* tslint:disable */ +import { Injectable } from '@angular/core'; +import { LoopBackConfig } from '../../lb.config'; +/** +* @author Jonathan Casarrubias +* @module LoggerService +* @license MTI +* @description +* Console Log wrapper that can be disabled in production mode +**/ +@Injectable() +export class LoggerService { + + log(...args: any[]) { + if (LoopBackConfig.debuggable()) + console.log.apply(console, args); + } + + info(...args: any[]) { + if (LoopBackConfig.debuggable()) + console.info.apply(console, args); + } + + error(...args: any[]) { + if (LoopBackConfig.debuggable()) + console.error.apply(console, args); + } + + count(arg: string) { + if (LoopBackConfig.debuggable()) + console.count(arg); + } + + group(arg: string) { + if (LoopBackConfig.debuggable()) + console.count(arg); + } + + groupEnd() { + if (LoopBackConfig.debuggable()) + console.groupEnd(); + } + + profile(arg: string) { + if (LoopBackConfig.debuggable()) + console.count(arg); + } + + profileEnd() { + if (LoopBackConfig.debuggable()) + console.profileEnd(); + } + + time(arg: string) { + if (LoopBackConfig.debuggable()) + console.count(arg); + } + + timeEnd(arg: string) { + if (LoopBackConfig.debuggable()) + console.count(arg); + } +} diff --git a/admin/src/app/shared/sdk/services/index.ts b/admin/src/app/shared/sdk/services/index.ts new file mode 100644 index 00000000..bd1dcfa6 --- /dev/null +++ b/admin/src/app/shared/sdk/services/index.ts @@ -0,0 +1,3 @@ +/* tslint:disable */ +export * from './core/index'; +export * from './custom/index'; diff --git a/admin/src/app/shared/sdk/sockets/index.ts b/admin/src/app/shared/sdk/sockets/index.ts new file mode 100644 index 00000000..a45e85f9 --- /dev/null +++ b/admin/src/app/shared/sdk/sockets/index.ts @@ -0,0 +1,2 @@ +export * from './socket.driver'; +export * from './socket.connections'; diff --git a/admin/src/app/shared/sdk/sockets/socket.connections.ts b/admin/src/app/shared/sdk/sockets/socket.connections.ts new file mode 100644 index 00000000..e2664d83 --- /dev/null +++ b/admin/src/app/shared/sdk/sockets/socket.connections.ts @@ -0,0 +1,51 @@ +/* tslint:disable */ +/** +* @author Jonathan Casarrubias +* @module SocketConnections +* @license MTI +* @description +* This module handle socket connections and return singleton instances for each +* connection, it will use the SDK Socket Driver Available currently supporting +* Angular 2 for web and NativeScript 2. +**/ +import { SocketDriver } from './socket.driver'; +import { AccessToken } from '../models'; +export class SocketConnections { + private static connections: any = {}; + private static configured: boolean = false; + static getHandler(url: string, token: AccessToken) { + if (!SocketConnections.connections[url]) { + console.log('Creating a new connection with: ', url); + let config: any = { log: false, secure: false, forceWebsockets: true }; + SocketConnections.connections[url] = SocketDriver.connect(url, config); + SocketConnections.connections[url].on('connect', () => { + if (!SocketConnections.configured) + SocketConnections.setupConnection(url, token, config); + }); + let forceConfig: any = setInterval(() => { + if (!SocketConnections.configured && SocketConnections.connections[url].connected) { + console.info('Forcing IO Configuration'); + SocketConnections.setupConnection(url, token, config); + clearInterval(forceConfig); + } else if (SocketConnections.configured) { + clearInterval(forceConfig); + } + }, 1000) + } else { + console.log('Reusing existing connection: ', url); + } + return SocketConnections.connections[url]; + } + + private static setupConnection(url: string, token: AccessToken, config: any): void { + SocketConnections.configured = true; + console.log('Connected to %s', url); + SocketConnections.connections[url].emit('authentication', token); + SocketConnections.connections[url].on('unauthorized', (res: any) => console.error('Unauthenticated', res)); + setInterval(() => SocketConnections.connections[url].emit('lb-ping'), 15000); + SocketConnections.connections[url].on('lb-pong', (data: any) => console.info('Heartbeat: ', data)); + SocketConnections.connections[url].on('disconnect', (data: any) => { + console.info('Unexpected disconnection from IO - Socket IO will try to reconnect'); + }); + } +} diff --git a/admin/src/app/shared/sdk/sockets/socket.driver.ts b/admin/src/app/shared/sdk/sockets/socket.driver.ts new file mode 100644 index 00000000..19d007e3 --- /dev/null +++ b/admin/src/app/shared/sdk/sockets/socket.driver.ts @@ -0,0 +1,7 @@ +/* tslint:disable */ +import * as io from 'socket.io-client'; +export class SocketDriver { + static connect(url: any, options: any) { + return io(url, options); + } +} diff --git a/admin/src/app/shared/sdk/storage/storage.driver.ts b/admin/src/app/shared/sdk/storage/storage.driver.ts new file mode 100644 index 00000000..a26dcbc6 --- /dev/null +++ b/admin/src/app/shared/sdk/storage/storage.driver.ts @@ -0,0 +1,12 @@ +/* tslint:disable */ +export class StorageDriver { + static set(key: string, value: string) { + localStorage.setItem(key, value); + } + static get(key: string): string { + return localStorage.getItem(key); + } + static remove(key: string): any { + localStorage.removeItem(key); + } +} diff --git a/admin/src/app/shared/sidebar.directive.ts b/admin/src/app/shared/sidebar.directive.ts new file mode 100644 index 00000000..1292d253 --- /dev/null +++ b/admin/src/app/shared/sidebar.directive.ts @@ -0,0 +1,123 @@ +import {Directive, HostListener} from '@angular/core'; + +/** + * Allows the sidebar to be toggled via click. + */ +@Directive({ + selector: '.sidebar-toggle', +}) +export class SidebarToggleDirective { + constructor() { + } + + // Check if element has class + private hasClass(target: any, elementClassName: string) { + return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className); + } + + // Toggle element class + private toggleClass(elem: any, elementClassName: string) { + let newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' '; + if (this.hasClass(elem, elementClassName)) { + while (newClass.indexOf(' ' + elementClassName + ' ') >= 0) { + newClass = newClass.replace(' ' + elementClassName + ' ', ' '); + } + elem.className = newClass.replace(/^\s+|\s+$/g, ''); + } else { + elem.className += ' ' + elementClassName; + } + } + + @HostListener('click', ['$event']) + toggleOpen($event: any) { + $event.preventDefault(); + + let bodyClass = localStorage.getItem('body-class'); + + if (this.hasClass(document.querySelector('body'), 'sidebar-off-canvas')) { + this.toggleClass(document.querySelector('body'), 'sidebar-opened'); + this.toggleClass(document.querySelector('html'), 'sidebar-opened'); + } else if (this.hasClass(document.querySelector('body'), 'sidebar-nav') || bodyClass === 'sidebar-nav') { + this.toggleClass(document.querySelector('body'), 'sidebar-nav'); + localStorage.setItem('body-class', 'sidebar-nav'); + if (bodyClass === 'sidebar-nav') { + localStorage.clear(); + } + } + } +} + +@Directive({ + selector: '[mobile-nav-toggle]', +}) +export class MobileSidebarToggleDirective { + constructor() { + } + + // Check if element has class + private hasClass(target: any, elementClassName: string) { + return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className); + } + + // Toggle element class + private toggleClass(elem: any, elementClassName: string) { + let newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' '; + if (this.hasClass(elem, elementClassName)) { + while (newClass.indexOf(' ' + elementClassName + ' ') >= 0) { + newClass = newClass.replace(' ' + elementClassName + ' ', ' '); + } + elem.className = newClass.replace(/^\s+|\s+$/g, ''); + } else { + elem.className += ' ' + elementClassName; + } + } + + @HostListener('click', ['$event']) + toggleOpen($event: any) { + $event.preventDefault(); + + this.toggleClass(document.querySelector('body'), 'mobile-open'); + + console.log('asdasdasd'); + } +} + +/** + * Allows the off-canvas sidebar to be closed via click. + */ +@Directive({ + selector: '.sidebar-close', +}) +export class SidebarOffCanvasCloseDirective { + constructor() { + } + + // Check if element has class + private hasClass(target: any, elementClassName: string) { + return new RegExp('(\\s|^)' + elementClassName + '(\\s|$)').test(target.className); + } + + //Toggle element class + private toggleClass(elem: any, elementClassName: string) { + let newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' '; + if (this.hasClass(elem, elementClassName)) { + while (newClass.indexOf(' ' + elementClassName + ' ') >= 0) { + newClass = newClass.replace(' ' + elementClassName + ' ', ' '); + } + elem.className = newClass.replace(/^\s+|\s+$/g, ''); + } else { + elem.className += ' ' + elementClassName; + } + } + + @HostListener('click', ['$event']) + toggleOpen($event: any) { + $event.preventDefault(); + + if (this.hasClass(document.querySelector('body'), 'sidebar-off-canvas')) { + this.toggleClass(document.querySelector('body'), 'sidebar-opened'); + } + } +} + +export const SIDEBAR_TOGGLE_DIRECTIVES = [SidebarToggleDirective, SidebarOffCanvasCloseDirective, MobileSidebarToggleDirective]; diff --git a/admin/src/app/system-about/about-routing.module.ts b/admin/src/app/system-about/about-routing.module.ts new file mode 100644 index 00000000..13e4105c --- /dev/null +++ b/admin/src/app/system-about/about-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {AboutComponent} from './about.component'; + +const routes: Routes = [{ + path: 'about', + component: AboutComponent, + data: { + title: 'About' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AboutRoutingModule { +} diff --git a/admin/src/app/system-about/about.component.html b/admin/src/app/system-about/about.component.html new file mode 100644 index 00000000..218ad24d --- /dev/null +++ b/admin/src/app/system-about/about.component.html @@ -0,0 +1,27 @@ +
+
+ Colmena CMS +
+
+ This project is created using the following open source projects: +
+ +
+ +
+
+
+
+ {{project.name}} +
+
+ {{project.description}} +
+ +
+
+
diff --git a/admin/src/app/system-about/about.component.ts b/admin/src/app/system-about/about.component.ts new file mode 100644 index 00000000..4a6038b6 --- /dev/null +++ b/admin/src/app/system-about/about.component.ts @@ -0,0 +1,34 @@ +import {Component} from '@angular/core'; + +@Component({ + selector: 'app-about', + templateUrl: './about.component.html' +}) +export class AboutComponent { + + private projects = [{ + name: 'Loopback', + url: 'https://loopback.io/', + description: 'The Node.js API Framework. Built by StrongLoop, an IBM company', + class: 'card-accent-success' + }, { + name: 'Angular', + url: 'https://angular.io/', + description: 'AngularJS is a structural framework for dynamic web apps.', + class: 'card-accent-danger' + }, { + name: 'Fireloop', + url: 'http://fireloop.io/', + description: 'NodeJS Real-Time Platform by MEAN Expert.', + class: 'card-accent-warning' + }, { + name: 'CoreUI', + url: 'http://coreui.io/', + description: 'CoreUI is an open source bootstrap 4 based admin template.', + class: 'card-accent-primary' + }]; + + constructor() { + } + +} diff --git a/admin/src/app/system-about/about.module.ts b/admin/src/app/system-about/about.module.ts new file mode 100644 index 00000000..928b51d0 --- /dev/null +++ b/admin/src/app/system-about/about.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {AboutComponent} from './about.component'; +import {AboutRoutingModule} from './about-routing.module'; + +@NgModule({ + imports: [ + AboutRoutingModule, + CommonModule, + FormsModule + ], + declarations: [ + AboutComponent, + ] +}) +export class AboutModule { +} diff --git a/admin/src/app/system-dashboard/dashboard-routing.module.ts b/admin/src/app/system-dashboard/dashboard-routing.module.ts new file mode 100644 index 00000000..00132046 --- /dev/null +++ b/admin/src/app/system-dashboard/dashboard-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {DashboardComponent} from './dashboard.component'; + +const routes: Routes = [{ + path: 'dashboard', + component: DashboardComponent, + data: { + title: 'Dashboard' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class DashboardRoutingModule { +} diff --git a/admin/src/app/system-dashboard/dashboard.component.html b/admin/src/app/system-dashboard/dashboard.component.html new file mode 100644 index 00000000..cd3b7469 --- /dev/null +++ b/admin/src/app/system-dashboard/dashboard.component.html @@ -0,0 +1,40 @@ +
+

Content

+
+
+
+
+
+ +
{{widget.count}}
+
{{widget.label}}
+
+ +
+
+
+ +

System

+
+
+
+
+
+ +
{{widget.count}}
+
{{widget.label}}
+
+ +
+
+
+ +
diff --git a/admin/src/app/system-dashboard/dashboard.component.ts b/admin/src/app/system-dashboard/dashboard.component.ts new file mode 100644 index 00000000..1145ac30 --- /dev/null +++ b/admin/src/app/system-dashboard/dashboard.component.ts @@ -0,0 +1,60 @@ +import {Component} from '@angular/core'; + +@Component({ + templateUrl: 'dashboard.component.html' +}) +export class DashboardComponent { + + private contentWidgets = [{ + label: 'Authors', + icon: 'icon-people', + count: '∞', + class: 'bg-primary', + link: '/content/authors' + }, { + label: 'Events', + icon: 'icon-calendar', + count: '∞', + class: 'bg-info', + link: '/content/events' + }, { + label: 'Posts', + icon: 'icon-pencil', + count: '∞', + class: 'bg-warning', + link: '/content/posts' + }, { + label: 'Products', + icon: 'icon-basket', + count: '∞', + class: 'bg-danger', + link: '/content/products' + }]; + + private systemWidgets = [{ + label: 'Domains', + icon: 'icon-globe', + count: '∞', + class: 'bg-success', + link: '/domains' + }, { + label: 'Settings', + icon: 'icon-settings', + count: '∞', + class: 'bg-warning', + link: '/settings' + }, { + label: 'Users', + icon: 'icon-people', + count: '∞', + class: 'bg-primary', + link: '/users' + }, { + label: 'About', + icon: 'icon-info', + count: '', + class: 'bg-info', + link: '/about' + }]; + +} diff --git a/admin/src/app/system-dashboard/dashboard.module.ts b/admin/src/app/system-dashboard/dashboard.module.ts new file mode 100644 index 00000000..200b307d --- /dev/null +++ b/admin/src/app/system-dashboard/dashboard.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {DashboardComponent} from './dashboard.component'; +import {DashboardRoutingModule} from './dashboard-routing.module'; + +@NgModule({ + imports: [ + DashboardRoutingModule, + CommonModule, + FormsModule + ], + declarations: [ + DashboardComponent + ] +}) +export class DashboardModule { +} diff --git a/admin/src/app/system-domains/domains-routing.module.ts b/admin/src/app/system-domains/domains-routing.module.ts new file mode 100644 index 00000000..db7ce2dd --- /dev/null +++ b/admin/src/app/system-domains/domains-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {DomainsComponent} from './domains.component'; + +const routes: Routes = [{ + path: 'domains', + component: DomainsComponent, + data: { + title: 'Domains' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class DomainsRoutingModule { +} diff --git a/admin/src/app/system-domains/domains.component.html b/admin/src/app/system-domains/domains.component.html new file mode 100644 index 00000000..83e9686d --- /dev/null +++ b/admin/src/app/system-domains/domains.component.html @@ -0,0 +1 @@ +

Domains

diff --git a/admin/src/app/system-domains/domains.component.ts b/admin/src/app/system-domains/domains.component.ts new file mode 100644 index 00000000..058fd8f9 --- /dev/null +++ b/admin/src/app/system-domains/domains.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-domains', + templateUrl: './domains.component.html' +}) +export class DomainsComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/admin/src/app/system-domains/domains.module.ts b/admin/src/app/system-domains/domains.module.ts new file mode 100644 index 00000000..7276d4bf --- /dev/null +++ b/admin/src/app/system-domains/domains.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; + +import {DomainsComponent} from './domains.component'; +import {DomainsRoutingModule} from './domains-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + DomainsRoutingModule + ], + declarations: [ + DomainsComponent + ] +}) +export class DomainsModule { +} diff --git a/admin/src/app/system-settings/settings-routing.module.ts b/admin/src/app/system-settings/settings-routing.module.ts new file mode 100644 index 00000000..77e72a6f --- /dev/null +++ b/admin/src/app/system-settings/settings-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {SettingsComponent} from './settings.component'; + +const routes: Routes = [{ + path: 'settings', + component: SettingsComponent, + data: { + title: 'Settings' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SettingsRoutingModule { +} diff --git a/admin/src/app/system-settings/settings.component.html b/admin/src/app/system-settings/settings.component.html new file mode 100644 index 00000000..daae06f0 --- /dev/null +++ b/admin/src/app/system-settings/settings.component.html @@ -0,0 +1 @@ +

Settings

diff --git a/admin/src/app/system-settings/settings.component.ts b/admin/src/app/system-settings/settings.component.ts new file mode 100644 index 00000000..33af4f77 --- /dev/null +++ b/admin/src/app/system-settings/settings.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-settings', + templateUrl: './settings.component.html' +}) +export class SettingsComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/admin/src/app/system-settings/settings.module.ts b/admin/src/app/system-settings/settings.module.ts new file mode 100644 index 00000000..8f12d6b2 --- /dev/null +++ b/admin/src/app/system-settings/settings.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; + +import {SettingsComponent} from './settings.component'; +import {SettingsRoutingModule} from './settings-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + SettingsRoutingModule + ], + declarations: [ + SettingsComponent + ] +}) +export class SettingsModule { +} diff --git a/admin/src/app/system-users/users-routing.module.ts b/admin/src/app/system-users/users-routing.module.ts new file mode 100644 index 00000000..2dbbb846 --- /dev/null +++ b/admin/src/app/system-users/users-routing.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +import {UsersComponent} from './users.component'; + +const routes: Routes = [{ + path: 'users', + component: UsersComponent, + data: { + title: 'Users' + } +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class UsersRoutingModule { +} diff --git a/admin/src/app/system-users/users.component.html b/admin/src/app/system-users/users.component.html new file mode 100644 index 00000000..47b5b615 --- /dev/null +++ b/admin/src/app/system-users/users.component.html @@ -0,0 +1 @@ +

Users

diff --git a/admin/src/app/system-users/users.component.ts b/admin/src/app/system-users/users.component.ts new file mode 100644 index 00000000..b81458ac --- /dev/null +++ b/admin/src/app/system-users/users.component.ts @@ -0,0 +1,14 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-users', + templateUrl: './users.component.html' +}) +export class UsersComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/admin/src/app/system-users/users.module.ts b/admin/src/app/system-users/users.module.ts new file mode 100644 index 00000000..2efabd99 --- /dev/null +++ b/admin/src/app/system-users/users.module.ts @@ -0,0 +1,17 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; + +import {UsersComponent} from './users.component'; +import {UsersRoutingModule} from './users-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + UsersRoutingModule + ], + declarations: [ + UsersComponent + ] +}) +export class UsersModule { +} diff --git a/admin/src/app/system/system-routing.module.ts b/admin/src/app/system/system-routing.module.ts new file mode 100644 index 00000000..54b560fc --- /dev/null +++ b/admin/src/app/system/system-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {Routes, RouterModule} from '@angular/router'; + +const routes: Routes = [{ + path: '', + data: { + title: 'System' + }, +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SystemRoutingModule { +} diff --git a/admin/src/app/system/system.module.ts b/admin/src/app/system/system.module.ts new file mode 100644 index 00000000..305cd1cd --- /dev/null +++ b/admin/src/app/system/system.module.ts @@ -0,0 +1,26 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {FormsModule} from '@angular/forms'; + +import {AboutModule} from '../system-about/about.module'; +import {DashboardModule} from '../system-dashboard/dashboard.module'; +import {DomainsModule} from '../system-domains/domains.module'; +import {SettingsModule} from '../system-settings/settings.module'; +import {UsersModule} from '../system-users/users.module'; + +import {SystemRoutingModule} from './system-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + AboutModule, + DashboardModule, + DomainsModule, + SettingsModule, + SystemRoutingModule, + UsersModule, + ] +}) +export class SystemModule { +} diff --git a/admin/src/assets/css/font-awesome.css b/admin/src/assets/css/font-awesome.css new file mode 100644 index 00000000..a0b879fa --- /dev/null +++ b/admin/src/assets/css/font-awesome.css @@ -0,0 +1,2199 @@ +/*! + * Font Awesome 4.6.3 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('../fonts/fontawesome-webfont.eot?v=4.6.3'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.6.3#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; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: .2em .25em .15em; + border: solid 0.08em #eeeeee; + border-radius: .1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ +.pull-right { + 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); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-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); + -ms-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 { + 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"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.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-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"; +} +.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; +} diff --git a/admin/src/assets/css/font-awesome.css.map b/admin/src/assets/css/font-awesome.css.map new file mode 100644 index 00000000..60763a86 --- /dev/null +++ b/admin/src/assets/css/font-awesome.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"], +"names": [], +"file": "font-awesome.css" +} diff --git a/admin/src/assets/css/font-awesome.min.css b/admin/src/assets/css/font-awesome.min.css new file mode 100644 index 00000000..9b27f8ea --- /dev/null +++ b/admin/src/assets/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#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}.fa-lg{font-size:1.33333333em;line-height:.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}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{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)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-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);-ms-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{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:#fff}.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"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.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-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"}.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} diff --git a/admin/src/assets/css/simple-line-icons.css b/admin/src/assets/css/simple-line-icons.css new file mode 100644 index 00000000..a5e97e26 --- /dev/null +++ b/admin/src/assets/css/simple-line-icons.css @@ -0,0 +1,778 @@ +@font-face { + font-family: 'simple-line-icons'; + src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0'); + src: url('../fonts/Simple-Line-Icons.eot?v=2.4.0#iefix') format('embedded-opentype'), url('../fonts/Simple-Line-Icons.woff2?v=2.4.0') format('woff2'), url('../fonts/Simple-Line-Icons.ttf?v=2.4.0') format('truetype'), url('../fonts/Simple-Line-Icons.woff?v=2.4.0') format('woff'), url('../fonts/Simple-Line-Icons.svg?v=2.4.0#simple-line-icons') format('svg'); + font-weight: normal; + font-style: normal; +} +/* + Use the following CSS code if you want to have a class per icon. + Instead of a list of all class selectors, you can use the generic [class*="icon-"] selector, but it's slower: +*/ +.icon-user, +.icon-people, +.icon-user-female, +.icon-user-follow, +.icon-user-following, +.icon-user-unfollow, +.icon-login, +.icon-logout, +.icon-emotsmile, +.icon-phone, +.icon-call-end, +.icon-call-in, +.icon-call-out, +.icon-map, +.icon-location-pin, +.icon-direction, +.icon-directions, +.icon-compass, +.icon-layers, +.icon-menu, +.icon-list, +.icon-options-vertical, +.icon-options, +.icon-arrow-down, +.icon-arrow-left, +.icon-arrow-right, +.icon-arrow-up, +.icon-arrow-up-circle, +.icon-arrow-left-circle, +.icon-arrow-right-circle, +.icon-arrow-down-circle, +.icon-check, +.icon-clock, +.icon-plus, +.icon-minus, +.icon-close, +.icon-event, +.icon-exclamation, +.icon-organization, +.icon-trophy, +.icon-screen-smartphone, +.icon-screen-desktop, +.icon-plane, +.icon-notebook, +.icon-mustache, +.icon-mouse, +.icon-magnet, +.icon-energy, +.icon-disc, +.icon-cursor, +.icon-cursor-move, +.icon-crop, +.icon-chemistry, +.icon-speedometer, +.icon-shield, +.icon-screen-tablet, +.icon-magic-wand, +.icon-hourglass, +.icon-graduation, +.icon-ghost, +.icon-game-controller, +.icon-fire, +.icon-eyeglass, +.icon-envelope-open, +.icon-envelope-letter, +.icon-bell, +.icon-badge, +.icon-anchor, +.icon-wallet, +.icon-vector, +.icon-speech, +.icon-puzzle, +.icon-printer, +.icon-present, +.icon-playlist, +.icon-pin, +.icon-picture, +.icon-handbag, +.icon-globe-alt, +.icon-globe, +.icon-folder-alt, +.icon-folder, +.icon-film, +.icon-feed, +.icon-drop, +.icon-drawer, +.icon-docs, +.icon-doc, +.icon-diamond, +.icon-cup, +.icon-calculator, +.icon-bubbles, +.icon-briefcase, +.icon-book-open, +.icon-basket-loaded, +.icon-basket, +.icon-bag, +.icon-action-undo, +.icon-action-redo, +.icon-wrench, +.icon-umbrella, +.icon-trash, +.icon-tag, +.icon-support, +.icon-frame, +.icon-size-fullscreen, +.icon-size-actual, +.icon-shuffle, +.icon-share-alt, +.icon-share, +.icon-rocket, +.icon-question, +.icon-pie-chart, +.icon-pencil, +.icon-note, +.icon-loop, +.icon-home, +.icon-grid, +.icon-graph, +.icon-microphone, +.icon-music-tone-alt, +.icon-music-tone, +.icon-earphones-alt, +.icon-earphones, +.icon-equalizer, +.icon-like, +.icon-dislike, +.icon-control-start, +.icon-control-rewind, +.icon-control-play, +.icon-control-pause, +.icon-control-forward, +.icon-control-end, +.icon-volume-1, +.icon-volume-2, +.icon-volume-off, +.icon-calendar, +.icon-bulb, +.icon-chart, +.icon-ban, +.icon-bubble, +.icon-camrecorder, +.icon-camera, +.icon-cloud-download, +.icon-cloud-upload, +.icon-envelope, +.icon-eye, +.icon-flag, +.icon-heart, +.icon-info, +.icon-key, +.icon-link, +.icon-lock, +.icon-lock-open, +.icon-magnifier, +.icon-magnifier-add, +.icon-magnifier-remove, +.icon-paper-clip, +.icon-paper-plane, +.icon-power, +.icon-refresh, +.icon-reload, +.icon-settings, +.icon-star, +.icon-symbol-female, +.icon-symbol-male, +.icon-target, +.icon-credit-card, +.icon-paypal, +.icon-social-tumblr, +.icon-social-twitter, +.icon-social-facebook, +.icon-social-instagram, +.icon-social-linkedin, +.icon-social-pinterest, +.icon-social-github, +.icon-social-google, +.icon-social-reddit, +.icon-social-skype, +.icon-social-dribbble, +.icon-social-behance, +.icon-social-foursqare, +.icon-social-soundcloud, +.icon-social-spotify, +.icon-social-stumbleupon, +.icon-social-youtube, +.icon-social-dropbox, +.icon-social-vkontakte, +.icon-social-steam { + font-family: 'simple-line-icons'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.icon-user:before { + content: "\e005"; +} +.icon-people:before { + content: "\e001"; +} +.icon-user-female:before { + content: "\e000"; +} +.icon-user-follow:before { + content: "\e002"; +} +.icon-user-following:before { + content: "\e003"; +} +.icon-user-unfollow:before { + content: "\e004"; +} +.icon-login:before { + content: "\e066"; +} +.icon-logout:before { + content: "\e065"; +} +.icon-emotsmile:before { + content: "\e021"; +} +.icon-phone:before { + content: "\e600"; +} +.icon-call-end:before { + content: "\e048"; +} +.icon-call-in:before { + content: "\e047"; +} +.icon-call-out:before { + content: "\e046"; +} +.icon-map:before { + content: "\e033"; +} +.icon-location-pin:before { + content: "\e096"; +} +.icon-direction:before { + content: "\e042"; +} +.icon-directions:before { + content: "\e041"; +} +.icon-compass:before { + content: "\e045"; +} +.icon-layers:before { + content: "\e034"; +} +.icon-menu:before { + content: "\e601"; +} +.icon-list:before { + content: "\e067"; +} +.icon-options-vertical:before { + content: "\e602"; +} +.icon-options:before { + content: "\e603"; +} +.icon-arrow-down:before { + content: "\e604"; +} +.icon-arrow-left:before { + content: "\e605"; +} +.icon-arrow-right:before { + content: "\e606"; +} +.icon-arrow-up:before { + content: "\e607"; +} +.icon-arrow-up-circle:before { + content: "\e078"; +} +.icon-arrow-left-circle:before { + content: "\e07a"; +} +.icon-arrow-right-circle:before { + content: "\e079"; +} +.icon-arrow-down-circle:before { + content: "\e07b"; +} +.icon-check:before { + content: "\e080"; +} +.icon-clock:before { + content: "\e081"; +} +.icon-plus:before { + content: "\e095"; +} +.icon-minus:before { + content: "\e615"; +} +.icon-close:before { + content: "\e082"; +} +.icon-event:before { + content: "\e619"; +} +.icon-exclamation:before { + content: "\e617"; +} +.icon-organization:before { + content: "\e616"; +} +.icon-trophy:before { + content: "\e006"; +} +.icon-screen-smartphone:before { + content: "\e010"; +} +.icon-screen-desktop:before { + content: "\e011"; +} +.icon-plane:before { + content: "\e012"; +} +.icon-notebook:before { + content: "\e013"; +} +.icon-mustache:before { + content: "\e014"; +} +.icon-mouse:before { + content: "\e015"; +} +.icon-magnet:before { + content: "\e016"; +} +.icon-energy:before { + content: "\e020"; +} +.icon-disc:before { + content: "\e022"; +} +.icon-cursor:before { + content: "\e06e"; +} +.icon-cursor-move:before { + content: "\e023"; +} +.icon-crop:before { + content: "\e024"; +} +.icon-chemistry:before { + content: "\e026"; +} +.icon-speedometer:before { + content: "\e007"; +} +.icon-shield:before { + content: "\e00e"; +} +.icon-screen-tablet:before { + content: "\e00f"; +} +.icon-magic-wand:before { + content: "\e017"; +} +.icon-hourglass:before { + content: "\e018"; +} +.icon-graduation:before { + content: "\e019"; +} +.icon-ghost:before { + content: "\e01a"; +} +.icon-game-controller:before { + content: "\e01b"; +} +.icon-fire:before { + content: "\e01c"; +} +.icon-eyeglass:before { + content: "\e01d"; +} +.icon-envelope-open:before { + content: "\e01e"; +} +.icon-envelope-letter:before { + content: "\e01f"; +} +.icon-bell:before { + content: "\e027"; +} +.icon-badge:before { + content: "\e028"; +} +.icon-anchor:before { + content: "\e029"; +} +.icon-wallet:before { + content: "\e02a"; +} +.icon-vector:before { + content: "\e02b"; +} +.icon-speech:before { + content: "\e02c"; +} +.icon-puzzle:before { + content: "\e02d"; +} +.icon-printer:before { + content: "\e02e"; +} +.icon-present:before { + content: "\e02f"; +} +.icon-playlist:before { + content: "\e030"; +} +.icon-pin:before { + content: "\e031"; +} +.icon-picture:before { + content: "\e032"; +} +.icon-handbag:before { + content: "\e035"; +} +.icon-globe-alt:before { + content: "\e036"; +} +.icon-globe:before { + content: "\e037"; +} +.icon-folder-alt:before { + content: "\e039"; +} +.icon-folder:before { + content: "\e089"; +} +.icon-film:before { + content: "\e03a"; +} +.icon-feed:before { + content: "\e03b"; +} +.icon-drop:before { + content: "\e03e"; +} +.icon-drawer:before { + content: "\e03f"; +} +.icon-docs:before { + content: "\e040"; +} +.icon-doc:before { + content: "\e085"; +} +.icon-diamond:before { + content: "\e043"; +} +.icon-cup:before { + content: "\e044"; +} +.icon-calculator:before { + content: "\e049"; +} +.icon-bubbles:before { + content: "\e04a"; +} +.icon-briefcase:before { + content: "\e04b"; +} +.icon-book-open:before { + content: "\e04c"; +} +.icon-basket-loaded:before { + content: "\e04d"; +} +.icon-basket:before { + content: "\e04e"; +} +.icon-bag:before { + content: "\e04f"; +} +.icon-action-undo:before { + content: "\e050"; +} +.icon-action-redo:before { + content: "\e051"; +} +.icon-wrench:before { + content: "\e052"; +} +.icon-umbrella:before { + content: "\e053"; +} +.icon-trash:before { + content: "\e054"; +} +.icon-tag:before { + content: "\e055"; +} +.icon-support:before { + content: "\e056"; +} +.icon-frame:before { + content: "\e038"; +} +.icon-size-fullscreen:before { + content: "\e057"; +} +.icon-size-actual:before { + content: "\e058"; +} +.icon-shuffle:before { + content: "\e059"; +} +.icon-share-alt:before { + content: "\e05a"; +} +.icon-share:before { + content: "\e05b"; +} +.icon-rocket:before { + content: "\e05c"; +} +.icon-question:before { + content: "\e05d"; +} +.icon-pie-chart:before { + content: "\e05e"; +} +.icon-pencil:before { + content: "\e05f"; +} +.icon-note:before { + content: "\e060"; +} +.icon-loop:before { + content: "\e064"; +} +.icon-home:before { + content: "\e069"; +} +.icon-grid:before { + content: "\e06a"; +} +.icon-graph:before { + content: "\e06b"; +} +.icon-microphone:before { + content: "\e063"; +} +.icon-music-tone-alt:before { + content: "\e061"; +} +.icon-music-tone:before { + content: "\e062"; +} +.icon-earphones-alt:before { + content: "\e03c"; +} +.icon-earphones:before { + content: "\e03d"; +} +.icon-equalizer:before { + content: "\e06c"; +} +.icon-like:before { + content: "\e068"; +} +.icon-dislike:before { + content: "\e06d"; +} +.icon-control-start:before { + content: "\e06f"; +} +.icon-control-rewind:before { + content: "\e070"; +} +.icon-control-play:before { + content: "\e071"; +} +.icon-control-pause:before { + content: "\e072"; +} +.icon-control-forward:before { + content: "\e073"; +} +.icon-control-end:before { + content: "\e074"; +} +.icon-volume-1:before { + content: "\e09f"; +} +.icon-volume-2:before { + content: "\e0a0"; +} +.icon-volume-off:before { + content: "\e0a1"; +} +.icon-calendar:before { + content: "\e075"; +} +.icon-bulb:before { + content: "\e076"; +} +.icon-chart:before { + content: "\e077"; +} +.icon-ban:before { + content: "\e07c"; +} +.icon-bubble:before { + content: "\e07d"; +} +.icon-camrecorder:before { + content: "\e07e"; +} +.icon-camera:before { + content: "\e07f"; +} +.icon-cloud-download:before { + content: "\e083"; +} +.icon-cloud-upload:before { + content: "\e084"; +} +.icon-envelope:before { + content: "\e086"; +} +.icon-eye:before { + content: "\e087"; +} +.icon-flag:before { + content: "\e088"; +} +.icon-heart:before { + content: "\e08a"; +} +.icon-info:before { + content: "\e08b"; +} +.icon-key:before { + content: "\e08c"; +} +.icon-link:before { + content: "\e08d"; +} +.icon-lock:before { + content: "\e08e"; +} +.icon-lock-open:before { + content: "\e08f"; +} +.icon-magnifier:before { + content: "\e090"; +} +.icon-magnifier-add:before { + content: "\e091"; +} +.icon-magnifier-remove:before { + content: "\e092"; +} +.icon-paper-clip:before { + content: "\e093"; +} +.icon-paper-plane:before { + content: "\e094"; +} +.icon-power:before { + content: "\e097"; +} +.icon-refresh:before { + content: "\e098"; +} +.icon-reload:before { + content: "\e099"; +} +.icon-settings:before { + content: "\e09a"; +} +.icon-star:before { + content: "\e09b"; +} +.icon-symbol-female:before { + content: "\e09c"; +} +.icon-symbol-male:before { + content: "\e09d"; +} +.icon-target:before { + content: "\e09e"; +} +.icon-credit-card:before { + content: "\e025"; +} +.icon-paypal:before { + content: "\e608"; +} +.icon-social-tumblr:before { + content: "\e00a"; +} +.icon-social-twitter:before { + content: "\e009"; +} +.icon-social-facebook:before { + content: "\e00b"; +} +.icon-social-instagram:before { + content: "\e609"; +} +.icon-social-linkedin:before { + content: "\e60a"; +} +.icon-social-pinterest:before { + content: "\e60b"; +} +.icon-social-github:before { + content: "\e60c"; +} +.icon-social-google:before { + content: "\e60d"; +} +.icon-social-reddit:before { + content: "\e60e"; +} +.icon-social-skype:before { + content: "\e60f"; +} +.icon-social-dribbble:before { + content: "\e00d"; +} +.icon-social-behance:before { + content: "\e610"; +} +.icon-social-foursqare:before { + content: "\e611"; +} +.icon-social-soundcloud:before { + content: "\e612"; +} +.icon-social-spotify:before { + content: "\e613"; +} +.icon-social-stumbleupon:before { + content: "\e614"; +} +.icon-social-youtube:before { + content: "\e008"; +} +.icon-social-dropbox:before { + content: "\e00c"; +} +.icon-social-vkontakte:before { + content: "\e618"; +} +.icon-social-steam:before { + content: "\e620"; +} diff --git a/admin/src/assets/css/style.css b/admin/src/assets/css/style.css new file mode 100644 index 00000000..a16f7f6a --- /dev/null +++ b/admin/src/assets/css/style.css @@ -0,0 +1,7468 @@ +/** + * CoreUI - Open Source Bootstrap Admin Template + * @version v1.0.0-alpha.2 + * @link http://coreui.io + * Copyright (c) 2016 creativeLabs Łukasz Holeczek + * @license MIT + */ +/*! normalize.css v4.2.0 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + line-height: 1.15; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block; } + +audio, +canvas, +progress, +video { + display: inline-block; } + +audio:not([controls]) { + display: none; + height: 0; } + +progress { + vertical-align: baseline; } + +template, +[hidden] { + display: none; } + +a { + background-color: transparent; + -webkit-text-decoration-skip: objects; } + +a:active, +a:hover { + outline-width: 0; } + +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; } + +b, +strong { + font-weight: inherit; } + +b, +strong { + font-weight: bolder; } + +dfn { + font-style: italic; } + +h1 { + font-size: 2em; + margin: 0.67em 0; } + +mark { + background-color: #ff0; + color: #000; } + +small { + font-size: 80%; } + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +img { + border-style: none; } + +svg:not(:root) { + overflow: hidden; } + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +figure { + margin: 1em 40px; } + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; } + +button, +input, +optgroup, +select, +textarea { + font: inherit; + margin: 0; } + +optgroup { + font-weight: bold; } + +button, +input { + overflow: visible; } + +button, +select { + text-transform: none; } + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; } + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; } + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; } + +textarea { + overflow: auto; } + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + padding: 0; } + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +[type="search"] { + -webkit-appearance: textfield; + outline-offset: -2px; } + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +::-webkit-input-placeholder { + color: inherit; + opacity: 0.54; } + +::-webkit-file-upload-button { + -webkit-appearance: button; + font: inherit; } + +@media print { + *, + *::before, + *::after, + *::first-letter, + p::first-line, + div::first-line, + blockquote::first-line, + li::first-line { + text-shadow: none !important; + box-shadow: none !important; } + a, + a:visited { + text-decoration: underline; } + abbr[title]::after { + content: " (" attr(title) ")"; } + pre { + white-space: pre-wrap !important; } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + thead { + display: table-header-group; } + tr, + img { + page-break-inside: avoid; } + p, + h2, + h3 { + orphans: 3; + widows: 3; } + h2, + h3 { + page-break-after: avoid; } + .navbar { + display: none; } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; } + .tag { + border: 1px solid #000; } + .table { + border-collapse: collapse !important; } + .table td, + .table th { + background-color: #fff !important; } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; } } + +html { + box-sizing: border-box; } + +*, +*::before, +*::after { + box-sizing: inherit; } + +@-ms-viewport { + width: device-width; } + +html { + font-size: 16px; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; } + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 0.875rem; + line-height: 1.5; + color: #263238; + background-color: #e4e5e6; } + +[tabindex="-1"]:focus { + outline: none !important; } + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: .5rem; } + +p { + margin-top: 0; + margin-bottom: 1rem; } + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #b0bec5; } + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; } + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; } + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; } + +dt { + font-weight: bold; } + +dd { + margin-bottom: .5rem; + margin-left: 0; } + +blockquote { + margin: 0 0 1rem; } + +a { + color: #20a8d8; + text-decoration: none; } + a:focus, a:hover { + color: #167495; + text-decoration: underline; } + a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; } + a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover { + color: inherit; + text-decoration: none; } + a:not([href]):not([tabindex]):focus { + outline: none; } + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; } + +figure { + margin: 0 0 1rem; } + +img { + vertical-align: middle; } + +[role="button"] { + cursor: pointer; } + +a, +area, +button, +[role="button"], +input, +label, +select, +summary, +textarea { + touch-action: manipulation; } + +table { + border-collapse: collapse; + background-color: transparent; } + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #b0bec5; + text-align: left; + caption-side: bottom; } + +th { + text-align: left; } + +label { + display: inline-block; + margin-bottom: .5rem; } + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; } + +input, +button, +select, +textarea { + line-height: inherit; } + +input[type="radio"]:disabled, +input[type="checkbox"]:disabled { + cursor: not-allowed; } + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; } + +textarea { + resize: vertical; } + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; } + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; } + +input[type="search"] { + -webkit-appearance: none; } + +output { + display: inline-block; } + +[hidden] { + display: none !important; } + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } + +h1, .h1 { + font-size: 2.5rem; } + +h2, .h2 { + font-size: 2rem; } + +h3, .h3 { + font-size: 1.75rem; } + +h4, .h4 { + font-size: 1.5rem; } + +h5, .h5 { + font-size: 1.25rem; } + +h6, .h6 { + font-size: 1rem; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: 6rem; + font-weight: 300; } + +.display-2 { + font-size: 5.5rem; + font-weight: 300; } + +.display-3 { + font-size: 4.5rem; + font-weight: 300; } + +.display-4 { + font-size: 3.5rem; + font-weight: 300; } + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); } + +small, +.small { + font-size: 80%; + font-weight: normal; } + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; } + +.list-unstyled { + padding-left: 0; + list-style: none; } + +.list-inline { + padding-left: 0; + list-style: none; } + +.list-inline-item { + display: inline-block; } + .list-inline-item:not(:last-child) { + margin-right: 5px; } + +.initialism { + font-size: 90%; + text-transform: uppercase; } + +.blockquote { + padding: 0.5rem 1rem; + margin-bottom: 1rem; + font-size: 1.09375rem; + border-left: 0.25rem solid #cfd8dc; } + +.blockquote-footer { + display: block; + font-size: 80%; + color: #b0bec5; } + .blockquote-footer::before { + content: "\2014 \00A0"; } + +.blockquote-reverse { + padding-right: 1rem; + padding-left: 0; + text-align: right; + border-right: 0.25rem solid #cfd8dc; + border-left: 0; } + +.blockquote-reverse .blockquote-footer::before { + content: ""; } + +.blockquote-reverse .blockquote-footer::after { + content: "\00A0 \2014"; } + +dl.row > dd + dt { + clear: left; } + +.img-fluid { + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: #e4e5e6; + border: 1px solid #ddd; + transition: all .2s ease-in-out; + max-width: 100%; + height: auto; } + +.figure { + display: inline-block; } + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; } + +.figure-caption { + font-size: 90%; + color: #b0bec5; } + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } + +code { + padding: 0.2rem 0.4rem; + font-size: 90%; + color: #bd4147; + background-color: #f7f7f9; } + +kbd { + padding: 0.2rem 0.4rem; + font-size: 90%; + color: #fff; + background-color: #333; } + kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; } + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + font-size: 90%; + color: #263238; } + pre code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; } + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } + +.container { + margin-left: auto; + margin-right: auto; + padding-left: 15px; + padding-right: 15px; } + .container::after { + content: ""; + display: table; + clear: both; } + @media (min-width: 576px) { + .container { + width: 540px; + max-width: 100%; } } + @media (min-width: 768px) { + .container { + width: 720px; + max-width: 100%; } } + @media (min-width: 992px) { + .container { + width: 960px; + max-width: 100%; } } + @media (min-width: 1200px) { + .container { + width: 1140px; + max-width: 100%; } } + +.container-fluid { + margin-left: auto; + margin-right: auto; + padding-left: 15px; + padding-right: 15px; } + .container-fluid::after { + content: ""; + display: table; + clear: both; } + +.row { + margin-right: -15px; + margin-left: -15px; } + .row::after { + content: ""; + display: table; + clear: both; } + @media (min-width: 576px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + @media (min-width: 768px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + @media (min-width: 992px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + @media (min-width: 1200px) { + .row { + margin-right: -15px; + margin-left: -15px; } } + +.col-xs, .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; } + @media (min-width: 576px) { + .col-xs, .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 768px) { + .col-xs, .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 992px) { + .col-xs, .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { + padding-right: 15px; + padding-left: 15px; } } + @media (min-width: 1200px) { + .col-xs, .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { + padding-right: 15px; + padding-left: 15px; } } + +.col-xs-1 { + float: left; + width: 8.33333%; } + +.col-xs-2 { + float: left; + width: 16.66667%; } + +.col-xs-3 { + float: left; + width: 25%; } + +.col-xs-4 { + float: left; + width: 33.33333%; } + +.col-xs-5 { + float: left; + width: 41.66667%; } + +.col-xs-6 { + float: left; + width: 50%; } + +.col-xs-7 { + float: left; + width: 58.33333%; } + +.col-xs-8 { + float: left; + width: 66.66667%; } + +.col-xs-9 { + float: left; + width: 75%; } + +.col-xs-10 { + float: left; + width: 83.33333%; } + +.col-xs-11 { + float: left; + width: 91.66667%; } + +.col-xs-12 { + float: left; + width: 100%; } + +.pull-xs-0 { + right: auto; } + +.pull-xs-1 { + right: 8.33333%; } + +.pull-xs-2 { + right: 16.66667%; } + +.pull-xs-3 { + right: 25%; } + +.pull-xs-4 { + right: 33.33333%; } + +.pull-xs-5 { + right: 41.66667%; } + +.pull-xs-6 { + right: 50%; } + +.pull-xs-7 { + right: 58.33333%; } + +.pull-xs-8 { + right: 66.66667%; } + +.pull-xs-9 { + right: 75%; } + +.pull-xs-10 { + right: 83.33333%; } + +.pull-xs-11 { + right: 91.66667%; } + +.pull-xs-12 { + right: 100%; } + +.push-xs-0 { + left: auto; } + +.push-xs-1 { + left: 8.33333%; } + +.push-xs-2 { + left: 16.66667%; } + +.push-xs-3 { + left: 25%; } + +.push-xs-4 { + left: 33.33333%; } + +.push-xs-5 { + left: 41.66667%; } + +.push-xs-6 { + left: 50%; } + +.push-xs-7 { + left: 58.33333%; } + +.push-xs-8 { + left: 66.66667%; } + +.push-xs-9 { + left: 75%; } + +.push-xs-10 { + left: 83.33333%; } + +.push-xs-11 { + left: 91.66667%; } + +.push-xs-12 { + left: 100%; } + +.offset-xs-1 { + margin-left: 8.33333%; } + +.offset-xs-2 { + margin-left: 16.66667%; } + +.offset-xs-3 { + margin-left: 25%; } + +.offset-xs-4 { + margin-left: 33.33333%; } + +.offset-xs-5 { + margin-left: 41.66667%; } + +.offset-xs-6 { + margin-left: 50%; } + +.offset-xs-7 { + margin-left: 58.33333%; } + +.offset-xs-8 { + margin-left: 66.66667%; } + +.offset-xs-9 { + margin-left: 75%; } + +.offset-xs-10 { + margin-left: 83.33333%; } + +.offset-xs-11 { + margin-left: 91.66667%; } + +@media (min-width: 576px) { + .col-sm-1 { + float: left; + width: 8.33333%; } + .col-sm-2 { + float: left; + width: 16.66667%; } + .col-sm-3 { + float: left; + width: 25%; } + .col-sm-4 { + float: left; + width: 33.33333%; } + .col-sm-5 { + float: left; + width: 41.66667%; } + .col-sm-6 { + float: left; + width: 50%; } + .col-sm-7 { + float: left; + width: 58.33333%; } + .col-sm-8 { + float: left; + width: 66.66667%; } + .col-sm-9 { + float: left; + width: 75%; } + .col-sm-10 { + float: left; + width: 83.33333%; } + .col-sm-11 { + float: left; + width: 91.66667%; } + .col-sm-12 { + float: left; + width: 100%; } + .pull-sm-0 { + right: auto; } + .pull-sm-1 { + right: 8.33333%; } + .pull-sm-2 { + right: 16.66667%; } + .pull-sm-3 { + right: 25%; } + .pull-sm-4 { + right: 33.33333%; } + .pull-sm-5 { + right: 41.66667%; } + .pull-sm-6 { + right: 50%; } + .pull-sm-7 { + right: 58.33333%; } + .pull-sm-8 { + right: 66.66667%; } + .pull-sm-9 { + right: 75%; } + .pull-sm-10 { + right: 83.33333%; } + .pull-sm-11 { + right: 91.66667%; } + .pull-sm-12 { + right: 100%; } + .push-sm-0 { + left: auto; } + .push-sm-1 { + left: 8.33333%; } + .push-sm-2 { + left: 16.66667%; } + .push-sm-3 { + left: 25%; } + .push-sm-4 { + left: 33.33333%; } + .push-sm-5 { + left: 41.66667%; } + .push-sm-6 { + left: 50%; } + .push-sm-7 { + left: 58.33333%; } + .push-sm-8 { + left: 66.66667%; } + .push-sm-9 { + left: 75%; } + .push-sm-10 { + left: 83.33333%; } + .push-sm-11 { + left: 91.66667%; } + .push-sm-12 { + left: 100%; } + .offset-sm-0 { + margin-left: 0%; } + .offset-sm-1 { + margin-left: 8.33333%; } + .offset-sm-2 { + margin-left: 16.66667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333%; } + .offset-sm-5 { + margin-left: 41.66667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333%; } + .offset-sm-8 { + margin-left: 66.66667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333%; } + .offset-sm-11 { + margin-left: 91.66667%; } } + +@media (min-width: 768px) { + .col-md-1 { + float: left; + width: 8.33333%; } + .col-md-2 { + float: left; + width: 16.66667%; } + .col-md-3 { + float: left; + width: 25%; } + .col-md-4 { + float: left; + width: 33.33333%; } + .col-md-5 { + float: left; + width: 41.66667%; } + .col-md-6 { + float: left; + width: 50%; } + .col-md-7 { + float: left; + width: 58.33333%; } + .col-md-8 { + float: left; + width: 66.66667%; } + .col-md-9 { + float: left; + width: 75%; } + .col-md-10 { + float: left; + width: 83.33333%; } + .col-md-11 { + float: left; + width: 91.66667%; } + .col-md-12 { + float: left; + width: 100%; } + .pull-md-0 { + right: auto; } + .pull-md-1 { + right: 8.33333%; } + .pull-md-2 { + right: 16.66667%; } + .pull-md-3 { + right: 25%; } + .pull-md-4 { + right: 33.33333%; } + .pull-md-5 { + right: 41.66667%; } + .pull-md-6 { + right: 50%; } + .pull-md-7 { + right: 58.33333%; } + .pull-md-8 { + right: 66.66667%; } + .pull-md-9 { + right: 75%; } + .pull-md-10 { + right: 83.33333%; } + .pull-md-11 { + right: 91.66667%; } + .pull-md-12 { + right: 100%; } + .push-md-0 { + left: auto; } + .push-md-1 { + left: 8.33333%; } + .push-md-2 { + left: 16.66667%; } + .push-md-3 { + left: 25%; } + .push-md-4 { + left: 33.33333%; } + .push-md-5 { + left: 41.66667%; } + .push-md-6 { + left: 50%; } + .push-md-7 { + left: 58.33333%; } + .push-md-8 { + left: 66.66667%; } + .push-md-9 { + left: 75%; } + .push-md-10 { + left: 83.33333%; } + .push-md-11 { + left: 91.66667%; } + .push-md-12 { + left: 100%; } + .offset-md-0 { + margin-left: 0%; } + .offset-md-1 { + margin-left: 8.33333%; } + .offset-md-2 { + margin-left: 16.66667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333%; } + .offset-md-5 { + margin-left: 41.66667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333%; } + .offset-md-8 { + margin-left: 66.66667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333%; } + .offset-md-11 { + margin-left: 91.66667%; } } + +@media (min-width: 992px) { + .col-lg-1 { + float: left; + width: 8.33333%; } + .col-lg-2 { + float: left; + width: 16.66667%; } + .col-lg-3 { + float: left; + width: 25%; } + .col-lg-4 { + float: left; + width: 33.33333%; } + .col-lg-5 { + float: left; + width: 41.66667%; } + .col-lg-6 { + float: left; + width: 50%; } + .col-lg-7 { + float: left; + width: 58.33333%; } + .col-lg-8 { + float: left; + width: 66.66667%; } + .col-lg-9 { + float: left; + width: 75%; } + .col-lg-10 { + float: left; + width: 83.33333%; } + .col-lg-11 { + float: left; + width: 91.66667%; } + .col-lg-12 { + float: left; + width: 100%; } + .pull-lg-0 { + right: auto; } + .pull-lg-1 { + right: 8.33333%; } + .pull-lg-2 { + right: 16.66667%; } + .pull-lg-3 { + right: 25%; } + .pull-lg-4 { + right: 33.33333%; } + .pull-lg-5 { + right: 41.66667%; } + .pull-lg-6 { + right: 50%; } + .pull-lg-7 { + right: 58.33333%; } + .pull-lg-8 { + right: 66.66667%; } + .pull-lg-9 { + right: 75%; } + .pull-lg-10 { + right: 83.33333%; } + .pull-lg-11 { + right: 91.66667%; } + .pull-lg-12 { + right: 100%; } + .push-lg-0 { + left: auto; } + .push-lg-1 { + left: 8.33333%; } + .push-lg-2 { + left: 16.66667%; } + .push-lg-3 { + left: 25%; } + .push-lg-4 { + left: 33.33333%; } + .push-lg-5 { + left: 41.66667%; } + .push-lg-6 { + left: 50%; } + .push-lg-7 { + left: 58.33333%; } + .push-lg-8 { + left: 66.66667%; } + .push-lg-9 { + left: 75%; } + .push-lg-10 { + left: 83.33333%; } + .push-lg-11 { + left: 91.66667%; } + .push-lg-12 { + left: 100%; } + .offset-lg-0 { + margin-left: 0%; } + .offset-lg-1 { + margin-left: 8.33333%; } + .offset-lg-2 { + margin-left: 16.66667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333%; } + .offset-lg-5 { + margin-left: 41.66667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333%; } + .offset-lg-8 { + margin-left: 66.66667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333%; } + .offset-lg-11 { + margin-left: 91.66667%; } } + +@media (min-width: 1200px) { + .col-xl-1 { + float: left; + width: 8.33333%; } + .col-xl-2 { + float: left; + width: 16.66667%; } + .col-xl-3 { + float: left; + width: 25%; } + .col-xl-4 { + float: left; + width: 33.33333%; } + .col-xl-5 { + float: left; + width: 41.66667%; } + .col-xl-6 { + float: left; + width: 50%; } + .col-xl-7 { + float: left; + width: 58.33333%; } + .col-xl-8 { + float: left; + width: 66.66667%; } + .col-xl-9 { + float: left; + width: 75%; } + .col-xl-10 { + float: left; + width: 83.33333%; } + .col-xl-11 { + float: left; + width: 91.66667%; } + .col-xl-12 { + float: left; + width: 100%; } + .pull-xl-0 { + right: auto; } + .pull-xl-1 { + right: 8.33333%; } + .pull-xl-2 { + right: 16.66667%; } + .pull-xl-3 { + right: 25%; } + .pull-xl-4 { + right: 33.33333%; } + .pull-xl-5 { + right: 41.66667%; } + .pull-xl-6 { + right: 50%; } + .pull-xl-7 { + right: 58.33333%; } + .pull-xl-8 { + right: 66.66667%; } + .pull-xl-9 { + right: 75%; } + .pull-xl-10 { + right: 83.33333%; } + .pull-xl-11 { + right: 91.66667%; } + .pull-xl-12 { + right: 100%; } + .push-xl-0 { + left: auto; } + .push-xl-1 { + left: 8.33333%; } + .push-xl-2 { + left: 16.66667%; } + .push-xl-3 { + left: 25%; } + .push-xl-4 { + left: 33.33333%; } + .push-xl-5 { + left: 41.66667%; } + .push-xl-6 { + left: 50%; } + .push-xl-7 { + left: 58.33333%; } + .push-xl-8 { + left: 66.66667%; } + .push-xl-9 { + left: 75%; } + .push-xl-10 { + left: 83.33333%; } + .push-xl-11 { + left: 91.66667%; } + .push-xl-12 { + left: 100%; } + .offset-xl-0 { + margin-left: 0%; } + .offset-xl-1 { + margin-left: 8.33333%; } + .offset-xl-2 { + margin-left: 16.66667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333%; } + .offset-xl-5 { + margin-left: 41.66667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333%; } + .offset-xl-8 { + margin-left: 66.66667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333%; } + .offset-xl-11 { + margin-left: 91.66667%; } } + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; } + .table th, + .table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #cfd8dc; } + .table thead th { + vertical-align: bottom; + border-bottom: 2px solid #cfd8dc; } + .table tbody + tbody { + border-top: 2px solid #cfd8dc; } + .table .table { + background-color: #e4e5e6; } + +.table-sm th, +.table-sm td { + padding: 0.3rem; } + +.table-bordered { + border: 1px solid #cfd8dc; } + .table-bordered th, + .table-bordered td { + border: 1px solid #cfd8dc; } + .table-bordered thead th, + .table-bordered thead td { + border-bottom-width: 2px; } + +.table-striped tbody tr:nth-of-type(odd) { + background-color: #eceff1; } + +.table-hover tbody tr:hover { + background-color: #eceff1; } + +.table-active, +.table-active > th, +.table-active > td { + background-color: #eceff1; } + +.table-hover .table-active:hover { + background-color: #dde3e6; } + .table-hover .table-active:hover > td, + .table-hover .table-active:hover > th { + background-color: #dde3e6; } + +.table-success, +.table-success > th, +.table-success > td { + background-color: #dff0d8; } + +.table-hover .table-success:hover { + background-color: #d0e9c6; } + .table-hover .table-success:hover > td, + .table-hover .table-success:hover > th { + background-color: #d0e9c6; } + +.table-info, +.table-info > th, +.table-info > td { + background-color: #d9edf7; } + +.table-hover .table-info:hover { + background-color: #c4e3f3; } + .table-hover .table-info:hover > td, + .table-hover .table-info:hover > th { + background-color: #c4e3f3; } + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fcf8e3; } + +.table-hover .table-warning:hover { + background-color: #faf2cc; } + .table-hover .table-warning:hover > td, + .table-hover .table-warning:hover > th { + background-color: #faf2cc; } + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f2dede; } + +.table-hover .table-danger:hover { + background-color: #ebcccc; } + .table-hover .table-danger:hover > td, + .table-hover .table-danger:hover > th { + background-color: #ebcccc; } + +.thead-inverse th { + color: #fff; + background-color: #263238; } + +.thead-default th { + color: #607d8b; + background-color: #cfd8dc; } + +.table-inverse { + color: #cfd8dc; + background-color: #263238; } + .table-inverse th, + .table-inverse td, + .table-inverse thead th { + border-color: #607d8b; } + .table-inverse.table-bordered { + border: 0; } + +.table-responsive { + display: block; + width: 100%; + min-height: 0%; + overflow-x: auto; } + +.table-reflow thead { + float: left; } + +.table-reflow tbody { + display: block; + white-space: nowrap; } + +.table-reflow th, +.table-reflow td { + border-top: 1px solid #cfd8dc; + border-left: 1px solid #cfd8dc; } + .table-reflow th:last-child, + .table-reflow td:last-child { + border-right: 1px solid #cfd8dc; } + +.table-reflow thead:last-child tr:last-child th, +.table-reflow thead:last-child tr:last-child td, +.table-reflow tbody:last-child tr:last-child th, +.table-reflow tbody:last-child tr:last-child td, +.table-reflow tfoot:last-child tr:last-child th, +.table-reflow tfoot:last-child tr:last-child td { + border-bottom: 1px solid #cfd8dc; } + +.table-reflow tr { + float: left; } + .table-reflow tr th, + .table-reflow tr td { + display: block !important; + border: 1px solid #cfd8dc; } + +.table-outline { + border: 1px solid #cfd8dc; } + .table-outline td { + vertical-align: middle; } + +.table-align-middle td { + vertical-align: middle; } + +.table-clear td { + border: 0; } + +.form-control { + display: block; + width: 100%; + padding: 0.5rem 0.75rem; + font-size: 0.875rem; + line-height: 1.25; + color: #607d8b; + background-color: #fff; + background-image: none; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 0; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } + .form-control::-ms-expand { + background-color: transparent; + border: 0; } + .form-control:focus { + color: #607d8b; + background-color: #fff; + border-color: #66afe9; + outline: none; } + .form-control::placeholder { + color: #999; + opacity: 1; } + .form-control:disabled, .form-control[readonly] { + background-color: #cfd8dc; + opacity: 1; } + .form-control:disabled { + cursor: not-allowed; } + +select.form-control:not([size]):not([multiple]) { + height: calc(2.3125rem - 2px); } + +select.form-control:focus::-ms-value { + color: #607d8b; + background-color: #fff; } + +.form-control-file, +.form-control-range { + display: block; } + +.col-form-label { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; } + +.col-form-label-lg { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + font-size: 1.25rem; } + +.col-form-label-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + font-size: 0.875rem; } + +.col-form-legend { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; + font-size: 0.875rem; } + +.form-control-static { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + line-height: 1.25; + border: solid transparent; + border-width: 1px 0; } + .form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control, + .input-group-sm > .form-control-static.input-group-addon, + .input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, + .input-group-lg > .form-control-static.input-group-addon, + .input-group-lg > .input-group-btn > .form-control-static.btn { + padding-right: 0; + padding-left: 0; } + +.form-control-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + +select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), +.input-group-sm > select.input-group-addon:not([size]):not([multiple]), +.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: 1.8125rem; } + +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), +.input-group-lg > select.input-group-addon:not([size]):not([multiple]), +.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: 3.16667rem; } + +.form-group { + margin-bottom: 1rem; } + +.form-text { + display: block; + margin-top: 0.25rem; } + +.form-check { + position: relative; + display: block; + margin-bottom: 0.75rem; } + .form-check + .form-check { + margin-top: -.25rem; } + .form-check.disabled .form-check-label { + color: #b0bec5; + cursor: not-allowed; } + +.form-check-label { + padding-left: 1.25rem; + margin-bottom: 0; + cursor: pointer; } + +.form-check-input { + position: absolute; + margin-top: .25rem; + margin-left: -1.25rem; } + .form-check-input:only-child { + position: static; } + +.form-check-inline { + position: relative; + display: inline-block; + padding-left: 1.25rem; + margin-bottom: 0; + vertical-align: middle; + cursor: pointer; } + .form-check-inline + .form-check-inline { + margin-left: .75rem; } + .form-check-inline.disabled { + color: #b0bec5; + cursor: not-allowed; } + +.form-control-feedback { + margin-top: 0.25rem; } + +.form-control-success, +.form-control-warning, +.form-control-danger { + padding-right: 2.25rem; + background-repeat: no-repeat; + background-position: center right 0.57812rem; + background-size: 1.15625rem 1.15625rem; } + +.has-success .form-control-feedback, +.has-success .form-control-label, +.has-success .form-check-label, +.has-success .form-check-inline, +.has-success .custom-control { + color: #4dbd74; } + +.has-success .form-control { + border-color: #4dbd74; } + +.has-success .input-group-addon { + color: #4dbd74; + border-color: #4dbd74; + background-color: #e2f4e8; } + +.has-success .form-control-success { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#4dbd74' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E"); } + +.has-warning .form-control-feedback, +.has-warning .form-control-label, +.has-warning .form-check-label, +.has-warning .form-check-inline, +.has-warning .custom-control { + color: #f8cb00; } + +.has-warning .form-control { + border-color: #f8cb00; } + +.has-warning .input-group-addon { + color: #f8cb00; + border-color: #f8cb00; + background-color: #fff4c5; } + +.has-warning .form-control-warning { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#f8cb00' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E"); } + +.has-danger .form-control-feedback, +.has-danger .form-control-label, +.has-danger .form-check-label, +.has-danger .form-check-inline, +.has-danger .custom-control { + color: #f86c6b; } + +.has-danger .form-control { + border-color: #f86c6b; } + +.has-danger .input-group-addon { + color: #f86c6b; + border-color: #f86c6b; + background-color: white; } + +.has-danger .form-control-danger { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#f86c6b' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E"); } + +@media (min-width: 576px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; } + .form-inline .form-control-static { + display: inline-block; } + .form-inline .input-group { + display: inline-table; + width: auto; + vertical-align: middle; } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; } + .form-inline .input-group > .form-control { + width: 100%; } + .form-inline .form-control-label { + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-check { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-check-label { + padding-left: 0; } + .form-inline .form-check-input { + position: relative; + margin-left: 0; } + .form-inline .has-feedback .form-control-feedback { + top: 0; } } + +.btn { + display: inline-block; + font-weight: normal; + line-height: 1.25; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + user-select: none; + border: 1px solid transparent; + padding: 0.5rem 1rem; + font-size: 0.875rem; + transition: all 0.2s ease-in-out; } + .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + .btn:focus, .btn:hover { + text-decoration: none; } + .btn.focus { + text-decoration: none; } + .btn:active, .btn.active { + background-image: none; + outline: 0; } + .btn.disabled, .btn:disabled { + cursor: not-allowed; + opacity: .65; } + +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; } + +.btn-primary { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-primary:hover { + color: #fff; + background-color: #1985ac; + border-color: #187fa3; } + .btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #1985ac; + border-color: #187fa3; } + .btn-primary:active, .btn-primary.active, + .open > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #1985ac; + border-color: #187fa3; + background-image: none; } + .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, + .open > .btn-primary.dropdown-toggle:hover, + .open > .btn-primary.dropdown-toggle:focus, + .open > .btn-primary.dropdown-toggle.focus { + color: #fff; + background-color: #156d8c; + border-color: #105269; } + .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary:disabled:focus, .btn-primary:disabled.focus { + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-primary.disabled:hover, .btn-primary:disabled:hover { + background-color: #20a8d8; + border-color: #20a8d8; } + +.btn-secondary { + color: #263238; + background-color: #fff; + border-color: #b0bec5; } + .btn-secondary:hover { + color: #263238; + background-color: #e6e6e6; + border-color: #8da1ab; } + .btn-secondary:focus, .btn-secondary.focus { + color: #263238; + background-color: #e6e6e6; + border-color: #8da1ab; } + .btn-secondary:active, .btn-secondary.active, + .open > .btn-secondary.dropdown-toggle { + color: #263238; + background-color: #e6e6e6; + border-color: #8da1ab; + background-image: none; } + .btn-secondary:active:hover, .btn-secondary:active:focus, .btn-secondary:active.focus, .btn-secondary.active:hover, .btn-secondary.active:focus, .btn-secondary.active.focus, + .open > .btn-secondary.dropdown-toggle:hover, + .open > .btn-secondary.dropdown-toggle:focus, + .open > .btn-secondary.dropdown-toggle.focus { + color: #263238; + background-color: #d4d4d4; + border-color: #68818e; } + .btn-secondary.disabled:focus, .btn-secondary.disabled.focus, .btn-secondary:disabled:focus, .btn-secondary:disabled.focus { + background-color: #fff; + border-color: #b0bec5; } + .btn-secondary.disabled:hover, .btn-secondary:disabled:hover { + background-color: #fff; + border-color: #b0bec5; } + +.btn-info { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-info:hover { + color: #fff; + background-color: #39b2d5; + border-color: #30aed3; } + .btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #39b2d5; + border-color: #30aed3; } + .btn-info:active, .btn-info.active, + .open > .btn-info.dropdown-toggle { + color: #fff; + background-color: #39b2d5; + border-color: #30aed3; + background-image: none; } + .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus, + .open > .btn-info.dropdown-toggle:hover, + .open > .btn-info.dropdown-toggle:focus, + .open > .btn-info.dropdown-toggle.focus { + color: #fff; + background-color: #299fc1; + border-color: #2283a0; } + .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info:disabled:focus, .btn-info:disabled.focus { + background-color: #63c2de; + border-color: #63c2de; } + .btn-info.disabled:hover, .btn-info:disabled:hover { + background-color: #63c2de; + border-color: #63c2de; } + +.btn-success { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-success:hover { + color: #fff; + background-color: #3a9d5d; + border-color: #379558; } + .btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #3a9d5d; + border-color: #379558; } + .btn-success:active, .btn-success.active, + .open > .btn-success.dropdown-toggle { + color: #fff; + background-color: #3a9d5d; + border-color: #379558; + background-image: none; } + .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, + .open > .btn-success.dropdown-toggle:hover, + .open > .btn-success.dropdown-toggle:focus, + .open > .btn-success.dropdown-toggle.focus { + color: #fff; + background-color: #30834d; + border-color: #25653c; } + .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus { + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-success.disabled:hover, .btn-success:disabled:hover { + background-color: #4dbd74; + border-color: #4dbd74; } + +.btn-warning { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-warning:hover { + color: #fff; + background-color: #c5a100; + border-color: #bb9900; } + .btn-warning:focus, .btn-warning.focus { + color: #fff; + background-color: #c5a100; + border-color: #bb9900; } + .btn-warning:active, .btn-warning.active, + .open > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #c5a100; + border-color: #bb9900; + background-image: none; } + .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus, + .open > .btn-warning.dropdown-toggle:hover, + .open > .btn-warning.dropdown-toggle:focus, + .open > .btn-warning.dropdown-toggle.focus { + color: #fff; + background-color: #a18400; + border-color: #796300; } + .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning:disabled:focus, .btn-warning:disabled.focus { + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-warning.disabled:hover, .btn-warning:disabled:hover { + background-color: #f8cb00; + border-color: #f8cb00; } + +.btn-danger { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-danger:hover { + color: #fff; + background-color: #f63c3a; + border-color: #f53231; } + .btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #f63c3a; + border-color: #f53231; } + .btn-danger:active, .btn-danger.active, + .open > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #f63c3a; + border-color: #f53231; + background-image: none; } + .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus, + .open > .btn-danger.dropdown-toggle:hover, + .open > .btn-danger.dropdown-toggle:focus, + .open > .btn-danger.dropdown-toggle.focus { + color: #fff; + background-color: #f41a18; + border-color: #d90c0a; } + .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger:disabled:focus, .btn-danger:disabled.focus { + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-danger.disabled:hover, .btn-danger:disabled:hover { + background-color: #f86c6b; + border-color: #f86c6b; } + +.btn-outline-primary { + color: #20a8d8; + background-image: none; + background-color: transparent; + border-color: #20a8d8; } + .btn-outline-primary:hover { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-outline-primary:focus, .btn-outline-primary.focus { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-outline-primary:active, .btn-outline-primary.active, + .open > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-outline-primary:active:hover, .btn-outline-primary:active:focus, .btn-outline-primary:active.focus, .btn-outline-primary.active:hover, .btn-outline-primary.active:focus, .btn-outline-primary.active.focus, + .open > .btn-outline-primary.dropdown-toggle:hover, + .open > .btn-outline-primary.dropdown-toggle:focus, + .open > .btn-outline-primary.dropdown-toggle.focus { + color: #fff; + background-color: #156d8c; + border-color: #105269; } + .btn-outline-primary.disabled:focus, .btn-outline-primary.disabled.focus, .btn-outline-primary:disabled:focus, .btn-outline-primary:disabled.focus { + border-color: #74cbea; } + .btn-outline-primary.disabled:hover, .btn-outline-primary:disabled:hover { + border-color: #74cbea; } + +.btn-outline-secondary { + color: #b0bec5; + background-image: none; + background-color: transparent; + border-color: #b0bec5; } + .btn-outline-secondary:hover { + color: #fff; + background-color: #b0bec5; + border-color: #b0bec5; } + .btn-outline-secondary:focus, .btn-outline-secondary.focus { + color: #fff; + background-color: #b0bec5; + border-color: #b0bec5; } + .btn-outline-secondary:active, .btn-outline-secondary.active, + .open > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #b0bec5; + border-color: #b0bec5; } + .btn-outline-secondary:active:hover, .btn-outline-secondary:active:focus, .btn-outline-secondary:active.focus, .btn-outline-secondary.active:hover, .btn-outline-secondary.active:focus, .btn-outline-secondary.active.focus, + .open > .btn-outline-secondary.dropdown-toggle:hover, + .open > .btn-outline-secondary.dropdown-toggle:focus, + .open > .btn-outline-secondary.dropdown-toggle.focus { + color: #fff; + background-color: #7e95a0; + border-color: #68818e; } + .btn-outline-secondary.disabled:focus, .btn-outline-secondary.disabled.focus, .btn-outline-secondary:disabled:focus, .btn-outline-secondary:disabled.focus { + border-color: #ebeef0; } + .btn-outline-secondary.disabled:hover, .btn-outline-secondary:disabled:hover { + border-color: #ebeef0; } + +.btn-outline-info { + color: #63c2de; + background-image: none; + background-color: transparent; + border-color: #63c2de; } + .btn-outline-info:hover { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-outline-info:focus, .btn-outline-info.focus { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-outline-info:active, .btn-outline-info.active, + .open > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-outline-info:active:hover, .btn-outline-info:active:focus, .btn-outline-info:active.focus, .btn-outline-info.active:hover, .btn-outline-info.active:focus, .btn-outline-info.active.focus, + .open > .btn-outline-info.dropdown-toggle:hover, + .open > .btn-outline-info.dropdown-toggle:focus, + .open > .btn-outline-info.dropdown-toggle.focus { + color: #fff; + background-color: #299fc1; + border-color: #2283a0; } + .btn-outline-info.disabled:focus, .btn-outline-info.disabled.focus, .btn-outline-info:disabled:focus, .btn-outline-info:disabled.focus { + border-color: #b7e3f0; } + .btn-outline-info.disabled:hover, .btn-outline-info:disabled:hover { + border-color: #b7e3f0; } + +.btn-outline-success { + color: #4dbd74; + background-image: none; + background-color: transparent; + border-color: #4dbd74; } + .btn-outline-success:hover { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-outline-success:focus, .btn-outline-success.focus { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-outline-success:active, .btn-outline-success.active, + .open > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-outline-success:active:hover, .btn-outline-success:active:focus, .btn-outline-success:active.focus, .btn-outline-success.active:hover, .btn-outline-success.active:focus, .btn-outline-success.active.focus, + .open > .btn-outline-success.dropdown-toggle:hover, + .open > .btn-outline-success.dropdown-toggle:focus, + .open > .btn-outline-success.dropdown-toggle.focus { + color: #fff; + background-color: #30834d; + border-color: #25653c; } + .btn-outline-success.disabled:focus, .btn-outline-success.disabled.focus, .btn-outline-success:disabled:focus, .btn-outline-success:disabled.focus { + border-color: #97d9ae; } + .btn-outline-success.disabled:hover, .btn-outline-success:disabled:hover { + border-color: #97d9ae; } + +.btn-outline-warning { + color: #f8cb00; + background-image: none; + background-color: transparent; + border-color: #f8cb00; } + .btn-outline-warning:hover { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-outline-warning:focus, .btn-outline-warning.focus { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-outline-warning:active, .btn-outline-warning.active, + .open > .btn-outline-warning.dropdown-toggle { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-outline-warning:active:hover, .btn-outline-warning:active:focus, .btn-outline-warning:active.focus, .btn-outline-warning.active:hover, .btn-outline-warning.active:focus, .btn-outline-warning.active.focus, + .open > .btn-outline-warning.dropdown-toggle:hover, + .open > .btn-outline-warning.dropdown-toggle:focus, + .open > .btn-outline-warning.dropdown-toggle.focus { + color: #fff; + background-color: #a18400; + border-color: #796300; } + .btn-outline-warning.disabled:focus, .btn-outline-warning.disabled.focus, .btn-outline-warning:disabled:focus, .btn-outline-warning:disabled.focus { + border-color: #ffe25f; } + .btn-outline-warning.disabled:hover, .btn-outline-warning:disabled:hover { + border-color: #ffe25f; } + +.btn-outline-danger { + color: #f86c6b; + background-image: none; + background-color: transparent; + border-color: #f86c6b; } + .btn-outline-danger:hover { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-outline-danger:focus, .btn-outline-danger.focus { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-outline-danger:active, .btn-outline-danger.active, + .open > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-outline-danger:active:hover, .btn-outline-danger:active:focus, .btn-outline-danger:active.focus, .btn-outline-danger.active:hover, .btn-outline-danger.active:focus, .btn-outline-danger.active.focus, + .open > .btn-outline-danger.dropdown-toggle:hover, + .open > .btn-outline-danger.dropdown-toggle:focus, + .open > .btn-outline-danger.dropdown-toggle.focus { + color: #fff; + background-color: #f41a18; + border-color: #d90c0a; } + .btn-outline-danger.disabled:focus, .btn-outline-danger.disabled.focus, .btn-outline-danger:disabled:focus, .btn-outline-danger:disabled.focus { + border-color: #fdcdcc; } + .btn-outline-danger.disabled:hover, .btn-outline-danger:disabled:hover { + border-color: #fdcdcc; } + +.btn-link { + font-weight: normal; + color: #20a8d8; + border-radius: 0; } + .btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled { + background-color: transparent; } + .btn-link, .btn-link:focus, .btn-link:active { + border-color: transparent; } + .btn-link:hover { + border-color: transparent; } + .btn-link:focus, .btn-link:hover { + color: #167495; + text-decoration: underline; + background-color: transparent; } + .btn-link:disabled:focus, .btn-link:disabled:hover { + color: #b0bec5; + text-decoration: none; } + +.btn-lg, .btn-group-lg > .btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + +.btn-block { + display: block; + width: 100%; } + +.btn-block + .btn-block { + margin-top: 0.5rem; } + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; } + +.btn .tag { + position: absolute; + top: 2px; + right: 6px; + font-size: 9px; } + +.fade { + opacity: 0; + transition: opacity .15s linear; } + .fade.in { + opacity: 1; } + +.collapse { + display: none; } + .collapse.in { + display: block; } + +tr.collapse.in { + display: table-row; } + +tbody.collapse.in { + display: table-row-group; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition-timing-function: ease; + transition-duration: .35s; + transition-property: height; } + +.dropup, +.dropdown { + position: relative; } + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.3em; + vertical-align: middle; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-left: 0.3em solid transparent; } + +.dropdown-toggle:focus { + outline: 0; } + +.dropup .dropdown-toggle::after { + border-top: 0; + border-bottom: 0.3em solid; } + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0 0; + margin: 0.125rem 0 0; + font-size: 0.875rem; + color: #263238; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #cfd8dc; } + +.dropdown-divider { + height: 1px; + margin: 0.5rem 0; + overflow: hidden; + background-color: #eceff1; } + +.dropdown-item { + display: block; + width: 100%; + padding: 3px 1.5rem; + clear: both; + font-weight: normal; + color: #263238; + text-align: inherit; + white-space: nowrap; + background: none; + border: 0; } + .dropdown-item:focus, .dropdown-item:hover { + color: #1c2429; + text-decoration: none; + background-color: #f5f5f5; } + .dropdown-item.active, .dropdown-item.active:focus, .dropdown-item.active:hover { + color: #fff; + text-decoration: none; + background-color: #20a8d8; + outline: 0; } + .dropdown-item.disabled, .dropdown-item.disabled:focus, .dropdown-item.disabled:hover { + color: #b0bec5; } + .dropdown-item.disabled:focus, .dropdown-item.disabled:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; } + +.open > .dropdown-menu { + display: block; } + +.open > a { + outline: 0; } + +.dropdown-menu-right { + right: 0; + left: auto; } + +.dropdown-menu-left { + right: auto; + left: 0; } + +.dropdown-header { + display: block; + padding: 0 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #b0bec5; + white-space: nowrap; } + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; } + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 0.3em solid; } + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 0.125rem; } + +.dropdown-item { + position: relative; + padding: 10px 20px; + border-bottom: 1px solid #cfd8dc; } + .dropdown-item:last-child { + border-bottom: 0; } + .dropdown-item i { + display: inline-block; + width: 20px; + margin-right: 10px; + margin-left: -10px; + color: #cfd8dc; + text-align: center; } + .dropdown-item .tag { + position: absolute; + right: 10px; + margin-top: 2px; } + +.dropdown-header { + padding: 8px 20px; + background: #eceff1; + border-bottom: 1px solid #cfd8dc; } + .dropdown-header .btn { + margin-top: -7px; + color: #b0bec5; } + .dropdown-header .btn:hover { + color: #263238; } + .dropdown-header .btn.pull-right { + margin-right: -20px; } + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + float: left; + margin-bottom: 0; } + .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, + .btn-group-vertical > .btn:focus, + .btn-group-vertical > .btn:active, + .btn-group-vertical > .btn.active { + z-index: 2; } + .btn-group > .btn:hover, + .btn-group-vertical > .btn:hover { + z-index: 2; } + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; } + +.btn-toolbar { + margin-left: -0.5rem; } + .btn-toolbar::after { + content: ""; + display: table; + clear: both; } + .btn-toolbar .btn-group, + .btn-toolbar .input-group { + float: left; } + .btn-toolbar > .btn, + .btn-toolbar > .btn-group, + .btn-toolbar > .input-group { + margin-left: 0.5rem; } + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; } + +.btn-group > .btn:first-child { + margin-left: 0; } + +.btn-group > .btn-group { + float: left; } + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; } + +.btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; } + .btn + .dropdown-toggle-split::after { + margin-left: 0; } + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 1.125rem; + padding-left: 1.125rem; } + +.btn .caret { + margin-left: 0; } + +.btn-lg .caret, .btn-group-lg > .btn .caret { + border-width: 0.3em 0.3em 0; + border-bottom-width: 0; } + +.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret { + border-width: 0 0.3em 0.3em; } + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; } + +.btn-group-vertical > .btn-group::after { + content: ""; + display: table; + clear: both; } + +.btn-group-vertical > .btn-group > .btn { + float: none; } + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; } + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; } + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } + +.input-group { + position: relative; + width: 100%; + display: table; + border-collapse: separate; } + .input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; } + .input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover { + z-index: 3; } + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; } + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; } + +.input-group-addon { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 0.875rem; + font-weight: normal; + line-height: 1.25; + color: #607d8b; + text-align: center; + background-color: #cfd8dc; + border: 1px solid rgba(0, 0, 0, 0.15); } + .input-group-addon.form-control-sm, + .input-group-sm > .input-group-addon, + .input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + .input-group-addon.form-control-lg, + .input-group-lg > .input-group-addon, + .input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + .input-group-addon input[type="radio"], + .input-group-addon input[type="checkbox"] { + margin-top: 0; } + +.input-group-addon:not(:last-child) { + border-right: 0; } + +.form-control + .input-group-addon:not(:first-child) { + border-left: 0; } + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; } + .input-group-btn > .btn { + position: relative; } + .input-group-btn > .btn + .btn { + margin-left: -1px; } + .input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover { + z-index: 3; } + .input-group-btn:not(:last-child) > .btn, + .input-group-btn:not(:last-child) > .btn-group { + margin-right: -1px; } + .input-group-btn:not(:first-child) > .btn, + .input-group-btn:not(:first-child) > .btn-group { + z-index: 2; + margin-left: -1px; } + .input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover, + .input-group-btn:not(:first-child) > .btn-group:focus, + .input-group-btn:not(:first-child) > .btn-group:active, + .input-group-btn:not(:first-child) > .btn-group:hover { + z-index: 3; } + +.input-group-addon, +.input-group-btn { + min-width: 40px; + white-space: nowrap; + vertical-align: middle; } + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; } + +.nav-link { + display: inline-block; } + .nav-link:focus, .nav-link:hover { + text-decoration: none; } + .nav-link.disabled { + color: #b0bec5; } + .nav-link.disabled, .nav-link.disabled:focus, .nav-link.disabled:hover { + color: #b0bec5; + cursor: not-allowed; + background-color: transparent; } + +.nav-inline .nav-item { + display: inline-block; } + +.nav-inline .nav-item + .nav-item, +.nav-inline .nav-link + .nav-link { + margin-left: 1rem; } + +.nav-tabs { + border-bottom: 1px solid #ddd; } + .nav-tabs::after { + content: ""; + display: table; + clear: both; } + .nav-tabs .nav-item { + float: left; + margin-bottom: -1px; } + .nav-tabs .nav-item + .nav-item { + margin-left: 0.2rem; } + .nav-tabs .nav-link { + display: block; + padding: 0.5em 1em; + border: 1px solid transparent; } + .nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { + border-color: #cfd8dc #cfd8dc #ddd; } + .nav-tabs .nav-link.disabled, .nav-tabs .nav-link.disabled:focus, .nav-tabs .nav-link.disabled:hover { + color: #b0bec5; + background-color: transparent; + border-color: transparent; } + .nav-tabs .nav-link.active, .nav-tabs .nav-link.active:focus, .nav-tabs .nav-link.active:hover, + .nav-tabs .nav-item.open .nav-link, + .nav-tabs .nav-item.open .nav-link:focus, + .nav-tabs .nav-item.open .nav-link:hover { + color: #607d8b; + background-color: #e4e5e6; + border-color: #ddd #ddd transparent; } + .nav-tabs .dropdown-menu { + margin-top: -1px; } + +.nav-pills::after { + content: ""; + display: table; + clear: both; } + +.nav-pills .nav-item { + float: left; } + .nav-pills .nav-item + .nav-item { + margin-left: 0.2rem; } + +.nav-pills .nav-link { + display: block; + padding: 0.5em 1em; } + +.nav-pills .nav-link.active, .nav-pills .nav-link.active:focus, .nav-pills .nav-link.active:hover, +.nav-pills .nav-item.open .nav-link, +.nav-pills .nav-item.open .nav-link:focus, +.nav-pills .nav-item.open .nav-link:hover { + color: #fff; + cursor: default; + background-color: #20a8d8; } + +.nav-stacked .nav-item { + display: block; + float: none; } + .nav-stacked .nav-item + .nav-item { + margin-top: 0.2rem; + margin-left: 0; } + +.tab-content > .tab-pane { + display: none; } + +.tab-content > .active { + display: block; } + +.navbar { + position: relative; + padding: 0.5rem 1rem; } + .navbar::after { + content: ""; + display: table; + clear: both; } + +.navbar-full { + z-index: 1000; } + +.navbar-fixed-top, body.navbar-fixed header.navbar, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; } + +.navbar-fixed-top, body.navbar-fixed header.navbar { + top: 0; } + +.navbar-fixed-bottom { + bottom: 0; } + +.navbar-sticky-top { + position: sticky; + top: 0; + z-index: 1030; + width: 100%; } + +.navbar-brand { + float: left; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; } + .navbar-brand:focus, .navbar-brand:hover { + text-decoration: none; } + +.navbar-divider { + float: left; + width: 1px; + padding-top: 0.425rem; + padding-bottom: 0.425rem; + margin-right: 1rem; + margin-left: 1rem; + overflow: hidden; } + .navbar-divider::before { + content: "\00a0"; } + +.navbar-text { + display: inline-block; + padding-top: .425rem; + padding-bottom: .425rem; } + +.navbar-toggler, .aside-toggle { + width: 2.5em; + height: 2em; + padding: 0.5rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background: transparent no-repeat center center; + background-size: 24px 24px; + border: 1px solid transparent; } + .navbar-toggler:focus, .aside-toggle:focus, .navbar-toggler:hover, .aside-toggle:hover { + text-decoration: none; } + +.navbar-toggleable-xs::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 575px) { + .navbar-toggleable-xs .navbar-brand { + display: block; + float: none; + margin-top: .5rem; + margin-right: 0; } + .navbar-toggleable-xs .navbar-nav { + margin-top: .5rem; + margin-bottom: .5rem; } + .navbar-toggleable-xs .navbar-nav .dropdown-menu { + position: static; + float: none; } } + +@media (min-width: 576px) { + .navbar-toggleable-xs { + display: block; } } + +.navbar-toggleable-sm::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 767px) { + .navbar-toggleable-sm .navbar-brand { + display: block; + float: none; + margin-top: .5rem; + margin-right: 0; } + .navbar-toggleable-sm .navbar-nav { + margin-top: .5rem; + margin-bottom: .5rem; } + .navbar-toggleable-sm .navbar-nav .dropdown-menu { + position: static; + float: none; } } + +@media (min-width: 768px) { + .navbar-toggleable-sm { + display: block; } } + +.navbar-toggleable-md::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 991px) { + .navbar-toggleable-md .navbar-brand { + display: block; + float: none; + margin-top: .5rem; + margin-right: 0; } + .navbar-toggleable-md .navbar-nav { + margin-top: .5rem; + margin-bottom: .5rem; } + .navbar-toggleable-md .navbar-nav .dropdown-menu { + position: static; + float: none; } } + +@media (min-width: 992px) { + .navbar-toggleable-md { + display: block; } } + +.navbar-toggleable-lg::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 1199px) { + .navbar-toggleable-lg .navbar-brand { + display: block; + float: none; + margin-top: .5rem; + margin-right: 0; } + .navbar-toggleable-lg .navbar-nav { + margin-top: .5rem; + margin-bottom: .5rem; } + .navbar-toggleable-lg .navbar-nav .dropdown-menu { + position: static; + float: none; } } + +@media (min-width: 1200px) { + .navbar-toggleable-lg { + display: block; } } + +.navbar-toggleable-xl { + display: block; } + .navbar-toggleable-xl::after { + content: ""; + display: table; + clear: both; } + .navbar-toggleable-xl .navbar-brand { + display: block; + float: none; + margin-top: .5rem; + margin-right: 0; } + .navbar-toggleable-xl .navbar-nav { + margin-top: .5rem; + margin-bottom: .5rem; } + .navbar-toggleable-xl .navbar-nav .dropdown-menu { + position: static; + float: none; } + +.navbar-nav .nav-item { + float: left; } + +.navbar-nav .nav-link { + display: block; + padding-top: .425rem; + padding-bottom: .425rem; } + .navbar-nav .nav-link + .nav-link { + margin-left: 1rem; } + +.navbar-nav .nav-item + .nav-item { + margin-left: 1rem; } + +.navbar-light .navbar-brand, +.navbar-light .navbar-toggler, +.navbar-light .aside-toggle { + color: rgba(0, 0, 0, 0.9); } + .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover, + .navbar-light .navbar-toggler:focus, + .navbar-light .aside-toggle:focus, + .navbar-light .navbar-toggler:hover, + .navbar-light .aside-toggle:hover { + color: rgba(0, 0, 0, 0.9); } + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); } + .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.7); } + +.navbar-light .navbar-nav .open > .nav-link, .navbar-light .navbar-nav .open > .nav-link:focus, .navbar-light .navbar-nav .open > .nav-link:hover, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .active > .nav-link:focus, +.navbar-light .navbar-nav .active > .nav-link:hover, +.navbar-light .navbar-nav .nav-link.open, +.navbar-light .navbar-nav .nav-link.open:focus, +.navbar-light .navbar-nav .nav-link.open:hover, +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .nav-link.active:focus, +.navbar-light .navbar-nav .nav-link.active:hover { + color: rgba(0, 0, 0, 0.9); } + +.navbar-light .navbar-toggler, .navbar-light .aside-toggle { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); + border-color: rgba(0, 0, 0, 0.1); } + +.navbar-light .navbar-divider { + background-color: rgba(0, 0, 0, 0.075); } + +.navbar-dark .navbar-brand, +.navbar-dark .navbar-toggler, +.navbar-dark .aside-toggle { + color: white; } + .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover, + .navbar-dark .navbar-toggler:focus, + .navbar-dark .aside-toggle:focus, + .navbar-dark .navbar-toggler:hover, + .navbar-dark .aside-toggle:hover { + color: white; } + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); } + .navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, 0.75); } + +.navbar-dark .navbar-nav .open > .nav-link, .navbar-dark .navbar-nav .open > .nav-link:focus, .navbar-dark .navbar-nav .open > .nav-link:hover, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link:focus, +.navbar-dark .navbar-nav .active > .nav-link:hover, +.navbar-dark .navbar-nav .nav-link.open, +.navbar-dark .navbar-nav .nav-link.open:focus, +.navbar-dark .navbar-nav .nav-link.open:hover, +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .nav-link.active:focus, +.navbar-dark .navbar-nav .nav-link.active:hover { + color: white; } + +.navbar-dark .navbar-toggler, .navbar-dark .aside-toggle { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E"); + border-color: rgba(255, 255, 255, 0.1); } + +.navbar-dark .navbar-divider { + background-color: rgba(255, 255, 255, 0.075); } + +.navbar-toggleable-xs::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 575px) { + .navbar-toggleable-xs .navbar-nav .nav-item { + float: none; + margin-left: 0; } } + +@media (min-width: 576px) { + .navbar-toggleable-xs { + display: block !important; } } + +.navbar-toggleable-sm::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 767px) { + .navbar-toggleable-sm .navbar-nav .nav-item { + float: none; + margin-left: 0; } } + +@media (min-width: 768px) { + .navbar-toggleable-sm { + display: block !important; } } + +.navbar-toggleable-md::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 991px) { + .navbar-toggleable-md .navbar-nav .nav-item { + float: none; + margin-left: 0; } } + +@media (min-width: 992px) { + .navbar-toggleable-md { + display: block !important; } } + +header.navbar { + position: relative; + height: 55px; + padding: 0; + line-height: 55px; + background-color: #fff; + border-bottom: 1px solid #cfd8dc; } + header.navbar .container-fluid { + padding: 0; } + header.navbar .nav-item { + position: relative; + min-width: 50px; + margin: 0 !important; + text-align: center; } + header.navbar .nav-item .nav-link i { + vertical-align: middle; } + header.navbar .nav-item .nav-link .tag { + position: absolute; + top: 9px; + right: 7px; } + header.navbar .img-avatar { + height: 35px; + margin: 0 10px; } + header.navbar .dropdown-menu { + padding-bottom: 0; + line-height: 1.5; } + header.navbar .dropdown-item { + min-width: 180px; } + header.navbar a.navbar-brand { + display: inline-block; + width: 155px; + height: 55px; + padding: 0.5rem 1rem; + background-color: #fff; + background-image: url("../img/logo.png"); + background-repeat: no-repeat; + background-position: center center; + background-size: 70px auto; + border-bottom: 1px solid #cfd8dc; } + +header.navbar .navbar-brand { + margin-right: 0; } + +.navbar-toggler, .aside-toggle { + padding: 0 .75em; + line-height: 51px; } + +.aside-toggle { + padding: 0 .75em; + line-height: 51px; } + +header.navbar .navbar-nav .nav-link { + padding-top: 0; + padding-bottom: 0; } + +.navbar-brand { + color: rgba(0, 0, 0, 0.8); } + .navbar-brand:focus, .navbar-brand:hover { + color: rgba(0, 0, 0, 0.8); } + +.navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.3); } + .navbar-nav .nav-link:focus, .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.6); } + +.navbar-nav .open > .nav-link, .navbar-nav .open > .nav-link:focus, .navbar-nav .open > .nav-link:hover, +.navbar-nav .active > .nav-link, +.navbar-nav .active > .nav-link:focus, +.navbar-nav .active > .nav-link:hover, +.navbar-nav .nav-link.open, +.navbar-nav .nav-link.open:focus, +.navbar-nav .nav-link.open:hover, +.navbar-nav .nav-link.active, +.navbar-nav .nav-link.active:focus, +.navbar-nav .nav-link.active:hover { + color: rgba(0, 0, 0, 0.8); } + +.navbar-divider { + background-color: rgba(0, 0, 0, 0.075); } + +.card { + position: relative; + display: block; + margin-bottom: 0.75rem; + background-color: #fff; + border: 1px solid #cfd8dc; } + +.card-block { + padding: 1.25rem; } + .card-block::after { + content: ""; + display: table; + clear: both; } + +.card-title { + margin-bottom: 0.75rem; } + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; } + +.card-text:last-child { + margin-bottom: 0; } + +.card-link:hover { + text-decoration: none; } + +.card-link + .card-link { + margin-left: 1.25rem; } + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: #eceff1; + border-bottom: 1px solid #cfd8dc; } + .card-header::after { + content: ""; + display: table; + clear: both; } + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: #eceff1; + border-top: 1px solid #cfd8dc; } + .card-footer::after { + content: ""; + display: table; + clear: both; } + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; } + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; } + +.card-primary { + background-color: #20a8d8; + border-color: #20a8d8; } + .card-primary .card-header, + .card-primary .card-footer { + background-color: transparent; } + +.card-success { + background-color: #4dbd74; + border-color: #4dbd74; } + .card-success .card-header, + .card-success .card-footer { + background-color: transparent; } + +.card-info { + background-color: #63c2de; + border-color: #63c2de; } + .card-info .card-header, + .card-info .card-footer { + background-color: transparent; } + +.card-warning { + background-color: #f8cb00; + border-color: #f8cb00; } + .card-warning .card-header, + .card-warning .card-footer { + background-color: transparent; } + +.card-danger { + background-color: #f86c6b; + border-color: #f86c6b; } + .card-danger .card-header, + .card-danger .card-footer { + background-color: transparent; } + +.card-outline-primary { + background-color: transparent; + border-color: #20a8d8; } + +.card-outline-secondary { + background-color: transparent; + border-color: #b0bec5; } + +.card-outline-info { + background-color: transparent; + border-color: #63c2de; } + +.card-outline-success { + background-color: transparent; + border-color: #4dbd74; } + +.card-outline-warning { + background-color: transparent; + border-color: #f8cb00; } + +.card-outline-danger { + background-color: transparent; + border-color: #f86c6b; } + +.card-inverse .card-header, +.card-inverse .card-footer { + border-color: rgba(255, 255, 255, 0.2); } + +.card-inverse .card-header, +.card-inverse .card-footer, +.card-inverse .card-title, +.card-inverse .card-blockquote { + color: #fff; } + +.card-inverse .card-link, +.card-inverse .card-text, +.card-inverse .card-subtitle, +.card-inverse .card-blockquote .blockquote-footer { + color: rgba(255, 255, 255, 0.65); } + +.card-inverse .card-link:focus, .card-inverse .card-link:hover { + color: #fff; } + +.card-blockquote { + padding: 0; + margin-bottom: 0; + border-left: 0; } + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; } + +@media (min-width: 576px) { + .card-deck { + display: table; + width: 100%; + margin-bottom: 0.75rem; + table-layout: fixed; + border-spacing: 1.25rem 0; } + .card-deck .card { + display: table-cell; + margin-bottom: 0; + vertical-align: top; } + .card-deck-wrapper { + margin-right: -1.25rem; + margin-left: -1.25rem; } } + +@media (min-width: 576px) { + .card-group { + display: table; + width: 100%; + table-layout: fixed; } + .card-group .card { + display: table-cell; + vertical-align: top; } + .card-group .card + .card { + margin-left: 0; + border-left: 0; } } + +@media (min-width: 576px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; } + .card-columns .card { + display: inline-block; + width: 100%; } } + +.card { + margin-bottom: 1.5rem; } + +.card-header i.icon-bg { + display: inline-block; + padding: 0.75rem 1.25rem !important; + margin-top: -0.75rem; + margin-right: 1.25rem; + margin-bottom: -0.75rem; + margin-left: -1.25rem; + line-height: inherit; + color: #263238; + vertical-align: bottom; + background: transparent; + border-right: 1px solid #cfd8dc; } + +.card-header ul.nav.nav-tabs { + margin-top: -0.75rem; + margin-bottom: -0.75rem; + border-bottom: 0; } + .card-header ul.nav.nav-tabs li.nav-item { + border-top: 0; } + .card-header ul.nav.nav-tabs li.nav-item a.nav-link { + padding: 0.75rem 0.625rem; + color: #b0bec5; + border-top: 0; } + .card-header ul.nav.nav-tabs li.nav-item a.nav-link.active { + color: #263238; + background: #fff; } + +.card-header.card-header-inverse { + color: #fff; } + +.card-header.card-header-primary { + margin: -1px -1px 0; + background: #20a8d8; + border-bottom: 1px solid #20a8d8; } + +.card-header.card-header-secondary { + margin: -1px -1px 0; + background: #cfd8dc; + border-bottom: 1px solid #cfd8dc; } + +.card-header.card-header-success { + margin: -1px -1px 0; + background: #4dbd74; + border-bottom: 1px solid #4dbd74; } + +.card-header.card-header-info { + margin: -1px -1px 0; + background: #63c2de; + border-bottom: 1px solid #63c2de; } + +.card-header.card-header-warning { + margin: -1px -1px 0; + background: #f8cb00; + border-bottom: 1px solid #f8cb00; } + +.card-header.card-header-danger { + margin: -1px -1px 0; + background: #f86c6b; + border-bottom: 1px solid #f86c6b; } + +.card-header .btn { + margin-top: -0.5rem; } + +.card-header .btn-sm, .card-header .btn-group-sm > .btn { + margin-top: -0.25rem; } + +.card-header .btn-lg, .card-header .btn-group-lg > .btn { + margin-top: -0.75rem; } + +.card-footer ul { + display: table; + width: 100%; + padding: 0; + margin: 0; + table-layout: fixed; } + .card-footer ul li { + display: table-cell; + padding: 0 1.25rem; + text-align: center; } + .card-footer ul li progress { + margin-top: 0.75rem; + margin-bottom: 0; } + +.card-primary { + background-color: #20a8d8; } + .card-primary .card-header { + border-color: #1d97c2; } + .card-primary .card-header, .card-primary .card-footer { + background-color: #1d97c2; } + +.card-secondary { + background-color: #cfd8dc; } + .card-secondary .card-header { + border-color: #c0ccd1; } + .card-secondary .card-header, .card-secondary .card-footer { + background-color: #c0ccd1; } + +.card-success { + background-color: #4dbd74; } + .card-success .card-header { + border-color: #41af67; } + .card-success .card-header, .card-success .card-footer { + background-color: #41af67; } + +.card-info { + background-color: #63c2de; } + .card-info .card-header { + border-color: #4ebada; } + .card-info .card-header, .card-info .card-footer { + background-color: #4ebada; } + +.card-warning { + background-color: #f8cb00; } + .card-warning .card-header { + border-color: #dfb600; } + .card-warning .card-header, .card-warning .card-footer { + background-color: #dfb600; } + +.card-danger { + background-color: #f86c6b; } + .card-danger .card-header { + border-color: #f75453; } + .card-danger .card-header, .card-danger .card-footer { + background-color: #f75453; } + +.card-inverse { + color: #fff; } + .card-inverse .text-muted { + color: rgba(255, 255, 255, 0.6) !important; } + .card-inverse .progress[value] { + background-color: rgba(255, 255, 255, 0.2) !important; } + .card-inverse .progress[value]::-webkit-progress-bar { + background-color: rgba(255, 255, 255, 0.2) !important; } + .card-inverse base::-moz-progress-bar, + .card-inverse .progress[value] { + background-color: rgba(255, 255, 255, 0.2) !important; } + .card-inverse .progress[value]::-webkit-progress-value { + background-color: #fff !important; } + .card-inverse .progress[value]::-moz-progress-bar { + background-color: #fff !important; } + .card-inverse .progress[value]::-ms-fill { + background-color: #fff !important; } + @media screen and (min-width: 0\0) { + .card-inverse .progress .progress-bar { + background-color: #fff !important; } } + +[class*="card-outline-"] .card-block { + background: #fff !important; } + +[class*="card-outline-"].card-outline-top { + border-top-width: 2px; + border-right-color: #cfd8dc; + border-bottom-color: #cfd8dc; + border-left-color: #cfd8dc; } + +.card-accent-primary { + border-top-width: 2px; + border-top-color: #20a8d8; } + +.card-accent-secondary { + border-top-width: 2px; + border-top-color: #b0bec5; } + +.card-accent-info { + border-top-width: 2px; + border-top-color: #63c2de; } + +.card-accent-success { + border-top-width: 2px; + border-top-color: #4dbd74; } + +.card-accent-warning { + border-top-width: 2px; + border-top-color: #f8cb00; } + +.card-accent-danger { + border-top-width: 2px; + border-top-color: #f86c6b; } + +.card-header > i { + margin-right: 0.5rem; } + +.card-header .card-actions { + position: absolute; + top: 0; + right: 0; } + .card-header .card-actions a, .card-header .card-actions button { + display: block; + float: left; + width: 50px; + padding: 0.75rem 0; + margin: 0 !important; + color: #263238; + text-align: center; + background: transparent; + border: 0; + border-left: 1px solid #cfd8dc; + box-shadow: 0; } + .card-header .card-actions a:hover, .card-header .card-actions button:hover { + text-decoration: none; } + .card-header .card-actions a [class^="icon-"], .card-header .card-actions a [class*=" icon-"], .card-header .card-actions button [class^="icon-"], .card-header .card-actions button [class*=" icon-"] { + display: inline-block; + vertical-align: middle; } + .card-header .card-actions a i, .card-header .card-actions button i { + display: inline-block; + transition: .4s; } + .card-header .card-actions a i.r180, .card-header .card-actions button i.r180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + .card-header .card-actions .input-group { + width: 230px; + margin: 6px; } + .card-header .card-actions .input-group .input-group-addon { + background: #fff; } + .card-header .card-actions .input-group input { + border-left: 0; } + +.card-full { + margin-top: -1rem; + margin-right: -15px; + margin-left: -15px; + border: 0; + border-bottom: 1px solid #cfd8dc; } + +@media (min-width: 576px) { + .card-columns { + -moz-column-count: 3; + -webkit-column-count: 3; + column-gap: 1.25rem; + column-count: 3; } + .card-columns .card { + display: inline-block; + width: 100%; } + .card-columns.col-2 { + -moz-column-count: 2; + -webkit-column-count: 2; + column-count: 2; } } + +.card-group { + margin-bottom: 1.5rem; } + +.breadcrumb { + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #fff; } + .breadcrumb::after { + content: ""; + display: table; + clear: both; } + +.breadcrumb-item { + float: left; } + .breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #b0bec5; + content: "/"; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; } + .breadcrumb-item.active { + color: #b0bec5; } + +.breadcrumb { + position: relative; + margin-bottom: 1.5rem; + border-bottom: 1px solid #cfd8dc; } + +.pagination { + display: inline-block; + padding-left: 0; + margin-top: 1rem; + margin-bottom: 1rem; } + +.page-item, .pagination-datatables li, .pagination li { + display: inline; } + .page-item:first-child .page-link, .pagination-datatables li:first-child .page-link, .pagination li:first-child .page-link, .page-item:first-child .pagination-datatables li a, .pagination-datatables li .page-item:first-child a, .pagination-datatables li:first-child a, .page-item:first-child .pagination li a, .pagination li .page-item:first-child a, .pagination li:first-child a { + margin-left: 0; } + .page-item.active .page-link, .pagination-datatables li.active .page-link, .pagination li.active .page-link, .page-item.active .pagination-datatables li a, .pagination-datatables li .page-item.active a, .pagination-datatables li.active a, .page-item.active .pagination li a, .pagination li .page-item.active a, .pagination li.active a, .page-item.active .page-link:focus, .pagination-datatables li.active .page-link:focus, .pagination li.active .page-link:focus, .page-item.active .pagination-datatables li a:focus, .pagination-datatables li .page-item.active a:focus, .pagination-datatables li.active a:focus, .page-item.active .pagination li a:focus, .pagination li .page-item.active a:focus, .pagination li.active a:focus, .page-item.active .page-link:hover, .pagination-datatables li.active .page-link:hover, .pagination li.active .page-link:hover, .page-item.active .pagination-datatables li a:hover, .pagination-datatables li .page-item.active a:hover, .pagination-datatables li.active a:hover, .page-item.active .pagination li a:hover, .pagination li .page-item.active a:hover, .pagination li.active a:hover { + z-index: 2; + color: #fff; + cursor: default; + background-color: #20a8d8; + border-color: #20a8d8; } + .page-item.disabled .page-link, .pagination-datatables li.disabled .page-link, .pagination li.disabled .page-link, .page-item.disabled .pagination-datatables li a, .pagination-datatables li .page-item.disabled a, .pagination-datatables li.disabled a, .page-item.disabled .pagination li a, .pagination li .page-item.disabled a, .pagination li.disabled a, .page-item.disabled .page-link:focus, .pagination-datatables li.disabled .page-link:focus, .pagination li.disabled .page-link:focus, .page-item.disabled .pagination-datatables li a:focus, .pagination-datatables li .page-item.disabled a:focus, .pagination-datatables li.disabled a:focus, .page-item.disabled .pagination li a:focus, .pagination li .page-item.disabled a:focus, .pagination li.disabled a:focus, .page-item.disabled .page-link:hover, .pagination-datatables li.disabled .page-link:hover, .pagination li.disabled .page-link:hover, .page-item.disabled .pagination-datatables li a:hover, .pagination-datatables li .page-item.disabled a:hover, .pagination-datatables li.disabled a:hover, .page-item.disabled .pagination li a:hover, .pagination li .page-item.disabled a:hover, .pagination li.disabled a:hover { + color: #b0bec5; + pointer-events: none; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; } + +.page-link, .pagination-datatables li a, .pagination li a { + position: relative; + float: left; + padding: 0.5rem 0.75rem; + margin-left: -1px; + color: #20a8d8; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; } + .page-link:focus, .pagination-datatables li a:focus, .pagination li a:focus, .page-link:hover, .pagination-datatables li a:hover, .pagination li a:hover { + color: #167495; + background-color: #cfd8dc; + border-color: #ddd; } + +.pagination-lg .page-link, .pagination-lg .pagination-datatables li a, .pagination-datatables li .pagination-lg a, .pagination-lg .pagination li a, .pagination li .pagination-lg a { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +.pagination-sm .page-link, .pagination-sm .pagination-datatables li a, .pagination-datatables li .pagination-sm a, .pagination-sm .pagination li a, .pagination li .pagination-sm a { + padding: 0.275rem 0.75rem; + font-size: 0.875rem; } + +.tag { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; } + .tag:empty { + display: none; } + +.btn .tag { + position: relative; + top: -1px; } + +a.tag:focus, a.tag:hover { + color: #fff; + text-decoration: none; + cursor: pointer; } + +.tag-pill { + padding-right: 0.6em; + padding-left: 0.6em; } + +.tag-default { + background-color: #b0bec5; } + .tag-default[href]:focus, .tag-default[href]:hover { + background-color: #93a6af; } + +.tag-primary { + background-color: #20a8d8; } + .tag-primary[href]:focus, .tag-primary[href]:hover { + background-color: #1985ac; } + +.tag-success { + background-color: #4dbd74; } + .tag-success[href]:focus, .tag-success[href]:hover { + background-color: #3a9d5d; } + +.tag-info { + background-color: #63c2de; } + .tag-info[href]:focus, .tag-info[href]:hover { + background-color: #39b2d5; } + +.tag-warning { + background-color: #f8cb00; } + .tag-warning[href]:focus, .tag-warning[href]:hover { + background-color: #c5a100; } + +.tag-danger { + background-color: #f86c6b; } + .tag-danger[href]:focus, .tag-danger[href]:hover { + background-color: #f63c3a; } + +.tag-pill { + border-radius: 10rem; } + +.alert { + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; } + +.alert-heading { + color: inherit; } + +.alert-link { + font-weight: bold; } + +.alert-dismissible { + padding-right: 2.5rem; } + .alert-dismissible .close { + position: relative; + top: -.125rem; + right: -1.25rem; + color: inherit; } + +.alert-success { + background-color: #dff0d8; + border-color: #d0e9c6; + color: #3c763d; } + .alert-success hr { + border-top-color: #c1e2b3; } + .alert-success .alert-link { + color: #2b542c; } + +.alert-info { + background-color: #d9edf7; + border-color: #bcdff1; + color: #31708f; } + .alert-info hr { + border-top-color: #a6d5ec; } + .alert-info .alert-link { + color: #245269; } + +.alert-warning { + background-color: #fcf8e3; + border-color: #faf2cc; + color: #8a6d3b; } + .alert-warning hr { + border-top-color: #f7ecb5; } + .alert-warning .alert-link { + color: #66512c; } + +.alert-danger { + background-color: #f2dede; + border-color: #ebcccc; + color: #a94442; } + .alert-danger hr { + border-top-color: #e4b9b9; } + .alert-danger .alert-link { + color: #843534; } + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; } + to { + background-position: 0 0; } } + +.progress { + display: block; + width: 100%; + height: 1rem; + margin-bottom: 1rem; } + +.progress[value] { + background-color: #eceff1; + border: 0; + appearance: none; } + +.progress[value]::-ms-fill { + background-color: #0074d9; + border: 0; } + +.progress[value]::-moz-progress-bar { + background-color: #0074d9; } + +.progress[value]::-webkit-progress-value { + background-color: #0074d9; } + +.progress[value]::-webkit-progress-bar { + background-color: #eceff1; } + +base::-moz-progress-bar, +.progress[value] { + background-color: #eceff1; } + +@media screen and (min-width: 0\0) { + .progress { + background-color: #eceff1; } + .progress-bar { + display: inline-block; + height: 1rem; + text-indent: -999rem; + background-color: #0074d9; } } + +.progress-striped[value]::-webkit-progress-value { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +.progress-striped[value]::-moz-progress-bar { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +.progress-striped[value]::-ms-fill { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +@media screen and (min-width: 0\0) { + .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } } + +.progress-animated[value]::-webkit-progress-value { + animation: progress-bar-stripes 2s linear infinite; } + +.progress-animated[value]::-moz-progress-bar { + animation: progress-bar-stripes 2s linear infinite; } + +@media screen and (min-width: 0\0) { + .progress-animated .progress-bar-striped { + animation: progress-bar-stripes 2s linear infinite; } } + +.progress-success[value]::-webkit-progress-value { + background-color: #4dbd74; } + +.progress-success[value]::-moz-progress-bar { + background-color: #4dbd74; } + +.progress-success[value]::-ms-fill { + background-color: #4dbd74; } + +@media screen and (min-width: 0\0) { + .progress-success .progress-bar { + background-color: #4dbd74; } } + +.progress-info[value]::-webkit-progress-value { + background-color: #63c2de; } + +.progress-info[value]::-moz-progress-bar { + background-color: #63c2de; } + +.progress-info[value]::-ms-fill { + background-color: #63c2de; } + +@media screen and (min-width: 0\0) { + .progress-info .progress-bar { + background-color: #63c2de; } } + +.progress-warning[value]::-webkit-progress-value { + background-color: #f8cb00; } + +.progress-warning[value]::-moz-progress-bar { + background-color: #f8cb00; } + +.progress-warning[value]::-ms-fill { + background-color: #f8cb00; } + +@media screen and (min-width: 0\0) { + .progress-warning .progress-bar { + background-color: #f8cb00; } } + +.progress-danger[value]::-webkit-progress-value { + background-color: #f86c6b; } + +.progress-danger[value]::-moz-progress-bar { + background-color: #f86c6b; } + +.progress-danger[value]::-ms-fill { + background-color: #f86c6b; } + +@media screen and (min-width: 0\0) { + .progress-danger .progress-bar { + background-color: #f86c6b; } } + +.progress.progress-sm { + height: 8px; } + +.progress.progress-xs { + height: 4px; } + +.media, +.media-body { + overflow: hidden; } + +.media-body { + width: 10000px; } + +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; } + +.media-middle { + vertical-align: middle; } + +.media-bottom { + vertical-align: bottom; } + +.media-object { + display: block; } + .media-object.img-thumbnail { + max-width: none; } + +.media-right { + padding-left: 10px; } + +.media-left { + padding-right: 10px; } + +.media-heading { + margin-top: 0; + margin-bottom: 5px; } + +.media-list { + padding-left: 0; + list-style: none; } + +.list-group { + padding-left: 0; + margin-bottom: 0; } + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; } + .list-group-item:last-child { + margin-bottom: 0; } + .list-group-item.disabled, .list-group-item.disabled:focus, .list-group-item.disabled:hover { + color: #b0bec5; + cursor: not-allowed; + background-color: #cfd8dc; } + .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading { + color: inherit; } + .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text { + color: #b0bec5; } + .list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover { + z-index: 2; + color: #fff; + text-decoration: none; + background-color: #20a8d8; + border-color: #20a8d8; } + .list-group-item.active .list-group-item-heading, + .list-group-item.active .list-group-item-heading > small, + .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading, + .list-group-item.active:focus .list-group-item-heading > small, + .list-group-item.active:focus .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading, + .list-group-item.active:hover .list-group-item-heading > small, + .list-group-item.active:hover .list-group-item-heading > .small { + color: inherit; } + .list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text { + color: #ccecf8; } + +.list-group-flush .list-group-item { + border-right: 0; + border-left: 0; + border-radius: 0; } + +.list-group-item-action { + width: 100%; + color: #555; + text-align: inherit; } + .list-group-item-action .list-group-item-heading { + color: #333; } + .list-group-item-action:focus, .list-group-item-action:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5; } + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; } + +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; } + a.list-group-item-success .list-group-item-heading, + button.list-group-item-success .list-group-item-heading { + color: inherit; } + a.list-group-item-success:focus, a.list-group-item-success:hover, + button.list-group-item-success:focus, + button.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6; } + a.list-group-item-success.active, a.list-group-item-success.active:focus, a.list-group-item-success.active:hover, + button.list-group-item-success.active, + button.list-group-item-success.active:focus, + button.list-group-item-success.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; } + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; } + +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; } + a.list-group-item-info .list-group-item-heading, + button.list-group-item-info .list-group-item-heading { + color: inherit; } + a.list-group-item-info:focus, a.list-group-item-info:hover, + button.list-group-item-info:focus, + button.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3; } + a.list-group-item-info.active, a.list-group-item-info.active:focus, a.list-group-item-info.active:hover, + button.list-group-item-info.active, + button.list-group-item-info.active:focus, + button.list-group-item-info.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f; } + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; } + +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; } + a.list-group-item-warning .list-group-item-heading, + button.list-group-item-warning .list-group-item-heading { + color: inherit; } + a.list-group-item-warning:focus, a.list-group-item-warning:hover, + button.list-group-item-warning:focus, + button.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc; } + a.list-group-item-warning.active, a.list-group-item-warning.active:focus, a.list-group-item-warning.active:hover, + button.list-group-item-warning.active, + button.list-group-item-warning.active:focus, + button.list-group-item-warning.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; } + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; } + +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; } + a.list-group-item-danger .list-group-item-heading, + button.list-group-item-danger .list-group-item-heading { + color: inherit; } + a.list-group-item-danger:focus, a.list-group-item-danger:hover, + button.list-group-item-danger:focus, + button.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc; } + a.list-group-item-danger.active, a.list-group-item-danger.active:focus, a.list-group-item-danger.active:hover, + button.list-group-item-danger.active, + button.list-group-item-danger.active:focus, + button.list-group-item-danger.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442; } + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; } + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; } + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; } + .embed-responsive .embed-responsive-item, + .embed-responsive iframe, + .embed-responsive embed, + .embed-responsive object, + .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; } + +.embed-responsive-21by9 { + padding-bottom: 42.85714%; } + +.embed-responsive-16by9 { + padding-bottom: 56.25%; } + +.embed-responsive-4by3 { + padding-bottom: 75%; } + +.embed-responsive-1by1 { + padding-bottom: 100%; } + +.close { + float: right; + font-size: 1.3125rem; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .2; } + .close:focus, .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .5; } + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; } + +.modal-open { + overflow: hidden; } + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; } + .modal.fade .modal-dialog { + transition: transform .3s ease-out; + transform: translate(0, -25%); } + .modal.in .modal-dialog { + transform: translate(0, 0); } + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; } + +.modal-content { + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + outline: 0; } + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.in { + opacity: 0.5; } + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; } + .modal-header::after { + content: ""; + display: table; + clear: both; } + +.modal-header .close { + margin-top: -2px; } + +.modal-title { + margin: 0; + line-height: 1.5; } + +.modal-body { + position: relative; + padding: 15px; } + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; } + .modal-footer::after { + content: ""; + display: table; + clear: both; } + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; } + +@media (min-width: 576px) { + .modal-dialog { + max-width: 600px; + margin: 30px auto; } + .modal-sm { + max-width: 300px; } } + +@media (min-width: 992px) { + .modal-lg { + max-width: 900px; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; } + .tooltip.in { + opacity: 0.9; } + .tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom { + padding: 5px 0; + margin-top: -3px; } + .tooltip.tooltip-top .tooltip-inner::before, .tooltip.bs-tether-element-attached-bottom .tooltip-inner::before { + bottom: 0; + left: 50%; + margin-left: -5px; + content: ""; + border-width: 5px 5px 0; + border-top-color: #000; } + .tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left { + padding: 0 5px; + margin-left: 3px; } + .tooltip.tooltip-right .tooltip-inner::before, .tooltip.bs-tether-element-attached-left .tooltip-inner::before { + top: 50%; + left: 0; + margin-top: -5px; + content: ""; + border-width: 5px 5px 5px 0; + border-right-color: #000; } + .tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top { + padding: 5px 0; + margin-top: 3px; } + .tooltip.tooltip-bottom .tooltip-inner::before, .tooltip.bs-tether-element-attached-top .tooltip-inner::before { + top: 0; + left: 50%; + margin-left: -5px; + content: ""; + border-width: 0 5px 5px; + border-bottom-color: #000; } + .tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right { + padding: 0 5px; + margin-left: -3px; } + .tooltip.tooltip-left .tooltip-inner::before, .tooltip.bs-tether-element-attached-right .tooltip-inner::before { + top: 50%; + right: 0; + margin-top: -5px; + content: ""; + border-width: 5px 0 5px 5px; + border-left-color: #000; } + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; } + .tooltip-inner::before { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + padding: 1px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); } + .popover.popover-top, .popover.bs-tether-element-attached-bottom { + margin-top: -10px; } + .popover.popover-top::before, .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::before, .popover.bs-tether-element-attached-bottom::after { + left: 50%; + border-bottom-width: 0; } + .popover.popover-top::before, .popover.bs-tether-element-attached-bottom::before { + bottom: -11px; + margin-left: -11px; + border-top-color: rgba(0, 0, 0, 0.25); } + .popover.popover-top::after, .popover.bs-tether-element-attached-bottom::after { + bottom: -10px; + margin-left: -10px; + border-top-color: #fff; } + .popover.popover-right, .popover.bs-tether-element-attached-left { + margin-left: 10px; } + .popover.popover-right::before, .popover.popover-right::after, .popover.bs-tether-element-attached-left::before, .popover.bs-tether-element-attached-left::after { + top: 50%; + border-left-width: 0; } + .popover.popover-right::before, .popover.bs-tether-element-attached-left::before { + left: -11px; + margin-top: -11px; + border-right-color: rgba(0, 0, 0, 0.25); } + .popover.popover-right::after, .popover.bs-tether-element-attached-left::after { + left: -10px; + margin-top: -10px; + border-right-color: #fff; } + .popover.popover-bottom, .popover.bs-tether-element-attached-top { + margin-top: 10px; } + .popover.popover-bottom::before, .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::before, .popover.bs-tether-element-attached-top::after { + left: 50%; + border-top-width: 0; } + .popover.popover-bottom::before, .popover.bs-tether-element-attached-top::before { + top: -11px; + margin-left: -11px; + border-bottom-color: rgba(0, 0, 0, 0.25); } + .popover.popover-bottom::after, .popover.bs-tether-element-attached-top::after { + top: -10px; + margin-left: -10px; + border-bottom-color: #f7f7f7; } + .popover.popover-bottom .popover-title::before, .popover.bs-tether-element-attached-top .popover-title::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 20px; + margin-left: -10px; + content: ""; + border-bottom: 1px solid #f7f7f7; } + .popover.popover-left, .popover.bs-tether-element-attached-right { + margin-left: -10px; } + .popover.popover-left::before, .popover.popover-left::after, .popover.bs-tether-element-attached-right::before, .popover.bs-tether-element-attached-right::after { + top: 50%; + border-right-width: 0; } + .popover.popover-left::before, .popover.bs-tether-element-attached-right::before { + right: -11px; + margin-top: -11px; + border-left-color: rgba(0, 0, 0, 0.25); } + .popover.popover-left::after, .popover.bs-tether-element-attached-right::after { + right: -10px; + margin-top: -10px; + border-left-color: #fff; } + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 0.875rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; } + .popover-title:empty { + display: none; } + +.popover-content { + padding: 9px 14px; } + +.popover::before, +.popover::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover::before { + content: ""; + border-width: 11px; } + +.popover::after { + content: ""; + border-width: 10px; } + +.align-baseline { + vertical-align: baseline !important; } + +.align-top { + vertical-align: top !important; } + +.align-middle { + vertical-align: middle !important; } + +.align-bottom { + vertical-align: bottom !important; } + +.align-text-bottom { + vertical-align: text-bottom !important; } + +.align-text-top { + vertical-align: text-top !important; } + +.bg-faded { + background-color: #eceff1; } + +.bg-primary { + color: #fff !important; + background-color: #20a8d8 !important; } + +a.bg-primary:focus, a.bg-primary:hover { + background-color: #1985ac; } + +.bg-success { + color: #fff !important; + background-color: #4dbd74 !important; } + +a.bg-success:focus, a.bg-success:hover { + background-color: #3a9d5d; } + +.bg-info { + color: #fff !important; + background-color: #63c2de !important; } + +a.bg-info:focus, a.bg-info:hover { + background-color: #39b2d5; } + +.bg-warning { + color: #fff !important; + background-color: #f8cb00 !important; } + +a.bg-warning:focus, a.bg-warning:hover { + background-color: #c5a100; } + +.bg-danger { + color: #fff !important; + background-color: #f86c6b !important; } + +a.bg-danger:focus, a.bg-danger:hover { + background-color: #f63c3a; } + +.bg-inverse { + color: #fff !important; + background-color: #263238 !important; } + +a.bg-inverse:focus, a.bg-inverse:hover { + background-color: #11171a; } + +.rounded-circle { + border-radius: 50%; } + +.clearfix::after { + content: ""; + display: table; + clear: both; } + +.d-block { + display: block !important; } + +.d-inline-block { + display: inline-block !important; } + +.d-inline { + display: inline !important; } + +.float-xs-left { + float: left !important; } + +.float-xs-right { + float: right !important; } + +.float-xs-none { + float: none !important; } + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; } + .float-sm-right { + float: right !important; } + .float-sm-none { + float: none !important; } } + +@media (min-width: 768px) { + .float-md-left { + float: left !important; } + .float-md-right { + float: right !important; } + .float-md-none { + float: none !important; } } + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; } + .float-lg-right { + float: right !important; } + .float-lg-none { + float: none !important; } } + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; } + .float-xl-right { + float: right !important; } + .float-xl-none { + float: none !important; } } + +.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; } + +.w-100 { + width: 100% !important; } + +.h-100 { + height: 100% !important; } + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; } + +.m-q { + margin: 0.25rem 0.25rem !important; } + +.mt-q { + margin-top: 0.25rem !important; } + +.mr-q { + margin-right: 0.25rem !important; } + +.mb-q { + margin-bottom: 0.25rem !important; } + +.ml-q { + margin-left: 0.25rem !important; } + +.mx-q { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + +.my-q { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + +.m-h { + margin: 0.5rem 0.5rem !important; } + +.mt-h { + margin-top: 0.5rem !important; } + +.mr-h { + margin-right: 0.5rem !important; } + +.mb-h { + margin-bottom: 0.5rem !important; } + +.ml-h { + margin-left: 0.5rem !important; } + +.mx-h { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + +.my-h { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + +.m-0 { + margin: 0 0 !important; } + +.mt-0 { + margin-top: 0 !important; } + +.mr-0 { + margin-right: 0 !important; } + +.mb-0 { + margin-bottom: 0 !important; } + +.ml-0 { + margin-left: 0 !important; } + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + +.m-1 { + margin: 1rem 1rem !important; } + +.mt-1 { + margin-top: 1rem !important; } + +.mr-1 { + margin-right: 1rem !important; } + +.mb-1 { + margin-bottom: 1rem !important; } + +.ml-1 { + margin-left: 1rem !important; } + +.mx-1 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + +.my-1 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + +.m-2 { + margin: 1.5rem 1.5rem !important; } + +.mt-2 { + margin-top: 1.5rem !important; } + +.mr-2 { + margin-right: 1.5rem !important; } + +.mb-2 { + margin-bottom: 1.5rem !important; } + +.ml-2 { + margin-left: 1.5rem !important; } + +.mx-2 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + +.my-2 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + +.m-3 { + margin: 3rem 3rem !important; } + +.mt-3 { + margin-top: 3rem !important; } + +.mr-3 { + margin-right: 3rem !important; } + +.mb-3 { + margin-bottom: 3rem !important; } + +.ml-3 { + margin-left: 3rem !important; } + +.mx-3 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + +.my-3 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + +.p-q { + padding: 0.25rem 0.25rem !important; } + +.pt-q { + padding-top: 0.25rem !important; } + +.pr-q { + padding-right: 0.25rem !important; } + +.pb-q { + padding-bottom: 0.25rem !important; } + +.pl-q { + padding-left: 0.25rem !important; } + +.px-q { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + +.py-q { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + +.p-h { + padding: 0.5rem 0.5rem !important; } + +.pt-h { + padding-top: 0.5rem !important; } + +.pr-h { + padding-right: 0.5rem !important; } + +.pb-h { + padding-bottom: 0.5rem !important; } + +.pl-h { + padding-left: 0.5rem !important; } + +.px-h { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + +.py-h { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + +.p-0 { + padding: 0 0 !important; } + +.pt-0 { + padding-top: 0 !important; } + +.pr-0 { + padding-right: 0 !important; } + +.pb-0 { + padding-bottom: 0 !important; } + +.pl-0 { + padding-left: 0 !important; } + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + +.p-1 { + padding: 1rem 1rem !important; } + +.pt-1 { + padding-top: 1rem !important; } + +.pr-1 { + padding-right: 1rem !important; } + +.pb-1 { + padding-bottom: 1rem !important; } + +.pl-1 { + padding-left: 1rem !important; } + +.px-1 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + +.py-1 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + +.p-2 { + padding: 1.5rem 1.5rem !important; } + +.pt-2 { + padding-top: 1.5rem !important; } + +.pr-2 { + padding-right: 1.5rem !important; } + +.pb-2 { + padding-bottom: 1.5rem !important; } + +.pl-2 { + padding-left: 1.5rem !important; } + +.px-2 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + +.py-2 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + +.p-3 { + padding: 3rem 3rem !important; } + +.pt-3 { + padding-top: 3rem !important; } + +.pr-3 { + padding-right: 3rem !important; } + +.pb-3 { + padding-bottom: 3rem !important; } + +.pl-3 { + padding-left: 3rem !important; } + +.px-3 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + +.py-3 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + +.pos-f-t { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; } + +.text-justify { + text-align: justify !important; } + +.text-nowrap { + white-space: nowrap !important; } + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.text-xs-left { + text-align: left !important; } + +.text-xs-right { + text-align: right !important; } + +.text-xs-center { + text-align: center !important; } + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; } + .text-sm-right { + text-align: right !important; } + .text-sm-center { + text-align: center !important; } } + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; } + .text-md-right { + text-align: right !important; } + .text-md-center { + text-align: center !important; } } + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; } + .text-lg-right { + text-align: right !important; } + .text-lg-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; } + .text-xl-right { + text-align: right !important; } + .text-xl-center { + text-align: center !important; } } + +.text-lowercase { + text-transform: lowercase !important; } + +.text-uppercase { + text-transform: uppercase !important; } + +.text-capitalize { + text-transform: capitalize !important; } + +.font-weight-normal { + font-weight: normal; } + +.font-weight-bold { + font-weight: bold; } + +.font-italic { + font-style: italic; } + +.text-white { + color: #fff !important; } + +.text-muted { + color: #b0bec5 !important; } + +a.text-muted:focus, a.text-muted:hover { + color: #93a6af !important; } + +.text-primary { + color: #20a8d8 !important; } + +a.text-primary:focus, a.text-primary:hover { + color: #1985ac !important; } + +.text-success { + color: #4dbd74 !important; } + +a.text-success:focus, a.text-success:hover { + color: #3a9d5d !important; } + +.text-info { + color: #63c2de !important; } + +a.text-info:focus, a.text-info:hover { + color: #39b2d5 !important; } + +.text-warning { + color: #f8cb00 !important; } + +a.text-warning:focus, a.text-warning:hover { + color: #c5a100 !important; } + +.text-danger { + color: #f86c6b !important; } + +a.text-danger:focus, a.text-danger:hover { + color: #f63c3a !important; } + +.text-gray-dark { + color: #263238 !important; } + +a.text-gray-dark:focus, a.text-gray-dark:hover { + color: #11171a !important; } + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } + +.invisible { + visibility: hidden !important; } + +.hidden-xs-up { + display: none !important; } + +@media (max-width: 575px) { + .hidden-xs-down { + display: none !important; } } + +@media (min-width: 576px) { + .hidden-sm-up { + display: none !important; } } + +@media (max-width: 767px) { + .hidden-sm-down { + display: none !important; } } + +@media (min-width: 768px) { + .hidden-md-up { + display: none !important; } } + +@media (max-width: 991px) { + .hidden-md-down { + display: none !important; } } + +@media (min-width: 992px) { + .hidden-lg-up { + display: none !important; } } + +@media (max-width: 1199px) { + .hidden-lg-down { + display: none !important; } } + +@media (min-width: 1200px) { + .hidden-xl-up { + display: none !important; } } + +.hidden-xl-down { + display: none !important; } + +.visible-print-block { + display: none !important; } + @media print { + .visible-print-block { + display: block !important; } } + +.visible-print-inline { + display: none !important; } + @media print { + .visible-print-inline { + display: inline !important; } } + +.visible-print-inline-block { + display: none !important; } + @media print { + .visible-print-inline-block { + display: inline-block !important; } } + +@media print { + .hidden-print { + display: none !important; } } + +.chart-legend, +.bar-legend, +.line-legend, +.pie-legend, +.radar-legend, +.polararea-legend, +.doughnut-legend { + list-style-type: none; + margin-top: 5px; + text-align: center; + -webkit-padding-start: 0; + -moz-padding-start: 0; + padding-left: 0; } + +.chart-legend li, +.bar-legend li, +.line-legend li, +.pie-legend li, +.radar-legend li, +.polararea-legend li, +.doughnut-legend li { + display: inline-block; + white-space: nowrap; + position: relative; + margin-bottom: 4px; + padding: 2px 8px 2px 28px; + font-size: smaller; + cursor: default; } + +.chart-legend li span, +.bar-legend li span, +.line-legend li span, +.pie-legend li span, +.radar-legend li span, +.polararea-legend li span, +.doughnut-legend li span { + display: block; + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; } + +body { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; } + +.font-xs { + font-size: .75rem !important; } + +.font-sm { + font-size: .85rem !important; } + +.font-lg { + font-size: 1rem !important; } + +.font-xl { + font-size: 1.25rem !important; } + +.font-2xl { + font-size: 1.5rem !important; } + +.font-3xl { + font-size: 1.75rem !important; } + +.font-4xl { + font-size: 2rem !important; } + +.font-5xl { + font-size: 2.5rem !important; } + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; } + +@-webkit-keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } + +@keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; } + +.row.row-equal { + padding-right: 7.5px; + padding-left: 7.5px; + margin-right: -15px; + margin-left: -15px; } + .row.row-equal [class*="col-"] { + padding-right: 7.5px; + padding-left: 7.5px; } + +.main .container-fluid { + padding: 0 30px; } + +html.sidebar-opened { + max-width: 100% !important; + overflow-x: hidden !important; } + +body { + position: relative; + min-height: 100vh; + padding: 0; + margin: 0; } + body .bd-title.main { + padding: 0 !important; } + +.sidebar { + left: -200px; + transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.25s, 0.25s; + transition-property: left, right, padding-left, padding-right, margin-left, margin-right; } + +.main { + padding-bottom: 50px; + transition-duration: 0.25s, 0.25s, 0.25s, 0.25s; + transition-property: padding-left, padding-right, margin-left, margin-right; } + +.aside-menu { + transition-duration: 0.25s, 0.25s; + transition-property: left, right; } + +.footer { + transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.25s, 0.25s; + transition-property: padding-left, padding-right, margin-left, margin-right, left, right; } + +body.std { + position: relative; } + body.std header.navbar { + z-index: 1030; } + body.std .sidebar { + padding-top: 55px; } + body.std .main { + padding-left: 200px; } + +body.navbar-fixed .main { + padding-top: 55px; } + +body.navbar-fixed.top-nav.fixed-nav nav.top-nav { + position: fixed; } + +body.navbar-fixed.top-nav.fixed-nav .main { + padding-top: 95px; } + +body:not(.top-nav) header.navbar { + z-index: 1030; } + +body:not(.top-nav) .sidebar { + display: inline; + padding-top: 55px !important; } + +body:not(.top-nav).compact-nav .main { + padding-left: 50px; } + +body:not(.top-nav).compact-nav .footer { + left: 50px; } + +body:not(.top-nav).fixed-nav .sidebar { + position: fixed; } + body:not(.top-nav).fixed-nav .sidebar .sidebar-nav { + height: calc(100vh - 55px); } + +body:not(.top-nav).fixed-nav .sidebar-footer { + position: fixed; + bottom: 0; + left: 0; } + +body:not(.top-nav).sidebar-off-canvas header.navbar { + z-index: 1032; } + +body:not(.top-nav).sidebar-off-canvas .sidebar { + left: -200px; + z-index: 1031; + padding-top: 0; } + body:not(.top-nav).sidebar-off-canvas .sidebar .sidebar-close { + display: inline; } + body:not(.top-nav).sidebar-off-canvas .sidebar .sidebar-nav { + height: 100vh; } + +body:not(.top-nav).sidebar-off-canvas .main { + padding-left: 0; } + +body:not(.top-nav).sidebar-off-canvas .footer { + left: 0; } + +body:not(.top-nav).sidebar-opened .sidebar { + left: 0; } + +body:not(.top-nav).sidebar-opened.sidebar-off-canvas-push .main { + margin-right: -200px; + margin-left: 200px; } + +body:not(.top-nav).sidebar-opened.sidebar-off-canvas-push .footer { + margin-right: -200px; + margin-left: 200px; } + +body:not(.top-nav).sidebar-opened.sidebar-off-canvas-with-shadow { + position: relative; + max-width: 100% !important; + overflow-x: hidden !important; } + body:not(.top-nav).sidebar-opened.sidebar-off-canvas-with-shadow::after { + position: absolute; + top: 0; + left: 0; + z-index: 1030; + width: 100%; + height: 100%; + content: ''; + background: rgba(0, 0, 0, 0.7); } + +body.sidebar-nav .sidebar { + left: 0; } + +body.sidebar-nav .main { + padding-left: 200px; } + +body.sidebar-nav .footer { + left: 200px; } + +body.top-nav .layout-toggler { + display: none !important; } + +body.top-nav .main { + padding-top: 95px; } + +body.aside-menu-open .main { + padding-right: 250px; } + +body.aside-menu-open .aside-menu { + right: 0; } + +body.aside-menu-open .footer { + right: 250px; } + +body.aside-menu-open.aside-menu-off-canvas .main { + right: 0; + padding-right: 0; } + +body.footer-fixed .footer { + position: fixed; + bottom: 0; } + +body:not(.top-nav) .sidebar { + position: absolute; + top: 0; + z-index: 1; + display: inline !important; + width: 200px; + height: 100%; + padding: 0; + color: #fff; + background: #263238; } + body:not(.top-nav) .sidebar .sidebar-close { + position: absolute; + right: 0; + display: none; + padding: 0 1rem; + font-size: 24px; + font-weight: 800; + line-height: 55px; + color: #fff; + background: 0; + border: 0; + opacity: .8; } + body:not(.top-nav) .sidebar .sidebar-close:hover { + opacity: 1; } + body:not(.top-nav) .sidebar .sidebar-nav { + position: relative; + overflow-x: hidden; + overflow-y: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; } + body:not(.top-nav) .sidebar .sidebar-nav::-webkit-scrollbar { + width: 10px; + margin-left: -10px; + -webkit-appearance: none; } + body:not(.top-nav) .sidebar .sidebar-nav::-webkit-scrollbar-track { + background-color: #304047; + border-right: 1px solid #1c2429; + border-left: 1px solid #1c2429; } + body:not(.top-nav) .sidebar .sidebar-nav::-webkit-scrollbar-thumb { + height: 50px; + background-color: #11171a; + background-clip: content-box; + border-color: transparent; + border-style: solid; + border-width: 1px 2px; } + body:not(.top-nav) .sidebar ul.nav { + width: 200px; } + body:not(.top-nav) .sidebar ul.nav li.nav-title { + padding: 0.75rem 1rem; + font-size: 11px; + font-weight: 600; + color: #cfd8dc; + text-transform: uppercase; } + body:not(.top-nav) .sidebar ul.nav li.divider { + height: 10px; } + body:not(.top-nav) .sidebar ul.nav li.nav-item { + position: relative; + margin: 0; + transition: background .3s ease-in-out; } + body:not(.top-nav) .sidebar ul.nav li.nav-item ul { + max-height: 0; + padding: 0; + margin: 0; + overflow-y: hidden; + transition: max-height .3s ease-in-out; } + body:not(.top-nav) .sidebar ul.nav li.nav-item ul li { + padding: 0; + list-style: none; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link { + display: block; + padding: 0.75rem 1rem; + color: #fff; + text-decoration: none; + background: transparent; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link:hover { + color: #fff !important; + background: #20a8d8 !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link:hover i { + color: #fff !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link.active { + color: #fff; + background: #304047; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link.active i { + color: #20a8d8; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link [class^="icon-"], body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link [class*=" icon-"] { + display: inline-block; + margin-top: -4px; + vertical-align: middle; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link i { + width: 20px; + margin: 0 0.5rem 0 0; + font-size: 14px; + color: #b0bec5; + text-align: center; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link .tag { + float: right; + margin-top: 2px; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link.nav-dropdown-toggle::before { + position: absolute; + top: 0.96875rem; + right: 1rem; + display: block; + width: 0.875rem; + height: 0.875rem; + padding: 0; + font-size: 0.875rem; + line-height: 0.65625rem; + text-align: center; + content: "\2039"; + transition: .3s; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open { + background: rgba(0, 0, 0, 0.2); } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open > ul, body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open > ol { + max-height: 1000px; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open a.nav-link { + color: #fff; + border-left: 0 !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open > a.nav-link.nav-dropdown-toggle::before { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open .nav-dropdown.open { + border-left: 0; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.nt { + transition: 0s !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.nt > ul, body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.nt > ol { + transition: 0s !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.nt a.nav-link.nav-dropdown-toggle::before { + transition: 0s !important; } + +@media (min-width: 576px) { + body.sidebar-nav.compact-nav .sidebar { + z-index: 1029; + width: 50px; } + body.sidebar-nav.compact-nav .sidebar .sidebar-items { + overflow: visible; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-title, body.sidebar-nav.compact-nav .sidebar ul.nav li.divider { + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item { + border-left: 0 !important; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul { + background: #263238; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link { + position: relative; + width: 50px; + padding: 0 15px 0 0; + margin: 0; + overflow: hidden; + line-height: 50px; + white-space: nowrap; + border-left: 0 !important; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link.nav-dropdown-toggle::before { + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link i { + display: block; + float: left; + width: 50px; + height: 50px; + padding: 0; + margin: 0; + font-size: 18px; + line-height: 50px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link .tag { + position: absolute; + top: 6px; + right: 15px; + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover { + width: 200px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover .tag { + display: inline; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul { + position: absolute; + top: 50px; + left: 50px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li { + position: relative; + padding: 0; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li a.nav-link { + width: 150px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li ol { + position: absolute; + top: 0; + left: 100%; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ol { + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > a.nav-link { + width: 250px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ol { + display: inline; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ul a.nav-link, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ol a.nav-link { + width: 200px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover.nav-dropdown.open > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover.nav-dropdown.open > ol { + display: inline; } } + +nav.top-nav { + position: absolute; + top: 55px; + left: 0; + z-index: 1029; + display: inline !important; + width: 100%; + height: 40px; + background: #fff; + border-bottom: 1px solid #cfd8dc; } + nav.top-nav ul.nav { + white-space: nowrap; } + nav.top-nav ul.nav li.nav-item { + position: relative; + display: inline-block; + margin: 0; } + nav.top-nav ul.nav li.nav-item ul { + display: none; + padding: 0; + margin: 0; + white-space: normal; + background: #fff; + border: 1px solid #cfd8dc; } + nav.top-nav ul.nav li.nav-item ul li { + padding: 0; + list-style: none; } + nav.top-nav ul.nav li.nav-item a.nav-link { + display: block; + padding: 0 15px; + font-size: 12px; + font-weight: 400; + line-height: 40px; + color: #263238; + text-decoration: none; + text-transform: uppercase; } + nav.top-nav ul.nav li.nav-item a.nav-link i { + display: block; + float: left; + width: 20px; + margin: 0 10px 0 0; + font-size: 14px; + line-height: 39px; + text-align: center; } + nav.top-nav ul.nav li.nav-item a.nav-link .tag { + float: right; + margin-top: 13px; + margin-left: 10px; } + nav.top-nav ul.nav li.nav-item a.nav-link:hover { + color: #fff; + background: #20a8d8; } + nav.top-nav ul.nav li.nav-item a.nav-link.active { + color: #fff; + background: #20a8d8; } + nav.top-nav ul.nav li.nav-item ul { + position: absolute; + top: 39px; + left: 0; } + nav.top-nav ul.nav li.nav-item ul li { + position: relative; + padding: 0; } + nav.top-nav ul.nav li.nav-item ul li a.nav-link { + min-width: 200px; } + nav.top-nav ul.nav li.nav-item ul li ul { + position: absolute; + top: 0; + left: 100%; } + nav.top-nav ul.nav li.nav-item.nav-more ul { + right: 0; + left: auto; } + nav.top-nav ul.nav li.nav-item.nav-more ul li ul { + right: 100%; + left: auto; } + nav.top-nav ul.nav li.nav-item:hover > ul { + display: inline; } + +.aside-menu { + position: fixed; + top: 0; + right: -250px; + z-index: 1029; + width: 250px; + height: 100%; + padding-top: 55px; + color: #263238; + background: #fff; + border-left: 1px solid #cfd8dc; } + .aside-menu .nav-tabs { + border-color: #cfd8dc; } + .aside-menu .nav-tabs .nav-link { + padding: 0.75rem 1rem; + color: #263238; + border-top: 0; } + .aside-menu .nav-tabs .nav-link.active { + border-right-color: #cfd8dc; + border-left-color: #cfd8dc; } + .aside-menu .nav-tabs .nav-item:first-child .nav-link { + border-left: 0; } + .aside-menu .tab-content { + position: relative; + height: calc(100vh - 2.375rem - 55px); + overflow-x: hidden; + overflow-y: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; } + .aside-menu .tab-content::-webkit-scrollbar { + width: 10px; + margin-left: -10px; + -webkit-appearance: none; } + .aside-menu .tab-content::-webkit-scrollbar-track { + background-color: white; + border-right: 1px solid #f2f2f2; + border-left: 1px solid #f2f2f2; } + .aside-menu .tab-content::-webkit-scrollbar-thumb { + height: 50px; + background-color: #e6e6e6; + background-clip: content-box; + border-color: transparent; + border-style: solid; + border-width: 1px 2px; } + +#loading-bar, +#loading-bar-spinner { + -webkit-pointer-events: none; + pointer-events: none; + -moz-transition: 350ms linear all; + -o-transition: 350ms linear all; + -webkit-transition: 350ms linear all; + transition: 350ms linear all; } + +#loading-bar.ng-enter, +#loading-bar.ng-leave.ng-leave-active, +#loading-bar-spinner.ng-enter, +#loading-bar-spinner.ng-leave.ng-leave-active { + opacity: 0; } + +#loading-bar.ng-enter.ng-enter-active, +#loading-bar.ng-leave, +#loading-bar-spinner.ng-enter.ng-enter-active, +#loading-bar-spinner.ng-leave { + opacity: 1; } + +#loading-bar .bar { + position: fixed; + top: 0; + left: 0; + z-index: 20002; + width: 100%; + height: 2px; + background: #20a8d8; + border-top-right-radius: 1px; + border-bottom-right-radius: 1px; + -moz-transition: width 350ms; + -o-transition: width 350ms; + -webkit-transition: width 350ms; + transition: width 350ms; } + +#loading-bar .peg { + position: absolute; + top: 0; + right: 0; + width: 70px; + height: 2px; + -moz-border-radius: 100%; + -webkit-border-radius: 100%; + border-radius: 100%; + -moz-box-shadow: #29d 1px 0 6px 1px; + -ms-box-shadow: #29d 1px 0 6px 1px; + -webkit-box-shadow: #29d 1px 0 6px 1px; + box-shadow: #29d 1px 0 6px 1px; + opacity: .45; } + +#loading-bar-spinner { + position: fixed; + top: 10px; + left: 10px; + z-index: 10002; + display: block; } + +#loading-bar-spinner .spinner-icon { + width: 14px; + height: 14px; + border: solid 2px transparent; + border-top-color: #29d; + border-left-color: #29d; + border-radius: 50%; + -moz-animation: loading-bar-spinner 400ms linear infinite; + -ms-animation: loading-bar-spinner 400ms linear infinite; + -o-animation: loading-bar-spinner 400ms linear infinite; + -webkit-animation: loading-bar-spinner 400ms linear infinite; + animation: loading-bar-spinner 400ms linear infinite; } + +@-webkit-keyframes loading-bar-spinner { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-moz-keyframes loading-bar-spinner { + 0% { + -moz-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -moz-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-o-keyframes loading-bar-spinner { + 0% { + -o-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -o-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-ms-keyframes loading-bar-spinner { + 0% { + -ms-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -ms-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loading-bar-spinner { + 0% { + transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); + transform: rotate(360deg); } } + +.pace { + -webkit-pointer-events: none; + pointer-events: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; } + +.pace-inactive { + display: none; } + +.pace .pace-progress { + position: fixed; + top: 0; + right: 100%; + z-index: 2000; + width: 100%; + height: 2px; + background: #20a8d8; } + +.social-box { + min-height: 160px; + margin-bottom: 20px; + text-align: center; + background: #fff; + border: 1px solid #cfd8dc; } + .social-box i { + display: block; + margin: -1px -1px 0; + font-size: 40px; + line-height: 90px; + background: #cfd8dc; } + .social-box .chart-wrapper { + height: 90px; + margin: -90px 0 0; } + .social-box .chart-wrapper canvas { + width: 100% !important; + height: 90px !important; } + .social-box ul { + padding: 10px 0; + list-style: none; } + .social-box ul li { + display: block; + float: left; + width: 50%; } + .social-box ul li:first-child { + border-right: 1px solid #cfd8dc; } + .social-box ul li strong { + display: block; + font-size: 20px; } + .social-box ul li span { + font-size: 10px; + font-weight: 500; + color: #cfd8dc; + text-transform: uppercase; } + .social-box.facebook i { + color: #fff; + background: #3b5998; } + .social-box.twitter i { + color: #fff; + background: #00aced; } + .social-box.linkedin i { + color: #fff; + background: #4875b4; } + .social-box.google-plus i { + color: #fff; + background: #bb4b39; } + +.horizontal-bars { + padding: 0; + margin: 0; + list-style: none; } + .horizontal-bars li { + position: relative; + height: 40px; + line-height: 40px; + vertical-align: middle; } + .horizontal-bars li .title { + width: 100px; + font-size: 12px; + font-weight: 600; + color: #b0bec5; + vertical-align: middle; } + .horizontal-bars li .bars { + position: absolute; + top: 15px; + width: 100%; + padding-left: 100px; } + .horizontal-bars li.legend { + text-align: center; } + .horizontal-bars li.legend .tag { + display: inline-block; + width: 8px; + height: 8px; + padding: 0; } + .horizontal-bars li.divider { + height: 40px; } + .horizontal-bars li.divider i { + margin: 0 !important; } + .horizontal-bars.type-2 li { + overflow: hidden; } + .horizontal-bars.type-2 li i { + display: inline-block; + margin-right: 1rem; + margin-left: 5px; + font-size: 18px; + line-height: 40px; } + .horizontal-bars.type-2 li .title { + display: inline-block; + width: auto; + margin-top: -9px; + font-size: 0.875rem; + font-weight: normal; + line-height: 40px; + color: #263238; } + .horizontal-bars.type-2 li .value { + float: right; + font-weight: 600; } + .horizontal-bars.type-2 li .bars { + position: absolute; + top: auto; + bottom: 0; + padding: 0; } + +ul.icons-list { + padding: 0; + margin: 0; + list-style: none; } + ul.icons-list li { + position: relative; + height: 40px; + vertical-align: middle; } + ul.icons-list li i { + display: block; + float: left; + width: 35px !important; + height: 35px !important; + margin: 2px; + line-height: 35px !important; + text-align: center; } + ul.icons-list li .desc { + height: 40px; + margin-left: 50px; + border-bottom: 1px solid #cfd8dc; } + ul.icons-list li .desc .title { + padding: 2px 0 0; + margin: 0; } + ul.icons-list li .desc small { + display: block; + margin-top: -4px; + color: #b0bec5; } + ul.icons-list li .value { + position: absolute; + top: 2px; + right: 45px; + text-align: right; } + ul.icons-list li .value strong { + display: block; + margin-top: -3px; } + ul.icons-list li .actions { + position: absolute; + top: -4px; + right: 10px; + width: 40px; + height: 40px; + line-height: 40px; + text-align: center; } + ul.icons-list li .actions i { + float: none; + width: auto; + height: auto; + padding: 0; + margin: 0; + line-height: normal; } + ul.icons-list li.divider { + height: 40px; } + ul.icons-list li.divider i { + width: auto; + height: auto; + margin: 2px 0 0; + font-size: 18px; } + +footer.footer { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 50px; + padding: 0 1rem; + line-height: 50px; + color: #263238; + background: #eceff1; + border-top: 1px solid #cfd8dc; } + +.btn-transparent { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent:hover { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent:focus, .btn-transparent.focus { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent:active, .btn-transparent.active, + .open > .btn-transparent.dropdown-toggle { + color: #fff; + background-color: transparent; + border-color: transparent; + background-image: none; } + .btn-transparent:active:hover, .btn-transparent:active:focus, .btn-transparent:active.focus, .btn-transparent.active:hover, .btn-transparent.active:focus, .btn-transparent.active.focus, + .open > .btn-transparent.dropdown-toggle:hover, + .open > .btn-transparent.dropdown-toggle:focus, + .open > .btn-transparent.dropdown-toggle.focus { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent.disabled:focus, .btn-transparent.disabled.focus, .btn-transparent:disabled:focus, .btn-transparent:disabled.focus { + background-color: transparent; + border-color: transparent; } + .btn-transparent.disabled:hover, .btn-transparent:disabled:hover { + background-color: transparent; + border-color: transparent; } + +.btn [class^="icon-"], .btn [class*=" icon-"] { + display: inline-block; + margin-top: -2px; + vertical-align: middle; } + +.btn-facebook, +.btn-twitter, +.btn-linkedin, +.btn-flickr, +.btn-tumblr, +.btn-xing, +.btn-github, +.btn-html5, +.btn-openid, +.btn-stack-overflow, +.btn-youtube, +.btn-css3, +.btn-dribbble, +.btn-google-plus, +.btn-instagram, +.btn-pinterest, +.btn-vk, +.btn-yahoo, +.btn-behance, +.btn-dropbox, +.btn-reddit, +.btn-spotify, +.btn-vine, +.btn-foursquare, +.btn-vimeo { + position: relative; + overflow: hidden; + color: #fff !important; + text-align: center; + padding: 0.5rem 1rem; + font-size: 0.875rem; + line-height: 1.5; + border: 0; } + .btn-facebook::before, + .btn-twitter::before, + .btn-linkedin::before, + .btn-flickr::before, + .btn-tumblr::before, + .btn-xing::before, + .btn-github::before, + .btn-html5::before, + .btn-openid::before, + .btn-stack-overflow::before, + .btn-youtube::before, + .btn-css3::before, + .btn-dribbble::before, + .btn-google-plus::before, + .btn-instagram::before, + .btn-pinterest::before, + .btn-vk::before, + .btn-yahoo::before, + .btn-behance::before, + .btn-dropbox::before, + .btn-reddit::before, + .btn-spotify::before, + .btn-vine::before, + .btn-foursquare::before, + .btn-vimeo::before { + position: absolute; + top: 0; + left: 0; + display: block; + font-family: 'FontAwesome'; + font-style: normal; + font-weight: normal; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; } + .btn-facebook:hover, + .btn-twitter:hover, + .btn-linkedin:hover, + .btn-flickr:hover, + .btn-tumblr:hover, + .btn-xing:hover, + .btn-github:hover, + .btn-html5:hover, + .btn-openid:hover, + .btn-stack-overflow:hover, + .btn-youtube:hover, + .btn-css3:hover, + .btn-dribbble:hover, + .btn-google-plus:hover, + .btn-instagram:hover, + .btn-pinterest:hover, + .btn-vk:hover, + .btn-yahoo:hover, + .btn-behance:hover, + .btn-dropbox:hover, + .btn-reddit:hover, + .btn-spotify:hover, + .btn-vine:hover, + .btn-foursquare:hover, + .btn-vimeo:hover { + color: #fff; } + .btn-facebook.icon span, + .btn-twitter.icon span, + .btn-linkedin.icon span, + .btn-flickr.icon span, + .btn-tumblr.icon span, + .btn-xing.icon span, + .btn-github.icon span, + .btn-html5.icon span, + .btn-openid.icon span, + .btn-stack-overflow.icon span, + .btn-youtube.icon span, + .btn-css3.icon span, + .btn-dribbble.icon span, + .btn-google-plus.icon span, + .btn-instagram.icon span, + .btn-pinterest.icon span, + .btn-vk.icon span, + .btn-yahoo.icon span, + .btn-behance.icon span, + .btn-dropbox.icon span, + .btn-reddit.icon span, + .btn-spotify.icon span, + .btn-vine.icon span, + .btn-foursquare.icon span, + .btn-vimeo.icon span { + display: none; } + .btn-facebook.text::before, + .btn-twitter.text::before, + .btn-linkedin.text::before, + .btn-flickr.text::before, + .btn-tumblr.text::before, + .btn-xing.text::before, + .btn-github.text::before, + .btn-html5.text::before, + .btn-openid.text::before, + .btn-stack-overflow.text::before, + .btn-youtube.text::before, + .btn-css3.text::before, + .btn-dribbble.text::before, + .btn-google-plus.text::before, + .btn-instagram.text::before, + .btn-pinterest.text::before, + .btn-vk.text::before, + .btn-yahoo.text::before, + .btn-behance.text::before, + .btn-dropbox.text::before, + .btn-reddit.text::before, + .btn-spotify.text::before, + .btn-vine.text::before, + .btn-foursquare.text::before, + .btn-vimeo.text::before { + display: none; } + .btn-facebook.text span, + .btn-twitter.text span, + .btn-linkedin.text span, + .btn-flickr.text span, + .btn-tumblr.text span, + .btn-xing.text span, + .btn-github.text span, + .btn-html5.text span, + .btn-openid.text span, + .btn-stack-overflow.text span, + .btn-youtube.text span, + .btn-css3.text span, + .btn-dribbble.text span, + .btn-google-plus.text span, + .btn-instagram.text span, + .btn-pinterest.text span, + .btn-vk.text span, + .btn-yahoo.text span, + .btn-behance.text span, + .btn-dropbox.text span, + .btn-reddit.text span, + .btn-spotify.text span, + .btn-vine.text span, + .btn-foursquare.text span, + .btn-vimeo.text span { + margin-left: 0 !important; } + .btn-facebook::before, + .btn-twitter::before, + .btn-linkedin::before, + .btn-flickr::before, + .btn-tumblr::before, + .btn-xing::before, + .btn-github::before, + .btn-html5::before, + .btn-openid::before, + .btn-stack-overflow::before, + .btn-youtube::before, + .btn-css3::before, + .btn-dribbble::before, + .btn-google-plus::before, + .btn-instagram::before, + .btn-pinterest::before, + .btn-vk::before, + .btn-yahoo::before, + .btn-behance::before, + .btn-dropbox::before, + .btn-reddit::before, + .btn-spotify::before, + .btn-vine::before, + .btn-foursquare::before, + .btn-vimeo::before { + width: 2.3125rem; + height: 2.3125rem; + padding: 0.5rem 0; + font-size: 0.875rem; + line-height: 1.5; } + .btn-facebook span, + .btn-twitter span, + .btn-linkedin span, + .btn-flickr span, + .btn-tumblr span, + .btn-xing span, + .btn-github span, + .btn-html5 span, + .btn-openid span, + .btn-stack-overflow span, + .btn-youtube span, + .btn-css3 span, + .btn-dribbble span, + .btn-google-plus span, + .btn-instagram span, + .btn-pinterest span, + .btn-vk span, + .btn-yahoo span, + .btn-behance span, + .btn-dropbox span, + .btn-reddit span, + .btn-spotify span, + .btn-vine span, + .btn-foursquare span, + .btn-vimeo span { + margin-left: 2.3125rem; } + .btn-facebook.icon, + .btn-twitter.icon, + .btn-linkedin.icon, + .btn-flickr.icon, + .btn-tumblr.icon, + .btn-xing.icon, + .btn-github.icon, + .btn-html5.icon, + .btn-openid.icon, + .btn-stack-overflow.icon, + .btn-youtube.icon, + .btn-css3.icon, + .btn-dribbble.icon, + .btn-google-plus.icon, + .btn-instagram.icon, + .btn-pinterest.icon, + .btn-vk.icon, + .btn-yahoo.icon, + .btn-behance.icon, + .btn-dropbox.icon, + .btn-reddit.icon, + .btn-spotify.icon, + .btn-vine.icon, + .btn-foursquare.icon, + .btn-vimeo.icon { + width: 2.3125rem; + height: 2.3125rem; } + .btn-facebook.btn-lg, .btn-group-lg > .btn-facebook.btn, + .btn-twitter.btn-lg, + .btn-group-lg > .btn-twitter.btn, + .btn-linkedin.btn-lg, + .btn-group-lg > .btn-linkedin.btn, + .btn-flickr.btn-lg, + .btn-group-lg > .btn-flickr.btn, + .btn-tumblr.btn-lg, + .btn-group-lg > .btn-tumblr.btn, + .btn-xing.btn-lg, + .btn-group-lg > .btn-xing.btn, + .btn-github.btn-lg, + .btn-group-lg > .btn-github.btn, + .btn-html5.btn-lg, + .btn-group-lg > .btn-html5.btn, + .btn-openid.btn-lg, + .btn-group-lg > .btn-openid.btn, + .btn-stack-overflow.btn-lg, + .btn-group-lg > .btn-stack-overflow.btn, + .btn-youtube.btn-lg, + .btn-group-lg > .btn-youtube.btn, + .btn-css3.btn-lg, + .btn-group-lg > .btn-css3.btn, + .btn-dribbble.btn-lg, + .btn-group-lg > .btn-dribbble.btn, + .btn-google-plus.btn-lg, + .btn-group-lg > .btn-google-plus.btn, + .btn-instagram.btn-lg, + .btn-group-lg > .btn-instagram.btn, + .btn-pinterest.btn-lg, + .btn-group-lg > .btn-pinterest.btn, + .btn-vk.btn-lg, + .btn-group-lg > .btn-vk.btn, + .btn-yahoo.btn-lg, + .btn-group-lg > .btn-yahoo.btn, + .btn-behance.btn-lg, + .btn-group-lg > .btn-behance.btn, + .btn-dropbox.btn-lg, + .btn-group-lg > .btn-dropbox.btn, + .btn-reddit.btn-lg, + .btn-group-lg > .btn-reddit.btn, + .btn-spotify.btn-lg, + .btn-group-lg > .btn-spotify.btn, + .btn-vine.btn-lg, + .btn-group-lg > .btn-vine.btn, + .btn-foursquare.btn-lg, + .btn-group-lg > .btn-foursquare.btn, + .btn-vimeo.btn-lg, + .btn-group-lg > .btn-vimeo.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.33333; + border: 0; } + .btn-facebook.btn-lg::before, .btn-group-lg > .btn-facebook.btn::before, + .btn-twitter.btn-lg::before, + .btn-group-lg > .btn-twitter.btn::before, + .btn-linkedin.btn-lg::before, + .btn-group-lg > .btn-linkedin.btn::before, + .btn-flickr.btn-lg::before, + .btn-group-lg > .btn-flickr.btn::before, + .btn-tumblr.btn-lg::before, + .btn-group-lg > .btn-tumblr.btn::before, + .btn-xing.btn-lg::before, + .btn-group-lg > .btn-xing.btn::before, + .btn-github.btn-lg::before, + .btn-group-lg > .btn-github.btn::before, + .btn-html5.btn-lg::before, + .btn-group-lg > .btn-html5.btn::before, + .btn-openid.btn-lg::before, + .btn-group-lg > .btn-openid.btn::before, + .btn-stack-overflow.btn-lg::before, + .btn-group-lg > .btn-stack-overflow.btn::before, + .btn-youtube.btn-lg::before, + .btn-group-lg > .btn-youtube.btn::before, + .btn-css3.btn-lg::before, + .btn-group-lg > .btn-css3.btn::before, + .btn-dribbble.btn-lg::before, + .btn-group-lg > .btn-dribbble.btn::before, + .btn-google-plus.btn-lg::before, + .btn-group-lg > .btn-google-plus.btn::before, + .btn-instagram.btn-lg::before, + .btn-group-lg > .btn-instagram.btn::before, + .btn-pinterest.btn-lg::before, + .btn-group-lg > .btn-pinterest.btn::before, + .btn-vk.btn-lg::before, + .btn-group-lg > .btn-vk.btn::before, + .btn-yahoo.btn-lg::before, + .btn-group-lg > .btn-yahoo.btn::before, + .btn-behance.btn-lg::before, + .btn-group-lg > .btn-behance.btn::before, + .btn-dropbox.btn-lg::before, + .btn-group-lg > .btn-dropbox.btn::before, + .btn-reddit.btn-lg::before, + .btn-group-lg > .btn-reddit.btn::before, + .btn-spotify.btn-lg::before, + .btn-group-lg > .btn-spotify.btn::before, + .btn-vine.btn-lg::before, + .btn-group-lg > .btn-vine.btn::before, + .btn-foursquare.btn-lg::before, + .btn-group-lg > .btn-foursquare.btn::before, + .btn-vimeo.btn-lg::before, + .btn-group-lg > .btn-vimeo.btn::before { + width: 3.16667rem; + height: 3.16667rem; + padding: 0.75rem 0; + font-size: 1.25rem; + line-height: 1.33333; } + .btn-facebook.btn-lg span, .btn-group-lg > .btn-facebook.btn span, + .btn-twitter.btn-lg span, .btn-group-lg > .btn-twitter.btn span, + .btn-linkedin.btn-lg span, .btn-group-lg > .btn-linkedin.btn span, + .btn-flickr.btn-lg span, .btn-group-lg > .btn-flickr.btn span, + .btn-tumblr.btn-lg span, .btn-group-lg > .btn-tumblr.btn span, + .btn-xing.btn-lg span, .btn-group-lg > .btn-xing.btn span, + .btn-github.btn-lg span, .btn-group-lg > .btn-github.btn span, + .btn-html5.btn-lg span, .btn-group-lg > .btn-html5.btn span, + .btn-openid.btn-lg span, .btn-group-lg > .btn-openid.btn span, + .btn-stack-overflow.btn-lg span, .btn-group-lg > .btn-stack-overflow.btn span, + .btn-youtube.btn-lg span, .btn-group-lg > .btn-youtube.btn span, + .btn-css3.btn-lg span, .btn-group-lg > .btn-css3.btn span, + .btn-dribbble.btn-lg span, .btn-group-lg > .btn-dribbble.btn span, + .btn-google-plus.btn-lg span, .btn-group-lg > .btn-google-plus.btn span, + .btn-instagram.btn-lg span, .btn-group-lg > .btn-instagram.btn span, + .btn-pinterest.btn-lg span, .btn-group-lg > .btn-pinterest.btn span, + .btn-vk.btn-lg span, .btn-group-lg > .btn-vk.btn span, + .btn-yahoo.btn-lg span, .btn-group-lg > .btn-yahoo.btn span, + .btn-behance.btn-lg span, .btn-group-lg > .btn-behance.btn span, + .btn-dropbox.btn-lg span, .btn-group-lg > .btn-dropbox.btn span, + .btn-reddit.btn-lg span, .btn-group-lg > .btn-reddit.btn span, + .btn-spotify.btn-lg span, .btn-group-lg > .btn-spotify.btn span, + .btn-vine.btn-lg span, .btn-group-lg > .btn-vine.btn span, + .btn-foursquare.btn-lg span, .btn-group-lg > .btn-foursquare.btn span, + .btn-vimeo.btn-lg span, .btn-group-lg > .btn-vimeo.btn span { + margin-left: 3.16667rem; } + .btn-facebook.btn-lg.icon, .btn-group-lg > .btn-facebook.icon.btn, + .btn-twitter.btn-lg.icon, + .btn-group-lg > .btn-twitter.icon.btn, + .btn-linkedin.btn-lg.icon, + .btn-group-lg > .btn-linkedin.icon.btn, + .btn-flickr.btn-lg.icon, + .btn-group-lg > .btn-flickr.icon.btn, + .btn-tumblr.btn-lg.icon, + .btn-group-lg > .btn-tumblr.icon.btn, + .btn-xing.btn-lg.icon, + .btn-group-lg > .btn-xing.icon.btn, + .btn-github.btn-lg.icon, + .btn-group-lg > .btn-github.icon.btn, + .btn-html5.btn-lg.icon, + .btn-group-lg > .btn-html5.icon.btn, + .btn-openid.btn-lg.icon, + .btn-group-lg > .btn-openid.icon.btn, + .btn-stack-overflow.btn-lg.icon, + .btn-group-lg > .btn-stack-overflow.icon.btn, + .btn-youtube.btn-lg.icon, + .btn-group-lg > .btn-youtube.icon.btn, + .btn-css3.btn-lg.icon, + .btn-group-lg > .btn-css3.icon.btn, + .btn-dribbble.btn-lg.icon, + .btn-group-lg > .btn-dribbble.icon.btn, + .btn-google-plus.btn-lg.icon, + .btn-group-lg > .btn-google-plus.icon.btn, + .btn-instagram.btn-lg.icon, + .btn-group-lg > .btn-instagram.icon.btn, + .btn-pinterest.btn-lg.icon, + .btn-group-lg > .btn-pinterest.icon.btn, + .btn-vk.btn-lg.icon, + .btn-group-lg > .btn-vk.icon.btn, + .btn-yahoo.btn-lg.icon, + .btn-group-lg > .btn-yahoo.icon.btn, + .btn-behance.btn-lg.icon, + .btn-group-lg > .btn-behance.icon.btn, + .btn-dropbox.btn-lg.icon, + .btn-group-lg > .btn-dropbox.icon.btn, + .btn-reddit.btn-lg.icon, + .btn-group-lg > .btn-reddit.icon.btn, + .btn-spotify.btn-lg.icon, + .btn-group-lg > .btn-spotify.icon.btn, + .btn-vine.btn-lg.icon, + .btn-group-lg > .btn-vine.icon.btn, + .btn-foursquare.btn-lg.icon, + .btn-group-lg > .btn-foursquare.icon.btn, + .btn-vimeo.btn-lg.icon, + .btn-group-lg > .btn-vimeo.icon.btn { + width: 3.16667rem; + height: 3.16667rem; } + .btn-facebook.btn-sm, .btn-group-sm > .btn-facebook.btn, + .btn-twitter.btn-sm, + .btn-group-sm > .btn-twitter.btn, + .btn-linkedin.btn-sm, + .btn-group-sm > .btn-linkedin.btn, + .btn-flickr.btn-sm, + .btn-group-sm > .btn-flickr.btn, + .btn-tumblr.btn-sm, + .btn-group-sm > .btn-tumblr.btn, + .btn-xing.btn-sm, + .btn-group-sm > .btn-xing.btn, + .btn-github.btn-sm, + .btn-group-sm > .btn-github.btn, + .btn-html5.btn-sm, + .btn-group-sm > .btn-html5.btn, + .btn-openid.btn-sm, + .btn-group-sm > .btn-openid.btn, + .btn-stack-overflow.btn-sm, + .btn-group-sm > .btn-stack-overflow.btn, + .btn-youtube.btn-sm, + .btn-group-sm > .btn-youtube.btn, + .btn-css3.btn-sm, + .btn-group-sm > .btn-css3.btn, + .btn-dribbble.btn-sm, + .btn-group-sm > .btn-dribbble.btn, + .btn-google-plus.btn-sm, + .btn-group-sm > .btn-google-plus.btn, + .btn-instagram.btn-sm, + .btn-group-sm > .btn-instagram.btn, + .btn-pinterest.btn-sm, + .btn-group-sm > .btn-pinterest.btn, + .btn-vk.btn-sm, + .btn-group-sm > .btn-vk.btn, + .btn-yahoo.btn-sm, + .btn-group-sm > .btn-yahoo.btn, + .btn-behance.btn-sm, + .btn-group-sm > .btn-behance.btn, + .btn-dropbox.btn-sm, + .btn-group-sm > .btn-dropbox.btn, + .btn-reddit.btn-sm, + .btn-group-sm > .btn-reddit.btn, + .btn-spotify.btn-sm, + .btn-group-sm > .btn-spotify.btn, + .btn-vine.btn-sm, + .btn-group-sm > .btn-vine.btn, + .btn-foursquare.btn-sm, + .btn-group-sm > .btn-foursquare.btn, + .btn-vimeo.btn-sm, + .btn-group-sm > .btn-vimeo.btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border: 0; } + .btn-facebook.btn-sm::before, .btn-group-sm > .btn-facebook.btn::before, + .btn-twitter.btn-sm::before, + .btn-group-sm > .btn-twitter.btn::before, + .btn-linkedin.btn-sm::before, + .btn-group-sm > .btn-linkedin.btn::before, + .btn-flickr.btn-sm::before, + .btn-group-sm > .btn-flickr.btn::before, + .btn-tumblr.btn-sm::before, + .btn-group-sm > .btn-tumblr.btn::before, + .btn-xing.btn-sm::before, + .btn-group-sm > .btn-xing.btn::before, + .btn-github.btn-sm::before, + .btn-group-sm > .btn-github.btn::before, + .btn-html5.btn-sm::before, + .btn-group-sm > .btn-html5.btn::before, + .btn-openid.btn-sm::before, + .btn-group-sm > .btn-openid.btn::before, + .btn-stack-overflow.btn-sm::before, + .btn-group-sm > .btn-stack-overflow.btn::before, + .btn-youtube.btn-sm::before, + .btn-group-sm > .btn-youtube.btn::before, + .btn-css3.btn-sm::before, + .btn-group-sm > .btn-css3.btn::before, + .btn-dribbble.btn-sm::before, + .btn-group-sm > .btn-dribbble.btn::before, + .btn-google-plus.btn-sm::before, + .btn-group-sm > .btn-google-plus.btn::before, + .btn-instagram.btn-sm::before, + .btn-group-sm > .btn-instagram.btn::before, + .btn-pinterest.btn-sm::before, + .btn-group-sm > .btn-pinterest.btn::before, + .btn-vk.btn-sm::before, + .btn-group-sm > .btn-vk.btn::before, + .btn-yahoo.btn-sm::before, + .btn-group-sm > .btn-yahoo.btn::before, + .btn-behance.btn-sm::before, + .btn-group-sm > .btn-behance.btn::before, + .btn-dropbox.btn-sm::before, + .btn-group-sm > .btn-dropbox.btn::before, + .btn-reddit.btn-sm::before, + .btn-group-sm > .btn-reddit.btn::before, + .btn-spotify.btn-sm::before, + .btn-group-sm > .btn-spotify.btn::before, + .btn-vine.btn-sm::before, + .btn-group-sm > .btn-vine.btn::before, + .btn-foursquare.btn-sm::before, + .btn-group-sm > .btn-foursquare.btn::before, + .btn-vimeo.btn-sm::before, + .btn-group-sm > .btn-vimeo.btn::before { + width: 1.8125rem; + height: 1.8125rem; + padding: 0.25rem 0; + font-size: 0.875rem; + line-height: 1.5; } + .btn-facebook.btn-sm span, .btn-group-sm > .btn-facebook.btn span, + .btn-twitter.btn-sm span, .btn-group-sm > .btn-twitter.btn span, + .btn-linkedin.btn-sm span, .btn-group-sm > .btn-linkedin.btn span, + .btn-flickr.btn-sm span, .btn-group-sm > .btn-flickr.btn span, + .btn-tumblr.btn-sm span, .btn-group-sm > .btn-tumblr.btn span, + .btn-xing.btn-sm span, .btn-group-sm > .btn-xing.btn span, + .btn-github.btn-sm span, .btn-group-sm > .btn-github.btn span, + .btn-html5.btn-sm span, .btn-group-sm > .btn-html5.btn span, + .btn-openid.btn-sm span, .btn-group-sm > .btn-openid.btn span, + .btn-stack-overflow.btn-sm span, .btn-group-sm > .btn-stack-overflow.btn span, + .btn-youtube.btn-sm span, .btn-group-sm > .btn-youtube.btn span, + .btn-css3.btn-sm span, .btn-group-sm > .btn-css3.btn span, + .btn-dribbble.btn-sm span, .btn-group-sm > .btn-dribbble.btn span, + .btn-google-plus.btn-sm span, .btn-group-sm > .btn-google-plus.btn span, + .btn-instagram.btn-sm span, .btn-group-sm > .btn-instagram.btn span, + .btn-pinterest.btn-sm span, .btn-group-sm > .btn-pinterest.btn span, + .btn-vk.btn-sm span, .btn-group-sm > .btn-vk.btn span, + .btn-yahoo.btn-sm span, .btn-group-sm > .btn-yahoo.btn span, + .btn-behance.btn-sm span, .btn-group-sm > .btn-behance.btn span, + .btn-dropbox.btn-sm span, .btn-group-sm > .btn-dropbox.btn span, + .btn-reddit.btn-sm span, .btn-group-sm > .btn-reddit.btn span, + .btn-spotify.btn-sm span, .btn-group-sm > .btn-spotify.btn span, + .btn-vine.btn-sm span, .btn-group-sm > .btn-vine.btn span, + .btn-foursquare.btn-sm span, .btn-group-sm > .btn-foursquare.btn span, + .btn-vimeo.btn-sm span, .btn-group-sm > .btn-vimeo.btn span { + margin-left: 1.8125rem; } + .btn-facebook.btn-sm.icon, .btn-group-sm > .btn-facebook.icon.btn, + .btn-twitter.btn-sm.icon, + .btn-group-sm > .btn-twitter.icon.btn, + .btn-linkedin.btn-sm.icon, + .btn-group-sm > .btn-linkedin.icon.btn, + .btn-flickr.btn-sm.icon, + .btn-group-sm > .btn-flickr.icon.btn, + .btn-tumblr.btn-sm.icon, + .btn-group-sm > .btn-tumblr.icon.btn, + .btn-xing.btn-sm.icon, + .btn-group-sm > .btn-xing.icon.btn, + .btn-github.btn-sm.icon, + .btn-group-sm > .btn-github.icon.btn, + .btn-html5.btn-sm.icon, + .btn-group-sm > .btn-html5.icon.btn, + .btn-openid.btn-sm.icon, + .btn-group-sm > .btn-openid.icon.btn, + .btn-stack-overflow.btn-sm.icon, + .btn-group-sm > .btn-stack-overflow.icon.btn, + .btn-youtube.btn-sm.icon, + .btn-group-sm > .btn-youtube.icon.btn, + .btn-css3.btn-sm.icon, + .btn-group-sm > .btn-css3.icon.btn, + .btn-dribbble.btn-sm.icon, + .btn-group-sm > .btn-dribbble.icon.btn, + .btn-google-plus.btn-sm.icon, + .btn-group-sm > .btn-google-plus.icon.btn, + .btn-instagram.btn-sm.icon, + .btn-group-sm > .btn-instagram.icon.btn, + .btn-pinterest.btn-sm.icon, + .btn-group-sm > .btn-pinterest.icon.btn, + .btn-vk.btn-sm.icon, + .btn-group-sm > .btn-vk.icon.btn, + .btn-yahoo.btn-sm.icon, + .btn-group-sm > .btn-yahoo.icon.btn, + .btn-behance.btn-sm.icon, + .btn-group-sm > .btn-behance.icon.btn, + .btn-dropbox.btn-sm.icon, + .btn-group-sm > .btn-dropbox.icon.btn, + .btn-reddit.btn-sm.icon, + .btn-group-sm > .btn-reddit.icon.btn, + .btn-spotify.btn-sm.icon, + .btn-group-sm > .btn-spotify.icon.btn, + .btn-vine.btn-sm.icon, + .btn-group-sm > .btn-vine.icon.btn, + .btn-foursquare.btn-sm.icon, + .btn-group-sm > .btn-foursquare.icon.btn, + .btn-vimeo.btn-sm.icon, + .btn-group-sm > .btn-vimeo.icon.btn { + width: 1.8125rem; + height: 1.8125rem; } + +.btn-facebook { + background: #3b5998; } + .btn-facebook::before { + content: "\f09a"; + background: #344e86; } + .btn-facebook:hover { + background: #344e86; } + .btn-facebook:hover::before { + background: #2d4373; } + +.btn-twitter { + background: #00aced; } + .btn-twitter::before { + content: "\f099"; + background: #0099d4; } + .btn-twitter:hover { + background: #0099d4; } + .btn-twitter:hover::before { + background: #0087ba; } + +.btn-linkedin { + background: #4875b4; } + .btn-linkedin::before { + content: "\f0e1"; + background: #4169a2; } + .btn-linkedin:hover { + background: #4169a2; } + .btn-linkedin:hover::before { + background: #395d90; } + +.btn-flickr { + background: #ff0084; } + .btn-flickr::before { + content: "\f16e"; + background: #e60077; } + .btn-flickr:hover { + background: #e60077; } + .btn-flickr:hover::before { + background: #cc006a; } + +.btn-tumblr { + background: #32506d; } + .btn-tumblr::before { + content: "\f173"; + background: #2a435c; } + .btn-tumblr:hover { + background: #2a435c; } + .btn-tumblr:hover::before { + background: #22364a; } + +.btn-xing { + background: #026466; } + .btn-xing::before { + content: "\f168"; + background: #024b4d; } + .btn-xing:hover { + background: #024b4d; } + .btn-xing:hover::before { + background: #013334; } + +.btn-github { + background: #4183c4; } + .btn-github::before { + content: "\f09b"; + background: #3876b4; } + .btn-github:hover { + background: #3876b4; } + .btn-github:hover::before { + background: #3269a0; } + +.btn-html5 { + background: #e34f26; } + .btn-html5::before { + content: "\f13b"; + background: #d4431b; } + .btn-html5:hover { + background: #d4431b; } + .btn-html5:hover::before { + background: #be3c18; } + +.btn-openid { + background: #f78c40; } + .btn-openid::before { + content: "\f19b"; + background: #f67d28; } + .btn-openid:hover { + background: #f67d28; } + .btn-openid:hover::before { + background: #f56f0f; } + +.btn-stack-overflow { + background: #fe7a15; } + .btn-stack-overflow::before { + content: "\f16c"; + background: #f86c01; } + .btn-stack-overflow:hover { + background: #f86c01; } + .btn-stack-overflow:hover::before { + background: #df6101; } + +.btn-css3 { + background: #0170ba; } + .btn-css3::before { + content: "\f13c"; + background: #0161a1; } + .btn-css3:hover { + background: #0161a1; } + .btn-css3:hover::before { + background: #015187; } + +.btn-youtube { + background: #b00; } + .btn-youtube::before { + content: "\f167"; + background: #a20000; } + .btn-youtube:hover { + background: #a20000; } + .btn-youtube:hover::before { + background: #880000; } + +.btn-dribbble { + background: #ea4c89; } + .btn-dribbble::before { + content: "\f17d"; + background: #e7357a; } + .btn-dribbble:hover { + background: #e7357a; } + .btn-dribbble:hover::before { + background: #e51e6b; } + +.btn-google-plus { + background: #bb4b39; } + .btn-google-plus::before { + content: "\f0d5"; + background: #a74333; } + .btn-google-plus:hover { + background: #a74333; } + .btn-google-plus:hover::before { + background: #943b2d; } + +.btn-instagram { + background: #517fa4; } + .btn-instagram::before { + content: "\f16d"; + background: #497293; } + .btn-instagram:hover { + background: #497293; } + .btn-instagram:hover::before { + background: #406582; } + +.btn-pinterest { + background: #cb2027; } + .btn-pinterest::before { + content: "\f0d2"; + background: #b51d23; } + .btn-pinterest:hover { + background: #b51d23; } + .btn-pinterest:hover::before { + background: #9f191f; } + +.btn-vk { + background: #45668e; } + .btn-vk::before { + content: "\f189"; + background: #3d5a7d; } + .btn-vk:hover { + background: #3d5a7d; } + .btn-vk:hover::before { + background: #344d6c; } + +.btn-yahoo { + background: #400191; } + .btn-yahoo::before { + content: "\f19e"; + background: #350178; } + .btn-yahoo:hover { + background: #350178; } + .btn-yahoo:hover::before { + background: #2a015e; } + +.btn-behance { + background: #1769ff; } + .btn-behance::before { + content: "\f1b4"; + background: #0059fd; } + .btn-behance:hover { + background: #0059fd; } + .btn-behance:hover::before { + background: #0050e3; } + +.btn-dropbox { + background: #007ee5; } + .btn-dropbox::before { + content: "\f16b"; + background: #0070cc; } + .btn-dropbox:hover { + background: #0070cc; } + .btn-dropbox:hover::before { + background: #0062b2; } + +.btn-reddit { + background: #ff4500; } + .btn-reddit::before { + content: "\f1a1"; + background: #e63e00; } + .btn-reddit:hover { + background: #e63e00; } + .btn-reddit:hover::before { + background: #cc3700; } + +.btn-spotify { + background: #7ab800; } + .btn-spotify::before { + content: "\f1bc"; + background: #699f00; } + .btn-spotify:hover { + background: #699f00; } + .btn-spotify:hover::before { + background: #588500; } + +.btn-vine { + background: #00bf8f; } + .btn-vine::before { + content: "\f1ca"; + background: #00a67c; } + .btn-vine:hover { + background: #00a67c; } + .btn-vine:hover::before { + background: #008c69; } + +.btn-foursquare { + background: #1073af; } + .btn-foursquare::before { + content: "\f180"; + background: #0e6498; } + .btn-foursquare:hover { + background: #0e6498; } + .btn-foursquare:hover::before { + background: #0c5480; } + +.btn-vimeo { + background: #aad450; } + .btn-vimeo::before { + content: "\f194"; + background: #a0cf3c; } + .btn-vimeo:hover { + background: #a0cf3c; } + .btn-vimeo:hover::before { + background: #93c130; } + +hr.transparent { + border-top: 1px solid transparent; } + +.d-table { + display: table; } + +.d-100vh-va-middle { + height: 100vh; + display: table-cell; + vertical-align: middle; } + +.breadcrumb-menu { + position: absolute; + top: 0; + right: 1rem; } + .breadcrumb-menu::before { + display: none; } + .breadcrumb-menu .btn { + padding-top: 0.75rem; + padding-bottom: 0.75rem; } + .breadcrumb-menu .btn.btn-secondary { + color: #b0bec5; + border: 0; } + .breadcrumb-menu .btn.btn-secondary:hover, .breadcrumb-menu .btn.btn-secondary.active { + color: #263238; + background: transparent; } + .breadcrumb-menu .open .btn.btn-secondary { + color: #263238; + background: transparent; } + .breadcrumb-menu .dropdown-menu { + min-width: 180px; + line-height: 1.5; } + +.img-avatar { + border-radius: 50em; } + +.avatar { + position: relative; + display: inline-block; + width: 36px; } + .avatar .img-avatar { + width: 36px; + height: 36px; } + .avatar .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 10px; + height: 10px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatar.avatar-xs { + position: relative; + display: inline-block; + width: 20px; } + .avatar.avatar-xs .img-avatar { + width: 20px; + height: 20px; } + .avatar.avatar-xs .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 8px; + height: 8px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatar.avatar-sm { + position: relative; + display: inline-block; + width: 24px; } + .avatar.avatar-sm .img-avatar { + width: 24px; + height: 24px; } + .avatar.avatar-sm .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 8px; + height: 8px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatar.avatar-lg { + position: relative; + display: inline-block; + width: 72px; } + .avatar.avatar-lg .img-avatar { + width: 72px; + height: 72px; } + .avatar.avatar-lg .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 12px; + height: 12px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatars-stack .avatar.avatar-xs { + margin-right: -10px; } + +.avatars-stack .avatar { + margin-right: -15px; + transition-duration: 0.25s, 0.25s; + transition-property: margin-left, margin-right; } + .avatars-stack .avatar:hover { + margin-right: 0 !important; } + +.callout { + position: relative; + padding: 0 1rem; + margin: 1rem 0; + border: 0 solid #cfd8dc; + border-left-width: .25rem; } + .callout .chart-wrapper { + position: absolute; + top: 18px; + left: 45%; + float: right; + width: 100px; } + +.callout-bordered { + border: 1px solid #cfd8dc; + border-left-width: .25rem; } + +.callout code { + border-radius: .25rem; } + +.callout h4 { + margin-top: 0; + margin-bottom: .25rem; } + +.callout p:last-child { + margin-bottom: 0; } + +.callout + .callout { + margin-top: -0.25rem; } + +.callout-default { + border-left-color: #b0bec5; } + .callout-default h4 { + color: #b0bec5; } + +.callout-primary { + border-left-color: #20a8d8; } + .callout-primary h4 { + color: #20a8d8; } + +.callout-info { + border-left-color: #63c2de; } + .callout-info h4 { + color: #63c2de; } + +.callout-warning { + border-left-color: #f8cb00; } + .callout-warning h4 { + color: #f8cb00; } + +.callout-danger { + border-left-color: #f86c6b; } + .callout-danger h4 { + color: #f86c6b; } + +.callout-success { + border-left-color: #4dbd74; } + .callout-success h4 { + color: #4dbd74; } + +.switch.switch-default { + position: relative; + display: inline-block; + vertical-align: top; + width: 40px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-default .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-default .switch-label { + position: relative; + display: block; + height: inherit; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #fff; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-default .switch-input:checked ~ .switch-label::before { + opacity: 0; } + .switch.switch-default .switch-input:checked ~ .switch-label::after { + opacity: 1; } + .switch.switch-default .switch-handle { + position: absolute; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; } + .switch.switch-default .switch-input:checked ~ .switch-handle { + left: 18px; } + .switch.switch-default.switch-lg { + width: 48px; + height: 28px; } + .switch.switch-default.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-default.switch-lg .switch-handle { + width: 24px; + height: 24px; } + .switch.switch-default.switch-lg .switch-input:checked ~ .switch-handle { + left: 22px; } + .switch.switch-default.switch-sm { + width: 32px; + height: 20px; } + .switch.switch-default.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-default.switch-sm .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-default.switch-sm .switch-input:checked ~ .switch-handle { + left: 14px; } + .switch.switch-default.switch-xs { + width: 24px; + height: 16px; } + .switch.switch-default.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-default.switch-xs .switch-handle { + width: 12px; + height: 12px; } + .switch.switch-default.switch-xs .switch-input:checked ~ .switch-handle { + left: 10px; } + +.switch.switch-text { + position: relative; + display: inline-block; + vertical-align: top; + width: 48px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-text .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-text .switch-label { + position: relative; + display: block; + height: inherit; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #fff; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-text .switch-label::before, + .switch.switch-text .switch-label::after { + position: absolute; + top: 50%; + width: 50%; + margin-top: -.5em; + line-height: 1; + text-align: center; + -moz-transition: inherit; + -o-transition: inherit; + -webkit-transition: inherit; + transition: inherit; } + .switch.switch-text .switch-label::before { + right: 1px; + color: #cfd8dc; + content: attr(data-off); } + .switch.switch-text .switch-label::after { + left: 1px; + color: #fff; + content: attr(data-on); + opacity: 0; } + .switch.switch-text .switch-input:checked ~ .switch-label::before { + opacity: 0; } + .switch.switch-text .switch-input:checked ~ .switch-label::after { + opacity: 1; } + .switch.switch-text .switch-handle { + position: absolute; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; } + .switch.switch-text .switch-input:checked ~ .switch-handle { + left: 26px; } + .switch.switch-text.switch-lg { + width: 56px; + height: 28px; } + .switch.switch-text.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-text.switch-lg .switch-handle { + width: 24px; + height: 24px; } + .switch.switch-text.switch-lg .switch-input:checked ~ .switch-handle { + left: 30px; } + .switch.switch-text.switch-sm { + width: 40px; + height: 20px; } + .switch.switch-text.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-text.switch-sm .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-text.switch-sm .switch-input:checked ~ .switch-handle { + left: 22px; } + .switch.switch-text.switch-xs { + width: 32px; + height: 16px; } + .switch.switch-text.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-text.switch-xs .switch-handle { + width: 12px; + height: 12px; } + .switch.switch-text.switch-xs .switch-input:checked ~ .switch-handle { + left: 18px; } + +.switch.switch-icon { + position: relative; + display: inline-block; + vertical-align: top; + width: 48px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-icon .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-icon .switch-label { + position: relative; + display: block; + height: inherit; + font-family: FontAwesome; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #fff; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-icon .switch-label::before, + .switch.switch-icon .switch-label::after { + position: absolute; + top: 50%; + width: 50%; + margin-top: -.5em; + line-height: 1; + text-align: center; + -moz-transition: inherit; + -o-transition: inherit; + -webkit-transition: inherit; + transition: inherit; } + .switch.switch-icon .switch-label::before { + right: 1px; + color: #cfd8dc; + content: attr(data-off); } + .switch.switch-icon .switch-label::after { + left: 1px; + color: #fff; + content: attr(data-on); + opacity: 0; } + .switch.switch-icon .switch-input:checked ~ .switch-label::before { + opacity: 0; } + .switch.switch-icon .switch-input:checked ~ .switch-label::after { + opacity: 1; } + .switch.switch-icon .switch-handle { + position: absolute; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; } + .switch.switch-icon .switch-input:checked ~ .switch-handle { + left: 26px; } + .switch.switch-icon.switch-lg { + width: 56px; + height: 28px; } + .switch.switch-icon.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-icon.switch-lg .switch-handle { + width: 24px; + height: 24px; } + .switch.switch-icon.switch-lg .switch-input:checked ~ .switch-handle { + left: 30px; } + .switch.switch-icon.switch-sm { + width: 40px; + height: 20px; } + .switch.switch-icon.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-icon.switch-sm .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-icon.switch-sm .switch-input:checked ~ .switch-handle { + left: 22px; } + .switch.switch-icon.switch-xs { + width: 32px; + height: 16px; } + .switch.switch-icon.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-icon.switch-xs .switch-handle { + width: 12px; + height: 12px; } + .switch.switch-icon.switch-xs .switch-input:checked ~ .switch-handle { + left: 18px; } + +.switch.switch-3d { + position: relative; + display: inline-block; + vertical-align: top; + width: 40px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-3d .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-3d .switch-label { + position: relative; + display: block; + height: inherit; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #eceff1; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-3d .switch-input:checked ~ .switch-label::before { + opacity: 0; } + .switch.switch-3d .switch-input:checked ~ .switch-label::after { + opacity: 1; } + .switch.switch-3d .switch-handle { + position: absolute; + top: 0; + left: 0; + width: 24px; + height: 24px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; + border: 0; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); } + .switch.switch-3d .switch-input:checked ~ .switch-handle { + left: 16px; } + .switch.switch-3d.switch-lg { + width: 48px; + height: 28px; } + .switch.switch-3d.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-3d.switch-lg .switch-handle { + width: 28px; + height: 28px; } + .switch.switch-3d.switch-lg .switch-input:checked ~ .switch-handle { + left: 20px; } + .switch.switch-3d.switch-sm { + width: 32px; + height: 20px; } + .switch.switch-3d.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-3d.switch-sm .switch-handle { + width: 20px; + height: 20px; } + .switch.switch-3d.switch-sm .switch-input:checked ~ .switch-handle { + left: 12px; } + .switch.switch-3d.switch-xs { + width: 24px; + height: 16px; } + .switch.switch-3d.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-3d.switch-xs .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-3d.switch-xs .switch-input:checked ~ .switch-handle { + left: 8px; } + +.switch-pill .switch-label, .switch.switch-3d .switch-label, +.switch-pill .switch-handle, .switch.switch-3d .switch-handle { + border-radius: 50em !important; } + +.switch-pill .switch-label::before, .switch.switch-3d .switch-label::before { + right: 2px !important; } + +.switch-pill .switch-label::after, .switch.switch-3d .switch-label::after { + left: 2px !important; } + +.switch-primary > .switch-input:checked ~ .switch-label { + background: #20a8d8 !important; + border-color: #1985ac; } + +.switch-primary > .switch-input:checked ~ .switch-handle { + border-color: #1985ac; } + +.switch-primary-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #20a8d8; } + .switch-primary-outline > .switch-input:checked ~ .switch-label::after { + color: #20a8d8; } + +.switch-primary-outline > .switch-input:checked ~ .switch-handle { + border-color: #20a8d8; } + +.switch-primary-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #20a8d8; } + .switch-primary-outline-alt > .switch-input:checked ~ .switch-label::after { + color: #20a8d8; } + +.switch-primary-outline-alt > .switch-input:checked ~ .switch-handle { + background: #20a8d8 !important; + border-color: #20a8d8; } + +.switch-secondary > .switch-input:checked ~ .switch-label { + background: #cfd8dc !important; + border-color: #b2c0c6; } + +.switch-secondary > .switch-input:checked ~ .switch-handle { + border-color: #b2c0c6; } + +.switch-secondary-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #cfd8dc; } + .switch-secondary-outline > .switch-input:checked ~ .switch-label::after { + color: #cfd8dc; } + +.switch-secondary-outline > .switch-input:checked ~ .switch-handle { + border-color: #cfd8dc; } + +.switch-secondary-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #cfd8dc; } + .switch-secondary-outline-alt > .switch-input:checked ~ .switch-label::after { + color: #cfd8dc; } + +.switch-secondary-outline-alt > .switch-input:checked ~ .switch-handle { + background: #cfd8dc !important; + border-color: #cfd8dc; } + +.switch-success > .switch-input:checked ~ .switch-label { + background: #4dbd74 !important; + border-color: #3a9d5d; } + +.switch-success > .switch-input:checked ~ .switch-handle { + border-color: #3a9d5d; } + +.switch-success-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #4dbd74; } + .switch-success-outline > .switch-input:checked ~ .switch-label::after { + color: #4dbd74; } + +.switch-success-outline > .switch-input:checked ~ .switch-handle { + border-color: #4dbd74; } + +.switch-success-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #4dbd74; } + .switch-success-outline-alt > .switch-input:checked ~ .switch-label::after { + color: #4dbd74; } + +.switch-success-outline-alt > .switch-input:checked ~ .switch-handle { + background: #4dbd74 !important; + border-color: #4dbd74; } + +.switch-info > .switch-input:checked ~ .switch-label { + background: #63c2de !important; + border-color: #39b2d5; } + +.switch-info > .switch-input:checked ~ .switch-handle { + border-color: #39b2d5; } + +.switch-info-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #63c2de; } + .switch-info-outline > .switch-input:checked ~ .switch-label::after { + color: #63c2de; } + +.switch-info-outline > .switch-input:checked ~ .switch-handle { + border-color: #63c2de; } + +.switch-info-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #63c2de; } + .switch-info-outline-alt > .switch-input:checked ~ .switch-label::after { + color: #63c2de; } + +.switch-info-outline-alt > .switch-input:checked ~ .switch-handle { + background: #63c2de !important; + border-color: #63c2de; } + +.switch-warning > .switch-input:checked ~ .switch-label { + background: #f8cb00 !important; + border-color: #c5a100; } + +.switch-warning > .switch-input:checked ~ .switch-handle { + border-color: #c5a100; } + +.switch-warning-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f8cb00; } + .switch-warning-outline > .switch-input:checked ~ .switch-label::after { + color: #f8cb00; } + +.switch-warning-outline > .switch-input:checked ~ .switch-handle { + border-color: #f8cb00; } + +.switch-warning-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f8cb00; } + .switch-warning-outline-alt > .switch-input:checked ~ .switch-label::after { + color: #f8cb00; } + +.switch-warning-outline-alt > .switch-input:checked ~ .switch-handle { + background: #f8cb00 !important; + border-color: #f8cb00; } + +.switch-danger > .switch-input:checked ~ .switch-label { + background: #f86c6b !important; + border-color: #f63c3a; } + +.switch-danger > .switch-input:checked ~ .switch-handle { + border-color: #f63c3a; } + +.switch-danger-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f86c6b; } + .switch-danger-outline > .switch-input:checked ~ .switch-label::after { + color: #f86c6b; } + +.switch-danger-outline > .switch-input:checked ~ .switch-handle { + border-color: #f86c6b; } + +.switch-danger-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f86c6b; } + .switch-danger-outline-alt > .switch-input:checked ~ .switch-label::after { + color: #f86c6b; } + +.switch-danger-outline-alt > .switch-input:checked ~ .switch-handle { + background: #f86c6b !important; + border-color: #f86c6b; } + +canvas.chart { + display: inline-block !important; } + +base-chart.chart { + display: block !important; } + +.b-a-0 { + border: 0 !important; } + +.b-t-0 { + border-top: 0 !important; } + +.b-r-0 { + border-right: 0 !important; } + +.b-b-0 { + border-bottom: 0 !important; } + +.b-l-0 { + border-left: 0 !important; } + +.b-a-1 { + border: 1px solid #cfd8dc !important; } + +.b-t-1 { + border-top: 1px solid #cfd8dc !important; } + +.b-r-1 { + border-right: 1px solid #cfd8dc !important; } + +.b-b-1 { + border-bottom: 1px solid #cfd8dc !important; } + +.b-l-1 { + border-left: 1px solid #cfd8dc !important; } + +.b-a-2 { + border: 2px solid #cfd8dc !important; } + +.b-t-2 { + border-top: 2px solid #cfd8dc !important; } + +.b-r-2 { + border-right: 2px solid #cfd8dc !important; } + +.b-b-2 { + border-bottom: 2px solid #cfd8dc !important; } + +.b-l-2 { + border-left: 2px solid #cfd8dc !important; } + +.label-pill { + border-radius: 1rem !important; } + +@media (max-width: 991px) { + body { + padding: 0 !important; + margin: 0 !important; } + header.navbar { + position: fixed !important; + top: 0 !important; + right: 0 !important; + left: 0 !important; } + header.navbar .navbar-toggler, header.navbar .aside-toggle { + position: absolute; + top: 0; + left: 0; + width: 70px; + height: inherit; } + header.navbar .navbar-toggler, header.navbar .aside-toggle { + color: rgba(0, 0, 0, 0.3); } + header.navbar .navbar-brand { + width: 100% !important; + margin: 0 auto !important; } + .sidebar { + width: 200px !important; + margin-left: -200px; } + .sidebar ul.nav { + width: 200px !important; } + .sidebar .sidebar-footer { + margin-left: -200px; } + .breadcrumb-menu { + display: none; } + .main { + width: 100% !important; + padding: 0 !important; + padding-top: 55px !important; + margin: 0 !important; + overflow: hidden; } + .aside-menu { + right: -250px !important; } + .footer { + display: none; } + html { + max-width: 100%; + overflow-x: hidden; } + body.mobile-open { + max-width: 100%; + overflow-x: hidden; } + body.mobile-open .sidebar { + margin-left: 0; } + body.mobile-open .sidebar .sidebar-footer { + margin-left: 0; } + body.mobile-open .main { + margin-left: 200px !important; } } diff --git a/admin/src/assets/fonts/FontAwesome.otf b/admin/src/assets/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..d4de13e832d567ff29c5b4e9561b8c370348cc9c GIT binary patch literal 124988 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ÐT?>-5aYhU|+1c>&YMpPK5x#-mbV zhqm2t2$w17dyG~W6{Cd&8!1QqcOdwSXaZn1En4FY^m?5LZnu&vEL#%oV8ylCNk$wG-tUMvMWHJdfs4~(sGWc6; zrYSZ$RcN7uUXjn3^t6n$4D}s0BRw`&5W5|diXmrWlj7oH)Z4sl#8X(>_=%zd6b6C1mM5*VpF>x6gfxu>sJ2eX*Pcif{rdZuM>`U#`pAPW|Aq%nmU`4I73BcA?o80C13 z@xO{Z`j$i-BUz1P&;>FGGtYswFc`cC${HKx$(Ii7Wb=pI_rV9Z#`q`t?Btb8t*E~& zE;~0d56Z?lrP)GmMMnK$l{l|~yP6bI2lz^e*PH}_ya(>1KT#y-&@Jvhyq}j##B%lQ zc_qbeLLp%ozoxH(_o-_OvWiPWa#j`z<9DxW_)&Eze_vfCUr}=~=Y;yk$)LyzY5L6M zd#-~bm0x&tXi#}X%PtJ6?s=bZ8>_;z;>k^+t62A(UAuEj3@Ij_Dr5Q*JxY|Z;(qRQe%{^DHRTwO3YwsCQ5Xlbdh$Jfn80CS|7 z)9TzYPoa7?)you+A0bCh5xK>2yVXaVvx*yq{638Dw#8xd)iakDHf|G?CGw320x#cJ zks;sxNo+113)r}auiKcv*bxDchQmE;B;v85S*u!l4{(IsCYGBsZ?8qsvwb!;! z13#1=?A|)cF4l${K$>@q$usl%m%KP^|&Wk>8W^*V2?L5d1RQb1n&FW0M%iEJ!IuO{(|0(Ue zvOaWRe7LtolS*c%RlF^fJ?J${BxtpSPwqiVVewI(RNfa&pm!LnFhj&zdGa#Iq+#Q~ zPfWIB0l+ppP0?VzW9{9trK!#Tx<+~bSkR&aE7VYpU$JQO>L6hzkj3=UARIFvhxb)H zezSn3@7);wGp{^JoHZNa6(qgQ5UeS3UL!>iphxK z=?5%AUZRDWvIW$^=W~Q_I>1JU04IPKA?o!b`EdIJex?jCY!eSmI#JwIkWMnhsAbm= zfKPq{KINbq-9)#7b+{J^I7tw5*rRPE2T!wrQ?1bO|Kn{Iki&BY%C`u-DqRR??h7c| zAgPS~$WTaU^&?MFzI$5bNp0H(a|%Z{0SX!l`?Kw|2V@|xysst20C$cj6G)F+qiG*p zuU7n$e#nU~AlbTPaUoF}G*r_rK{v^P&qz-*>LGZYXpGO;bj%Lu;gs-5`KMsj>f?+c zv460Oui!6f)gBAE zlxvW1`ODsf*8mFzF(rjPvIqbc zxCiN`BQ8?@_6~HtLmLz{5ns)UtpFQ10pU9C0ZbEwx%WY=ya*xRq zRdf<6tq+;};Ktr_ASg#19sw!rT{1vkexwBOjYng@`HX+l>kYCEh@$qJ$53Cne{^8D zuNoRje^+c1z!%n^mXY5|v)VZz*xOxj+vw~vP(8r8rGAr8;}%fljNKNSNR7!OFoCEl<_YPGF_}pFJmB+?oXM`qJPNY8YzUnz+jd zF|d92rz?@+jG%b1*w9uBZkxr)(#lv`D-?)GmIQgA?*sdriZiDIS^-_=6+hvX5Clra zMov6vX=bF=pYU$Es}M!-CBm9O`yl0tm_KF%WOHY;JHp%pO9Y4-d}!HX*#h)yxK#a? zA1yyhbtH}wN0D%BVzXYAW zpd`OMtHORP84|F;d#jflSXdnA4+t8f20UvRKzW-%`#c?O?rP%q17=05?+7&ZkLMPi z+*0H2On{GJ4RNL;exVbO2#zHS3VeQ)CuPJ`r+4VB^>$zsFK}r&VlW55QSy|5}hBMi`$zY;-w2vuifglCczM_j~9v;9f~*; zCMR9o2|J(mQoS&D13^{|`Bu|rB8wEA!5M4A-NiegA@!0kpVp%VwY{t1Ew(J&;_v?p zW!$PFTl)g~h*e(1=64A}^=J!PiUaVCzvAJ}m72J>Fl}r(Kwb&tTi{VUTv9lfO(%)Y z5x^iDYl=otO28w*KN$%Bm4V=@u$Z7B_@5%()kx+7$+ZRA2MtDV62@qeLU~(jP6Z-` zJXQdmRH{MWvrTjCur}zRfKZ4uW}|1#qEl+}H4CLNr0PrtFv{PxjhiZ+vzN)q5nDQ* z4S%}+=Q&rO5j#6ju$l3SVG8k2W<2u$x#7EW=Yfe-C?9LdC+K5t;~H#%qFzVV(d1e4 zcI{Zg(_*m?QxF-H6{yAp!KeX(@&Q!VEwd%E-M4J?I4xkE^O^ej(~H3_fJ~Gc5{O$n zk$Be%2u&_7G8F){^-6TVGLZRfJfb}ihl8UC0-ux7L4Kp*0nc%Q;50@akIASy;HmIB z6BF)*(kyv9LNxEfIXuoy|T1c-8P7=tqkx^ z7jA%Ig9eHstP_DgJX9N$=A8j0RaK=Wl>+>NRV9Hwg4n0so%=EV%aHH+-r{P8j0&cE z9@9V7^iR5HFdY>v^s%gFLMFz3Fc zZ|hN^&4bNzGA>)J5@EIDj^a=rQ#!H_!3_sMgZ4meSz}==tY!6*^rcytM%qb-u3aM? zN|vy69|k7}=xXv%Ev^7!Lf=WWg5(ImfMQv7^U{a|#I zhlV7@gbQ2$0_x-Xzf_ajlewyvBUL{>qMPSb@}_{YrT(gr(10Lb*~4)DQiYi7SyG#pb1_{mVVA7bDtZx!fva@;Ru=fO6)@h`+?MdQWL;O zEbv;JAVC0(%E*XA-{1P?;Oa3M0(`?=HQ*+(A+AM&m|{CA#-k%$@PE>M z-Mo4Xgg`b(>AJj42N=-@h@^_3?=Kk7M+ODNght5ME}(})-oBC-iw-XoLUIF*;YIQ< z?uDa_r7BXAL*BmxeeQzN%)%V`;Y;LV0r^u+{v?M(*L@`vM3!iCLgkmn=Av6HQ4uGM zf*nLF_=FKJ#iGISZv!p~SLlzi{eQll+x*-5aHI-RQNFZ_w`>^%*`ZTEAXu7I$S}a} z3fbmCf+h9`01(25)J%fTg1B3{cO(uRS zWpSM+1?=^s(lMXPNDtA1ZtRm60EE3chiKtXKA|?kn{yaPzxV_^y)|i`Uo|pAiCZ7$5_}G8qBZ6BdIJq#+}uj+koilGim3*2nIk3zh7_EF3m+%069G z)21YffzJSuU||Abl@A;70GK(hD!9zoz@tIE!=xEgO_{11-wJO%PdAe`CM6xz3#z)E z6<#4>F%b|O=*{Ltg&9NC(kh$*M;t9sxztKqymtC}#-+rj#0y|2`Zp5<4QYRbr6;NA z8v2Csi4XGMq4Fv6uY|P0CMq&X5Lk=t*Z@xE<@9H4NQ#YBc~<(?7UmhVGkNh7HZn6m zhFsNP4c!!M^#*NbUTnU)uA;IQY>-J%hF(s7WhxCtWmT$lXhZ^!v5|-juB_5fTvn}m zxf5JPmLV1dQG5l8*kkk}y$tf8t*IR7ilDCE zC=)|1px1L@#;{^n(SZ}+6F*{-^$`3{ji+|)*32ujz*(#;UFlaqtIriTOQkmG?1`5J zcv~ogtDv1^hyjYliF5<+6*#t4WK{ImAy<7a zS-k0Ri`=51pIUav+fFRuJW2Phq}zJ(;mL>fPjjDx(yc!Yz?7pOt^7OhS>w-VNSF2G zBP8*ZtXSyC#)c71+g1qnNb#{s9|zf12kT(&2TXIOAEx8MWkrP@lR*r27vLqKnyS^% zW0}5g0{ujQ*3d8q7DldJl(d=GpHj{l5TD3%n4|F+gC|0 z;-2JVmqC9EPyQw!w~(G{G+XvQ5UR$A>rFayojOw66QI#i`W)EHZPrt}RP@)BnQ8wm z%FWeLJ2e7q?YAtXg9X9@G}QcpbSWd&YV=hftm*ku`0H=N9wU8HrMvPO+2mmTM^GoS z6V{A%zrFjvoEXsu{XoWZKK}kb{HLsse_54a-YKgtE34xFV5`dfA;#F)zLSjAh}C4Y zf*!I|OUu*VE>FWUK&PXjqMJy)0Gq>DY7Cvz!e<^xYid%FGYAOO(KFNlQI%;laS`9V zYJT}#HNp`;!e_8ws&9s$Kzq*p47@y08$#4EVn%lY0{jDug3d*lpRdq0F%V40vWaAX z8`3-WpKC=D}ZQpY3W9gChf#e9&Ho}1! zCwq=$Uy^lL1mlLi1)@q1G#=JqKJIJPvGl+GC~r=)vZ~y{y2TOyruIKeH91_KN5{4|z@kQxA2ei4 z!y)`3#}x3XeFxTCtUAzH^c;7$0dy|1MkwA9nUth~qb#djzH#+6+!fg?#VZBrK8b52 zn>4O>SsFz06g2<;`^WP8L=I7bfG6UwBPRX5P;p>%z{e4~WWBJ(5$+?gJNMIHrPt0M z3<^BSdoN)U*}VY^vbL$cX2h)*rXl{X6CJMt+j-EOg{w2`ocY?Xm{fLS$;Ie{>Y5+Z z4hg@|BG5<-=@@wSa$r>$8{KkX!pN=8<`<%#L*oRa3`SP?#c*;Up6LJlO51t!3nUuU zk!Yawi`|2e>_5NQGZ1zV^KtINnxl(&%jfLk)oT_DbaZ<>87;f8`siY5+oCnt=FoOb zw)p6pi*Vr&U@sm$dO;de8~}G%7xJmNj9C4O7yq*t7+E+vFt#trSu#Nx>A+;QEktmw zPLD=kMRMo{ZtIr#sI5Y3sU84PP%AA%pPGSTVUIP#Ch(CF5n&;!p!{9MeDy<&+NY?A zD;W#-qr0#w3P?&$Pp+Z%(D?d2cbxTADKZ(9ahb^TJYPy+@f??i6P)5R1)E|rM zd9mne`vDPX#VzPUhoKOw0T=H}SKyKvDRc#9t^$ej1Nc{I-kYvaIv>E47bvtq4fJIQ zr-AB)rFFRi$)glV9U8kUG7@r);JO4M5=qg3dWeb4j?FJnP0$qN$3|xJN@o}>!GCaA zCgpKhhNAQ%e`_)d;KS1(;0l@5m`%THBq{^q253FG4RO8pp$u8l6EceC9LD?w+kRV$ z*?Gp2CQSKB9xHk}P*8@RG9%e-yqA%ZA!LKJuZkrbU;`k1ZE44P9*&W00um)}L1eHg z2qsA_8x$NJ8YwZTnS%XN+)DiI+ng}^jL0sCEtCSyanD9h* zBK^1GS~?Ltt@z)u1nCf%Dtf?rfuG-`KT6#>WyU!NfPpz>?{nkEjk^aezyBXUI7mu0 zd^qlWh3^4`3EMZqKQr&#Juv7gG}wLb-o0_Z{<=|t{FKQv9L(SC;~Euj_x{(eapTAR zh!nvg(k(}0|8-gYuA`el3^Ef)f|D|3@*IiNMR$nU&fV=#LK2LoP zBq?VF%;=LdpfQorrBBw`)5de^yc@b$lOT~t>67H*s5hVhndOC%%j`e+A4vd1J=nsN z8K>h<%l8|}u)4FV3v^1|W+NYXYZYOgFUZS+d~>}Pty#Ee(V9z()Ly>f{y~EC;#I)4 zI?6Z4&?%maRm;dQ&;2pH4pDkqm5Xsh?j|0&{z`oq`o(Zh@FUEHp2h3IWE95JEE)Cs zF&X>L3MdhN;g(1@p#*OsJUVa9fz?{2r`AEi=cXy9VPN+fZH8KxTZ8ae0rI!u6hv(pB4c z*dnUQr$gi@XDRi7I^R^{5iUn5NL>i%3$>nPuiQaAYmsyRW6-RtiI3SWU?^9k4buB% z1=|N_mqeCIW=+^VT@|+PQg&D>1z0L!ri2Ysq7i~-8(u$~&PW7Xh|6U)Tfv2iK~yR_b79VlhY~N zsmpxoprSLxP7~o)`CaVvJ%-K}8(5@BAv_iAT8V0LutwrbuE5m)GD3g`n@x#|5=i$T zeh0F(CeAM)w?qqxDr?%$62kbz_y+G#6KBPC-=Zpb2bY?M&7^yo9kDxu010B)tVm;Q ziq33pd1e=xogbI4&d*QJ&KAs_#V08##*FM7dobuYaz)@UJ>L7&L_wU$!o;?Psm`b< z-mR{w2=*}w#JL^3m*Vt{%F=?WRQrmQ%J3|IxLJ4Fi41${`{OT(Oa%)b?h_s&8xRXW z)C4QqoH+6aJPqaauPr<+^G2uQ7eFg~A!-)}E}OF+asZ?Jw}82X`UfLmlK9I$Q&4}B z!(P(7G1*R65Uj#POp^JohZPck1M}TL+WiQ+n~MtKuofeXr-Il+R5CPg8rY<~6mM(* z#~-Y)L~fMqDE$@C2)^!MeU5wi<&Te>h+JM`+*KN&{(=qE#zbNoEi9p$K@`#0BdO*I z5tazq@mgbqdKMe7DJ4aU%k!8Q8B_a#t@)7oA00UNd@Kryn=cp5e4=CtRfg0kr!6S%IR7 z`lBHKRgvWE9*_r>`jT(uZ+aj?6(P=#XxG*By-5>z+6sh+@^8`%NA44nthgEIdWGCn zoTr+{eR$V-(*h@{;jWXSY4Ak+nfcS+TgPv$`pNyzDEVc~V<$~3X#jHT@5g_iC)JuO zH_1%Asnkf6s0SNdo%HFUM|d>uYsa8M+Mv9D3b8gXTQ#5Epv+;~E!{rglGnM-$1&tL z+P%>Hpkb6JPf=M%wT%v@m0p0`1&7e8KzbLkCl%z{uAgWMNk@aT{{Ttc3t!l>g8=P* zq(H{sXe=hnC{D`2A2Ym#)Dx@(MM*`)P`!m~Zz1vA!>0tN1P7^*_>GNiiUR%!0r(^}n7r zpq^a67=|YOHvOcL4)v${tsn?q>rPYFf?z5Jk%V8n$(LzZAL;@4MY*_(>p_DH1F)o!jESoSsxoRS<=tIrd!DtbZpQK-a;a^KmEkup4z}x*+>H5 z7u+C!RJn)Vs>DNq7n@XhD#-6HVEwKpKdZ?p7_ns9RL3oSlVyz#C$2pn!}H+n^#lzm zEaJ(xDZZ9lw<1YbqSjf?U}>{7nb z7gsW#siry}*|~2m=SevpxaCr1$G7H3R_G+7j@?K~&sLpx#2CpY?(DXR-jZD=-mtA& zQGnGH#o_cb642_nF1* z>$7o`C%9EJGUNHR`!?<0(z5-K&h3*=*|jsIs}FqrAI&ta{QriiW#kUmjb zDLJxx_W%AVjdH+#@thc*KR3mbX@HmlV(3Sd>y;P`QS1$Ryy!{E76JGj&8(3=kG&k~@pzSj~zS^JtkkJZ^{UAK?)wVuV3BZ`&gk_SIRu0X--sUNe5xk@W}Ftra!(bzEjJ8kBb@JJWjP z7TQlk`;9zt-x?=dRFsxp$WQvVdxLuQ!GikgYN>sw2t+&ZfmY~fNBdytNu*n9w9SNH zXBJi%Fc$wy3rHWhI-^O)ZfTrO4J>Am#(oqiI2lO*1%w1800IdZsQXZz2lPk+_1^C? zFk){^jRpqu#8#AONa1zfD?5*I7kvaU%qKEp?CKy!V+SJuRYD)h&PzC`y%JJJCUzh# z6Fl+;@E6K@R|X1qu#2Z!biZw3t!;ZIYiWlhVKQjKlfTFrEl@%d5UTs&48clS?=*Pd zw+2Gg(;r)*)w2Oa*c``cu8K_7b~RabK0bwRqR_;OO#+4^XM`r1(DbGW=z#8p9fCpV zfaW4a%lINoEBw;=ij`=8(>O5)$CMorkrSrzj`H_KB1W3rvvTLY2u|2eBbdb8yySe% z!J_@Oe0%3bR(v5BY7v1Delh;Qij8kfh23s!X%CmVj;jQioZV5Bi zrh9a!ESdC8_dDj_kiRE)|Nh(xg{p_8Nsob6%=7`#HAStp3H1qIuTAzy_1osZE8i#A zYkzEoqLrAkfyWMgeLi0Cc>?J-ezDqNwbzOgZfpL$wva;#t4_xOmB)5|Z5yvxoj|)+ zf9`d;ggc&ptF82q!srF*r@x*|9Wi3U)IozLK73h}UXW49`xYMvIjA|)gl0u$qA{36 zH~Q4M=5e`IHCcN#@R@nB5u}{bePa+*n*5ARcSk!pRAG#@0$qEeK1vsn7+o4(5?-8D zl3IjVkUl&mEG{%ZFh4L?QJPQ~m&HZv1Cl~Q0y6@2!N{SHijRs_q*d#x_o%b7)6%l| zt9iFil-$eOlU5UdAo{f9e&^!kO5a*gn50Y6gr;~UMuY(hjwHgMbX1j| zo1LrA%Pc>5FbDj1P}|K=15b|}i96}vmmfWT@=W&kao1woz3_|78ZEL+& zY~QkN^A?NqIcM|EC+-Y#_w@v^U>k0$!YkD)GsF;PNd7#fBAI;_V}FbnCO=juZuQYLHlwngqdD_0g2NxH7lAq}&8Ud{9bYa!^WYI!Kb! zQD_!$`H>~4U78t)ObM_`CutHYLaKMi`^I~FCI@T}bMT6S(w%8vB#k6^>Ady6#j|d2 zy&46aSQc_SeRY0*>L^2Gc4S6yR-i60Iixf&Gb%w5mzWq4qJDcA0Wm>Qp^%X?nP)P| zBrGQ^Jw72JK^LAG8XguA78M+k6{$-~NQ~Eqys3Vv-3A(fi4y*SnevlOgWTsZ7nHT}^UJ^reYV+1l5+ zjIG?0v)7wzawr^_w-@tqnwSpHf7l3 zt+d;^Td4p}POccKU7Ioivol^vI#(Lt_5A+I%Ml5u{nf>|0;yZ9^)}`LNcJ6%$Y;a!pcVxePLsjjfETiP(eZ#SE`g z%4yx{w9|ki!frsHpjuyDkW-Xh6qO&En+84PvwKb{e7GW_RMn0NJ ztsJSvO4@gBa&uHmR6V$Qrm#{dm`jsODiAyw@Q`S)l99)b1viJaMC2svbU7JqMQ6*- zRFN?bgquyQriuL`#r`Q`|00EzS;YyKTHc}B%XG*wGUzVp_dB4_ra6g*q`YJWsMXU_ zxX_rW$n5Z(i0X*yL_1%LTLtuSOMyIH%r#_4bXM%r+e z$mEABYno1~;r%lj-s&X005o74G!kAwBZ0gSrj3%iz#{s%u}aSRuof98-I^}+t@bUJ z7+-gpOL?nr%(%erAOaMUJFNQ zh(wTKU=gP=0EI16iP*=|k=l2QJI#%THy9E8-%Fv7XOR5D|18BXMRcd_NKjXj9vGp6 zu+3A5Vc!@4+9`+%(}!x}VpEdidB2!2e;>6~=RmSa3tEt?WUaWN(7iFN9z^2v@6{C+ zH%8Q3(k+5FBlHJwO{wVJ6;%X65Wrncw`+SEJ1|^rC+16KP`9$M8$Fl*WiGWiOBZRN zNei#ED>0cxNAjW#xvCVKTnlHF`KvliTP{E5!3yD;6K064aa5@C|A{xU!gLcwF=QGK-LB6;v*S$ z7NF+TM6NP*HIeRzv~W;g{CtB;S24nbJk+XYDP~EoSGlUfWEI9$;HLrEEb!EwD1vnr zxWTyk0~IDxoCF)g|BkzlL7mDJyTYpOy+|ufO;8iOsH{|hqf(}-*|iD<;Qhui;M_W; zW5uonN$+*j11_5Cn>5j`WY=8q#l0g&=5R=0|q6-`2@Zj0U z^ZB1EQ-Ruaa6-c2|9@Q?>AJkTaNWP866UJxnl-pa49tSjz`nai(dLjrkS^A&z7mm+ z$*K|3Lo1CzO$OsKypfh|!im1UdOhahr-as3D!Z@VkRH)eaq09cOlNgpPm_5B=OkTE z=H2xi+M`D|*$=Lzsz(o0AXA|p#IU5g=a_VvV;m*zO^QL`IIvd~nAKOhYIu938R>?| zRYOb$OVrDVS@3hCxpg^ z#>Y#3CyV%a{7z7iG?FH#^*G=44i4*i+VlnwN({X6Fd^8{xc}_PAZxo@+t|oUJ75|c zYwxy6EG)uigqs$Vfe#3aoX!{Lj3e%n9S9~T;hslW$;*WXw!v?&r=CkoicLd0&uDn} zM$57cX=$1K0eyANA$17Zg(B5nSzL0wR6@#SlmApTzx~f5K1)AGQEPa3W zD4NZI$6H6=uZK>qeCOS-{J+-xbmqc6o?Iru^s?Nzl`dlkdJh9T2z?zk9LVIMYBKZ{ zrmw>|-S0_%gF@R(zJBkLJ(KkcIwWtxeA-t{`#zaZhU9UN^w(<6?p3HFC?hxeLcCa2 zIc2WhC=Q&w*@C^yke900JWl#@+f4N;hYi!guqjtXJW04_KU>Pd%K)vA02}J$tVDi4 z*g#)g1|~L^l;O`^P>~lsjW0AmVA=pncPkqV4RssqE|^UYL>Ycn9l) zU*TA!NBWJ_e!iVYJ7P|4{--#+t^m4A_CRuLBFJ4#%=+uvjbO;b1B@0Kzf`ZHk*k9` z1@kUj26+x|%#F7H%vhN|9w(OW8RET^z=eFSOfs?nG{7#~U-iE(k(CzFH0k z0N~u=N5l!kf0F^&9xJ4UzS?)ox!xZskp#Jc^^Fbn^H#rQrX^cvf;6FAG*!b~3#M>o zmXodbxd+OR@U{-vmh6z=#J!1?B{U@;Yf&R`)M)*Ghq+PKj+$~^zsl^0sT+KO!_=MjaNw|S27^mr9fbI_#PXa%+SU?tRC|}MQ~bY< z?uq;N3vXL1x>m_Z!l#l0Ta2gWAkYU1}D8J-&6-A~o$@CmFwXe-f|F z$w^Jk=GvkUZCbCU{pygj|5RGs-fFjuqp5PAWS@9nPW8P&O~ge^yl=9PkJ?v`?h!0L zY11B!srN!8_)Bt%38;+RUyJaJ99wg$JN{A)5IvOFc`^dj9p6w$Z80yz!!EldkkV0j( zu1a6cOGj%eEMjsRvKkMm2}T!|gFwTn4hl+14CZi(SGUeNJWb=^5EX!A-An%U4t6E$ zG~L{tPLdJsj_K&gkJ9D)&wrT6KOd`}KgKm?l~+!0T+Vk5sT20dRpc>FLt4Ozd+H=) z`G4jTFk5P1-QUiN~%oA|lcva1q1>@@m%&xsH+mo=lScBK}(AJQ*?h`K!Om z`1`^LCTnlTzI|#TQI0@OufHiD$Cb$8q>)4=Eg~XPlOs4(|Bch6GvmPWCbeMub|WDd zE3?!SM>iisD<1fF=DMD8NPmhsKvG3u(h*E7FOMcRdLuFkG zD5~XodFVYfo0NmDS-;%Dw}eVu4u5F@QX_+SQYcG|(RoKBJQw~++h>oQxkR~Zj%$%S zXMOC!);~dxWwd8)<%>?Px*Ea3wLXT4j|fW+(=6Y3`bta9(W9k2`Rpzu?56STHXmo_ z5Dso@8zwO(EGbH}XiMw0`+d@#aT@^ z$!WwOMy!*~TXXR?k3?cTcSiI|#VX*QH`6}lPYjAEqO=KcBu1~PTGbcfj&?k7^{j8b8;l3LZmQuGo3O?UAYo$a@ zclqL~CC%Wsu*f4lhZ0MTagNMU%G{b1uXUH`358=aas)_bI=_1kFX4Aef}!vLC(>`m zpPYEpSjk+opMGSD#+Yjbs5stK5d#^rQGO_}-o1naT;Nj%vV`d|8u9ac$~w8fmJ?RW zni}^WDd3^w&14wT^K#X;%CR!M;Vai2`y!f8DoZObQ^Q}~QPYBk2m5dA(UNWcij~_atX>Z-IJVpW!A>m1EVQOTmmoJ5nnN#`4kDS$9IkR!Oge;0f zrZQECz7eZ)SBI~*94-!J9HO^-Zqsxvk$HO?N&6PWH@H33b>)VDrAf0I+a+_yJ2 z6zrOpXedL1y6wf!HY>Wi(@?VYEU0<%zbdoY4}! zd-jhXZoS&W|1J!DXKJc+m02K$PzXLuR#|#knVR$+{V&=F2~bSHsE1Ucp*^is+Ed5v+2?49Mpi)&BJr{cYRE!i$ZoqMe%odmWS&8bI zhY`3xWyksDb9wQ4-E#~rrQh7RI;3vAv&Spss%s^6GJECuCj0dq7=)I@EeTu7eFDOb zx0shMr+0=-b+-hzO!ZUA%?n@LYCan1wg)`Pkfs#O<$?iKOU7%Hk{4U#RW4iew@4YN zGMvXi$y_f?>+@R|)y>uH+7%z+ z!MAK)v1bXiAX8JLdEzaHmJx8cP+@*Mo^lt=>tw`$@sPU=2ZlN6Jl-xqYz0-_()E~h~2nMUj>qpL?wSA%q3rk53g8`FgDmN)P z^f*IXn3p@OuML8!gTX`U6^ZLoFyc^oAZ!Uth4NnyVITR&yt?kNW?) z^?~&>#2B91(ASJ}h_lbOZrcb`mtBZRH95vy+FO13J`j<9gtAf#)7I*?2>^!8 zVif~9by=;l4jHp`@<9lx&`przd*SR7>gCN3r9GLOa++r3n8c#wqGEMtqZJ*2KCCQqVA-drR4knu`kyiqrVx!uMpAIFpIe z=f&r1$osN_ylkZWL5h9)3Gp!#mR1;944rJ5LE;hDXJ_Q38oGs!5YqYsnD&D}wfmDx zk`rhXX@hzJh?;wL?lsb_QPk?I7lfVCZ^8Md`Njl}o5lCYPPJn9p6U@D7OJ&Ju;EwviQj7uAtRF_` zV=&i`jKK%X$(Xmbqf6Nj4%#tTFX_agG)naa;i{@9oKcuT;W4}_A=>24hGdrJ09)=% zb3lD#5)G8QGh6~W_()Tri$EcZmArARaEql^VyTYmX}g--LKK_cO5<*mNyOm@anyhY zeio9~R=CV1lX<~UMClxGm0(+G2U4A!DmHo6yNab9bg#rhGZQGJe91y_V*@RJM8D90 z@8|Gj@RLIb-c)vJe#_{*C5i{ZGBA+bhHpu%ejCle$ANAGbuyNNAvuFLPBtTbUJb|P?K6D1l>ajP z70_6HU*VfqeIt~2d9yxe<{cY7TcM+>Vbl>H)$clP^xb(5J{z`;JMBPZvtKMHYX2v( zbLUzN9X4v@!i7#wy2VY-`H>b!ov-Pdj$$BNVezk_zm2@Uu&H}Neu2f&qq=L(O|+bp zTg{hpE5Vxe+KO&1+9 znNVF&r20tetB~4B;_^4?7J;Xcp|IKibFxcVVbOBqyJO#EC{D>8Qfa)7+N7pNrTL{s zl77i2yxeCiR2BA=8BBKuxhx|Vj=wJ?Lp-isuep`3I4Ku%(-@UQpe`~@eLMBngodSO zMw1C*-_t{vAtPoCJ+f}#G*C#MG|rhu7Vf%7K4`g_iRw;^59Q%$z8GjZ{E|krbZnC~ znJx|_^F=F6c|~d)5?weDO$5QQ5r;Ta2x;wFY9XojJvRoC-p0W}ub-Rho*Q@LchvKq zor@to*Wgj*?&{~^wyV~!zM-nNo-10-MhA;a#gSVa;J*6GBELddA`Cy-q9CWiPI)r% zWb6rUO(c_;8k3o=&Pmf7(zy%yPGrs?*su|=ETiJR?IJYsiTdoEx|7+t{B86MKRis; z8l8OW*2K7Ne9>ZvmLtduh4S>A6h8bqo##wH890=Vw9Jod^NvtMxja73zFr^0&7;hA z0EpG<%~@LvTeurVU|-8kidTc%EiQ#y5Z;WDktsMCP$wd3!?5tWDfKTiOEYc$}%c@b9Dij<#5E!o{72K z4bt-vF5rji#{g*>WdP-7h9#tX{ z%Z=<8r&-)Y2VyhQiFQO8LtQLpf}H9-n8a~E(!r1D*dugws-i1O9Lat{2d$&ik#->3 zl5a%0FncjvSb`mOaRHE0_Ayy$NuL?587tYRbUG`h```hvNvC1(63n+0M|Slj(_+c& zMl$Y4OThv?mvMp{9Vd)XbbS@X(y8!cYVbXkV2X%6rublrIV|rE5Q?zyy0XF=VO9bJDrbT5pn|^q9lolOf6(k8>c9Q>xhFn4{&db)G=Dsu zGoH?+zeE2s4|HQQ!e5_%K>8_ujx9W=Q>z;Dj_+!nkY$s#Z3^uhNX>$&$?wOJ8O1NM z2q&vCHmo{%Ri{35I^%Lk?y5{`mNus<`UmuV=U!~3qmt>$Nvmnk(5is|G~|(k7W5$6 zv;N{8q@bhmxQ{OBC9sJMfXf3-2>M13fzMWE!3lTQim`%I7YT7LPiQcL;?POah;b0` z7>e%zp|@xy><-{l3yXjj!27b}3DU?u<>wEkeVpls8bD@O0Xz(KRNk7rzlh98B(R3M zW*wJB)?X(xo|E?#XeTYuJurpPDkNL_IM090le1l8S&|RdiU_1fOyZgs%&eNC`DB9U z`kCNfm<70XF8xA{eC1L2v28ZD?*8|lKWQG^t8BW#gYs(*e`&NK-o`#b z&t6Hn6jrh+Ej^>O!gH2bxf0D{@*a2iN#mc-)dUiBSLj3l-)FB}L;G@R;o-V)jrbna z#PY=+pYeb?^+tmB6f*i6(p;ybB!p0@pV#`OR2jBf;rnUOm@#Th21BBXKr0m-xJvmC2buhi5K|LQx#Q8o` zeHU||06PV#8#?hz#i4t@9t3K%$HN8G42+3iSW#BtX(@t_Q;^@G|q{5Z6YBnNy9QY`9C3XjTf3vpFF1MOd8NJ=d$$) zsuW#^TWoka{aZTP{j-p@_P%zWOT*E+KEFeMJ+|^3K(4of9+#4j>kj{|Cq0E-zgy%{ z#3a|iqhA#31NZQ+%I4qs7fs)PaSt5YnVIS7oaljE{lcQi zlBoRPvXHFk=p{=mmRw^pl9JLBHL)=X$aM+|N{q;hzP8w6@e(F6AsPAbQF+nX30!&# z6P=fr23MtVA*m384lR@Rjj7V&z0a<(QnPoI~^@7)_&6ra89ON(pQ7{PrF`!MXj zX9wqb%kj#(bL-A6Yo32VQ9E}=(KOA}sbQY;_%(i`mako5Z& zsmw1TD1`5tCJ)#fz9)e@9i3O4Uy`0~QMUKu7inpVXV1t7rwOZp*?)iIxM%#2V^2e~ z$XrcT8|eq*#=#x<`qNKoUvy_^StM58-Qe;ni8KpBzy%4Vped~9-JdIYCd51tIw!5qmu#YV#XJ*^USkHNr%AYJ!i}^0i0(t31IG=8RxpP|dK+W%0}6 ztX&NLVB^e;HDn&kY{?|Oi)-9!b}gYcQ9e;V#qpJ;3e|TNC5KyTzC@{-_M)fZ<$yT} zD_P-*{P&TFLjDOS@=Bz$Z{)~HZ{{kR;E$nNLq3k7eY`>ZCZ~4sVvw!)FQ-8_1ic78Sc6=V)%b}& z=8Ze8`=??n=0oA;TP?NxEhjAARwb?yS6NVRNM@s|CfX!z zTaa%Fz_0;K8oRnyVe_|rCtSmFE%5+0KH6GqC5!$T2ONn2g3J( z-i@IrYOrOuIb`KJ@m(K9D2*S%%zoC=LnMTTkV9lDmXcsnG1NdvV7Jjd5JCM1NHlJX@sOY}ho zk=f{z%p%w?IZ)i49Vs-m15hqBbxWvp%Xo(52c!qZi6Tw45Ji$2mK~-Gi?;+|!NB;% zhWSb8ooIPrUQkIC7oV4(Q~=<6T4oL}psaw6isOrQ#o3nd1{;`aLveMDdZ$ue5nUdd z50YjP{zmA#h2qjHCGE3NMtt3Qn8ofr-!5u`rWTr02LQeC%gXF;dH1^i^lt?N?oo@< z3bZFJ$~UhEAjiO}bCx_RJ323cLlT>TNy*Gg&C*QAX|~Dp356FESz)>*{oQB=U07}6OZC4c4S;=0S>N=&Tjr_)nKfwEq z=%?^hE*hX&gEMPIm>cKaiuvy4f}s=SD$Lo_x)PHXAy(6nt!vYSnBoUVBx6XLz|UKw?NZPV_E%ZkbEZz# zX3hL6%XgbKiBWx5OYwRPyf|=;@19yBoAoUNXVL(6S<0@J{8V{dR6JCq!(`i~1asw z1TyVuVMR_F;m|f3yMuCOXkkSLX{R& zlWWim|A;Kt8W%w65!{?T)^70M4#{7uU+9ucbc_B^!NY=lKbx6+ebJ+DuV4T6(W2{< zR&Us4@5hPEHzAq9QAr_|h+LJ@&GB^63aS}xd1S|i>NOhL109JT(@reB?#9P^Cb_$- zk=JSjk?T@n88PBHy;+}B7gx(&t#7&hHD2{9pnD%(zm9z@nmlRIqDhk%UH_Ido}q;O z_+z>>ew}6=U7G#t$9#B^uBxc8u&_#37@=5k31XE$L4%pCxO|C!yRax+7Z4t z$%;WBnAHeD_;gR{qGtx6Y6mc=y~xVv zJV+o}26{Qe@iMNV-@}+%F}6XbbrKP;6_aDU0l^gEAk+06>HyZ@#p>eO&M*>YMIDV{ zOxH_@v>YvCMOJ(x><6cr@ueJK6b1Vx3@!vgyulcsBZ0?gc-M!SegY$}n=sSD9`-lw zfZw$4>=`8m=FVvLLMu%H{HoZU7|9V!dG`L=tOJJ|!W%Wk-(*(vWCzf?A+F&byIk<< z?cSY~;LVrF%M1nO72W)8p1!`GfdxTju^hxKB6nv6@^9;Vq3!CfmrPQ2#iNk`66y?? zNIHz&2qz?8om0MpG%J2L?q(_4*;svKT1V%_Zahwrn z)$8QB5$yr-~){b=IE!Q7i#85srWba(GXE=_N=d)v422Ru*d4&a~el;?r< zXO|qBU#cKBcgV!QC1-mkJmU^DV^f@c_!d6Wxx%3-LXiR}QI4kWKzUs*pL-yu7OGLV zyw5D0swSfcfHFq`=hSGR121{f0tgY`&_LQgj83D;lX$w(i+&7~;i#qo@LDV-fgI9b z(SVGBr2$o0#sDI7BR!V>!ud7W=eqj2`o(Upc2%5QP(5Xm`ZK?&n-_3?t_J%Ce?@Eo z#6{s&+*6%bS;V*hS}$=2szE7F#&02`$CCk^-=WP0)Ziauj~Z?bJ`ATm#&qV}Y2W#S zP)qLS2EXoF3cG8`M=ejuhbM3xX8inuo z(Cobr>D3o-!q5nEkR{7Q$rjNW!5Vu0mG^fy)Ysc_L_;|p8KSG-!O>c>yyWy5qCH9` zkO}ZfMTwt@pW&k9fOjjC^cY5tQ;x$IIx6d+rVWB1*=%Z!n{TaKdWow#sXGWIJs)g} zuDK_jx?$tD;`_pWc=384Xnn>7Hbu3b0-zC&#sTExa;~?%)@Ta@im%t~OQm2t0AJ=9 zT?|yZb@!mVdqw_9+ULZdeFd1|fLB@x;M#%W)0ASz7^TpG!A-{&{Fb9{E^R0^_bAX! z$=TVFq@_*RR_Gu*lq)gT7=@BU(4$6Ds<|n^F8GgU?-7i&m2rX0l|raOACezo8JS-i zSE>PgzO*z43_kgV`ckBRpzed(x+L#CZtyzd9a`L45%XvJJ8%Hrkh^*gUb8#Lzx!b#%*pyUVipFhs zO?@)&F4!bD?5%Ccux!Yv_0Dju6KyOqT)jP9lNG`z?d%WA{rejl_ItTP!&tQWpIP!+ zoXol<@Ah%)uFN&VyEdbtPQb` zmhpN+A~apvLFJ7^RjiMSf$}oelQiwSHPh);%;dtULjq)l1-XTp{5RwqX40{VPO`C`lZw=-Sk^2})oq1P#Uppg_bb<0c+M(O1y4njwb2t*JM35`sby&MO23eF)DK_T|Sv4B6ZS9k6a7E7xIshHHO zj)V8$jX^^7fVhpFXT?Qk*I}Ke1cD?cl1V9c%TX%M_Dl3!G zN@@f8teCJU9t+x*itIZ2u^rZg&Cw4@9A@> z(E_222iFFmP~&9!nDtmNIRrfSE~#|t*VOc7>T?UC7)NGKCF|0jq}|SbazOEkT>P3m z#zsbSY$O=!SYaB*bT8fwDv=pPRfp*NUk>KhE_ItWK@ACyO>_oHflGYI*F=7wD@!fY zm6hS|{UKC-pA4B!rf9Hw6L>whKXH4oww?d-^&uF1m0CjdC;a2*Q3*p}U8FIlhGc;v z;1^8IdkXnRhJ{@>Cs{H?g0v1ZTy=A!jZ^}^RQN?ST|R6y z6sSQuIzkp5YsiCl{VRE%!H~z*fyETh{|+(}gkLkEJ7!>XbyyV}4P5mIdDrvKUs(*# zMlr%D8A+j|SnyiBop~I@K3aTja(A7R7cZXNU4HVl#g70h_)7NZ+O*cBqVPL{&6u(h)%o8ua|YggPL-w^>L zqciD`jiZ~Xi6PLUz%6u#Tcjd6J}xy*4G?HDWH;A2a6$On!I$Y=y)ki@2aThk27h5mCj(i=AfZFxH=t=_$DVCn|c&!6nU%LeTB4{Njtz{`ih>U{&tXaqs{ z9E@)U&`B`c=x;*shlR^KA|tpUhL}vYNCH<1LJWq?96jH7qN1|0NKstXnAf1W*5R;v z>yF@+yZL$U<6VH+T=)%uvvqZ4XAf{4O)oEy!D`VAZaygftk?4YRr>*e{ondPp|n8o zBO6R{SW#qki|}i0PoamE*%kK5&09|%FSs>f!ug&QC}NmrDMoy>Y#x3$k-`YB+F< zeK?_~xP+o2&_yemOOy<(df{u%ej@5Cx=-7mGj(jOb5{AyysVjErUCZ+GvO}r^>!l$*2_|0H zzZcSBy!sn~p1Ui7aESi-CDP|IdH*uVQiL?&2reush0+Sfqc7QyW{;))I6J`txigmS zlW9+0ybVf+vhX6%JUy00$0Wuk@M2q63KI}o>;b;aatTCd(DUcf<7inf3oZ&T<-mwh zT2xfV8?Os}SY++kA~IRP(F$2`cz7`1h5Vs<6BI1tB)XO=8C0WeK~h@Gld-9+E{P<9 zqIo)}Iuz|7!|ULhLO0>!CBvXw(TUs{8N~A*D3Q|fk@i0eMoSBj)~rRu{htz0$f5=- z*&n7x16iUKy69+j*SL*d(Og1!cuKg&&COr{r~IT-F0Yo5L5lgrIusB3WHp&wLWbNT z*4$Mx=*TNF>6F4yS8u4-6cwc;6!H6`pKaWw_FGS9L_2c{z9~+@A&RKTz?9I-CMUy)jP@?_pgO-V&cQ~_TWlJ2DU zRpdFh(HVYfGQM*tTU-p1JHEAb@6{XX8{Sv#TRA_auWzbzjjy8Gw*aC{yCU8F{5T)q zG^ahjigKJbUCb7j=+Ucx@uCfuQmZD~^~8MC3vBpEskk%esPz!_5NGSTb2!XKf>aOm zqW|4U!Vf)!335~uN3`t{tmy5AKm&hpolc-L)pX_}Ofmc43VI78b#>gl6_@LqaFIBV3eAooTH@5^(&Uo;}*@BF`iCP1C6Y5(Ie=f zil0ATdjv$Tr!Rhahr99M>mSGzwU|%MQ7QHhdU&+4p8|7%DL(6^%}^id`}jdF z+3^j#04_Z+UIAz*SE$sZuw`PPSK#g}=ly|1J?sx^b%~Bu_~cfH*JyIG(=u|fZE+*g z=A{?@2jxJ}8XOR+Uz+wP4T53juP06r#%@vDpi zK~Jsnbj$9om0aV&Txmmk$+rHxgT-ZUka@VwmwEFVmgNoyoE&EPuYWGJ6 zRr0xUOm#rM+b*>@gZQx3tw9&sP^n~OOAKvPwqQc{&{wrzOgmFEuqc6 zaee%VsBt@|udh3K^w{ykO$YUtb~U**t|dPk85 zFu=5f3COF8tU}|Fo|Vh1T!6HCpHbD5W8Oung{eg;P+Lk**QJ9j;Qhgf)iZZU&o;iQ zHSnT+l|mmCnGu0#YK9)sRF~GOii`fO2x_dS%pKZCqw+|IPfgI|)z<49G%A;q$72GU z`IG*imsgzxp9IA8Dx>`i{53JLDH2#b4sSurUgQm>MWkD%%2HCGhc4|CxDIA6?YW-! zx35^!>aR%1FGw!bL_{VhMDh0iforPl6|`p?Vdj!P`s_5lCfdU-!Bw+)Yi@-jzqx94 zkpE^s`|>rdehRl6cSG-M4%TO6*YTTouM1iozdm7yefD~V%GO@rw6j%%G&5w7s$5>? zKRfhwoBL*GhppS4b|tJl=%ny3+Z(k{Q&E{+gizT;V)-w!x{5eqP*!fCvL)Ned;3fB z8pCTLh1S{h+*J7RXQS=Qo}Eonx4-YOR}$=U7@pj(mB`!&$uaf8Ged5ZJm9Ks(<#$G zT{w+jHh1G1%Bc5hk(o9{yF^PSeD(DDSKO7`ZI_X}MEWYRF}A?xHb;}YoLTX{ct0#m z=TjVJDS?iQ!)kQJ#g@W-;XY$LWMx*vh86qhLc=7?ti{-|Pv&16e{8tr?b|hb2z1Gc zOLR41#Sl6)C+MUmLU+ZASwxogH2&SGXAdSFa0&@chzsLJ**a1FBlZ01F;5_Hke168 zfixncu;NwutBO|&eQh>?ix4H4#wNtYC#0qTeZl2!bIIAJnKH|7=R7_(F*zwEHhNp! z*63{tI?4sU^(Az+hW48CkSMM+k>2;4&-m}I1ut$^Qj$6)ak!n0+PffV|Mj!Ko-g8Z z8}pkp4=d6D>PS~-1*RlXJLFNA0BEorb-f0y!D2u$y8x#n^N1bPV*)@U3u-+n(d8p%y#PhMACwSAZR|{+2JS-fP&aY0uiSo;N0T z4Pp0z6nC*tE|(Rx8`Poj;>%XApeDTPL2?FDO+LE_halXEIU=o)AgKGx_f5auOSiAO+IcZ*!Mc*dEz*EFMJ>QAwl{;&3w9*^(qglO*oj)kke4HKO-X}JtG5(>%%Qv8`tDI zdpNkoudHxA+Cr&m^N^0D0F7rDC39?5jiENFr-$>;d$vMqj=n|#7n?AuI=M0*QbMqax& zuPSu#wA|tmv%G#AiK166s;X)W4{G++#DybU%a@L5@jBvq(8ZDrqciq;6l_m*w*2c{ zLuqww&SA?|vOBjm^K|kl*o%t5&UwVe6yzjiNKb%G7O`3Qr$;_UYeWr?ICptuS#@Jg z1IB3n;y8=H=td?si'NS^o{z1ZKlHsAybrl=JE7AP369ntV%vB zEi(fm!=g{8NmLbAS6W|murNN}LRi&xxgDs@zBGi1(M#zXCC}RO%K1FKJ}+Ng`Z1Xj zzLz5o-@`Tk33-pKR1}nFgY#-ne05|w2XzHodXG5LH=3nO5+ac&+n0nexe3wwXidnt z_0d6mOhSBglse>BI;9Ai@r!4G5NH5~M4u|WTy{FzsUf~l7{uMh{(Hgv^qQ_nO;1lv z*BEdAizUo=*O0S3NKN`|B)vX;%#k%S(Hj_ytdp5QAx#ICcpzOlQz7;+u48K|D{BDn z1B)J=<`WR$;}cL>b3UNWfqg=8}T(hny6j8{Nj+%E{dst=9U zXTjV-tbXd**&xhe??iU&zRvCNcMRPYtEgO`yLOG5O7yKuX)r!hkSpO2(8pAOErL#+ ziVZ%_WwjI@D?g&BSiL-VxrUxY;Uwt2d~}-je=(S+J%1f(aUCwpZlI2qaY{ORsIk_ly zy811(S34DKuiV8Eu8xfO*XLwFN?4Rne8j4cC~Grxt-|rxdABPFy-9%fZ-i~%r{wKD z1@eYRs++hdaV+8_pU}^!6Q}waeTPrb@;TxILq?pBHOEIB98QnmiT(XU7&$LjSLv!#syUt6&et3Nwf5IXw&&@ntWgT`^fl{|xHig@ zTkdPOWRAvRd)0m~Ue)n=9U1vT|4^a&*?HWs`5y-;!mDEU?p6PCtMNf4cfRQOvFbC5 zLmP^guTUeQYce}h`NmeJx;aey1|m=63Gg&zJVc&`YNclJROfn9i@bNUe+w4umO-H& ziJX6IrlYHmZ;tmMzmGvN)qD4^gS~xYeKk8Xo2z4akE}r@C&&S9Mowmq;W+IVcSXIg zws;R$Q5s&Q$;#5DXYwhBlMnx&-o6B^sVn{aCLs&=gd~u}k%XJXy=vXH9hb3a)lRE* zVW^{Z1CdQxBt#Ju2nd3rtU(q*5V0;*Y{hCfJJe~XGo{;9+G?kJr?sux20HczFY5ny zF1gm}*O}-4e9!lM#>3g(^PYXV=e*0)mbN`F)E|SQ_4D67hgF$ZeY0@L3-|6>{u6|s!it^3$a#~52#xFUqM46b=9e!hTVUIf=icdFmvkt}ny|{b&OVl3 zz3+a@w!-YfY}?AgV~07`q`A`yQwuejMR_@ymWTLRsm~SIHZ*6=`t!*%_0L+Hn|Bp8 z+cS90v-G?Gg1>g&)Wj2eSyS`w=Ch}BPFp*+bscN6KUc}mI{db!F|RhW%$8b_R*|+> zV4fZCUGXnXVO?Qe{ipn@%qy1m#}6jj;*&SVTl3weW!vp#o#n50T3#;t!1ban9C}p1@ph&B6WeMccTLe(WwGiDxC^1^-bK6D8UhdU41KvPazd$t3xQ> zlBg-kNSq2D(1#$JaxX~tKq>7O=JxFo8tp=Mq+ml((axPk(7(ECm!&1?@@PJ{R8t0K zudQG3PeG_VFW;8`f_;C{evhXCi_o=!RdqWWva2+^i;MRZStr&A2?vDVZWIy|=B^ML zhHFZeI|n7$_;^0#atG)HBcPxx^<_RS|HW@#<7LkrK698K^VTz;J@aWJKkMMx)-%T- z9{DT}(Gb43dAqFSwU@elH9Y65?Rx1o+|i8!kt;u6J4AIOWYw^=rL9m?0J^@}>tOQ6UZoAM&_E^+A8L zLkR5(Q(7*_N-l&cy%!Yx5OZ;Y_WezQgmy>W2!i)_zcP_19Tvl169hC>r@ zx(l)N)=>Q>T3kbqu=S2n9l8MB77%{fXSj7*SmgUyDQtm$&YNk<+QiEEcuRaiLQbMB zcIcdif+ABR{87!nSOt3j(y#aeALM=L2J#tw=gs_(2@u2(_MFZ6d*x5D7lsKc%dM81 z)6}_XS+1?=n%Mn;a2RVTAb3CTs?ZV<0E_4?{glSXAwrfJ&vDv?nO`aIa_Hxl>~9_ zfOEOMZ(;8U^ZYdr&zraA&Cb`)zWL5OXCGc*>kSkxLlN9!!9ILEpm*=9x4fOuJ})z? zxH!|6w{m6v3UIA2y~u}t*>bh@6Z;46e&2E3YBZo})<6yCBf?@k8mI$Yrpe}SviP9c zZ`clQjBkyzrf<&8+-6Vbhb(~hHu+UeMP+qWwWTp;|F&|Qr~2fHS_^c@6_?sh#xHGN zW{q6xS_^eU8Jl-+wqk{wbr1G!r9EMFPIBs+9eFu<1^L^uvNLnGXxg@=G{jkjt#kSY z2(y=$EofS4e`W*$|lP0lP!_0mu-}7 zmAPfrvN~C#?5fNwyACBox8*9iNggU6As;V~kS~`<$>Zc1@~v{Wyii^xuaP&(TjVF? z?FyA*pn_8jQjAsHriY~?Himw#kDy{`g z44578P{8tlRRQY)QUcNgwg%(}>$VCsEN~T(iCgz zG*4)bYffqYrs>jL(tI4K3JeMy9{51uoWS{k8G)sN)qyVtz8v^k;2VJ#S%%fHI@ZYk zhUM5{>}Ylo8wn{3(QF#K8Ap^-wvs)_KFL1Eo@ZZU-()Y~!scW4M`9ww$#^o8EFeos z6p1Ap$tIFZ3dk-}Mm(gQyi2ZVS*=m)&<@v*(N54ls9ma!);hHr+G6br^_eE?8&LIdsExV|9~s({&H%mg?5)QgqvOb-I(fS9Sl;eWtsn z>(=$^ZtInLtv*Em8~tGYJ^J72BlPk5B)wZ-s&CdG(jV8K*1xEKMgKSbTl!D+JqD$L zH5d&84TB8B4WkW{4bu$|80HurHmoot8*&X5h8DvSL%ZPx!(R+<87>$u8oo931S^6~ z!NY>@3!WYv9y~YrvEWs~vB8^yvx5tQcLkRR*9SKT9|}Ged@A_);Fp8{8vJH(SMbH) zkAlAp{x+Y{-U?tPpodVaTqK+K?wgo(y>= zF`w9nLRI%GQb8V5y{SE=Yun{F06pUSYGznbmbz!EcM zfVkyR-||4Nx_KLJ^apGM8F%OV|Cz($b*`R@SdS7VFG33uPWxBD0tSNhKSSA-3Wum> zD54o)19$oW0iHgUWwa_YJ3G@ppD$)R)l(rfRON%7E$}=p12q}Wlml>nYxb!uL_Lfp z<2V}`!P!X{7!IRSAfm5Xh*am~QUy6Xa!YeOd0=$u8u%?s1=B<4@&)K7CBR8|up;2& zX_AeohNEI&ycbpV@Kn({RQB*IxyHJ>Mlu8FRS&Qvk`=nfaD3NHmP}-mIg*f)l0fcd z?Iav|tEO|r%*V5M%*ErW&@qq2n`GbVzp^EKItO`D5~rh|I+fDL|u9syIBIE z|3&%RE!)fTp$ULchCae`?C5@Ruvgw=39alm>~W5Ca(!`qar^+zC;s|4r~>d5Rar%m z9_P*#umpOZBS)bP(SCzDlEFbT6e-~N1`G!A>$SIQ7)P)~Oj0OjUr~r}N61Sp zg1Q1?9>=1wZJjEz^h{I-?TkotMkG3;BkIgj8$mNXz}+wnNQ4};C!l!#M%QX61X!ec zA#c||9s(sBv~}@#Ih=d5Q<1@_5<7 z!%u>zNFr(z5~!jUK7llBtIr}UxDsM6WBZ9z8FUCJIkB4#A{}SWbPy1TL3Axq&ErTi zn)0{s2K<&Kb=i#s-=HSq#$fp)Ro?eHr{2I3^-935Wl5OQOPWY%WY@swL1);ETM`^&ofSPkp%LPv&l}>0PaS zY1yduIo7_(pKyJX)pOcMy|mocyXIz;($&Jt*cM2j%JsSVa26vdJJU8FvlhHloijNy zft|#WNe@2AH*k|4yzr&Hw~GqBBIfZNakj>kIGx1Wmsrx5*q3M_?c50zZ;&X&3=={y zVMc)Ei1?`58N6JX@Qg_9yX61YlQCF7+*857buT7f(yf$|Bc%7J+d^c!3IbWPF4!SnVJXIEg>$LMP zgWGnhU6@Iw#$CnTdNo@K3VV1FES!H#c-cxG0(HCbsu13);kR&9(r9*RPC4{KHm<|> zWSkIb>B|7ux(kn9!M60uO*I)doLQ&jxOZjj%?|x^^xo{|UA22d!_#vkAy%{g*3Wt4+(vI86>>wSi)>04joOY|jJ z$bcPK1@D&3%qQdh5&}02HXStYVc_1w&Zoqsv(U8{9{kcqgjGTbq3b0vf65L>;0WlM zn^{Z+bqP!G9%LtffA!VB6Tf;!GIz<6xtPg&(PKVvrU*I0G5lcnO^#YqS{`MOsECT4 z`rx>T;nAUoo@+h7|J^6944ixp#C+FAVBH#N;g5lzCC4|}cEi-?F_TBdwnr7z_p;>r z=bv9E)9~aRFb#QoKuAkvyMZ?W0^D!~`Z~8kjmO;iQ>oIvHa?603X5Gr3a>z+_1K;; z=Dn!?46XyiG`D77L4%b}84tN$2Xt1pcbd8_@3;6vC>paS$r8~OW^SLfQuL%{s*D_HpOnQ0=n1#tqmD|VqKU!Aol zb9a`_>uvN}LEYroRK^dspV+P319jsbOG9zP&V9DuwN0pa;FM<5do>?jv=Gcz55J#P z5YXe82z@puRHNlH==qwON+=U0RL2Qjv8EwU-(YC(8ptm~s;PL{-|ht30Ld-98 z&jhSTr3Gb$6@|SZ^c>jgZ1S{ONCV%9snf-GQC&84egW1a8FGTdc0{0O!G#gPYe7TM z=Nb4h>!TJWY4|h78D!|FA*qi+FMH0hX*>H8N=@(t+W!zLK8WIx)Bns# z%%jlilOW&;8-Q7u+KZ=P72X~m{dmgXUahUIsxAjS;Lmgyo5>gHDf4Sp5Mo zH~C}`1FPzj;p(7CSp9%ahmOWq-~%jHCa1F`rqxNnNgEDPWG0;Nc+(=Br8u95KoY(;qV91(Q1O%Xy0UY8}T!V_Op0O;{$zj8mA3@ zBF7h#!b)f=A`J!ma%+gmvuIT(JmIYfbU9~C~Ix%W;LWzt|VM#n|CUjv6Cl#D71P$cz z{RTW(kKtCL7M#p+e30>Gcv!$;anN}91sop%WPF!`@Kd?3#}i69j+1O*aX~0uFUvVH zn(8&cIi#e$wUyM?mNezmqDoJ)B&%|3O|E!S!v5re`GGTiwuL1}_E)uM90ezA?ZEn{ z+dXHjxM3NJ8>BhdFg|)5ZKkvEx)*u*hacHKoCa1UL5DAs2o`TLIG?KCz(^D+lToU@ z7>OX}sv(}rN)HhdaIC~KjbAuFfQ42nayVP*dafh)FO)BI^v5SU?UiK}rDc0GWFCvp z3o=pNlv$Iu(LyKn(x@{XPt+W0YP9_m^I;CBo5p>IfwGXrrkqooQIeB`WxON?XRR`5 z>B2c7Tt(DRP)+q-s;PdXoovb6ky`BvO|Nd*ddNzsmTCS?4oax)MEw#=#2*U<}L&?Q45jhZN1TIxVFM83n413Cx16!J@U+E1Np?(DQs zYMeR*(_`G-KP)2ZG?rABRP3s>Pw^G=xA~uxwY9YkjTYUKcjlzH3f&k`N7Z?aEjx}_ z-+lER(gli@2@^mDG<){b0{QBzr+Lz4Bb8NEo(fMWsMnuR{*Mx=%IZe>Fw z`B`JF(&NE<>?*#%LO>=|LUvXbR~A+l)E3m|*MZb_%Ru1>p#sPwsQ~gw2plJLJkR6p z@9^At-ho$**#!G3N?AcA*%Ea^Q+{hJ*7>#!kJCw8SwP%3IlHBAJ=4 zB=H5*rWAkJ9t98SR5jLNs&%M{$9B53eBs(1n&=&?ic2h{oGzsm9Ht9wG-j%5u(a-_HlG+tCo0QJXV`TUOV3f1@!1?^!M z<|L6_ypg52@fs9;hpFT;Y)y1?LPx}MB&(3>oG0pbEJZj2fL=o#hlOC!=Token_YN7 zCX}_xMs8qbC0kfEp(iHtul}~f4mI~7LAB-a>Xaf|CfQyH%0&AckPp0fcXbt^98q#C zIaL*VEA4w5JdHICn)hEOptw3vZ~Z`3Rk3~hE;}g!r_qEWmelO4Zm8O?Y1+d>P7Tg- zuObT)_oy%+Twty1lPhY|?BrgKe;(_L3A+Il7g~vRnQKdOqCH{lAJ>e;fjsIKxT(H? z%K96R;tG~09PSJ1co~PgB2w1?%>!ymNnT;A01AAy;gC;Hc?7IRIAEFuy-x{Qp=8vI z53gcRC4C|X0LE^w%RGw?Tb#0R0W}1_x#T4O5r?CX-s^?HLBw_T&nYYqVS*bw5=K`4 zdd{zB#kNdyZFS|@^U}*x_h%9u(0l0$6M;ft#G1&YNkx;an}zv%z~?~t$vE0fCTe7g z&oFdfGgT6Z0R)WL6`=8g(2W6^2quzWP>?TXhb-}t*XvQym6yi_gBkbrMA)s$%`d@6 z^!$tvf-~bW%CARk_YPewaKdQ3)u0l%JE7aIo!n@WLDlFKO^}+T^lo<>CkoNxX!4U+lW>nYy1=ch|mtk zA=&NM*w1yDNC zmP%$K<6w^B@#i%27v|!i!Gmpsqr5t=%{$Y((7W0j=S}pccyqj^-u>P-?8+dZ>;VfX6plv`!q9Tg1nJo1Y?8Lz=R$Q$lm?2Yoqd)Iq6dfnb~Z?pF)Z-@6C?`K|b zH`8tCb|BA@-Q&B%yBBvyb#Lr;cb9iJcR$tL(fv;MXWiZ&rpM4Ts3*KClQ7qgBDK^fd-8MW7H5}P#EL}=oQr8)?e5E zOaG(3N8hdY>VMFEr2k%jO@CE?MgN`tTm3is%lfbNU+Mp;|5E>j{&W3jc+B`%|B?P5 z`VaM&^cVFX=-=1BM^205YU6+DxMlw(?*BGQ#b`0o2}7UtFui0uN51iJ#~S^N>x@F2 zhD_(88PEa=b&-z`9&-Ekt=oYz6@^qFMgKqe`sY?4Z8OCGa(>856mDjttOIavX0y^w zRR%I^DE417G~OS+icUPFk^G{Y`b8MncgG=3Cc;x_m}r>(bQA}LN0>##N5kFBLsg zFXb(zf&I8>+;^27ZnR%Gg@H=KJ7uDN(IB4MQeFzl51WPsz`hd?x4*2SP0J)2=1%y% zbZkj5v_GV_67xbiFjjB--Tko^HnA@AEh*4)6hD{(gM^ za6Pr9av_}+ew4)@20IXj;-X`K8o8SZhoO1g38Ue6@btUy@#7c66@V4v{k8;8@k(tW z)dz6lQWz}<4Hx5(uZRRYD8S7;N)5_32Ih`m$^&tLEIDxmgX(y51WSlCnLeZ9;3)d8U^y|$3^Ym-bv?X z>?pGxd58w#cG0+jo0|SStYRJf=>Z##aN>^>VWfEEH;0BJJJC>B7_pudpC3*orA1lp zrEXd_sa}8|MZ?5=+>Aqwb&lc?;oKsuSxSG$MmTi`z@~Xcel#}2%0zb|5`gyT(tjbdZ~<3 zdGAgq;r*p8l}jpzl&|`kpUaH6a4CP}7c1g;wm&~9{oOXj1^)oR1;GxxJ5F-bGQ&O0 z4=dJ>#`(h|q;mS<=Sp>f-$BD9zrW5yC3wlEW7Ut_fv^q0dk>AH;WT}}yT6Wb_m6is zGlJri=J?(DPxIir(p@VgbvU|FW$9dH+nk{K%7=MPui6|QDl zWPkF9YnXxZXums9NkuvFpapOHFaj%7{%*O^%(nXkp}nS+l1tikvrh+2TbJkxOHp z>4~W+j>%*18#_tFu{bFV4fZO46Mz4!a zj&^QvM7vzh#I>75kd#zcVoYp0vUj>1{``L~Z-UFUaoV_XG<|e`*~TWO{%YVj5begM zq{oh99%NFPjZ7v!OcR-SCV_D=4(Mo)W;Qdia6JT93bPLJ4t%tZXC^TBF=OGL#U$b9 zxGPn<=!<32kv>cP*mP)l4*kXZ?=17NciKB!g*I3>Zi4!Se(dX9pID2vTs0GG(u^3BC{5C`WZ_KQc+(Fpws=Ak)L)tuv6blL#|-$d|NaLw CDx5C> literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/Simple-Line-Icons.eot b/admin/src/assets/fonts/Simple-Line-Icons.eot new file mode 100644 index 0000000000000000000000000000000000000000..f0ca6e8cf907213894d610112d456b7804fd2800 GIT binary patch literal 54266 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 E0dl-`Gynhq literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/Simple-Line-Icons.svg b/admin/src/assets/fonts/Simple-Line-Icons.svg new file mode 100644 index 00000000..4988524e --- /dev/null +++ b/admin/src/assets/fonts/Simple-Line-Icons.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/admin/src/assets/fonts/Simple-Line-Icons.ttf b/admin/src/assets/fonts/Simple-Line-Icons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..6ecb68683477ecc5aed38ec3fc8910d9bb66276c GIT binary patch literal 54056 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 Kj_>Q2Zu>vsTUp2e literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/Simple-Line-Icons.woff b/admin/src/assets/fonts/Simple-Line-Icons.woff new file mode 100644 index 0000000000000000000000000000000000000000..b17d69491bf374d36e07339bedd3349caaa30d65 GIT binary patch literal 81332 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 literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/Simple-Line-Icons.woff2 b/admin/src/assets/fonts/Simple-Line-Icons.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..c49fccf510eb41b4aac2bfa21b3b87c254083bf8 GIT binary patch literal 30064 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

`i;W%DyRrxz&7=UY}f`DBwGN z^QCTGvyO~ey9-qw{@>K>*0ETVw6;Tilw(vetE!&HNSMvhCH4F|*L8W}J3TzIc5B!6 zX)TxLl{nFlFOSxB;2j)0hQZWfaCN|UD9kj_4@^De_#GQExLdpTyP#guE1OrO0fIS| zxSjBT(4D`0xgb6tBvdU<@K5*iOZQ*gSnDtyG3`*QWVP4SM&u7H&+jH&BW}m8EyH$^ zUXgJZm*E1jHtHi|Q5+XpdAO{^QB6mi?5b-JhnrSmxJ4K7BtY^5#({pvti`&@%0$Q2 zKS#P!{jl~ina%4b51z(3Ogng;jb=%q_{C)j33V+fF3{na1B>a)ssN0$vnHYY`KUED zSe%EkO*W05q|)u^)KjR<0`U9WGWZDyF78Jp?^|C;Z}dM?>i0LH*9cr>jv)Z zSG1v}2sOq?`&!|ERTez5|9SB5@8{1*IPxf3lJPZBH8|{t4*+#hIC2(Sb7kNbm z6L5j(={Se#lB)h)Z?$zT0;E07Zx+*lLpRocoYh0AW*YZ5e6RhG{FC6)EM*2&gS+2P=%z&>^(%zh`5z zgLD>8h=AJsbh+L}Rk}(EwwcJU$b;mCJY+Qk$h!y0R{kui%>TS2Y!d*nLks~4SNQ9) z_@oNH+XOzHqpn7mu?M>aX&%m)WOJ+5=CV`a#nsBSbb@Y4ZbER5|JF=n1T$aEvFF`% z8-85%3PC9P)l8!7DVWL9QIgqfw=i(zIglaV5Vzget2Hg3NE%x zMG{$n|nzfja!?p&3@OfNyE-nV9cbL$uVF_@@Ds2+#l8y|A%B{HUFYqllW(p zR@x8$6r9+@rTr0m3^WYA`nTXc-kTv?Ib*YdF^i)3iLZ!|?oauLC$Dw!FFrCq4)8^! z9f<$tq_#6A88-l*U5|6*8w z|2^F2HHfH+?GtdU=N<(1>)-kQxf;lef=?{q8^q}c;{U10NISx~>9|oRe%wJ6~J1Z65;d z=(Y!*>j%xC0;v553fqq6@+UKCkStbAzXT54{~JJX=;}#UR82R`|FxQ>ko#b@nkxiFP5uzZGB^NYkOyRZ~x%%==cN-fx_SjBnpke;_w6_ ziA2iC#K0ki|gkS{4 zU~zZ?kwm6YX>!>rAn>Q>huPq$!xLO><*_Z{#x>QeSTHQ zl@QmFh+!S&U=+V!GMCTwn2mY6+$U=%%-sDF*c0X0e{(tzN`gYJNgs*bmrdIOXr4D} zL+k<;Ra#hX@kL!cmQr3VX=8Y1Dc@Thj|+n^Y>o&HmsA0=J3^=QLAY~~=&_f~k5Jn; z)R&f{^GO-Qrm_z@tg1?WN4MB2?2;`*r_J6)?_SAa9Bi^N)jHilp^?UtyL*(Xw_6gN zVq2BM3^CmV1HNeMalw9r%K?`w`9_Qsb;9USryfMcm>WM(=LR ztbq{KsYn=gAjPWkGZ&b#+wVo}E6h;)z$*mnxA(jC`u}J29x*FqJ18o$4nFC} zvFgb!_ikRB;I!nhReeHgKO~2Rw(*{2fs?7--oNWX2~#Hr$OAGp&S@3{;Q|p$vsyJV z63qCm2it-^B&N~VshPmr?_?bhuVLSeQpw?@b@a+~P_2Usvtwz$OWH0x3p-3czA_cDba!pl*@^f+grlr^GBA&$-&697h8;)xLr3_o3DzV5aT_ z)%|p2>$8rdh~Cov;d(KTCq9$cBdU$K&(YSEG3Fq#7~Y#U=(*ZPH#jZytJaZyWV5Nb zuBy?y!`!)UdeWz5z6T3xW^!Sl+)C4KqsMGKhgKis1v8jlct;GKn~r_NUn5qCiaS|t zlpiO^fiDsu_NYOKPbvJX(^=L}s<sX%kAfVQ|%HgqUl`-14}f>Sf7oy0?Y+D3*=!i31@-J)gq_dxNCf6tVT XVaD<2gWrVGOVQy$mL_vR2><{9vXVmp literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/fontawesome-webfont.eot b/admin/src/assets/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..c7b00d2ba8896fd29de846b19f89fcf0d56ad152 GIT binary patch literal 76518 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%0DyT{kunD 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⋙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 z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/admin/src/assets/fonts/fontawesome-webfont.ttf b/admin/src/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f221e50a2ef60738ba30932d834530cdfe55cb3e GIT binary patch literal 152796 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

=v_rA!CPE#mM^4@)}X7qf;At+v)G*FZd&; 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 ALjV8( literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/fontawesome-webfont.woff b/admin/src/assets/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6e7483cf61b490c08ed644d6ef802c69472eb247 GIT binary patch literal 90412 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%0Ded40&XED0GYFoIh+AV*?9!MR5pBW?X_8Bp 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 IH>08b4`|GD*#H0l literal 0 HcmV?d00001 diff --git a/admin/src/assets/fonts/fontawesome-webfont.woff2 b/admin/src/assets/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7eb74fd127ee5eddf3b95fee6a20dc1684b0963b GIT binary patch literal 71896 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≠dR0E9ICQ{-tcR;@{R^I5P#1GUH!p=-{c zuc3w;7+BWfGaHj8JK6^F_ud{JF#?=p5IuL6%&BpqXGS{~wMRx;wzW@^P zzUW@Ot)-|dI*HP<%}AdxG=8KzXl^eew9JBUhfnZWKLoxK?HB-a*iv{+&FC9ByM80l^Gei zQ>vs1gSdu|%R^~clqW1HizMeJZ|Uw%65_aMdUAc=1!3QDeKP%EsZ28Zdzg@}Ra@o3o`d(7rU% zr%Mf`gx6r1G)j3PTIP7=RmrzHWJSTZ%8CM}L66{96Ho4D6?_e$&nwU~mxXqb zId&iY3{0N^R#wLfcb@8L^e#OJ0i2H zb1N~AI}Hhrr57~D4e+b*D>)wL^>o&)s8UwztF>$9RS7a?Sw$u3K`tZ*0x?8ZEV-%! zZ(Cu$a0TW-IWz_qLxkLbLdA#(MA#a)4oLRdKYo?%uPGj(X8nN-$ngfAplK!b+*+qu zd(^3srD(1I(q}@BoTVq%c)#*?F6u!kTXOc5e<{PlbM>3-_uc!l7m9~NcH(PIlU^P< zJm0cu@FYZB7yJZljwq`NdTWWwJf>Gmh{QwgZh61R`E)FxUO^-=N zUk_hCvNP$No2rYcET|!l$1|!COnmS_6xl=4AOcijV13+-y5FGgTB)%Z6#$vt0l5yn zc}XjHUE!zsSExQ#F7P{D*A3QC)vRlLf3}afFsGqV0M4(^NIsoho|d7?Ws1E;hZ4fa zOn=}epz9 kgw;ucYbA3cU1VJz%pjZC;Qk%~9{|M8~LQUOASDQR}Rkd4u{d`EM0 z#z42NZm2!myxQVgiOB_;c?k zlt~BrZfgQ()uk$+b4t(W8L1Dq{?-3n(@_7=jLW{gbK47%hqi3Si77PP5j3!pF~)_3 z@i8t~3S}m4z?MnVzPp{(T)K$|;@a7{d#x~^dVqSp>4E!z}v?-=tE(@Q0G6oT-hW6LGZ-|l?8KvgK-NS~Z8J62b zH`CdcT@78ZaY(vf+0yUTNMiVEdQojmS#YO~u19^5U7kkBLFVh#q#gwjQaVjk_E%%Q zW5)ucz5L9OK-D}21^p(t8Ib{#^el3ctEg~To0KMul*p-27#?x<-#cD1#}ww2eL_fD z$v>Fu*LL`g8B#SzuHPXUJLQ_!dJJZCtm=N^==#L_RbvS4CEo-a@9!%5c6iH|l(yhG z-qbeBqno#K{kLzkZTXgQcw5msN*i)Ay=hT5yl>U1tVUFFQ2QjVxnP_hY|JlBw~9K1 zZC4w{qbWrFnYF8`LSf8cLCq+6@ZXXcV}a$ zo@Yk1$idN<~Q@Ropjc;Z8}5`IO{Ii z;YhxD(#zHsPX5FB`-d(6^l6R7HVMMO?3)Hd&$oeHF9riqpq@4o3~N!4HI9g_?3}K? zj6VtI3U(<&t8#t*5(_I63BG)F-cow^%5)1EBDu3Ag?PtT1w=pBmHldGBdQn)KmcQx z!ez5{w7@~_a(Fn0OHJjEh@8Lrg)n8q4hZ)jZ!crLH+Kkg3P>$tNmuSyzuJIdtKj(> z$y{uaQ@nmoq>L`t#+iWJM=?1E&-Z|yHSAdJwNgVedZ?bq^x-0!K?^LO<2t7_iW!?i z7Rx{MS`%5HRM;a&Nh4FyeP>2|HgO+0c`WcSm}tqcnOBI2vW!gFqwTQK_HW*vIGs5khREImcAja+4D9gTh?Gl02cQHw!(s6RP@m*D7e8lI@plF5mU=x z>B&*D`$7Zh2)}t4;=IR(`B#n4U9rp{0im;xr`ucG4i;l{k6W(tLn(AS3kMrEpJD-j zDtbu|B=XcmdhNgUP63C^qV(wlO|bHO-6L!36*Fr>eQq_Ut;Mu)g01bORC}N6Ej@Ai z>Fq67E&kLUilT@ATW23t>Xkn@oa zus>fiWoscKG1089E#0l4{Gqok;irrqTV8br;D^|jhXD*r&bKIt+yLT^!(4mtd)^79 z4yv>VmJOjbe%QF(HxOi}ICFy|*f}*j#(4#h^!X#}@*jp7ru#8oNXmT_TU|36RwO@| zXIzv}x}4oeyS6R)=Z~z(WpDD_Hr8O*>U8Yh#DI8HUF@rFujw7h=+sClO5RzRw0;X} z8vIy}7Fz3yTT`65sM1|cvC$d|a~|hNgh%#6zg4Vtk>Mh*f#I-WOx%Xpy@DzVSyz6! z$!wSj@jl71lonL@{{de#=$fD1%-oV)l=Hc-j9%pMmtDZzk=yu*%BkllK@7(oky2Yu zcXZh z30OLYBbzmZ-#BjBGmL3P<59K&hqsm4*OFTgZL$%f@aQ(oa0eFt^!WQUFCw?z*IPTn zJMHpNua&$Cg9p@osIha9$U3J@3O1K;|59biD!tt(x$JnsvW(NZY3Pj@@gG;>*A zTH+ALGZ}irDadBtsZ*6W8vqk*Dv@*_94NT@%1b+VEL(GPrHv%f?#q^N!aL91_kBo$ z)NG+ZmBsUB82|Wx$I|BpqVVJs&*h_PiCyr>$;pAf<44g!G`;tQdg!9zQ~iX_bC}6A zQ^|ia>VYRu^lI6}&97gdqGGe39K_-x)@@>J6driJ9=LK4i=|SPF(*&FGiXVyCR)*~ zKX*F()X~#IMDkOrB%b=cjJ!Pz-#i``@_l@2EHpT)7o3|AH;^nUE1xWMN{So@0nuGz zQ8~&d&rQx-wW)k~r(djI^ z>#*7_iM8KW0p66fjO#5O)*C%oxTe*!d1vuR_ITN|+3sS1aH68x%;3=Bfs9p$59O|# zug9Nh1hu=rPS12!>HMe*_^s@b6XzuHKiCnJM zE>@rPxYY0Y@9F3MBh4%a(+qO?N57msjUyb=>3p;_1aAT5s^5mVN@eA!Jp z^KUwNathUCqD}hZdHjm)6UIJ&{*XJTCrd~LgHV2<*x@Ecco;(!7K)`gx)mD&Bne?7 zO#n#BYkUsr3_-XV^HPLOQudSO=jHJgI(d*0Lf==E8R{JUb;RLziB0yqyX)e7?mj*1 z%~%By0l;pDB3Q^~=6__-3-5Z3RMPPo5F{5Vn+8L`&f#XMCuI7-wacztV@JjVv350TvMt!zq2O{m*X6fy}e@@IxkM+m`uf1Sou)%DNAY zSSzDjV|tN-;$UpAvK14YVKbFYkw3y6Q` z=K6mofv8g8e9)%wXLKV$=FM0eke6sq+gb{pv=qN9Er%pFUdwOenVUz#N}d^t8(DeD zp>^29oeB&}z!x!A2+~Cy9`$5L6NERF*f!*zu|eEu?&mRQHDNlUF38;+kfL`%vGrWE zMRqubh27W_*HvN~XfXnFgDi+#UU~oaEHw+HFLK#jczPLWFteGLmh=y-+o}OsURw3o z4K6!zf5h6t@S2UTH@4}y_dk8#q1@Z@pi}A)Y(2nNGU)n~!;zg$n)vFDD%n`%`P64m z&t(orRfl)h6o4xl*T{e}8RJr_9s1?eNczsSFxmRZjnBS@HE%eyA^dsyx(|9fn+a6H zhV$8^KlUYjwe>>ICp)<<{j1yuYMc_CLNgVWyzMy+JAKW|@-q{Q2AQ=Xmo}(M!dIkk zZjV-{DRgV3b?ifrY&%k~{N&z;ueyC?anG$IpiHp&)Ysb8`Y;ZgdRx+Isd@u7Yu}ys6^?pi-Cr%Lafb=bmeY9*=7+{Qa%_v z*3fG4hor+^CBaf6n5s3`YHUp|0U#2GUj8ZvV;Gxel4=Yhq|&Uz=cMn3j@r-JzQ zF1Q3ARfhnZqK*f0Il~+`S7BNK=Z>54m5NT^ zeng|4COob$Au+NyCasZEOKLoQWl&*r5V9t3l4R62O|qZNHzC`$J=Sjaa;LxLguL;b zNs~x)XKnO9Rb5i^KPCW#OWQ-bK-shQLFEHMy#W(FLh(44Q4EIXlW{I;;0P*l<5NOvPm^Eb~1XvDpY0%Ge9&Qv(Udp zHo!uS1CDLtXL~AQ)ijtfQlCW43AfK9S77%~dFw}?&82p_#bnTqi^iw*N|(+Rjq;T@ zZns+yr*@N;SIXok9t;W0%Jpru*GocCY@5J%Wptxb*{D#&3;i_rtWEDN8I6+ZD&XHdg?~ z9*9kSZp0`vz>(_;XAc?(UD9%Ff^_LHHE zPMhH~w%0OUnVGM#&rbDcNZUViBO4o>k@^3G^E`V27Ed^#hsWQ-F`tvX!#G%yz_|nR zNxhF{9GDP4uYrE({hvNRrN`!(8l?ZW)x~pz3%bN66ByYK4Mh(3JpzNQ_z-Ov4PU6FH5U+BD^z3%j6M$!M8UPsHF zulFyfveXTAH>T?9Ry^%>tj%{81u4JC*P%bpkI~KMi2h3-lOhU`#S~=9Hq0ep{<}!$HnjI>V?b7k6O;8S~>&` zUZxkWK7F!qrPH;Z-unz7J;5Z`Hy>zjPEKhi?0*@(Ia+2tvaOP5(;M_#;XeO*MW&o2 z<4AT|lNK3+C&JAO!f+=xRa$e34i>s*mgrXJN--{%qmshXY&d4eUX(knipwka>q<`W z>yK~k(42Rvuf8BQgeB*DYsDe1oK0y*kWeIv5gm4S4@u$lDTWBj7+G=tLJP;$QS{Iz zH-!nG*65Pv$dUeO=51l7CITl@t}k@g86e4yVO+aL+bY*S=r6+SvgyZrA-2+M9lAF# zNoc@sJT|#xg~HFgz&Y>gI8lM#UandIFuC4=xTxG4zKC?ayh)&E^6j1SM(OQl;AG!8 zUK{NmnJcYpv%=>za%be&zQGWc9o>e+z7BU@iv;RGGo3yaeP)48H}TC zg%8Ai0hGCa5J(^Yik!)&vBm3*TejTuX)Ip`JCv<)T*8lc*$JKh7ZyFm86u4~DX;Cc zgwu%x5CUTF)BgT}fo=f(^u=RWuZF2G`Pu*ePfMeK4gx#&TIniERLQxGb&K|Y0tg8; zqT&Uz)}6C%DAMpO>-2Pt^96x#VZN?XV8TAw1%@*q<_e#V8G-b`-+0C;E>cAd$H=D? z2%RN%QVen8#*TWc0gN|!g|+>3QdGM9l955UHb9>K2|SPqr_--Mq%vFvt;- z3`Q`@RNqV%XL5F2BDG1&_UwVQg1?hhJV3QX^p|=VXt_OKx1>`8iwkL+Gs$B&Kp*a} zy_(~yWDD5gxtvowfATEXCguKtzcBStJ$m&8fHDBIRrg)@-#`6#J;h^L7iCBcIpeyq zf7(fXxGwR&{(?TcW^QVe!(`Y)raMsRSeZP(dP(QtgLq;dlkR)TqvDkSQP6AIC!Hmo z7q9Aw_$2;BVadV?lx@UxYnd)mOBm9v+g{N!G>_*#DmQ`>l)DAdmmPLB1dz)br0ZkW zy8dc=&fmeOld$M3DSb83u|Dhtb36PArWzgLYK&+;T1OX2r-KHw88W~+5(OwG%J*Ly zgnQDUcJRWkErZ8xi%^i|j7Rh&V^;HMN_QL9=2tnX2VY~=fFJepzk{$%9Vw&j#w>ag z;}K*-fyHs#)#^>{A52;1R=pL8^xT~vmH#;mqeEtWWnGom`eZkV0z0-we zjoZ0MRvzkgYKdwkA{!AqA1TQgI;x~s~kF(%dn(FZ0mF>qHoJm$ZTch)G4r(R-+ zC-AhDS6)_-{I(5bYx)|kczCX&AUU?Dv$y>C$e)vpXW&@*u#M!dEF8RY35bM*ju(`p z;K*~2MXsXrTO+@mDa5gH-;Pw7^H$?NUE=I=4^X%fqY6$6d+`<(`I0r!`86k>H{9F# zUXeRpfO&S_kdQ(J_0JnaN(xBreJI+eu>ZMePvOrFIL(&29w0ORNpYGBVhMtb1Mtl6{OvioEC4|H$ zo-w5*_}~jH9$*_#fpguu_>^)_EcOeB9{FE%tl8INvegmyzoU=^cpNwcqC`sDsL^P(C{c=TO7~Pdw|fPVBfR{q|BuIPOsNma7Z}|($RTYO zE?f7ajj)Vr#v5(c_&#*~Y+Gw_~6vptkceJ;6#AA4{U*G>m zv(t<}@AbfZth$BsgN{kJUQ4`I*>8>?8Nk=3zX?V%kwLG$-9i|(vVKJ6M`!jwoy^SN z=7FOwD=f^3=ZfV@actpRZtw@(j^+)HNl-gZ~_DmlAr+wcNi?V+b}qU;6q?= zcMb0Du7gVm85jueE`RRbt=+fXx38+Zy8G+XRehdL%byGMWw=ETI*Tc$XIVkYXsCVZ zb4N#6EZ-Qo#uYC<)!0ZG)(v6fHg4C8`jx{nW|IC1!LNG4AeKN2JV#qDHPM>^p6uL0 z>sDt9GR-_j@TKZ>xk9%<^4)$Z0~^cEDs)_gzV9)D&!BehM206+ zh}L?Gb?OHTpUvN2!?8v|DZ5qSjW+&#SXC&6!p~)oR}{k%ir*7xyU`bBw$B6F_y&R* zJGXM)P!sN_x?Fwvcl}Vi*TwZFCLhL}Sy(AkQ-O#tK(cQ5gCw6b$%tTc447{$X@Gt4qYl@?zZo zscT?q>xo+eXXdS%1=jkXdHT!tFWA297sM4v?KP52N58N5zWb-#2Z3ReM_Sjzg<}dnBy|GvI zhgapzrd3&*de)CZ!Oh~tL+K5NMR_+D@kp?5);fS&CFcwMo0!7w7ZNMm>>QDX7GHBZh)p-i`3Cbr6`q-0WzGf< z#>Iu=PybFT)E8et6+C+0Um{ezd0GY1nTz!3uAe@VzZLiSWS*nz{Y{by=d6LAtzeYw zwGFvS3S3>F;Z>G1mx2%JKH*NCZ@aP`q&iJcG&4~6o1Nb+L3zU|_0UwVk)0xSgkcXu^f(UaE9@~0>ztQR=w#`0O zTrZx+vX?#Jxh(CfeYELi=fpfM+DiYH6g-ONCiU95Jhw);kgSl7%Hx3zn2MfYJ5|Yw z%F^3xg*>0(y?JanEA{+m;rFeV-Nv!=!HyviDdGTZA?t?eh+u7t43pT(@|jp?PPQyB z&UIB|@1rjRjZ_2nFuxapx`I^gG<*>)xeBqb*N7X@Gbp)y4Fn=V4BpsuXeVYPhQCe2v)Dpw}5=9o9&dT&sh$KQK(W^O?86exnUfRayql~=x_>%Qb z_eEOB9rl9IlYA9e5VbCk{M;Go+sVSuW;xu(hOTUEsb+QU@N?brZ< zPP!)Lp=FXvUB#uOmpVE?c@_=>uMsh0184t<{R&1E~4kxh&46o=yQvQyO!kDegF!4ilCORdzqdzD7sf@iwmJhn9yIaIg!5Xa@)TbSDB;6 zqE4I*l$1vwtNMi@am@s{^KJg*?NEo|?a-1oX+gLm(0jsb6vuWWVf|KwQuQI$83+&M zr0QwGrj1}v{n+h(d6i)C3w^R{RyeTYaxAo!47T#IG%PLGJ2fl;b zGC<;obp}ZfmWeOoP$`xE&CT5}Qz!C8^h~*uA94@*(M7j1*OQ4Edm3;c0IhdttG>Vv zfS@Q6sPL%p)H0|Z8B9ptnr$JWFEeRvm2dr+S2mc;-%J}1f{kAD_c~cSO@ZQR3rFW0 zy*U$ALMUmoIy82fhQQO#)$NImKA)Ep_w|y*{cbw7@fP2|zL6+!3Wy6se|P65FgAE^ zi)tS>wpE^gak zJ*1)MQQ6l1LI4^O|40P$&tnN7Ha1^W?w>DbTVlPOr5;9=y^@E>BZIZDBHhZS2Imah> z@~IG#=!yi*5(}P>-#a~*gd=+QMTmGtaK!n;*q$)UtdZ|Jnao%mtQ-3+Tj&1 z8ak3WU%N*pRJYo((O|@+o1l{l0Iu$3?Q~?zVmhXT%b9{L{^~DkvORw9qukbtK*wfM z>yg{&mbJUR#+E@x8wro`mJT@$r)Xa_c$?7tM4s8v`ko*+VdZ(k9c{+7gNcsO!=GP@ zhn40Qh@a<&w+xHPXZJ(^;XQ{hJK<51R0fWe5#&qhBM#QKO#%D|-sEQCwMbue(x0H{ zJ()+CxWBQ6urBJv@ZRi+MD04)LHRvF)%p>97xuW7XqAF?R@96;@=*pjV+2Y(%{Z64 zg{$0_pl*FYX#$&WR@}z)XEL*Jm3XjJW9Z zGWc+Z{@B3W4SNt#*;VS~;9FyRv2x`1APF4JgUxSuKoWsIah$SQd-`AZso!9T{eyQ9 z?CSZ*2;W%#i>7EUTpe#<^%-Bc%$u+Iut&k#n+(D^O{HSik~y!P-#(`O02?pL2&Ix$ zlMBH_z{Jc|tO8Wu?qjW3C@tFCYvH#J-Ai_=^+W?&zWWnylWZ6P(~aX_U03R-zXasA zK9-(50i8nv9Yo&Z7Uz?^Hb(|q3Y|lfNk<^7cmjVS9yk(~I6ohN?TEe)JfVqC6(Di; zNwCmU!}ruh-@nnbWH7eDJIj(dIU}zTGSBKpg7>%&o#)yNOwq)xfT8RB2c@-zL(~Q9 zApv8k9vfO;X~M1EENU`MxFq!M(U??^>i^Kq(l5dC)bj7Rg6UAL|H|tI=rH0M*_geq z3eUu}uc74YQU*Q8d&Do0-GoFGJ6g1s95ljIR7<(O0jlI)G z4|m{~-IY+6t%u4ZR6;=AGa&=*A~{}{d51QZ6f3-)bEtgaSN~`w&v2#}ZkUdnT(OA^ z+?0)mVG6qRBslfi4`Tmep;vfbx&HG8=UN?vfTc>*mRSkAOBxTumVF^^<=J!26+%3I zmB7HYDc#=ksWY3(c5p4(%^<9*1PbB>yoL&~-a$gLQsOG6*z|eHV|EE`W!Q99)2jvW z8-ZE##B8-cno^e3DB=#5TeNgS&z0@CsvS}&3xq;+zQSZOws`$(4PIp84J(^dpn8;F zsXIlV?#VSF^qPt9=xBSCjmE0p?Xp`XzQV^CPj2e`Xzg2W}5DI?_2U@Ao;@*`?wD;V`zJxUnhZ;=LweQ`=>{G z_X8*r58bqMt=h)4u=k$woYL7nhhg<*w4$o7-x2ulhcE)6tRIqGTQ)8BLY|M{+i#%M z>p-A6s|kcjf5|f`<7mb}-1yd)lJqV`DqE)^Rlp_P5meqJ(-}-n=VXdwMT@%_R({k; zd0g^{uvjy5`&5EwTc!6|v0N-LHN0MM8_>0Xp*&%iCB`+R<)_>TUAIl-U+<#0OZ`<- zX+$S^{bWM(tnZoE9*qrY9!HKrlKk=~af{He5xc2?P!u&2Nm+B|CMh-a2fq%D)_mPr zuC=L?*w<3{RcLY-*mVX@o=0$hN#RXBq0ZGr!)+aioWlVxrGpWs%~bIGh@b(-fE|1!7HhIq~c1z+TVD*Wm=kWdW-NAF=dNcHHkFjp)qmKg7w$5P< zzHxp;+9uaPBU}a-vwu3fyGgs-A>tpO^Q_PdD=Ms;f#|R7eNzxo-g?Sw%H(m&xFYb_U1pZ(S0zwO*kP2 z3i+>%Zu?wZDqz=#!zK7+49R!XH9;=~o_tM*5qurY6}b+%Jz-Wvq|CVDA?o#$lEazq zlTT#3od;swz9mIeL|>4k!?3K36zcNr+RP1_;Gh7)Pp&_#eKmAEVO~$XUoPsL9$ZCD ze>OkB??8cF-QBeCQ#8g%mAg;pQe>i`qd@l-@h)k0V&y{qR+%z@eS>HxLvXx7%cw)` z>LGr~_|e(@BNApWX4Dp%;wsE zeK)2bp8l^hW-c>lc`;S7mDtZ+40BR8+hhtWZDGeH0=OX0K@;7sr_{*}%tz1BD+0E2 zeRg~AyF(B}7?Zo)w}lp|k~g=9%Njkob$*MIr|>ReY#X~sscLrr@>RkADh`Pd?VGf@ z3mS3wkeRCwN`hRmx~<2n#6g6MFF4qxwFnrg#j4A$Z5OLkB21}j9lc=fEn@5xzqE_N zO#VK;GTT1qq3e&O{DMb+gTwIEBYn&t=E?K?%KhS_d-F_$)y6fv<9PQe0Bz7Er10yv z9iNYA>OaV|VR*1Qnx%_S-Y5zS9W7O1m2oel>D}Qle(u7#c{}U8RE>(Rf z{QublBzjET;J)9O%-FHLfBp;2|L@=b8x%$rcDM|O<9{)y2Z5oOxXYC{Y{)hGC&>R9 zh#~<}{egpMNhc4{$Q0UFjr%n3L9$2>1t&Y8d6rGnMrUMxTCj%wC$Hb#R}SPl@0`#B zyMp^s%7_Q=Uu*h-g^%VqI2MiGjl7kV(l+VUW`@r{5p+%vmQmQu)eipI@WykhY6}Ir zt*4XkdmwEoul;g#;Z`$)>Y>ce*Ni3ea1XIC6@x7GS>=d4T39do3lv1TX{YXDKW5=} z0UpLJIc4?md|r$;kVi>N&xG5mh$fFm576b}+pE}G%u)<0@-o;_9k9nx?z?1DaEi?l zr%9Ys+$q4-oO`P|CrFJhg9`F;SRsU`qJvun*mQ_xwQW~OhL60)Eky4ur=RNnc5Q76 zbsQHUO{=KF$=lU(a`{M6Cr5A@^ErOPOa2Rr;P<2&3!J-kxde-jr7fgTSz1F+od<22 z0+(ZMFx0L3>DZ)^J8i8|XDJHxhaXxy_7d2K>@BVI+PuDklz9`vt92BZ{sq@n>bM^? zUog;cSw+uA-;C8A&=5OXxa$Tk$y->^MlBTRp-dODXWrNci*}5%*RJ8DRGzysy;i)p zv5-(*&}vkHK5u2u^U1BWo7T+?s<*F%nS|_(WF`fD1=I|1fe5Kf3UeJg*omEh@x)b? zy}#6R>^fo%pCbmRO#-^tbD=gpLXuJ-J(F2*+$f!BQTBqgA_U{?dqzZ5ft_M>%hl<6 z)Sp`6s$@f66p;imJdLrw?+o%{+O_OsIG>#i+Mx7VLXZ!+OF4BpYvej{Y-7ExN5kqY zcWIg`rJ6c2omTNCCBlLDKNTUhV~%k*ckL3isopY6&yz4Znk(zRlhQtR=7s06z)_tJ zA0(2XUTz)5BPH#Gcm1yd-TbKSt;p?C3r3y}ZOb_r?ECQrGXe4MQ6tJYQGcYq=y!H2 zvM|?b_2MX*Zj33QtrlU&C5Mi;HqNfzR7uev`BZGCl9=p+l|X-=9q~qvu}L_`5-O(A z{XQivf^2z$CPb-rnix2EBjgo;CMb8)3UY0*Ysq~5{En}mQ(SqO$85$y&~`DOQLcoB+UQ_v63sC) zewy&oo|z1(`{t0pBM8i>T(?aS+M4XIg0+$hJ&?{jQNW-@XC}DEu$lCJgUPdFu}Q9w zXT|nCH`h|I{rkb{@4KwF*na%h8tFYA@Pk}lMDO!}Glq)pPxRNaIlnns>5Fhhwh^hQ z`C=7`rD|h)AJAEiQvlOen5Hg=TkoH}|(s z88guDw8K@AA8CX(o?8;zjuV&wEv~Nt5Pzu?=K;HqIIMjh5YN$XTI7_2a@2h~e{ z*-9wY+~5pqBfwpq0?h{6kLNwNGfbCFFv&tiPo>y326>)+ZAg`4p;Uu8CTSMXQlSW^ zasQx)p^x`uT09s&B*e<%n_d_}rUqp(5`M-3U}lkI+zTFfkcbhjalk$0iww z#Ynxxs`ug>!ata-ochEaD3i)%wPxffFn#0YFt-R$V7t+hQhhj06iYHI9WALT*{wrN z_hCO58X;=1!6ah+R%Wv~>olr>R8|6V4*Lr4GA!$XMq)LwN6_&`su%J?M^8y3F_M4z z9rCH+KPk3+kBV#dV0YYA!A3ROtClEeXWbJyb??yC%c~exnn-?bBk5A1p3YE~8kWkNu@$+A4T>Q6@qkHOQ zN|dE!4Z6F{J_RTrHfn0m7u0E~0V*u8bKZ|O{@J~0 zzSO0NZ2vfh_P2c8amEX_9T6V_+7dDU?ZEe!+(BX4$rpB8T=?#I9n+Kmr4`usX3Q0* zsVYbU6rfZF=(Uout@8YFGdYIJ{Wvisr*Yj|$!FeE!w>^3>rqM>y63 zvD?d{k0g}AWC#N&y)8-t3{hId@C}LVX6h!g?PlUIgb~VoCpJ`|pVgeg`e$dkndD^G z;DD(Ab8c8Pu&+{nkv?~d2~h66>u)3{%oj#@!8-=klmW6Qn9ND83=1=2$i)BBaJXkA hYQ7@;&$HadiZ^|NpN=W$zx?7q%qNRS@!^Hye*i}iX8r&G literal 0 HcmV?d00001 diff --git a/admin/src/assets/img/favicon.png b/admin/src/assets/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7f62affe0cd4cf62d912341fdb37637ea2bab2a9 GIT binary patch literal 7185 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 literal 0 HcmV?d00001 diff --git a/admin/src/assets/style.css b/admin/src/assets/style.css new file mode 100755 index 00000000..156d63b5 --- /dev/null +++ b/admin/src/assets/style.css @@ -0,0 +1,7183 @@ +/** + * CoreUI - Open Source Bootstrap Admin Template + * @version v1.0.0-alpha.2 + * @link http://coreui.io + * Copyright (c) 2016 creativeLabs Łukasz Holeczek + * @license MIT + */ +/*! normalize.css v4.0.0 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -ms-text-size-adjust: 100%; + -webkit-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, +aside, +details, +figcaption, +figure, +footer, +header, +main, +menu, +nav, +section, +summary { + display: block; } + +audio, +canvas, +progress, +video { + display: inline-block; } + +audio:not([controls]) { + display: none; + height: 0; } + +progress { + vertical-align: baseline; } + +template, +[hidden] { + display: none; } + +a { + background-color: transparent; } + +a:active, +a:hover { + outline-width: 0; } + +abbr[title] { + border-bottom: none; + text-decoration: underline; + text-decoration: underline dotted; } + +b, +strong { + font-weight: inherit; } + +b, +strong { + font-weight: bolder; } + +dfn { + font-style: italic; } + +h1 { + font-size: 2em; + margin: 0.67em 0; } + +mark { + background-color: #ff0; + color: #000; } + +small { + font-size: 80%; } + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; } + +sub { + bottom: -0.25em; } + +sup { + top: -0.5em; } + +img { + border-style: none; } + +svg:not(:root) { + overflow: hidden; } + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; } + +figure { + margin: 1em 40px; } + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; } + +button, +input, +select, +textarea { + font: inherit; } + +optgroup { + font-weight: bold; } + +button, +input, +select { + overflow: visible; } + +button, +input, +select, +textarea { + margin: 0; } + +button, +select { + text-transform: none; } + +button, +[type="button"], +[type="reset"], +[type="submit"] { + cursor: pointer; } + +[disabled] { + cursor: default; } + +button, +html [type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; } + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; } + +button:-moz-focusring, +input:-moz-focusring { + outline: 1px dotted ButtonText; } + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; } + +legend { + box-sizing: border-box; + color: inherit; + display: table; + max-width: 100%; + padding: 0; + white-space: normal; } + +textarea { + overflow: auto; } + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; + padding: 0; } + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; } + +[type="search"] { + -webkit-appearance: textfield; } + +[type="search"]::-webkit-search-cancel-button, +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; } + +@media print { + *, + *::before, + *::after, + *::first-letter, + *::first-line { + text-shadow: none !important; + box-shadow: none !important; } + a, + a:visited { + text-decoration: underline; } + abbr[title]::after { + content: " (" attr(title) ")"; } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; } + thead { + display: table-header-group; } + tr, + img { + page-break-inside: avoid; } + p, + h2, + h3 { + orphans: 3; + widows: 3; } + h2, + h3 { + page-break-after: avoid; } + .navbar { + display: none; } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; } + .tag { + border: 1px solid #000; } + .table { + border-collapse: collapse !important; } + .table td, + .table th { + background-color: #fff !important; } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; } } + +html { + box-sizing: border-box; } + +*, +*::before, +*::after { + box-sizing: inherit; } + +@-ms-viewport { + width: device-width; } + +html { + font-size: 16px; + -ms-overflow-style: scrollbar; + -webkit-tap-highlight-color: transparent; } + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 0.875rem; + line-height: 1.5; + color: #263238; + background-color: #e4e5e6; } + +[tabindex="-1"]:focus { + outline: none !important; } + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: .5rem; } + +p { + margin-top: 0; + margin-bottom: 1rem; } + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #b0bec5; } + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; } + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; } + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; } + +dt { + font-weight: bold; } + +dd { + margin-bottom: .5rem; + margin-left: 0; } + +blockquote { + margin: 0 0 1rem; } + +a { + color: #20a8d8; + text-decoration: none; } + a:focus, a:hover { + color: #167495; + text-decoration: underline; } + a:focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + +a:not([href]):not([tabindex]) { + color: inherit; + text-decoration: none; } + a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover { + color: inherit; + text-decoration: none; } + a:not([href]):not([tabindex]):focus { + outline: none; } + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; } + +figure { + margin: 0 0 1rem; } + +img { + vertical-align: middle; } + +[role="button"] { + cursor: pointer; } + +a, +area, +button, +[role="button"], +input, +label, +select, +summary, +textarea { + touch-action: manipulation; } + +table { + border-collapse: collapse; + background-color: transparent; } + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #b0bec5; + text-align: left; + caption-side: bottom; } + +th { + text-align: left; } + +label { + display: inline-block; + margin-bottom: .5rem; } + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; } + +input, +button, +select, +textarea { + margin: 0; + line-height: inherit; + border-radius: 0; } + +input[type="radio"]:disabled, +input[type="checkbox"]:disabled { + cursor: not-allowed; } + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; } + +textarea { + resize: vertical; } + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; } + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; } + +input[type="search"] { + -webkit-appearance: none; } + +output { + display: inline-block; } + +[hidden] { + display: none !important; } + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } + +h1, .h1 { + font-size: 2.5rem; } + +h2, .h2 { + font-size: 2rem; } + +h3, .h3 { + font-size: 1.75rem; } + +h4, .h4 { + font-size: 1.5rem; } + +h5, .h5 { + font-size: 1.25rem; } + +h6, .h6 { + font-size: 1rem; } + +.lead { + font-size: 1.25rem; + font-weight: 300; } + +.display-1 { + font-size: 6rem; + font-weight: 300; } + +.display-2 { + font-size: 5.5rem; + font-weight: 300; } + +.display-3 { + font-size: 4.5rem; + font-weight: 300; } + +.display-4 { + font-size: 3.5rem; + font-weight: 300; } + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); } + +small, +.small { + font-size: 80%; + font-weight: normal; } + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; } + +.list-unstyled { + padding-left: 0; + list-style: none; } + +.list-inline { + padding-left: 0; + list-style: none; } + +.list-inline-item { + display: inline-block; } + .list-inline-item:not(:last-child) { + margin-right: 5px; } + +.initialism { + font-size: 90%; + text-transform: uppercase; } + +.blockquote { + padding: 0.5rem 1rem; + margin-bottom: 1rem; + font-size: 1.09375rem; + border-left: 0.25rem solid #cfd8dc; } + +.blockquote-footer { + display: block; + font-size: 80%; + color: #b0bec5; } + .blockquote-footer::before { + content: "\2014 \00A0"; } + +.blockquote-reverse { + padding-right: 1rem; + padding-left: 0; + text-align: right; + border-right: 0.25rem solid #cfd8dc; + border-left: 0; } + +.blockquote-reverse .blockquote-footer::before { + content: ""; } + +.blockquote-reverse .blockquote-footer::after { + content: "\00A0 \2014"; } + +dl.row > dd + dt { + clear: left; } + +.img-fluid { + display: block; + max-width: 100%; + height: auto; } + +.img-thumbnail { + padding: 0.25rem; + background-color: #e4e5e6; + border: 1px solid #ddd; + transition: all .2s ease-in-out; + display: inline-block; + max-width: 100%; + height: auto; } + +.img-circle { + border-radius: 50%; } + +.figure { + display: inline-block; } + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; } + +.figure-caption { + font-size: 90%; + color: #b0bec5; } + +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } + +code { + padding: 0.2rem 0.4rem; + font-size: 90%; + color: #bd4147; + background-color: #f7f7f9; } + +kbd { + padding: 0.2rem 0.4rem; + font-size: 90%; + color: #fff; + background-color: #333; } + kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; } + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + font-size: 90%; + color: #263238; } + pre code { + padding: 0; + font-size: inherit; + color: inherit; + background-color: transparent; + border-radius: 0; } + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } + +.container { + margin-left: auto; + margin-right: auto; + padding-left: 15px; + padding-right: 15px; } + .container::after { + content: ""; + display: table; + clear: both; } + @media (min-width: 544px) { + .container { + max-width: 576px; } } + @media (min-width: 768px) { + .container { + max-width: 720px; } } + @media (min-width: 992px) { + .container { + max-width: 940px; } } + @media (min-width: 1200px) { + .container { + max-width: 1140px; } } + +.container-fluid { + margin-left: auto; + margin-right: auto; + padding-left: 15px; + padding-right: 15px; } + .container-fluid::after { + content: ""; + display: table; + clear: both; } + +.row { + margin-left: -15px; + margin-right: -15px; } + .row::after { + content: ""; + display: table; + clear: both; } + +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; } + +.col-xs-1 { + float: left; + width: 8.33333%; } + +.col-xs-2 { + float: left; + width: 16.66667%; } + +.col-xs-3 { + float: left; + width: 25%; } + +.col-xs-4 { + float: left; + width: 33.33333%; } + +.col-xs-5 { + float: left; + width: 41.66667%; } + +.col-xs-6 { + float: left; + width: 50%; } + +.col-xs-7 { + float: left; + width: 58.33333%; } + +.col-xs-8 { + float: left; + width: 66.66667%; } + +.col-xs-9 { + float: left; + width: 75%; } + +.col-xs-10 { + float: left; + width: 83.33333%; } + +.col-xs-11 { + float: left; + width: 91.66667%; } + +.col-xs-12 { + float: left; + width: 100%; } + +.pull-xs-0 { + right: auto; } + +.pull-xs-1 { + right: 8.33333%; } + +.pull-xs-2 { + right: 16.66667%; } + +.pull-xs-3 { + right: 25%; } + +.pull-xs-4 { + right: 33.33333%; } + +.pull-xs-5 { + right: 41.66667%; } + +.pull-xs-6 { + right: 50%; } + +.pull-xs-7 { + right: 58.33333%; } + +.pull-xs-8 { + right: 66.66667%; } + +.pull-xs-9 { + right: 75%; } + +.pull-xs-10 { + right: 83.33333%; } + +.pull-xs-11 { + right: 91.66667%; } + +.pull-xs-12 { + right: 100%; } + +.push-xs-0 { + left: auto; } + +.push-xs-1 { + left: 8.33333%; } + +.push-xs-2 { + left: 16.66667%; } + +.push-xs-3 { + left: 25%; } + +.push-xs-4 { + left: 33.33333%; } + +.push-xs-5 { + left: 41.66667%; } + +.push-xs-6 { + left: 50%; } + +.push-xs-7 { + left: 58.33333%; } + +.push-xs-8 { + left: 66.66667%; } + +.push-xs-9 { + left: 75%; } + +.push-xs-10 { + left: 83.33333%; } + +.push-xs-11 { + left: 91.66667%; } + +.push-xs-12 { + left: 100%; } + +.offset-xs-1 { + margin-left: 8.33333%; } + +.offset-xs-2 { + margin-left: 16.66667%; } + +.offset-xs-3 { + margin-left: 25%; } + +.offset-xs-4 { + margin-left: 33.33333%; } + +.offset-xs-5 { + margin-left: 41.66667%; } + +.offset-xs-6 { + margin-left: 50%; } + +.offset-xs-7 { + margin-left: 58.33333%; } + +.offset-xs-8 { + margin-left: 66.66667%; } + +.offset-xs-9 { + margin-left: 75%; } + +.offset-xs-10 { + margin-left: 83.33333%; } + +.offset-xs-11 { + margin-left: 91.66667%; } + +@media (min-width: 544px) { + .col-sm-1 { + float: left; + width: 8.33333%; } + .col-sm-2 { + float: left; + width: 16.66667%; } + .col-sm-3 { + float: left; + width: 25%; } + .col-sm-4 { + float: left; + width: 33.33333%; } + .col-sm-5 { + float: left; + width: 41.66667%; } + .col-sm-6 { + float: left; + width: 50%; } + .col-sm-7 { + float: left; + width: 58.33333%; } + .col-sm-8 { + float: left; + width: 66.66667%; } + .col-sm-9 { + float: left; + width: 75%; } + .col-sm-10 { + float: left; + width: 83.33333%; } + .col-sm-11 { + float: left; + width: 91.66667%; } + .col-sm-12 { + float: left; + width: 100%; } + .pull-sm-0 { + right: auto; } + .pull-sm-1 { + right: 8.33333%; } + .pull-sm-2 { + right: 16.66667%; } + .pull-sm-3 { + right: 25%; } + .pull-sm-4 { + right: 33.33333%; } + .pull-sm-5 { + right: 41.66667%; } + .pull-sm-6 { + right: 50%; } + .pull-sm-7 { + right: 58.33333%; } + .pull-sm-8 { + right: 66.66667%; } + .pull-sm-9 { + right: 75%; } + .pull-sm-10 { + right: 83.33333%; } + .pull-sm-11 { + right: 91.66667%; } + .pull-sm-12 { + right: 100%; } + .push-sm-0 { + left: auto; } + .push-sm-1 { + left: 8.33333%; } + .push-sm-2 { + left: 16.66667%; } + .push-sm-3 { + left: 25%; } + .push-sm-4 { + left: 33.33333%; } + .push-sm-5 { + left: 41.66667%; } + .push-sm-6 { + left: 50%; } + .push-sm-7 { + left: 58.33333%; } + .push-sm-8 { + left: 66.66667%; } + .push-sm-9 { + left: 75%; } + .push-sm-10 { + left: 83.33333%; } + .push-sm-11 { + left: 91.66667%; } + .push-sm-12 { + left: 100%; } + .offset-sm-0 { + margin-left: 0%; } + .offset-sm-1 { + margin-left: 8.33333%; } + .offset-sm-2 { + margin-left: 16.66667%; } + .offset-sm-3 { + margin-left: 25%; } + .offset-sm-4 { + margin-left: 33.33333%; } + .offset-sm-5 { + margin-left: 41.66667%; } + .offset-sm-6 { + margin-left: 50%; } + .offset-sm-7 { + margin-left: 58.33333%; } + .offset-sm-8 { + margin-left: 66.66667%; } + .offset-sm-9 { + margin-left: 75%; } + .offset-sm-10 { + margin-left: 83.33333%; } + .offset-sm-11 { + margin-left: 91.66667%; } } + +@media (min-width: 768px) { + .col-md-1 { + float: left; + width: 8.33333%; } + .col-md-2 { + float: left; + width: 16.66667%; } + .col-md-3 { + float: left; + width: 25%; } + .col-md-4 { + float: left; + width: 33.33333%; } + .col-md-5 { + float: left; + width: 41.66667%; } + .col-md-6 { + float: left; + width: 50%; } + .col-md-7 { + float: left; + width: 58.33333%; } + .col-md-8 { + float: left; + width: 66.66667%; } + .col-md-9 { + float: left; + width: 75%; } + .col-md-10 { + float: left; + width: 83.33333%; } + .col-md-11 { + float: left; + width: 91.66667%; } + .col-md-12 { + float: left; + width: 100%; } + .pull-md-0 { + right: auto; } + .pull-md-1 { + right: 8.33333%; } + .pull-md-2 { + right: 16.66667%; } + .pull-md-3 { + right: 25%; } + .pull-md-4 { + right: 33.33333%; } + .pull-md-5 { + right: 41.66667%; } + .pull-md-6 { + right: 50%; } + .pull-md-7 { + right: 58.33333%; } + .pull-md-8 { + right: 66.66667%; } + .pull-md-9 { + right: 75%; } + .pull-md-10 { + right: 83.33333%; } + .pull-md-11 { + right: 91.66667%; } + .pull-md-12 { + right: 100%; } + .push-md-0 { + left: auto; } + .push-md-1 { + left: 8.33333%; } + .push-md-2 { + left: 16.66667%; } + .push-md-3 { + left: 25%; } + .push-md-4 { + left: 33.33333%; } + .push-md-5 { + left: 41.66667%; } + .push-md-6 { + left: 50%; } + .push-md-7 { + left: 58.33333%; } + .push-md-8 { + left: 66.66667%; } + .push-md-9 { + left: 75%; } + .push-md-10 { + left: 83.33333%; } + .push-md-11 { + left: 91.66667%; } + .push-md-12 { + left: 100%; } + .offset-md-0 { + margin-left: 0%; } + .offset-md-1 { + margin-left: 8.33333%; } + .offset-md-2 { + margin-left: 16.66667%; } + .offset-md-3 { + margin-left: 25%; } + .offset-md-4 { + margin-left: 33.33333%; } + .offset-md-5 { + margin-left: 41.66667%; } + .offset-md-6 { + margin-left: 50%; } + .offset-md-7 { + margin-left: 58.33333%; } + .offset-md-8 { + margin-left: 66.66667%; } + .offset-md-9 { + margin-left: 75%; } + .offset-md-10 { + margin-left: 83.33333%; } + .offset-md-11 { + margin-left: 91.66667%; } } + +@media (min-width: 992px) { + .col-lg-1 { + float: left; + width: 8.33333%; } + .col-lg-2 { + float: left; + width: 16.66667%; } + .col-lg-3 { + float: left; + width: 25%; } + .col-lg-4 { + float: left; + width: 33.33333%; } + .col-lg-5 { + float: left; + width: 41.66667%; } + .col-lg-6 { + float: left; + width: 50%; } + .col-lg-7 { + float: left; + width: 58.33333%; } + .col-lg-8 { + float: left; + width: 66.66667%; } + .col-lg-9 { + float: left; + width: 75%; } + .col-lg-10 { + float: left; + width: 83.33333%; } + .col-lg-11 { + float: left; + width: 91.66667%; } + .col-lg-12 { + float: left; + width: 100%; } + .pull-lg-0 { + right: auto; } + .pull-lg-1 { + right: 8.33333%; } + .pull-lg-2 { + right: 16.66667%; } + .pull-lg-3 { + right: 25%; } + .pull-lg-4 { + right: 33.33333%; } + .pull-lg-5 { + right: 41.66667%; } + .pull-lg-6 { + right: 50%; } + .pull-lg-7 { + right: 58.33333%; } + .pull-lg-8 { + right: 66.66667%; } + .pull-lg-9 { + right: 75%; } + .pull-lg-10 { + right: 83.33333%; } + .pull-lg-11 { + right: 91.66667%; } + .pull-lg-12 { + right: 100%; } + .push-lg-0 { + left: auto; } + .push-lg-1 { + left: 8.33333%; } + .push-lg-2 { + left: 16.66667%; } + .push-lg-3 { + left: 25%; } + .push-lg-4 { + left: 33.33333%; } + .push-lg-5 { + left: 41.66667%; } + .push-lg-6 { + left: 50%; } + .push-lg-7 { + left: 58.33333%; } + .push-lg-8 { + left: 66.66667%; } + .push-lg-9 { + left: 75%; } + .push-lg-10 { + left: 83.33333%; } + .push-lg-11 { + left: 91.66667%; } + .push-lg-12 { + left: 100%; } + .offset-lg-0 { + margin-left: 0%; } + .offset-lg-1 { + margin-left: 8.33333%; } + .offset-lg-2 { + margin-left: 16.66667%; } + .offset-lg-3 { + margin-left: 25%; } + .offset-lg-4 { + margin-left: 33.33333%; } + .offset-lg-5 { + margin-left: 41.66667%; } + .offset-lg-6 { + margin-left: 50%; } + .offset-lg-7 { + margin-left: 58.33333%; } + .offset-lg-8 { + margin-left: 66.66667%; } + .offset-lg-9 { + margin-left: 75%; } + .offset-lg-10 { + margin-left: 83.33333%; } + .offset-lg-11 { + margin-left: 91.66667%; } } + +@media (min-width: 1200px) { + .col-xl-1 { + float: left; + width: 8.33333%; } + .col-xl-2 { + float: left; + width: 16.66667%; } + .col-xl-3 { + float: left; + width: 25%; } + .col-xl-4 { + float: left; + width: 33.33333%; } + .col-xl-5 { + float: left; + width: 41.66667%; } + .col-xl-6 { + float: left; + width: 50%; } + .col-xl-7 { + float: left; + width: 58.33333%; } + .col-xl-8 { + float: left; + width: 66.66667%; } + .col-xl-9 { + float: left; + width: 75%; } + .col-xl-10 { + float: left; + width: 83.33333%; } + .col-xl-11 { + float: left; + width: 91.66667%; } + .col-xl-12 { + float: left; + width: 100%; } + .pull-xl-0 { + right: auto; } + .pull-xl-1 { + right: 8.33333%; } + .pull-xl-2 { + right: 16.66667%; } + .pull-xl-3 { + right: 25%; } + .pull-xl-4 { + right: 33.33333%; } + .pull-xl-5 { + right: 41.66667%; } + .pull-xl-6 { + right: 50%; } + .pull-xl-7 { + right: 58.33333%; } + .pull-xl-8 { + right: 66.66667%; } + .pull-xl-9 { + right: 75%; } + .pull-xl-10 { + right: 83.33333%; } + .pull-xl-11 { + right: 91.66667%; } + .pull-xl-12 { + right: 100%; } + .push-xl-0 { + left: auto; } + .push-xl-1 { + left: 8.33333%; } + .push-xl-2 { + left: 16.66667%; } + .push-xl-3 { + left: 25%; } + .push-xl-4 { + left: 33.33333%; } + .push-xl-5 { + left: 41.66667%; } + .push-xl-6 { + left: 50%; } + .push-xl-7 { + left: 58.33333%; } + .push-xl-8 { + left: 66.66667%; } + .push-xl-9 { + left: 75%; } + .push-xl-10 { + left: 83.33333%; } + .push-xl-11 { + left: 91.66667%; } + .push-xl-12 { + left: 100%; } + .offset-xl-0 { + margin-left: 0%; } + .offset-xl-1 { + margin-left: 8.33333%; } + .offset-xl-2 { + margin-left: 16.66667%; } + .offset-xl-3 { + margin-left: 25%; } + .offset-xl-4 { + margin-left: 33.33333%; } + .offset-xl-5 { + margin-left: 41.66667%; } + .offset-xl-6 { + margin-left: 50%; } + .offset-xl-7 { + margin-left: 58.33333%; } + .offset-xl-8 { + margin-left: 66.66667%; } + .offset-xl-9 { + margin-left: 75%; } + .offset-xl-10 { + margin-left: 83.33333%; } + .offset-xl-11 { + margin-left: 91.66667%; } } + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 1rem; } + .table th, + .table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #cfd8dc; } + .table thead th { + vertical-align: bottom; + border-bottom: 2px solid #cfd8dc; } + .table tbody + tbody { + border-top: 2px solid #cfd8dc; } + .table .table { + background-color: #e4e5e6; } + +.table-sm th, +.table-sm td { + padding: 0.3rem; } + +.table-bordered { + border: 1px solid #cfd8dc; } + .table-bordered th, + .table-bordered td { + border: 1px solid #cfd8dc; } + .table-bordered thead th, + .table-bordered thead td { + border-bottom-width: 2px; } + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); } + +.table-hover tbody tr:hover { + background-color: rgba(0, 0, 0, 0.075); } + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); } + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); } + .table-hover .table-active:hover > td, + .table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); } + +.table-success, +.table-success > th, +.table-success > td { + background-color: #dff0d8; } + +.table-hover .table-success:hover { + background-color: #d0e9c6; } + .table-hover .table-success:hover > td, + .table-hover .table-success:hover > th { + background-color: #d0e9c6; } + +.table-info, +.table-info > th, +.table-info > td { + background-color: #d9edf7; } + +.table-hover .table-info:hover { + background-color: #c4e3f3; } + .table-hover .table-info:hover > td, + .table-hover .table-info:hover > th { + background-color: #c4e3f3; } + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #fcf8e3; } + +.table-hover .table-warning:hover { + background-color: #faf2cc; } + .table-hover .table-warning:hover > td, + .table-hover .table-warning:hover > th { + background-color: #faf2cc; } + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f2dede; } + +.table-hover .table-danger:hover { + background-color: #ebcccc; } + .table-hover .table-danger:hover > td, + .table-hover .table-danger:hover > th { + background-color: #ebcccc; } + +.thead-inverse th { + color: #fff; + background-color: #263238; } + +.thead-default th { + color: #607d8b; + background-color: #cfd8dc; } + +.table-inverse { + color: #cfd8dc; + background-color: #263238; } + .table-inverse th, + .table-inverse td, + .table-inverse thead th { + border-color: #607d8b; } + .table-inverse.table-bordered { + border: 0; } + +.table-responsive { + display: block; + width: 100%; + min-height: .01%; + overflow-x: auto; } + +.table-reflow thead { + float: left; } + +.table-reflow tbody { + display: block; + white-space: nowrap; } + +.table-reflow th, +.table-reflow td { + border-top: 1px solid #cfd8dc; + border-left: 1px solid #cfd8dc; } + .table-reflow th:last-child, + .table-reflow td:last-child { + border-right: 1px solid #cfd8dc; } + +.table-reflow thead:last-child tr:last-child th, +.table-reflow thead:last-child tr:last-child td, +.table-reflow tbody:last-child tr:last-child th, +.table-reflow tbody:last-child tr:last-child td, +.table-reflow tfoot:last-child tr:last-child th, +.table-reflow tfoot:last-child tr:last-child td { + border-bottom: 1px solid #cfd8dc; } + +.table-reflow tr { + float: left; } + .table-reflow tr th, + .table-reflow tr td { + display: block !important; + border: 1px solid #cfd8dc; } + +.form-control { + display: block; + width: 100%; + padding: 0.5rem 0.75rem; + font-size: 0.875rem; + line-height: 1.25; + color: #607d8b; + background-color: #fff; + background-image: none; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; } + .form-control::-ms-expand { + background-color: transparent; + border: 0; } + .form-control:focus { + color: #607d8b; + background-color: #fff; + border-color: #66afe9; + outline: none; } + .form-control::placeholder { + color: #999; + opacity: 1; } + .form-control:disabled, .form-control[readonly] { + background-color: #cfd8dc; + opacity: 1; } + .form-control:disabled { + cursor: not-allowed; } + +select.form-control:not([size]):not([multiple]) { + height: 2.3125rem; } + +select.form-control:focus::-ms-value { + color: #607d8b; + background-color: #fff; } + +.form-control-file, +.form-control-range { + display: block; } + +.col-form-label { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; } + +.col-form-label-lg { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + font-size: 1.25rem; } + +.col-form-label-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + font-size: 0.875rem; } + +.col-form-legend { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; + font-size: 0.875rem; } + +.form-control-static { + min-height: 2.3125rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + margin-bottom: 0; } + .form-control-static.form-control-sm, .input-group-sm > .form-control-static.form-control, + .input-group-sm > .form-control-static.input-group-addon, + .input-group-sm > .input-group-btn > .form-control-static.btn, .form-control-static.form-control-lg, .input-group-lg > .form-control-static.form-control, + .input-group-lg > .form-control-static.input-group-addon, + .input-group-lg > .input-group-btn > .form-control-static.btn { + padding-right: 0; + padding-left: 0; } + +.form-control-sm, .input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + +select.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]), +.input-group-sm > select.input-group-addon:not([size]):not([multiple]), +.input-group-sm > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: 1.8125rem; } + +.form-control-lg, .input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]), +.input-group-lg > select.input-group-addon:not([size]):not([multiple]), +.input-group-lg > .input-group-btn > select.btn:not([size]):not([multiple]) { + height: 3.16667rem; } + +.form-group { + margin-bottom: 1rem; } + +.form-text { + display: block; + margin-top: 0.25rem; } + +.form-check { + position: relative; + display: block; + margin-bottom: 0.75rem; } + .form-check + .form-check { + margin-top: -.25rem; } + .form-check.disabled .form-check-label { + color: #b0bec5; + cursor: not-allowed; } + +.form-check-label { + padding-left: 1.25rem; + margin-bottom: 0; + cursor: pointer; } + +.form-check-input { + position: absolute; + margin-top: .25rem; + margin-left: -1.25rem; } + .form-check-input:only-child { + position: static; } + +.form-check-inline { + position: relative; + display: inline-block; + padding-left: 1.25rem; + margin-bottom: 0; + vertical-align: middle; + cursor: pointer; } + .form-check-inline + .form-check-inline { + margin-left: .75rem; } + .form-check-inline.disabled { + cursor: not-allowed; } + +.form-control-feedback { + margin-top: 0.25rem; } + +.form-control-success, +.form-control-warning, +.form-control-danger { + padding-right: 2.25rem; + background-repeat: no-repeat; + background-position: center right 0.57812rem; + background-size: 1.15625rem 1.15625rem; } + +.has-success .form-control-feedback, +.has-success .form-control-label, +.has-success .form-check-label, +.has-success .form-check-inline, +.has-success .custom-control { + color: #4dbd74; } + +.has-success .form-control { + border-color: #4dbd74; } + +.has-success .input-group-addon { + color: #4dbd74; + border-color: #4dbd74; + background-color: #e2f4e8; } + +.has-success .form-control-feedback { + color: #4dbd74; } + +.has-success .form-control-success { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E"); } + +.has-warning .form-control-feedback, +.has-warning .form-control-label, +.has-warning .form-check-label, +.has-warning .form-check-inline, +.has-warning .custom-control { + color: #f8cb00; } + +.has-warning .form-control { + border-color: #f8cb00; } + +.has-warning .input-group-addon { + color: #f8cb00; + border-color: #f8cb00; + background-color: #fff4c5; } + +.has-warning .form-control-feedback { + color: #f8cb00; } + +.has-warning .form-control-warning { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23f0ad4e' d='M4.4 5.324h-.8v-2.46h.8zm0 1.42h-.8V5.89h.8zM3.76.63L.04 7.075c-.115.2.016.425.26.426h7.397c.242 0 .372-.226.258-.426C6.726 4.924 5.47 2.79 4.253.63c-.113-.174-.39-.174-.494 0z'/%3E%3C/svg%3E"); } + +.has-danger .form-control-feedback, +.has-danger .form-control-label, +.has-danger .form-check-label, +.has-danger .form-check-inline, +.has-danger .custom-control { + color: #f86c6b; } + +.has-danger .form-control { + border-color: #f86c6b; } + +.has-danger .input-group-addon { + color: #f86c6b; + border-color: #f86c6b; + background-color: white; } + +.has-danger .form-control-feedback { + color: #f86c6b; } + +.has-danger .form-control-danger { + background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E"); } + +@media (min-width: 544px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; } + .form-inline .form-control-static { + display: inline-block; } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; } + .form-inline .input-group > .form-control { + width: 100%; } + .form-inline .form-control-label { + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-check { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-check-label { + padding-left: 0; } + .form-inline .form-check-input { + position: relative; + margin-left: 0; } + .form-inline .has-feedback .form-control-feedback { + top: 0; } } + +.btn { + display: inline-block; + font-weight: normal; + line-height: 1.25; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + user-select: none; + border: 1px solid transparent; + padding: 0.5rem 1rem; + font-size: 0.875rem; + transition: all 0.2s ease-in-out; } + .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus { + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + .btn:focus, .btn:hover { + text-decoration: none; } + .btn.focus { + text-decoration: none; } + .btn:active, .btn.active { + background-image: none; + outline: 0; } + .btn.disabled, .btn:disabled { + cursor: not-allowed; + opacity: .65; } + +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; } + +.btn-primary { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-primary:hover { + color: #fff; + background-color: #1985ac; + border-color: #187fa3; } + .btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #1985ac; + border-color: #187fa3; } + .btn-primary:active, .btn-primary.active, + .open > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #1985ac; + border-color: #187fa3; + background-image: none; } + .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus, + .open > .btn-primary.dropdown-toggle:hover, + .open > .btn-primary.dropdown-toggle:focus, + .open > .btn-primary.dropdown-toggle.focus { + color: #fff; + background-color: #156d8c; + border-color: #105269; } + .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary:disabled:focus, .btn-primary:disabled.focus { + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-primary.disabled:hover, .btn-primary:disabled:hover { + background-color: #20a8d8; + border-color: #20a8d8; } + +.btn-secondary { + color: #263238; + background-color: #fff; + border-color: #ccc; } + .btn-secondary:hover { + color: #263238; + background-color: #e6e6e6; + border-color: #adadad; } + .btn-secondary:focus, .btn-secondary.focus { + color: #263238; + background-color: #e6e6e6; + border-color: #adadad; } + .btn-secondary:active, .btn-secondary.active, + .open > .btn-secondary.dropdown-toggle { + color: #263238; + background-color: #e6e6e6; + border-color: #adadad; + background-image: none; } + .btn-secondary:active:hover, .btn-secondary:active:focus, .btn-secondary:active.focus, .btn-secondary.active:hover, .btn-secondary.active:focus, .btn-secondary.active.focus, + .open > .btn-secondary.dropdown-toggle:hover, + .open > .btn-secondary.dropdown-toggle:focus, + .open > .btn-secondary.dropdown-toggle.focus { + color: #263238; + background-color: #d4d4d4; + border-color: #8c8c8c; } + .btn-secondary.disabled:focus, .btn-secondary.disabled.focus, .btn-secondary:disabled:focus, .btn-secondary:disabled.focus { + background-color: #fff; + border-color: #ccc; } + .btn-secondary.disabled:hover, .btn-secondary:disabled:hover { + background-color: #fff; + border-color: #ccc; } + +.btn-info { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-info:hover { + color: #fff; + background-color: #39b2d5; + border-color: #30aed3; } + .btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #39b2d5; + border-color: #30aed3; } + .btn-info:active, .btn-info.active, + .open > .btn-info.dropdown-toggle { + color: #fff; + background-color: #39b2d5; + border-color: #30aed3; + background-image: none; } + .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus, + .open > .btn-info.dropdown-toggle:hover, + .open > .btn-info.dropdown-toggle:focus, + .open > .btn-info.dropdown-toggle.focus { + color: #fff; + background-color: #299fc1; + border-color: #2283a0; } + .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info:disabled:focus, .btn-info:disabled.focus { + background-color: #63c2de; + border-color: #63c2de; } + .btn-info.disabled:hover, .btn-info:disabled:hover { + background-color: #63c2de; + border-color: #63c2de; } + +.btn-success { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-success:hover { + color: #fff; + background-color: #3a9d5d; + border-color: #379558; } + .btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #3a9d5d; + border-color: #379558; } + .btn-success:active, .btn-success.active, + .open > .btn-success.dropdown-toggle { + color: #fff; + background-color: #3a9d5d; + border-color: #379558; + background-image: none; } + .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus, + .open > .btn-success.dropdown-toggle:hover, + .open > .btn-success.dropdown-toggle:focus, + .open > .btn-success.dropdown-toggle.focus { + color: #fff; + background-color: #30834d; + border-color: #25653c; } + .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success:disabled:focus, .btn-success:disabled.focus { + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-success.disabled:hover, .btn-success:disabled:hover { + background-color: #4dbd74; + border-color: #4dbd74; } + +.btn-warning { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-warning:hover { + color: #fff; + background-color: #c5a100; + border-color: #bb9900; } + .btn-warning:focus, .btn-warning.focus { + color: #fff; + background-color: #c5a100; + border-color: #bb9900; } + .btn-warning:active, .btn-warning.active, + .open > .btn-warning.dropdown-toggle { + color: #fff; + background-color: #c5a100; + border-color: #bb9900; + background-image: none; } + .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus, + .open > .btn-warning.dropdown-toggle:hover, + .open > .btn-warning.dropdown-toggle:focus, + .open > .btn-warning.dropdown-toggle.focus { + color: #fff; + background-color: #a18400; + border-color: #796300; } + .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning:disabled:focus, .btn-warning:disabled.focus { + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-warning.disabled:hover, .btn-warning:disabled:hover { + background-color: #f8cb00; + border-color: #f8cb00; } + +.btn-danger { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-danger:hover { + color: #fff; + background-color: #f63c3a; + border-color: #f53231; } + .btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #f63c3a; + border-color: #f53231; } + .btn-danger:active, .btn-danger.active, + .open > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #f63c3a; + border-color: #f53231; + background-image: none; } + .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus, + .open > .btn-danger.dropdown-toggle:hover, + .open > .btn-danger.dropdown-toggle:focus, + .open > .btn-danger.dropdown-toggle.focus { + color: #fff; + background-color: #f41a18; + border-color: #d90c0a; } + .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger:disabled:focus, .btn-danger:disabled.focus { + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-danger.disabled:hover, .btn-danger:disabled:hover { + background-color: #f86c6b; + border-color: #f86c6b; } + +.btn-outline-primary { + color: #20a8d8; + background-image: none; + background-color: transparent; + border-color: #20a8d8; } + .btn-outline-primary:hover { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-outline-primary:focus, .btn-outline-primary.focus { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-outline-primary:active, .btn-outline-primary.active, + .open > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #20a8d8; + border-color: #20a8d8; } + .btn-outline-primary:active:hover, .btn-outline-primary:active:focus, .btn-outline-primary:active.focus, .btn-outline-primary.active:hover, .btn-outline-primary.active:focus, .btn-outline-primary.active.focus, + .open > .btn-outline-primary.dropdown-toggle:hover, + .open > .btn-outline-primary.dropdown-toggle:focus, + .open > .btn-outline-primary.dropdown-toggle.focus { + color: #fff; + background-color: #156d8c; + border-color: #105269; } + .btn-outline-primary.disabled:focus, .btn-outline-primary.disabled.focus, .btn-outline-primary:disabled:focus, .btn-outline-primary:disabled.focus { + border-color: #74cbea; } + .btn-outline-primary.disabled:hover, .btn-outline-primary:disabled:hover { + border-color: #74cbea; } + +.btn-outline-secondary { + color: #ccc; + background-image: none; + background-color: transparent; + border-color: #ccc; } + .btn-outline-secondary:hover { + color: #fff; + background-color: #ccc; + border-color: #ccc; } + .btn-outline-secondary:focus, .btn-outline-secondary.focus { + color: #fff; + background-color: #ccc; + border-color: #ccc; } + .btn-outline-secondary:active, .btn-outline-secondary.active, + .open > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #ccc; + border-color: #ccc; } + .btn-outline-secondary:active:hover, .btn-outline-secondary:active:focus, .btn-outline-secondary:active.focus, .btn-outline-secondary.active:hover, .btn-outline-secondary.active:focus, .btn-outline-secondary.active.focus, + .open > .btn-outline-secondary.dropdown-toggle:hover, + .open > .btn-outline-secondary.dropdown-toggle:focus, + .open > .btn-outline-secondary.dropdown-toggle.focus { + color: #fff; + background-color: #a1a1a1; + border-color: #8c8c8c; } + .btn-outline-secondary.disabled:focus, .btn-outline-secondary.disabled.focus, .btn-outline-secondary:disabled:focus, .btn-outline-secondary:disabled.focus { + border-color: white; } + .btn-outline-secondary.disabled:hover, .btn-outline-secondary:disabled:hover { + border-color: white; } + +.btn-outline-info { + color: #63c2de; + background-image: none; + background-color: transparent; + border-color: #63c2de; } + .btn-outline-info:hover { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-outline-info:focus, .btn-outline-info.focus { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-outline-info:active, .btn-outline-info.active, + .open > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #63c2de; + border-color: #63c2de; } + .btn-outline-info:active:hover, .btn-outline-info:active:focus, .btn-outline-info:active.focus, .btn-outline-info.active:hover, .btn-outline-info.active:focus, .btn-outline-info.active.focus, + .open > .btn-outline-info.dropdown-toggle:hover, + .open > .btn-outline-info.dropdown-toggle:focus, + .open > .btn-outline-info.dropdown-toggle.focus { + color: #fff; + background-color: #299fc1; + border-color: #2283a0; } + .btn-outline-info.disabled:focus, .btn-outline-info.disabled.focus, .btn-outline-info:disabled:focus, .btn-outline-info:disabled.focus { + border-color: #b7e3f0; } + .btn-outline-info.disabled:hover, .btn-outline-info:disabled:hover { + border-color: #b7e3f0; } + +.btn-outline-success { + color: #4dbd74; + background-image: none; + background-color: transparent; + border-color: #4dbd74; } + .btn-outline-success:hover { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-outline-success:focus, .btn-outline-success.focus { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-outline-success:active, .btn-outline-success.active, + .open > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #4dbd74; + border-color: #4dbd74; } + .btn-outline-success:active:hover, .btn-outline-success:active:focus, .btn-outline-success:active.focus, .btn-outline-success.active:hover, .btn-outline-success.active:focus, .btn-outline-success.active.focus, + .open > .btn-outline-success.dropdown-toggle:hover, + .open > .btn-outline-success.dropdown-toggle:focus, + .open > .btn-outline-success.dropdown-toggle.focus { + color: #fff; + background-color: #30834d; + border-color: #25653c; } + .btn-outline-success.disabled:focus, .btn-outline-success.disabled.focus, .btn-outline-success:disabled:focus, .btn-outline-success:disabled.focus { + border-color: #97d9ae; } + .btn-outline-success.disabled:hover, .btn-outline-success:disabled:hover { + border-color: #97d9ae; } + +.btn-outline-warning { + color: #f8cb00; + background-image: none; + background-color: transparent; + border-color: #f8cb00; } + .btn-outline-warning:hover { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-outline-warning:focus, .btn-outline-warning.focus { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-outline-warning:active, .btn-outline-warning.active, + .open > .btn-outline-warning.dropdown-toggle { + color: #fff; + background-color: #f8cb00; + border-color: #f8cb00; } + .btn-outline-warning:active:hover, .btn-outline-warning:active:focus, .btn-outline-warning:active.focus, .btn-outline-warning.active:hover, .btn-outline-warning.active:focus, .btn-outline-warning.active.focus, + .open > .btn-outline-warning.dropdown-toggle:hover, + .open > .btn-outline-warning.dropdown-toggle:focus, + .open > .btn-outline-warning.dropdown-toggle.focus { + color: #fff; + background-color: #a18400; + border-color: #796300; } + .btn-outline-warning.disabled:focus, .btn-outline-warning.disabled.focus, .btn-outline-warning:disabled:focus, .btn-outline-warning:disabled.focus { + border-color: #ffe25f; } + .btn-outline-warning.disabled:hover, .btn-outline-warning:disabled:hover { + border-color: #ffe25f; } + +.btn-outline-danger { + color: #f86c6b; + background-image: none; + background-color: transparent; + border-color: #f86c6b; } + .btn-outline-danger:hover { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-outline-danger:focus, .btn-outline-danger.focus { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-outline-danger:active, .btn-outline-danger.active, + .open > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #f86c6b; + border-color: #f86c6b; } + .btn-outline-danger:active:hover, .btn-outline-danger:active:focus, .btn-outline-danger:active.focus, .btn-outline-danger.active:hover, .btn-outline-danger.active:focus, .btn-outline-danger.active.focus, + .open > .btn-outline-danger.dropdown-toggle:hover, + .open > .btn-outline-danger.dropdown-toggle:focus, + .open > .btn-outline-danger.dropdown-toggle.focus { + color: #fff; + background-color: #f41a18; + border-color: #d90c0a; } + .btn-outline-danger.disabled:focus, .btn-outline-danger.disabled.focus, .btn-outline-danger:disabled:focus, .btn-outline-danger:disabled.focus { + border-color: #fdcdcc; } + .btn-outline-danger.disabled:hover, .btn-outline-danger:disabled:hover { + border-color: #fdcdcc; } + +.btn-link { + font-weight: normal; + color: #20a8d8; + border-radius: 0; } + .btn-link, .btn-link:active, .btn-link.active, .btn-link:disabled { + background-color: transparent; } + .btn-link, .btn-link:focus, .btn-link:active { + border-color: transparent; } + .btn-link:hover { + border-color: transparent; } + .btn-link:focus, .btn-link:hover { + color: #167495; + text-decoration: underline; + background-color: transparent; } + .btn-link:disabled:focus, .btn-link:disabled:hover { + color: #b0bec5; + text-decoration: none; } + +.btn-lg, .btn-group-lg > .btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + +.btn-block { + display: block; + width: 100%; } + +.btn-block + .btn-block { + margin-top: 0.5rem; } + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; } + +.fade { + opacity: 0; + transition: opacity .15s linear; } + .fade.in { + opacity: 1; } + +.collapse { + display: none; } + .collapse.in { + display: block; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition-timing-function: ease; + transition-duration: .35s; + transition-property: height; } + +.dropup, +.dropdown { + position: relative; } + +.dropdown-toggle::after { + display: inline-block; + width: 0; + height: 0; + margin-left: 0.3em; + vertical-align: middle; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-left: 0.3em solid transparent; } + +.dropdown-toggle:focus { + outline: 0; } + +.dropup .dropdown-toggle::after { + border-top: 0; + border-bottom: 0.3em solid; } + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 0 0; + margin: 2px 0 0; + font-size: 0.875rem; + color: #263238; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #cfd8dc; } + +.dropdown-divider { + height: 1px; + margin: 0.5rem 0; + overflow: hidden; + background-color: #eceff1; } + +.dropdown-item { + display: block; + width: 100%; + padding: 3px 20px; + clear: both; + font-weight: normal; + color: #263238; + text-align: inherit; + white-space: nowrap; + background: none; + border: 0; } + .dropdown-item:focus, .dropdown-item:hover { + color: #1c2429; + text-decoration: none; + background-color: #f5f5f5; } + .dropdown-item.active, .dropdown-item.active:focus, .dropdown-item.active:hover { + color: #fff; + text-decoration: none; + background-color: #20a8d8; + outline: 0; } + .dropdown-item.disabled, .dropdown-item.disabled:focus, .dropdown-item.disabled:hover { + color: #b0bec5; } + .dropdown-item.disabled:focus, .dropdown-item.disabled:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; } + +.open > .dropdown-menu { + display: block; } + +.open > a { + outline: 0; } + +.dropdown-menu-right { + right: 0; + left: auto; } + +.dropdown-menu-left { + right: auto; + left: 0; } + +.dropdown-header { + display: block; + padding: 0 20px; + font-size: 0.875rem; + color: #b0bec5; + white-space: nowrap; } + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; } + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 0.3em solid; } + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; } + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; } + .btn-group > .btn, + .btn-group-vertical > .btn { + position: relative; + float: left; } + .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, + .btn-group-vertical > .btn:focus, + .btn-group-vertical > .btn:active, + .btn-group-vertical > .btn.active { + z-index: 2; } + .btn-group > .btn:hover, + .btn-group-vertical > .btn:hover { + z-index: 2; } + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; } + +.btn-toolbar { + margin-left: -0.5rem; } + .btn-toolbar::after { + content: ""; + display: table; + clear: both; } + .btn-toolbar .btn-group, + .btn-toolbar .input-group { + float: left; } + .btn-toolbar > .btn, + .btn-toolbar > .btn-group, + .btn-toolbar > .input-group { + margin-left: 0.5rem; } + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; } + +.btn-group > .btn:first-child { + margin-left: 0; } + +.btn-group > .btn-group { + float: left; } + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; } + +.btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; } + .btn + .dropdown-toggle-split::after { + margin-left: 0; } + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 1.125rem; + padding-left: 1.125rem; } + +.btn .caret { + margin-left: 0; } + +.btn-lg .caret, .btn-group-lg > .btn .caret { + border-width: 0.3em 0.3em 0; + border-bottom-width: 0; } + +.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret { + border-width: 0 0.3em 0.3em; } + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; } + +.btn-group-vertical > .btn-group::after { + content: ""; + display: table; + clear: both; } + +.btn-group-vertical > .btn-group > .btn { + float: none; } + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; } + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; } + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } + +.input-group { + position: relative; + width: 100%; + display: table; + border-collapse: separate; } + .input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; } + .input-group .form-control:focus, .input-group .form-control:active, .input-group .form-control:hover { + z-index: 3; } + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; } + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; } + +.input-group-addon { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 0.875rem; + font-weight: normal; + line-height: 1.25; + color: #607d8b; + text-align: center; + background-color: #cfd8dc; + border: 1px solid rgba(0, 0, 0, 0.15); } + .input-group-addon.form-control-sm, + .input-group-sm > .input-group-addon, + .input-group-sm > .input-group-btn > .input-group-addon.btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; } + .input-group-addon.form-control-lg, + .input-group-lg > .input-group-addon, + .input-group-lg > .input-group-btn > .input-group-addon.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + .input-group-addon input[type="radio"], + .input-group-addon input[type="checkbox"] { + margin-top: 0; } + +.input-group-addon:not(:last-child) { + border-right: 0; } + +.form-control + .input-group-addon:not(:first-child) { + border-left: 0; } + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; } + .input-group-btn > .btn { + position: relative; } + .input-group-btn > .btn + .btn { + margin-left: -1px; } + .input-group-btn > .btn:focus, .input-group-btn > .btn:active, .input-group-btn > .btn:hover { + z-index: 3; } + .input-group-btn:not(:last-child) > .btn, + .input-group-btn:not(:last-child) > .btn-group { + margin-right: -1px; } + .input-group-btn:not(:first-child) > .btn, + .input-group-btn:not(:first-child) > .btn-group { + z-index: 2; + margin-left: -1px; } + .input-group-btn:not(:first-child) > .btn:focus, .input-group-btn:not(:first-child) > .btn:active, .input-group-btn:not(:first-child) > .btn:hover, + .input-group-btn:not(:first-child) > .btn-group:focus, + .input-group-btn:not(:first-child) > .btn-group:active, + .input-group-btn:not(:first-child) > .btn-group:hover { + z-index: 3; } + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; } + +.nav-link { + display: inline-block; } + .nav-link:focus, .nav-link:hover { + text-decoration: none; } + .nav-link.disabled { + color: #b0bec5; } + .nav-link.disabled, .nav-link.disabled:focus, .nav-link.disabled:hover { + color: #b0bec5; + cursor: not-allowed; + background-color: transparent; } + +.nav-inline .nav-item { + display: inline-block; } + +.nav-inline .nav-item + .nav-item, +.nav-inline .nav-link + .nav-link { + margin-left: 1rem; } + +.nav-tabs { + border-bottom: 1px solid #ddd; } + .nav-tabs::after { + content: ""; + display: table; + clear: both; } + .nav-tabs .nav-item { + float: left; + margin-bottom: -1px; } + .nav-tabs .nav-item + .nav-item { + margin-left: 0.2rem; } + .nav-tabs .nav-link { + display: block; + padding: 0.5em 1em; + border: 1px solid transparent; } + .nav-tabs .nav-link:focus, .nav-tabs .nav-link:hover { + border-color: #cfd8dc #cfd8dc #ddd; } + .nav-tabs .nav-link.disabled, .nav-tabs .nav-link.disabled:focus, .nav-tabs .nav-link.disabled:hover { + color: #b0bec5; + background-color: transparent; + border-color: transparent; } + .nav-tabs .nav-link.active, .nav-tabs .nav-link.active:focus, .nav-tabs .nav-link.active:hover, + .nav-tabs .nav-item.open .nav-link, + .nav-tabs .nav-item.open .nav-link:focus, + .nav-tabs .nav-item.open .nav-link:hover { + color: #607d8b; + background-color: #e4e5e6; + border-color: #ddd #ddd transparent; } + .nav-tabs .dropdown-menu { + margin-top: -1px; } + +.nav-pills::after { + content: ""; + display: table; + clear: both; } + +.nav-pills .nav-item { + float: left; } + .nav-pills .nav-item + .nav-item { + margin-left: 0.2rem; } + +.nav-pills .nav-link { + display: block; + padding: 0.5em 1em; } + +.nav-pills .nav-link.active, .nav-pills .nav-link.active:focus, .nav-pills .nav-link.active:hover, +.nav-pills .nav-item.open .nav-link, +.nav-pills .nav-item.open .nav-link:focus, +.nav-pills .nav-item.open .nav-link:hover { + color: #fff; + cursor: default; + background-color: #20a8d8; } + +.nav-stacked .nav-item { + display: block; + float: none; } + .nav-stacked .nav-item + .nav-item { + margin-top: 0.2rem; + margin-left: 0; } + +.tab-content > .tab-pane { + display: none; } + +.tab-content > .active { + display: block; } + +.navbar { + position: relative; + padding: 0.5rem 1rem; } + .navbar::after { + content: ""; + display: table; + clear: both; } + +.navbar-full { + z-index: 1000; } + +.navbar-fixed-top, body.navbar-fixed header.navbar, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; } + +.navbar-fixed-top, body.navbar-fixed header.navbar { + top: 0; } + +.navbar-fixed-bottom { + bottom: 0; } + +.navbar-sticky-top { + position: sticky; + top: 0; + z-index: 1030; + width: 100%; } + +.navbar-brand { + float: left; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + margin-right: 1rem; + font-size: 1.25rem; } + .navbar-brand:focus, .navbar-brand:hover { + text-decoration: none; } + .navbar-brand > img { + display: block; } + +.navbar-divider { + float: left; + width: 1px; + padding-top: .425rem; + padding-bottom: .425rem; + margin-right: 1rem; + margin-left: 1rem; + overflow: hidden; } + .navbar-divider::before { + content: "\00a0"; } + +.navbar-toggler { + padding: .5rem .75rem; + font-size: 1.25rem; + line-height: 1; + background: none; + border: 1px solid transparent; } + .navbar-toggler:focus, .navbar-toggler:hover { + text-decoration: none; } + +.navbar-nav .nav-item { + float: left; } + +.navbar-nav .nav-link { + display: block; + padding-top: .425rem; + padding-bottom: .425rem; } + .navbar-nav .nav-link + .nav-link { + margin-left: 1rem; } + +.navbar-nav .nav-item + .nav-item { + margin-left: 1rem; } + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.8); } + .navbar-light .navbar-brand:focus, .navbar-light .navbar-brand:hover { + color: rgba(0, 0, 0, 0.8); } + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.3); } + .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.6); } + +.navbar-light .navbar-nav .open > .nav-link, .navbar-light .navbar-nav .open > .nav-link:focus, .navbar-light .navbar-nav .open > .nav-link:hover, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .active > .nav-link:focus, +.navbar-light .navbar-nav .active > .nav-link:hover, +.navbar-light .navbar-nav .nav-link.open, +.navbar-light .navbar-nav .nav-link.open:focus, +.navbar-light .navbar-nav .nav-link.open:hover, +.navbar-light .navbar-nav .nav-link.active, +.navbar-light .navbar-nav .nav-link.active:focus, +.navbar-light .navbar-nav .nav-link.active:hover { + color: rgba(0, 0, 0, 0.8); } + +.navbar-light .navbar-divider { + background-color: rgba(0, 0, 0, 0.075); } + +.navbar-dark .navbar-brand { + color: white; } + .navbar-dark .navbar-brand:focus, .navbar-dark .navbar-brand:hover { + color: white; } + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); } + .navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover { + color: rgba(255, 255, 255, 0.75); } + +.navbar-dark .navbar-nav .open > .nav-link, .navbar-dark .navbar-nav .open > .nav-link:focus, .navbar-dark .navbar-nav .open > .nav-link:hover, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link:focus, +.navbar-dark .navbar-nav .active > .nav-link:hover, +.navbar-dark .navbar-nav .nav-link.open, +.navbar-dark .navbar-nav .nav-link.open:focus, +.navbar-dark .navbar-nav .nav-link.open:hover, +.navbar-dark .navbar-nav .nav-link.active, +.navbar-dark .navbar-nav .nav-link.active:focus, +.navbar-dark .navbar-nav .nav-link.active:hover { + color: white; } + +.navbar-dark .navbar-divider { + background-color: rgba(255, 255, 255, 0.075); } + +.navbar-toggleable-xs::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 543px) { + .navbar-toggleable-xs .navbar-nav .nav-item { + float: none; + margin-left: 0; } } + +@media (min-width: 544px) { + .navbar-toggleable-xs { + display: block !important; } } + +.navbar-toggleable-sm::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 767px) { + .navbar-toggleable-sm .navbar-nav .nav-item { + float: none; + margin-left: 0; } } + +@media (min-width: 768px) { + .navbar-toggleable-sm { + display: block !important; } } + +.navbar-toggleable-md::after { + content: ""; + display: table; + clear: both; } + +@media (max-width: 991px) { + .navbar-toggleable-md .navbar-nav .nav-item { + float: none; + margin-left: 0; } } + +@media (min-width: 992px) { + .navbar-toggleable-md { + display: block !important; } } + +.card { + position: relative; + display: block; + margin-bottom: 0.75rem; + background-color: #fff; + border: 1px solid #cfd8dc; } + +.card-block { + padding: 1.25rem; } + .card-block::after { + content: ""; + display: table; + clear: both; } + +.card-title { + margin-bottom: 0.75rem; } + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; } + +.card-text:last-child { + margin-bottom: 0; } + +.card-link:hover { + text-decoration: none; } + +.card-link + .card-link { + margin-left: 1.25rem; } + +.card-header { + padding: 0.75rem 1.25rem; + background-color: #eceff1; + border-bottom: 1px solid #cfd8dc; } + .card-header::after { + content: ""; + display: table; + clear: both; } + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: #eceff1; + border-top: 1px solid #cfd8dc; } + .card-footer::after { + content: ""; + display: table; + clear: both; } + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; } + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; } + +.card-primary { + background-color: #20a8d8; + border-color: #20a8d8; } + .card-primary .card-header, + .card-primary .card-footer { + background-color: transparent; } + +.card-success { + background-color: #4dbd74; + border-color: #4dbd74; } + .card-success .card-header, + .card-success .card-footer { + background-color: transparent; } + +.card-info { + background-color: #63c2de; + border-color: #63c2de; } + .card-info .card-header, + .card-info .card-footer { + background-color: transparent; } + +.card-warning { + background-color: #f8cb00; + border-color: #f8cb00; } + .card-warning .card-header, + .card-warning .card-footer { + background-color: transparent; } + +.card-danger { + background-color: #f86c6b; + border-color: #f86c6b; } + .card-danger .card-header, + .card-danger .card-footer { + background-color: transparent; } + +.card-outline-primary { + background-color: transparent; + border-color: #20a8d8; } + +.card-outline-secondary { + background-color: transparent; + border-color: #ccc; } + +.card-outline-info { + background-color: transparent; + border-color: #63c2de; } + +.card-outline-success { + background-color: transparent; + border-color: #4dbd74; } + +.card-outline-warning { + background-color: transparent; + border-color: #f8cb00; } + +.card-outline-danger { + background-color: transparent; + border-color: #f86c6b; } + +.card-inverse .card-header, +.card-inverse .card-footer { + border-color: rgba(255, 255, 255, 0.2); } + +.card-inverse .card-header, +.card-inverse .card-footer, +.card-inverse .card-title, +.card-inverse .card-blockquote { + color: #fff; } + +.card-inverse .card-link, +.card-inverse .card-text, +.card-inverse .card-subtitle, +.card-inverse .card-blockquote .blockquote-footer { + color: rgba(255, 255, 255, 0.65); } + +.card-inverse .card-link:focus, .card-inverse .card-link:hover { + color: #fff; } + +.card-blockquote { + padding: 0; + margin-bottom: 0; + border-left: 0; } + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; } + +@media (min-width: 544px) { + .card-deck { + display: table; + width: 100%; + margin-bottom: 0.75rem; + table-layout: fixed; + border-spacing: 1.25rem 0; } + .card-deck .card { + display: table-cell; + margin-bottom: 0; + vertical-align: top; } + .card-deck-wrapper { + margin-right: -1.25rem; + margin-left: -1.25rem; } } + +@media (min-width: 544px) { + .card-group { + display: table; + width: 100%; + table-layout: fixed; } + .card-group .card { + display: table-cell; + vertical-align: top; } + .card-group .card + .card { + margin-left: 0; + border-left: 0; } } + +@media (min-width: 544px) { + .card-columns { + column-count: 3; + column-gap: 1.25rem; } + .card-columns .card { + width: 100%; } } + +.breadcrumb { + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #fff; } + .breadcrumb::after { + content: ""; + display: table; + clear: both; } + +.breadcrumb-item { + float: left; } + .breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + padding-left: 0.5rem; + color: #b0bec5; + content: "/"; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; } + .breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; } + .breadcrumb-item.active { + color: #b0bec5; } + +.pagination { + display: inline-block; + padding-left: 0; + margin-top: 1rem; + margin-bottom: 1rem; } + +.page-item, .pagination-datatables li, .pagination li { + display: inline; } + .page-item:first-child .page-link, .pagination-datatables li:first-child .page-link, .pagination li:first-child .page-link, .page-item:first-child .pagination-datatables li a, .pagination-datatables li .page-item:first-child a, .pagination-datatables li:first-child a, .page-item:first-child .pagination li a, .pagination li .page-item:first-child a, .pagination li:first-child a { + margin-left: 0; } + .page-item.active .page-link, .pagination-datatables li.active .page-link, .pagination li.active .page-link, .page-item.active .pagination-datatables li a, .pagination-datatables li .page-item.active a, .pagination-datatables li.active a, .page-item.active .pagination li a, .pagination li .page-item.active a, .pagination li.active a, .page-item.active .page-link:focus, .pagination-datatables li.active .page-link:focus, .pagination li.active .page-link:focus, .page-item.active .pagination-datatables li a:focus, .pagination-datatables li .page-item.active a:focus, .pagination-datatables li.active a:focus, .page-item.active .pagination li a:focus, .pagination li .page-item.active a:focus, .pagination li.active a:focus, .page-item.active .page-link:hover, .pagination-datatables li.active .page-link:hover, .pagination li.active .page-link:hover, .page-item.active .pagination-datatables li a:hover, .pagination-datatables li .page-item.active a:hover, .pagination-datatables li.active a:hover, .page-item.active .pagination li a:hover, .pagination li .page-item.active a:hover, .pagination li.active a:hover { + z-index: 2; + color: #fff; + cursor: default; + background-color: #20a8d8; + border-color: #20a8d8; } + .page-item.disabled .page-link, .pagination-datatables li.disabled .page-link, .pagination li.disabled .page-link, .page-item.disabled .pagination-datatables li a, .pagination-datatables li .page-item.disabled a, .pagination-datatables li.disabled a, .page-item.disabled .pagination li a, .pagination li .page-item.disabled a, .pagination li.disabled a, .page-item.disabled .page-link:focus, .pagination-datatables li.disabled .page-link:focus, .pagination li.disabled .page-link:focus, .page-item.disabled .pagination-datatables li a:focus, .pagination-datatables li .page-item.disabled a:focus, .pagination-datatables li.disabled a:focus, .page-item.disabled .pagination li a:focus, .pagination li .page-item.disabled a:focus, .pagination li.disabled a:focus, .page-item.disabled .page-link:hover, .pagination-datatables li.disabled .page-link:hover, .pagination li.disabled .page-link:hover, .page-item.disabled .pagination-datatables li a:hover, .pagination-datatables li .page-item.disabled a:hover, .pagination-datatables li.disabled a:hover, .page-item.disabled .pagination li a:hover, .pagination li .page-item.disabled a:hover, .pagination li.disabled a:hover { + color: #b0bec5; + pointer-events: none; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; } + +.page-link, .pagination-datatables li a, .pagination li a { + position: relative; + float: left; + padding: 0.5rem 0.75rem; + margin-left: -1px; + color: #20a8d8; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; } + .page-link:focus, .pagination-datatables li a:focus, .pagination li a:focus, .page-link:hover, .pagination-datatables li a:hover, .pagination li a:hover { + color: #167495; + background-color: #cfd8dc; + border-color: #ddd; } + +.pagination-lg .page-link, .pagination-lg .pagination-datatables li a, .pagination-datatables li .pagination-lg a, .pagination-lg .pagination li a, .pagination li .pagination-lg a { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; } + +.pagination-sm .page-link, .pagination-sm .pagination-datatables li a, .pagination-datatables li .pagination-sm a, .pagination-sm .pagination li a, .pagination li .pagination-sm a { + padding: 0.275rem 0.75rem; + font-size: 0.875rem; } + +.tag { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; } + .tag:empty { + display: none; } + +.btn .tag { + position: relative; + top: -1px; } + +a.tag:focus, a.tag:hover { + color: #fff; + text-decoration: none; + cursor: pointer; } + +.tag-pill { + padding-right: 0.6em; + padding-left: 0.6em; } + +.tag-default { + background-color: #b0bec5; } + .tag-default[href]:focus, .tag-default[href]:hover { + background-color: #93a6af; } + +.tag-primary { + background-color: #20a8d8; } + .tag-primary[href]:focus, .tag-primary[href]:hover { + background-color: #1985ac; } + +.tag-success { + background-color: #4dbd74; } + .tag-success[href]:focus, .tag-success[href]:hover { + background-color: #3a9d5d; } + +.tag-info { + background-color: #63c2de; } + .tag-info[href]:focus, .tag-info[href]:hover { + background-color: #39b2d5; } + +.tag-warning { + background-color: #f8cb00; } + .tag-warning[href]:focus, .tag-warning[href]:hover { + background-color: #c5a100; } + +.tag-danger { + background-color: #f86c6b; } + .tag-danger[href]:focus, .tag-danger[href]:hover { + background-color: #f63c3a; } + +.alert { + padding: 1rem; + margin-bottom: 1rem; + border: 1px solid transparent; } + +.alert-heading { + color: inherit; } + +.alert-link { + font-weight: bold; } + +.alert-dismissible { + padding-right: 2rem; } + .alert-dismissible .close { + position: relative; + top: -.125rem; + right: -1rem; + color: inherit; } + +.alert-success { + background-color: #dff0d8; + border-color: #d0e9c6; + color: #3c763d; } + .alert-success hr { + border-top-color: #c1e2b3; } + .alert-success .alert-link { + color: #2b542c; } + +.alert-info { + background-color: #d9edf7; + border-color: #bcdff1; + color: #31708f; } + .alert-info hr { + border-top-color: #a6d5ec; } + .alert-info .alert-link { + color: #245269; } + +.alert-warning { + background-color: #fcf8e3; + border-color: #faf2cc; + color: #8a6d3b; } + .alert-warning hr { + border-top-color: #f7ecb5; } + .alert-warning .alert-link { + color: #66512c; } + +.alert-danger { + background-color: #f2dede; + border-color: #ebcccc; + color: #a94442; } + .alert-danger hr { + border-top-color: #e4b9b9; } + .alert-danger .alert-link { + color: #843534; } + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; } + to { + background-position: 0 0; } } + +.progress { + display: block; + width: 100%; + height: 1rem; + margin-bottom: 1rem; } + +.progress[value] { + background-color: #eee; + border: 0; + appearance: none; } + +.progress[value]::-ms-fill { + background-color: #0074d9; + border: 0; } + +.progress[value]::-moz-progress-bar { + background-color: #0074d9; } + +.progress[value]::-webkit-progress-value { + background-color: #0074d9; } + +.progress[value]::-webkit-progress-bar { + background-color: #eee; } + +base::-moz-progress-bar, +.progress[value] { + background-color: #eee; } + +@media screen and (min-width: 0\0) { + .progress { + background-color: #eee; } + .progress-bar { + display: inline-block; + height: 1rem; + text-indent: -999rem; + background-color: #0074d9; } } + +.progress-striped[value]::-webkit-progress-value { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +.progress-striped[value]::-moz-progress-bar { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +.progress-striped[value]::-ms-fill { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } + +@media screen and (min-width: 0\0) { + .progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; } } + +.progress-animated[value]::-webkit-progress-value { + animation: progress-bar-stripes 2s linear infinite; } + +.progress-animated[value]::-moz-progress-bar { + animation: progress-bar-stripes 2s linear infinite; } + +@media screen and (min-width: 0\0) { + .progress-animated .progress-bar-striped { + animation: progress-bar-stripes 2s linear infinite; } } + +.progress-success[value]::-webkit-progress-value { + background-color: #4dbd74; } + +.progress-success[value]::-moz-progress-bar { + background-color: #4dbd74; } + +.progress-success[value]::-ms-fill { + background-color: #4dbd74; } + +@media screen and (min-width: 0\0) { + .progress-success .progress-bar { + background-color: #4dbd74; } } + +.progress-info[value]::-webkit-progress-value { + background-color: #63c2de; } + +.progress-info[value]::-moz-progress-bar { + background-color: #63c2de; } + +.progress-info[value]::-ms-fill { + background-color: #63c2de; } + +@media screen and (min-width: 0\0) { + .progress-info .progress-bar { + background-color: #63c2de; } } + +.progress-warning[value]::-webkit-progress-value { + background-color: #f8cb00; } + +.progress-warning[value]::-moz-progress-bar { + background-color: #f8cb00; } + +.progress-warning[value]::-ms-fill { + background-color: #f8cb00; } + +@media screen and (min-width: 0\0) { + .progress-warning .progress-bar { + background-color: #f8cb00; } } + +.progress-danger[value]::-webkit-progress-value { + background-color: #f86c6b; } + +.progress-danger[value]::-moz-progress-bar { + background-color: #f86c6b; } + +.progress-danger[value]::-ms-fill { + background-color: #f86c6b; } + +@media screen and (min-width: 0\0) { + .progress-danger .progress-bar { + background-color: #f86c6b; } } + +.media, +.media-body { + overflow: hidden; } + +.media-body { + width: 10000px; } + +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; } + +.media-middle { + vertical-align: middle; } + +.media-bottom { + vertical-align: bottom; } + +.media-object { + display: block; } + .media-object.img-thumbnail { + max-width: none; } + +.media-right { + padding-left: 10px; } + +.media-left { + padding-right: 10px; } + +.media-heading { + margin-top: 0; + margin-bottom: 5px; } + +.media-list { + padding-left: 0; + list-style: none; } + +.list-group { + padding-left: 0; + margin-bottom: 0; } + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; } + .list-group-item:last-child { + margin-bottom: 0; } + .list-group-item.disabled, .list-group-item.disabled:focus, .list-group-item.disabled:hover { + color: #b0bec5; + cursor: not-allowed; + background-color: #cfd8dc; } + .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading { + color: inherit; } + .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text { + color: #b0bec5; } + .list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover { + z-index: 2; + color: #fff; + text-decoration: none; + background-color: #20a8d8; + border-color: #20a8d8; } + .list-group-item.active .list-group-item-heading, + .list-group-item.active .list-group-item-heading > small, + .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading, + .list-group-item.active:focus .list-group-item-heading > small, + .list-group-item.active:focus .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading, + .list-group-item.active:hover .list-group-item-heading > small, + .list-group-item.active:hover .list-group-item-heading > .small { + color: inherit; } + .list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text { + color: #ccecf8; } + +.list-group-flush .list-group-item { + border-radius: 0; } + +.list-group-item-action { + width: 100%; + color: #555; + text-align: inherit; } + .list-group-item-action .list-group-item-heading { + color: #333; } + .list-group-item-action:focus, .list-group-item-action:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5; } + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; } + +a.list-group-item-success, +button.list-group-item-success { + color: #3c763d; } + a.list-group-item-success .list-group-item-heading, + button.list-group-item-success .list-group-item-heading { + color: inherit; } + a.list-group-item-success:focus, a.list-group-item-success:hover, + button.list-group-item-success:focus, + button.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6; } + a.list-group-item-success.active, a.list-group-item-success.active:focus, a.list-group-item-success.active:hover, + button.list-group-item-success.active, + button.list-group-item-success.active:focus, + button.list-group-item-success.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; } + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; } + +a.list-group-item-info, +button.list-group-item-info { + color: #31708f; } + a.list-group-item-info .list-group-item-heading, + button.list-group-item-info .list-group-item-heading { + color: inherit; } + a.list-group-item-info:focus, a.list-group-item-info:hover, + button.list-group-item-info:focus, + button.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3; } + a.list-group-item-info.active, a.list-group-item-info.active:focus, a.list-group-item-info.active:hover, + button.list-group-item-info.active, + button.list-group-item-info.active:focus, + button.list-group-item-info.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f; } + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; } + +a.list-group-item-warning, +button.list-group-item-warning { + color: #8a6d3b; } + a.list-group-item-warning .list-group-item-heading, + button.list-group-item-warning .list-group-item-heading { + color: inherit; } + a.list-group-item-warning:focus, a.list-group-item-warning:hover, + button.list-group-item-warning:focus, + button.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc; } + a.list-group-item-warning.active, a.list-group-item-warning.active:focus, a.list-group-item-warning.active:hover, + button.list-group-item-warning.active, + button.list-group-item-warning.active:focus, + button.list-group-item-warning.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; } + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; } + +a.list-group-item-danger, +button.list-group-item-danger { + color: #a94442; } + a.list-group-item-danger .list-group-item-heading, + button.list-group-item-danger .list-group-item-heading { + color: inherit; } + a.list-group-item-danger:focus, a.list-group-item-danger:hover, + button.list-group-item-danger:focus, + button.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc; } + a.list-group-item-danger.active, a.list-group-item-danger.active:focus, a.list-group-item-danger.active:hover, + button.list-group-item-danger.active, + button.list-group-item-danger.active:focus, + button.list-group-item-danger.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442; } + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; } + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; } + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; } + .embed-responsive .embed-responsive-item, + .embed-responsive iframe, + .embed-responsive embed, + .embed-responsive object, + .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; } + +.embed-responsive-21by9 { + padding-bottom: 42.85714%; } + +.embed-responsive-16by9 { + padding-bottom: 56.25%; } + +.embed-responsive-4by3 { + padding-bottom: 75%; } + +.embed-responsive-1by1 { + padding-bottom: 100%; } + +.close { + float: right; + font-size: 1.3125rem; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .2; } + .close:focus, .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + opacity: .5; } + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; } + +.modal-open { + overflow: hidden; } + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + outline: 0; + -webkit-overflow-scrolling: touch; } + .modal.fade .modal-dialog { + transition: transform .3s ease-out; + transform: translate(0, -25%); } + .modal.in .modal-dialog { + transform: translate(0, 0); } + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; } + +.modal-content { + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + outline: 0; } + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; } + .modal-backdrop.fade { + opacity: 0; } + .modal-backdrop.in { + opacity: 0.5; } + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; } + .modal-header::after { + content: ""; + display: table; + clear: both; } + +.modal-header .close { + margin-top: -2px; } + +.modal-title { + margin: 0; + line-height: 1.5; } + +.modal-body { + position: relative; + padding: 15px; } + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; } + .modal-footer::after { + content: ""; + display: table; + clear: both; } + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; } + +@media (min-width: 544px) { + .modal-dialog { + max-width: 600px; + margin: 30px auto; } + .modal-sm { + max-width: 300px; } } + +@media (min-width: 992px) { + .modal-lg { + max-width: 900px; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; } + .tooltip.in { + opacity: 0.9; } + .tooltip.tooltip-top, .tooltip.bs-tether-element-attached-bottom { + padding: 5px 0; + margin-top: -3px; } + .tooltip.tooltip-top .tooltip-arrow, .tooltip.bs-tether-element-attached-bottom .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } + .tooltip.tooltip-right, .tooltip.bs-tether-element-attached-left { + padding: 0 5px; + margin-left: 3px; } + .tooltip.tooltip-right .tooltip-arrow, .tooltip.bs-tether-element-attached-left .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; } + .tooltip.tooltip-bottom, .tooltip.bs-tether-element-attached-top { + padding: 5px 0; + margin-top: 3px; } + .tooltip.tooltip-bottom .tooltip-arrow, .tooltip.bs-tether-element-attached-top .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } + .tooltip.tooltip-left, .tooltip.bs-tether-element-attached-right { + padding: 0 5px; + margin-left: -3px; } + .tooltip.tooltip-left .tooltip-arrow, .tooltip.bs-tether-element-attached-right .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; } + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + background-color: #000; } + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + padding: 1px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-style: normal; + font-weight: normal; + letter-spacing: normal; + line-break: auto; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + white-space: normal; + word-break: normal; + word-spacing: normal; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); } + .popover.popover-top, .popover.bs-tether-element-attached-bottom { + margin-top: -10px; } + .popover.popover-top .popover-arrow, .popover.bs-tether-element-attached-bottom .popover-arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; } + .popover.popover-top .popover-arrow::after, .popover.bs-tether-element-attached-bottom .popover-arrow::after { + bottom: 1px; + margin-left: -10px; + content: ""; + border-top-color: #fff; + border-bottom-width: 0; } + .popover.popover-right, .popover.bs-tether-element-attached-left { + margin-left: 10px; } + .popover.popover-right .popover-arrow, .popover.bs-tether-element-attached-left .popover-arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; } + .popover.popover-right .popover-arrow::after, .popover.bs-tether-element-attached-left .popover-arrow::after { + bottom: -10px; + left: 1px; + content: ""; + border-right-color: #fff; + border-left-width: 0; } + .popover.popover-bottom, .popover.bs-tether-element-attached-top { + margin-top: 10px; } + .popover.popover-bottom .popover-arrow, .popover.bs-tether-element-attached-top .popover-arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: rgba(0, 0, 0, 0.25); } + .popover.popover-bottom .popover-arrow::after, .popover.bs-tether-element-attached-top .popover-arrow::after { + top: 1px; + margin-left: -10px; + content: ""; + border-top-width: 0; + border-bottom-color: #fff; } + .popover.popover-left, .popover.bs-tether-element-attached-right { + margin-left: -10px; } + .popover.popover-left .popover-arrow, .popover.bs-tether-element-attached-right .popover-arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: rgba(0, 0, 0, 0.25); } + .popover.popover-left .popover-arrow::after, .popover.bs-tether-element-attached-right .popover-arrow::after { + right: 1px; + bottom: -10px; + content: ""; + border-right-width: 0; + border-left-color: #fff; } + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 0.875rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; } + .popover-title:empty { + display: none; } + +.popover-content { + padding: 9px 14px; } + +.popover-arrow, .popover-arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover-arrow { + border-width: 11px; } + +.popover-arrow::after { + content: ""; + border-width: 10px; } + +.bg-faded { + background-color: #eceff1; } + +.bg-primary { + color: #fff !important; + background-color: #20a8d8 !important; } + +a.bg-primary:focus, a.bg-primary:hover { + background-color: #1985ac; } + +.bg-success { + color: #fff !important; + background-color: #4dbd74 !important; } + +a.bg-success:focus, a.bg-success:hover { + background-color: #3a9d5d; } + +.bg-info { + color: #fff !important; + background-color: #63c2de !important; } + +a.bg-info:focus, a.bg-info:hover { + background-color: #39b2d5; } + +.bg-warning { + color: #fff !important; + background-color: #f8cb00 !important; } + +a.bg-warning:focus, a.bg-warning:hover { + background-color: #c5a100; } + +.bg-danger { + color: #fff !important; + background-color: #f86c6b !important; } + +a.bg-danger:focus, a.bg-danger:hover { + background-color: #f63c3a; } + +.bg-inverse { + color: #fff !important; + background-color: #263238 !important; } + +a.bg-inverse:focus, a.bg-inverse:hover { + background-color: #11171a; } + +.clearfix::after { + content: ""; + display: table; + clear: both; } + +.d-block { + display: block !important; } + +.d-inline-block { + display: inline-block !important; } + +.d-inline { + display: inline !important; } + +.pull-xs-left { + float: left !important; } + +.pull-xs-right { + float: right !important; } + +.pull-xs-none { + float: none !important; } + +@media (min-width: 544px) { + .pull-sm-left { + float: left !important; } + .pull-sm-right { + float: right !important; } + .pull-sm-none { + float: none !important; } } + +@media (min-width: 768px) { + .pull-md-left { + float: left !important; } + .pull-md-right { + float: right !important; } + .pull-md-none { + float: none !important; } } + +@media (min-width: 992px) { + .pull-lg-left { + float: left !important; } + .pull-lg-right { + float: right !important; } + .pull-lg-none { + float: none !important; } } + +@media (min-width: 1200px) { + .pull-xl-left { + float: left !important; } + .pull-xl-right { + float: right !important; } + .pull-xl-none { + float: none !important; } } + +.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; } + +.w-100 { + width: 100% !important; } + +.m-x-auto { + margin-right: auto !important; + margin-left: auto !important; } + +.m-a-q { + margin: 0.25rem 0.25rem !important; } + +.m-t-q { + margin-top: 0.25rem !important; } + +.m-r-q { + margin-right: 0.25rem !important; } + +.m-b-q { + margin-bottom: 0.25rem !important; } + +.m-l-q { + margin-left: 0.25rem !important; } + +.m-x-q { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; } + +.m-y-q { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } + +.m-a-h { + margin: 0.5rem 0.5rem !important; } + +.m-t-h { + margin-top: 0.5rem !important; } + +.m-r-h { + margin-right: 0.5rem !important; } + +.m-b-h { + margin-bottom: 0.5rem !important; } + +.m-l-h { + margin-left: 0.5rem !important; } + +.m-x-h { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } + +.m-y-h { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } + +.m-a-0 { + margin: 0 0 !important; } + +.m-t-0 { + margin-top: 0 !important; } + +.m-r-0 { + margin-right: 0 !important; } + +.m-b-0 { + margin-bottom: 0 !important; } + +.m-l-0 { + margin-left: 0 !important; } + +.m-x-0 { + margin-right: 0 !important; + margin-left: 0 !important; } + +.m-y-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } + +.m-a-1 { + margin: 1rem 1rem !important; } + +.m-t-1 { + margin-top: 1rem !important; } + +.m-r-1 { + margin-right: 1rem !important; } + +.m-b-1 { + margin-bottom: 1rem !important; } + +.m-l-1 { + margin-left: 1rem !important; } + +.m-x-1 { + margin-right: 1rem !important; + margin-left: 1rem !important; } + +.m-y-1 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; } + +.m-a-2 { + margin: 1.5rem 1.5rem !important; } + +.m-t-2 { + margin-top: 1.5rem !important; } + +.m-r-2 { + margin-right: 1.5rem !important; } + +.m-b-2 { + margin-bottom: 1.5rem !important; } + +.m-l-2 { + margin-left: 1.5rem !important; } + +.m-x-2 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } + +.m-y-2 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; } + +.m-a-3 { + margin: 3rem 3rem !important; } + +.m-t-3 { + margin-top: 3rem !important; } + +.m-r-3 { + margin-right: 3rem !important; } + +.m-b-3 { + margin-bottom: 3rem !important; } + +.m-l-3 { + margin-left: 3rem !important; } + +.m-x-3 { + margin-right: 3rem !important; + margin-left: 3rem !important; } + +.m-y-3 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; } + +.p-a-q { + padding: 0.25rem 0.25rem !important; } + +.p-t-q { + padding-top: 0.25rem !important; } + +.p-r-q { + padding-right: 0.25rem !important; } + +.p-b-q { + padding-bottom: 0.25rem !important; } + +.p-l-q { + padding-left: 0.25rem !important; } + +.p-x-q { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; } + +.p-y-q { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; } + +.p-a-h { + padding: 0.5rem 0.5rem !important; } + +.p-t-h { + padding-top: 0.5rem !important; } + +.p-r-h { + padding-right: 0.5rem !important; } + +.p-b-h { + padding-bottom: 0.5rem !important; } + +.p-l-h { + padding-left: 0.5rem !important; } + +.p-x-h { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; } + +.p-y-h { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; } + +.p-a-0 { + padding: 0 0 !important; } + +.p-t-0 { + padding-top: 0 !important; } + +.p-r-0 { + padding-right: 0 !important; } + +.p-b-0 { + padding-bottom: 0 !important; } + +.p-l-0 { + padding-left: 0 !important; } + +.p-x-0 { + padding-right: 0 !important; + padding-left: 0 !important; } + +.p-y-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; } + +.p-a-1 { + padding: 1rem 1rem !important; } + +.p-t-1 { + padding-top: 1rem !important; } + +.p-r-1 { + padding-right: 1rem !important; } + +.p-b-1 { + padding-bottom: 1rem !important; } + +.p-l-1 { + padding-left: 1rem !important; } + +.p-x-1 { + padding-right: 1rem !important; + padding-left: 1rem !important; } + +.p-y-1 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; } + +.p-a-2 { + padding: 1.5rem 1.5rem !important; } + +.p-t-2 { + padding-top: 1.5rem !important; } + +.p-r-2 { + padding-right: 1.5rem !important; } + +.p-b-2 { + padding-bottom: 1.5rem !important; } + +.p-l-2 { + padding-left: 1.5rem !important; } + +.p-x-2 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; } + +.p-y-2 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; } + +.p-a-3 { + padding: 3rem 3rem !important; } + +.p-t-3 { + padding-top: 3rem !important; } + +.p-r-3 { + padding-right: 3rem !important; } + +.p-b-3 { + padding-bottom: 3rem !important; } + +.p-l-3 { + padding-left: 3rem !important; } + +.p-x-3 { + padding-right: 3rem !important; + padding-left: 3rem !important; } + +.p-y-3 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; } + +.pos-f-t { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; } + +.text-justify { + text-align: justify !important; } + +.text-nowrap { + white-space: nowrap !important; } + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + +.text-xs-left { + text-align: left !important; } + +.text-xs-right { + text-align: right !important; } + +.text-xs-center { + text-align: center !important; } + +@media (min-width: 544px) { + .text-sm-left { + text-align: left !important; } + .text-sm-right { + text-align: right !important; } + .text-sm-center { + text-align: center !important; } } + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; } + .text-md-right { + text-align: right !important; } + .text-md-center { + text-align: center !important; } } + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; } + .text-lg-right { + text-align: right !important; } + .text-lg-center { + text-align: center !important; } } + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; } + .text-xl-right { + text-align: right !important; } + .text-xl-center { + text-align: center !important; } } + +.text-lowercase { + text-transform: lowercase !important; } + +.text-uppercase { + text-transform: uppercase !important; } + +.text-capitalize { + text-transform: capitalize !important; } + +.font-weight-normal { + font-weight: normal; } + +.font-weight-bold { + font-weight: bold; } + +.font-italic { + font-style: italic; } + +.text-muted { + color: #b0bec5 !important; } + +a.text-muted:focus, a.text-muted:hover { + color: #93a6af !important; } + +.text-primary { + color: #20a8d8 !important; } + +a.text-primary:focus, a.text-primary:hover { + color: #1985ac !important; } + +.text-success { + color: #4dbd74 !important; } + +a.text-success:focus, a.text-success:hover { + color: #3a9d5d !important; } + +.text-info { + color: #63c2de !important; } + +a.text-info:focus, a.text-info:hover { + color: #39b2d5 !important; } + +.text-warning { + color: #f8cb00 !important; } + +a.text-warning:focus, a.text-warning:hover { + color: #c5a100 !important; } + +.text-danger { + color: #f86c6b !important; } + +a.text-danger:focus, a.text-danger:hover { + color: #f63c3a !important; } + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } + +.invisible { + visibility: hidden !important; } + +.hidden-xs-up { + display: none !important; } + +@media (max-width: 543px) { + .hidden-xs-down { + display: none !important; } } + +@media (min-width: 544px) { + .hidden-sm-up { + display: none !important; } } + +@media (max-width: 767px) { + .hidden-sm-down { + display: none !important; } } + +@media (min-width: 768px) { + .hidden-md-up { + display: none !important; } } + +@media (max-width: 991px) { + .hidden-md-down { + display: none !important; } } + +@media (min-width: 992px) { + .hidden-lg-up { + display: none !important; } } + +@media (max-width: 1199px) { + .hidden-lg-down { + display: none !important; } } + +@media (min-width: 1200px) { + .hidden-xl-up { + display: none !important; } } + +.hidden-xl-down { + display: none !important; } + +.visible-print-block { + display: none !important; } + @media print { + .visible-print-block { + display: block !important; } } + +.visible-print-inline { + display: none !important; } + @media print { + .visible-print-inline { + display: inline !important; } } + +.visible-print-inline-block { + display: none !important; } + @media print { + .visible-print-inline-block { + display: inline-block !important; } } + +@media print { + .hidden-print { + display: none !important; } } + +.chart-legend, +.bar-legend, +.line-legend, +.pie-legend, +.radar-legend, +.polararea-legend, +.doughnut-legend { + list-style-type: none; + margin-top: 5px; + text-align: center; + -webkit-padding-start: 0; + -moz-padding-start: 0; + padding-left: 0; } + +.chart-legend li, +.bar-legend li, +.line-legend li, +.pie-legend li, +.radar-legend li, +.polararea-legend li, +.doughnut-legend li { + display: inline-block; + white-space: nowrap; + position: relative; + margin-bottom: 4px; + padding: 2px 8px 2px 28px; + font-size: smaller; + cursor: default; } + +.chart-legend li span, +.bar-legend li span, +.line-legend li span, +.pie-legend li span, +.radar-legend li span, +.polararea-legend li span, +.doughnut-legend li span { + display: block; + position: absolute; + left: 0; + top: 0; + width: 20px; + height: 20px; } + +.breadcrumb { + position: relative; + margin-bottom: 20px; + border-bottom: 1px solid #cfd8dc; } + +.btn .tag { + position: absolute; + top: 2px; + right: 6px; + font-size: 9px; } + +.card { + margin-bottom: 20px; } + +.card-header i.icon-bg { + display: inline-block; + padding: 0.75rem 1.25rem !important; + margin-top: -0.75rem; + margin-right: 1.25rem; + margin-bottom: -0.75rem; + margin-left: -1.25rem; + line-height: inherit; + color: #263238; + vertical-align: bottom; + background: transparent; + border-right: 1px solid #cfd8dc; } + +.card-header ul.nav.nav-tabs { + margin-top: -0.75rem; + margin-bottom: -0.75rem; + border-bottom: 0; } + .card-header ul.nav.nav-tabs li.nav-item { + border-top: 0; } + .card-header ul.nav.nav-tabs li.nav-item a.nav-link { + padding: 0.75rem 0.625rem; + color: #b0bec5; + border-top: 0; } + .card-header ul.nav.nav-tabs li.nav-item a.nav-link.active { + color: #263238; + background: #fff; } + +.card-header.card-header-inverse { + color: #fff; } + +.card-header.card-header-primary { + margin: -1px -1px 0; + background: #20a8d8; + border-bottom: 1px solid #20a8d8; } + +.card-header.card-header-secondary { + margin: -1px -1px 0; + background: #cfd8dc; + border-bottom: 1px solid #cfd8dc; } + +.card-header.card-header-success { + margin: -1px -1px 0; + background: #4dbd74; + border-bottom: 1px solid #4dbd74; } + +.card-header.card-header-info { + margin: -1px -1px 0; + background: #63c2de; + border-bottom: 1px solid #63c2de; } + +.card-header.card-header-warning { + margin: -1px -1px 0; + background: #f8cb00; + border-bottom: 1px solid #f8cb00; } + +.card-header.card-header-danger { + margin: -1px -1px 0; + background: #f86c6b; + border-bottom: 1px solid #f86c6b; } + +.card-header .btn { + margin-top: -0.5rem; } + +.card-header .btn-sm, .card-header .btn-group-sm > .btn { + margin-top: -0.25rem; } + +.card-header .btn-lg, .card-header .btn-group-lg > .btn { + margin-top: -0.75rem; } + +.card-footer ul { + display: table; + width: 100%; + padding: 0; + margin: 0; + table-layout: fixed; } + .card-footer ul li { + display: table-cell; + padding: 0 1.25rem; + text-align: center; } + .card-footer ul li progress { + margin-top: 0.75rem; + margin-bottom: 0; } + +.card-primary { + background-color: #20a8d8; } + .card-primary .card-header { + border-color: #1d97c2; } + .card-primary .card-header, .card-primary .card-footer { + background-color: #1d97c2; } + +.card-secondary { + background-color: #cfd8dc; } + .card-secondary .card-header { + border-color: #c0ccd1; } + .card-secondary .card-header, .card-secondary .card-footer { + background-color: #c0ccd1; } + +.card-success { + background-color: #4dbd74; } + .card-success .card-header { + border-color: #41af67; } + .card-success .card-header, .card-success .card-footer { + background-color: #41af67; } + +.card-info { + background-color: #63c2de; } + .card-info .card-header { + border-color: #4ebada; } + .card-info .card-header, .card-info .card-footer { + background-color: #4ebada; } + +.card-warning { + background-color: #f8cb00; } + .card-warning .card-header { + border-color: #dfb600; } + .card-warning .card-header, .card-warning .card-footer { + background-color: #dfb600; } + +.card-danger { + background-color: #f86c6b; } + .card-danger .card-header { + border-color: #f75453; } + .card-danger .card-header, .card-danger .card-footer { + background-color: #f75453; } + +.card-inverse { + color: #fff; } + .card-inverse .text-muted { + color: rgba(255, 255, 255, 0.6) !important; } + .card-inverse .progress[value] { + background-color: rgba(255, 255, 255, 0.2) !important; } + .card-inverse .progress[value]::-webkit-progress-bar { + background-color: rgba(255, 255, 255, 0.2) !important; } + .card-inverse base::-moz-progress-bar, + .card-inverse .progress[value] { + background-color: rgba(255, 255, 255, 0.2) !important; } + .card-inverse .progress[value]::-webkit-progress-value { + background-color: #fff !important; } + .card-inverse .progress[value]::-moz-progress-bar { + background-color: #fff !important; } + .card-inverse .progress[value]::-ms-fill { + background-color: #fff !important; } + @media screen and (min-width: 0\0) { + .card-inverse .progress .progress-bar { + background-color: #fff !important; } } + +.card-header > i { + margin-right: 0.5rem; } + +.card-header .card-actions { + position: absolute; + top: 0; + right: 0; } + .card-header .card-actions a, .card-header .card-actions button { + display: block; + float: left; + width: 50px; + padding: 0.75rem 0; + margin: 0 !important; + color: #263238; + text-align: center; + background: transparent; + border: 0; + border-left: 1px solid #cfd8dc; + box-shadow: 0; } + .card-header .card-actions a:hover, .card-header .card-actions button:hover { + text-decoration: none; } + .card-header .card-actions a [class^="icon-"], .card-header .card-actions a [class*=" icon-"], .card-header .card-actions button [class^="icon-"], .card-header .card-actions button [class*=" icon-"] { + display: inline-block; + vertical-align: middle; } + .card-header .card-actions a i, .card-header .card-actions button i { + display: inline-block; + transition: .4s; } + .card-header .card-actions a i.r180, .card-header .card-actions button i.r180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); } + .card-header .card-actions .input-group { + width: 230px; + margin: 6px; } + .card-header .card-actions .input-group .input-group-addon { + background: #fff; } + .card-header .card-actions .input-group input { + border-left: 0; } + +.card-full { + margin-top: -1rem; + margin-right: -15px; + margin-left: -15px; + border: 0; + border-bottom: 1px solid #cfd8dc; } + +@media (min-width: 544px) { + .card-columns { + -moz-column-count: 3; + -webkit-column-count: 3; + column-gap: 1.25rem; + column-count: 3; } + .card-columns .card { + display: inline-block; + width: 100%; } + .card-columns.col-2 { + -moz-column-count: 2; + -webkit-column-count: 2; + column-count: 2; } } + +.dropdown-item { + position: relative; + padding: 10px 20px; + border-bottom: 1px solid #cfd8dc; } + .dropdown-item:last-child { + border-bottom: 0; } + .dropdown-item i { + display: inline-block; + width: 20px; + margin-right: 10px; + margin-left: -10px; + color: #cfd8dc; + text-align: center; } + .dropdown-item .tag { + position: absolute; + right: 10px; + margin-top: 2px; } + +.dropdown-header { + padding: 8px 20px; + background: #eceff1; + border-bottom: 1px solid #cfd8dc; } + .dropdown-header .btn { + margin-top: -7px; + color: #b0bec5; } + .dropdown-header .btn:hover { + color: #263238; } + .dropdown-header .btn.pull-right { + margin-right: -20px; } + +.input-group-addon, +.input-group-btn { + min-width: 40px; + white-space: nowrap; + vertical-align: middle; } + +header.navbar { + position: relative; + height: 55px; + padding: 0; + line-height: 55px; + background-color: #fff; + border-bottom: 1px solid #cfd8dc; } + header.navbar .container-fluid { + padding: 0; } + header.navbar .nav-item { + position: relative; + min-width: 50px; + margin: 0 !important; + text-align: center; } + header.navbar .nav-item .nav-link i { + vertical-align: middle; } + header.navbar .nav-item .nav-link .tag { + position: absolute; + top: 9px; + right: 7px; } + header.navbar .img-avatar { + height: 35px; + margin: 0 10px; } + header.navbar .dropdown-menu { + padding-bottom: 0; + line-height: 1.5; } + header.navbar .dropdown-item { + min-width: 180px; } + header.navbar a.navbar-brand { + display: inline-block; + width: 155px; + height: 55px; + padding: 0.5rem 1rem; + background-color: #fff; + background-image: url("../img/logo.png"); + background-repeat: no-repeat; + background-position: center center; + background-size: 70px auto; + border-bottom: 1px solid #cfd8dc; } + +header.navbar .navbar-brand { + margin-right: 0; } + +.navbar-toggler { + padding: 0 .75em; + line-height: 51px; } + +header.navbar .navbar-nav .nav-link { + padding-top: 0; + padding-bottom: 0; } + +.navbar-brand { + color: rgba(0, 0, 0, 0.8); } + .navbar-brand:focus, .navbar-brand:hover { + color: rgba(0, 0, 0, 0.8); } + +.navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.3); } + .navbar-nav .nav-link:focus, .navbar-nav .nav-link:hover { + color: rgba(0, 0, 0, 0.6); } + +.navbar-nav .open > .nav-link, .navbar-nav .open > .nav-link:focus, .navbar-nav .open > .nav-link:hover, +.navbar-nav .active > .nav-link, +.navbar-nav .active > .nav-link:focus, +.navbar-nav .active > .nav-link:hover, +.navbar-nav .nav-link.open, +.navbar-nav .nav-link.open:focus, +.navbar-nav .nav-link.open:hover, +.navbar-nav .nav-link.active, +.navbar-nav .nav-link.active:focus, +.navbar-nav .nav-link.active:hover { + color: rgba(0, 0, 0, 0.8); } + +.navbar-divider { + background-color: rgba(0, 0, 0, 0.075); } + +.progress.progress-sm { + height: 8px; } + +.progress.progress-xs { + height: 4px; } + +.table-outline { + border: 1px solid #cfd8dc; } + .table-outline td { + vertical-align: middle; } + +.table-align-middle td { + vertical-align: middle; } + +.table-clear td { + border: 0; } + +.tag-pill { + border-radius: 10rem; } + +body { + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; } + +.font-xs { + font-size: .75rem !important; } + +.font-sm { + font-size: .85rem !important; } + +.font-lg { + font-size: 1rem !important; } + +.font-xl { + font-size: 1.25rem !important; } + +.font-2xl { + font-size: 1.5rem !important; } + +.font-3xl { + font-size: 1.75rem !important; } + +.font-4xl { + font-size: 2rem !important; } + +.font-5xl { + font-size: 2.5rem !important; } + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; } + +.animated.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; } + +@-webkit-keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } + +@keyframes fadeIn { + from { + opacity: 0; } + to { + opacity: 1; } } + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; } + +.row.row-equal { + padding-right: 7.5px; + padding-left: 7.5px; + margin-right: -15px; + margin-left: -15px; } + .row.row-equal [class*="col-"] { + padding-right: 7.5px; + padding-left: 7.5px; } + +.main .container-fluid { + padding: 0 30px; } + +html.sidebar-opened { + max-width: 100% !important; + overflow-x: hidden !important; } + +body { + position: relative; + min-height: 100vh; + padding: 0; + margin: 0; } + body .bd-title.main { + padding: 0 !important; } + +.sidebar { + left: -200px; + transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.25s, 0.25s; + transition-property: left, right, padding-left, padding-right, margin-left, margin-right; } + +.main { + padding-bottom: 50px; + transition-duration: 0.25s, 0.25s, 0.25s, 0.25s; + transition-property: padding-left, padding-right, margin-left, margin-right; } + +.aside-menu { + transition-duration: 0.25s, 0.25s; + transition-property: left, right; } + +.footer { + transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.25s, 0.25s; + transition-property: padding-left, padding-right, margin-left, margin-right, left, right; } + +body.std { + position: relative; } + body.std header.navbar { + z-index: 1030; } + body.std .sidebar { + padding-top: 55px; } + body.std .main { + padding-left: 200px; } + +body.navbar-fixed .main { + padding-top: 55px; } + +body.navbar-fixed.top-nav.fixed-nav nav.top-nav { + position: fixed; } + +body.navbar-fixed.top-nav.fixed-nav .main { + padding-top: 95px; } + +body:not(.top-nav) header.navbar { + z-index: 1030; } + +body:not(.top-nav) .sidebar { + display: inline; + padding-top: 55px !important; } + +body:not(.top-nav).compact-nav .main { + padding-left: 50px; } + +body:not(.top-nav).compact-nav .footer { + left: 50px; } + +body:not(.top-nav).fixed-nav .sidebar { + position: fixed; } + body:not(.top-nav).fixed-nav .sidebar .sidebar-nav { + height: calc(100vh - 55px); } + +body:not(.top-nav).fixed-nav .sidebar-footer { + position: fixed; + bottom: 0; + left: 0; } + +body:not(.top-nav).sidebar-off-canvas header.navbar { + z-index: 1032; } + +body:not(.top-nav).sidebar-off-canvas .sidebar { + left: -200px; + z-index: 1031; + padding-top: 0; } + body:not(.top-nav).sidebar-off-canvas .sidebar .sidebar-close { + display: inline; } + body:not(.top-nav).sidebar-off-canvas .sidebar .sidebar-nav { + height: 100vh; } + +body:not(.top-nav).sidebar-off-canvas .main { + padding-left: 0; } + +body:not(.top-nav).sidebar-off-canvas .footer { + left: 0; } + +body:not(.top-nav).sidebar-opened .sidebar { + left: 0; } + +body:not(.top-nav).sidebar-opened.sidebar-off-canvas-push .main { + margin-right: -200px; + margin-left: 200px; } + +body:not(.top-nav).sidebar-opened.sidebar-off-canvas-push .footer { + margin-right: -200px; + margin-left: 200px; } + +body:not(.top-nav).sidebar-opened.sidebar-off-canvas-with-shadow { + position: relative; + max-width: 100% !important; + overflow-x: hidden !important; } + body:not(.top-nav).sidebar-opened.sidebar-off-canvas-with-shadow:after { + position: absolute; + top: 0; + left: 0; + z-index: 1030; + width: 100%; + height: 100%; + content: ''; + background: rgba(0, 0, 0, 0.7); } + +body.sidebar-nav .sidebar { + left: 0; } + +body.sidebar-nav .main { + padding-left: 200px; } + +body.sidebar-nav .footer { + left: 200px; } + +body.top-nav .layout-toggler { + display: none !important; } + +body.top-nav .main { + padding-top: 95px; } + +body.aside-menu-open .main { + padding-right: 250px; } + +body.aside-menu-open .aside-menu { + right: 0; } + +body.aside-menu-open .footer { + right: 250px; } + +body.aside-menu-open.aside-menu-off-canvas .main { + right: 0; + padding-right: 0; } + +body.footer-fixed .footer { + position: fixed; + bottom: 0; } + +body:not(.top-nav) .sidebar { + position: absolute; + top: 0; + z-index: 1; + display: inline !important; + width: 200px; + height: 100%; + padding: 0; + color: #fff; + background: #263238; } + body:not(.top-nav) .sidebar .sidebar-close { + position: absolute; + right: 0; + display: none; + padding: 0 1rem; + font-size: 24px; + font-weight: 800; + line-height: 55px; + color: #fff; + background: 0; + border: 0; + opacity: .8; } + body:not(.top-nav) .sidebar .sidebar-close:hover { + opacity: 1; } + body:not(.top-nav) .sidebar .sidebar-nav { + position: relative; + overflow-x: hidden; + overflow-y: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; } + body:not(.top-nav) .sidebar .sidebar-nav::-webkit-scrollbar { + width: 10px; + margin-left: -10px; + -webkit-appearance: none; } + body:not(.top-nav) .sidebar .sidebar-nav::-webkit-scrollbar-track { + background-color: #304047; + border-right: 1px solid #1c2429; + border-left: 1px solid #1c2429; } + body:not(.top-nav) .sidebar .sidebar-nav::-webkit-scrollbar-thumb { + height: 50px; + background-color: #11171a; + background-clip: content-box; + border-color: transparent; + border-style: solid; + border-width: 1px 2px; } + body:not(.top-nav) .sidebar ul.nav { + width: 200px; } + body:not(.top-nav) .sidebar ul.nav li.nav-title { + padding: 0.75rem 1rem; + font-size: 11px; + font-weight: 600; + color: #cfd8dc; + text-transform: uppercase; } + body:not(.top-nav) .sidebar ul.nav li.divider { + height: 10px; } + body:not(.top-nav) .sidebar ul.nav li.nav-item { + position: relative; + margin: 0; } + body:not(.top-nav) .sidebar ul.nav li.nav-item ul { + display: none; + padding: 0; + margin: 0; } + body:not(.top-nav) .sidebar ul.nav li.nav-item ul li { + padding: 0; + list-style: none; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link { + display: block; + padding: 0.75rem 1rem; + color: #fff; + text-decoration: none; + background: transparent; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link:hover { + color: #fff !important; + background: #20a8d8 !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link:hover i { + color: #fff !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link.active { + color: #fff; + background: #304047; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link.active i { + color: #20a8d8; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link [class^="icon-"], body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link [class*=" icon-"] { + display: inline-block; + margin-top: -4px; + vertical-align: middle; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link i { + width: 20px; + margin: 0 0.5rem 0 0; + font-size: 14px; + color: #b0bec5; + text-align: center; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link .tag { + float: right; + margin-top: 2px; } + body:not(.top-nav) .sidebar ul.nav li.nav-item a.nav-link.nav-dropdown-toggle:before { + position: absolute; + top: 0.96875rem; + right: 1rem; + display: block; + width: 0.875rem; + height: 0.875rem; + padding: 0; + font-size: 0.875rem; + line-height: 0.65625rem; + text-align: center; + content: "\2039"; + transition: .3s; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open { + background: rgba(0, 0, 0, 0.2); } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open > ul, body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open > ol { + display: inline; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open a.nav-link { + color: #fff; + border-left: 0 !important; } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open > a.nav-link.nav-dropdown-toggle:before { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); } + body:not(.top-nav) .sidebar ul.nav li.nav-item.nav-dropdown.open .nav-dropdown.open { + border-left: 0; } + +@media (min-width: 544px) { + body.sidebar-nav.compact-nav .sidebar { + z-index: 1029; + width: 50px; } + body.sidebar-nav.compact-nav .sidebar .sidebar-items { + overflow: visible; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-title, body.sidebar-nav.compact-nav .sidebar ul.nav li.divider { + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item { + border-left: 0 !important; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul { + background: #263238; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link { + position: relative; + width: 50px; + padding: 0 15px 0 0; + margin: 0; + overflow: hidden; + line-height: 50px; + white-space: nowrap; + border-left: 0 !important; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link.nav-dropdown-toggle:before { + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link i { + display: block; + float: left; + width: 50px; + height: 50px; + padding: 0; + margin: 0; + font-size: 18px; + line-height: 50px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link .tag { + position: absolute; + top: 6px; + right: 15px; + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover { + width: 200px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item a.nav-link:hover .tag { + display: inline; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul { + position: absolute; + top: 50px; + left: 50px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li { + position: relative; + padding: 0; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li a.nav-link { + width: 150px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item ul li ol { + position: absolute; + top: 0; + left: 100%; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item.nav-dropdown.open > ol { + display: none; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > a.nav-link { + width: 250px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ol { + display: inline; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ul a.nav-link, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover > ol a.nav-link { + width: 200px; } + body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover.nav-dropdown.open > ul, body.sidebar-nav.compact-nav .sidebar ul.nav li.nav-item:hover.nav-dropdown.open > ol { + display: inline; } } + +nav.top-nav { + position: absolute; + top: 55px; + left: 0; + z-index: 1029; + display: inline !important; + width: 100%; + height: 40px; + background: #fff; + border-bottom: 1px solid #cfd8dc; } + nav.top-nav ul.nav { + white-space: nowrap; } + nav.top-nav ul.nav li.nav-item { + position: relative; + display: inline-block; + margin: 0; } + nav.top-nav ul.nav li.nav-item ul { + display: none; + padding: 0; + margin: 0; + white-space: normal; + background: #fff; + border: 1px solid #cfd8dc; } + nav.top-nav ul.nav li.nav-item ul li { + padding: 0; + list-style: none; } + nav.top-nav ul.nav li.nav-item a.nav-link { + display: block; + padding: 0 15px; + font-size: 12px; + font-weight: 400; + line-height: 40px; + color: #263238; + text-decoration: none; + text-transform: uppercase; } + nav.top-nav ul.nav li.nav-item a.nav-link i { + display: block; + float: left; + width: 20px; + margin: 0 10px 0 0; + font-size: 14px; + line-height: 39px; + text-align: center; } + nav.top-nav ul.nav li.nav-item a.nav-link .tag { + float: right; + margin-top: 13px; + margin-left: 10px; } + nav.top-nav ul.nav li.nav-item a.nav-link:hover { + color: #fff; + background: #20a8d8; } + nav.top-nav ul.nav li.nav-item a.nav-link.active { + color: #fff; + background: #20a8d8; } + nav.top-nav ul.nav li.nav-item ul { + position: absolute; + top: 39px; + left: 0; } + nav.top-nav ul.nav li.nav-item ul li { + position: relative; + padding: 0; } + nav.top-nav ul.nav li.nav-item ul li a.nav-link { + min-width: 200px; } + nav.top-nav ul.nav li.nav-item ul li ul { + position: absolute; + top: 0; + left: 100%; } + nav.top-nav ul.nav li.nav-item.nav-more ul { + right: 0; + left: auto; } + nav.top-nav ul.nav li.nav-item.nav-more ul li ul { + right: 100%; + left: auto; } + nav.top-nav ul.nav li.nav-item:hover > ul { + display: inline; } + +.aside-menu { + position: fixed; + top: 0; + right: -250px; + z-index: 1029; + width: 250px; + height: 100%; + padding-top: 55px; + color: #263238; + background: #fff; + border-left: 1px solid #cfd8dc; } + .aside-menu .nav-tabs .nav-link { + padding: 0.75rem 1rem; + color: #263238; + border-top: 0; } + .aside-menu .nav-tabs .nav-item:first-child .nav-link { + border-left: 0; } + .aside-menu .tab-content { + position: relative; + height: calc(100vh - 2.375rem - 55px); + overflow-x: hidden; + overflow-y: auto; + -ms-overflow-style: -ms-autohiding-scrollbar; } + .aside-menu .tab-content::-webkit-scrollbar { + width: 10px; + margin-left: -10px; + -webkit-appearance: none; } + .aside-menu .tab-content::-webkit-scrollbar-track { + background-color: white; + border-right: 1px solid #f2f2f2; + border-left: 1px solid #f2f2f2; } + .aside-menu .tab-content::-webkit-scrollbar-thumb { + height: 50px; + background-color: #e6e6e6; + background-clip: content-box; + border-color: transparent; + border-style: solid; + border-width: 1px 2px; } + +#loading-bar, +#loading-bar-spinner { + -webkit-pointer-events: none; + pointer-events: none; + -moz-transition: 350ms linear all; + -o-transition: 350ms linear all; + -webkit-transition: 350ms linear all; + transition: 350ms linear all; } + +#loading-bar.ng-enter, +#loading-bar.ng-leave.ng-leave-active, +#loading-bar-spinner.ng-enter, +#loading-bar-spinner.ng-leave.ng-leave-active { + opacity: 0; } + +#loading-bar.ng-enter.ng-enter-active, +#loading-bar.ng-leave, +#loading-bar-spinner.ng-enter.ng-enter-active, +#loading-bar-spinner.ng-leave { + opacity: 1; } + +#loading-bar .bar { + position: fixed; + top: 0; + left: 0; + z-index: 20002; + width: 100%; + height: 2px; + background: #20a8d8; + border-top-right-radius: 1px; + border-bottom-right-radius: 1px; + -moz-transition: width 350ms; + -o-transition: width 350ms; + -webkit-transition: width 350ms; + transition: width 350ms; } + +#loading-bar .peg { + position: absolute; + top: 0; + right: 0; + width: 70px; + height: 2px; + -moz-border-radius: 100%; + -webkit-border-radius: 100%; + border-radius: 100%; + -moz-box-shadow: #29d 1px 0 6px 1px; + -ms-box-shadow: #29d 1px 0 6px 1px; + -webkit-box-shadow: #29d 1px 0 6px 1px; + box-shadow: #29d 1px 0 6px 1px; + opacity: .45; } + +#loading-bar-spinner { + position: fixed; + top: 10px; + left: 10px; + z-index: 10002; + display: block; } + +#loading-bar-spinner .spinner-icon { + width: 14px; + height: 14px; + border: solid 2px transparent; + border-top-color: #29d; + border-left-color: #29d; + border-radius: 50%; + -moz-animation: loading-bar-spinner 400ms linear infinite; + -ms-animation: loading-bar-spinner 400ms linear infinite; + -o-animation: loading-bar-spinner 400ms linear infinite; + -webkit-animation: loading-bar-spinner 400ms linear infinite; + animation: loading-bar-spinner 400ms linear infinite; } + +@-webkit-keyframes loading-bar-spinner { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-moz-keyframes loading-bar-spinner { + 0% { + -moz-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -moz-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-o-keyframes loading-bar-spinner { + 0% { + -o-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -o-transform: rotate(360deg); + transform: rotate(360deg); } } + +@-ms-keyframes loading-bar-spinner { + 0% { + -ms-transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + -ms-transform: rotate(360deg); + transform: rotate(360deg); } } + +@keyframes loading-bar-spinner { + 0% { + transform: rotate(0deg); + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); + transform: rotate(360deg); } } + +.pace { + -webkit-pointer-events: none; + pointer-events: none; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; } + +.pace-inactive { + display: none; } + +.pace .pace-progress { + position: fixed; + top: 0; + right: 100%; + z-index: 2000; + width: 100%; + height: 2px; + background: #20a8d8; } + +.social-box { + min-height: 160px; + margin-bottom: 20px; + text-align: center; + background: #fff; + border: 1px solid #cfd8dc; } + .social-box i { + display: block; + margin: -1px -1px 0; + font-size: 40px; + line-height: 90px; + background: #cfd8dc; } + .social-box .chart-wrapper { + height: 90px; + margin: -90px 0 0; } + .social-box .chart-wrapper canvas { + width: 100% !important; + height: 90px !important; } + .social-box ul { + padding: 10px 0; + list-style: none; } + .social-box ul li { + display: block; + float: left; + width: 50%; } + .social-box ul li:first-child { + border-right: 1px solid #cfd8dc; } + .social-box ul li strong { + display: block; + font-size: 20px; } + .social-box ul li span { + font-size: 10px; + font-weight: 500; + color: #cfd8dc; + text-transform: uppercase; } + .social-box.facebook i { + color: #fff; + background: #3b5998; } + .social-box.twitter i { + color: #fff; + background: #00aced; } + .social-box.linkedin i { + color: #fff; + background: #4875b4; } + .social-box.google-plus i { + color: #fff; + background: #bb4b39; } + +.horizontal-bars { + padding: 0; + margin: 0; + list-style: none; } + .horizontal-bars li { + position: relative; + height: 40px; + line-height: 40px; + vertical-align: middle; } + .horizontal-bars li .title { + width: 100px; + font-size: 12px; + font-weight: 600; + color: #b0bec5; + vertical-align: middle; } + .horizontal-bars li .bars { + position: absolute; + top: 15px; + width: 100%; + padding-left: 100px; } + .horizontal-bars li.legend { + text-align: center; } + .horizontal-bars li.legend .tag { + display: inline-block; + width: 8px; + height: 8px; + padding: 0; } + .horizontal-bars li.divider { + height: 40px; } + .horizontal-bars li.divider i { + margin: 0 !important; } + .horizontal-bars.type-2 li { + overflow: hidden; } + .horizontal-bars.type-2 li i { + display: inline-block; + margin-right: 1rem; + margin-left: 5px; + font-size: 18px; + line-height: 40px; } + .horizontal-bars.type-2 li .title { + display: inline-block; + width: auto; + margin-top: -9px; + font-size: 0.875rem; + font-weight: normal; + line-height: 40px; + color: #263238; } + .horizontal-bars.type-2 li .value { + float: right; + font-weight: 600; } + .horizontal-bars.type-2 li .bars { + position: absolute; + top: auto; + bottom: 0; + padding: 0; } + +ul.icons-list { + padding: 0; + margin: 0; + list-style: none; } + ul.icons-list li { + position: relative; + height: 40px; + vertical-align: middle; } + ul.icons-list li i { + display: block; + float: left; + width: 35px !important; + height: 35px !important; + margin: 2px; + line-height: 35px !important; + text-align: center; } + ul.icons-list li .desc { + height: 40px; + margin-left: 50px; + border-bottom: 1px solid #cfd8dc; } + ul.icons-list li .desc .title { + padding: 2px 0 0; + margin: 0; } + ul.icons-list li .desc small { + display: block; + margin-top: -4px; + color: #b0bec5; } + ul.icons-list li .value { + position: absolute; + top: 2px; + right: 45px; + text-align: right; } + ul.icons-list li .value strong { + display: block; + margin-top: -3px; } + ul.icons-list li .actions { + position: absolute; + top: -4px; + right: 10px; + width: 40px; + height: 40px; + line-height: 40px; + text-align: center; } + ul.icons-list li .actions i { + float: none; + width: auto; + height: auto; + padding: 0; + margin: 0; + line-height: normal; } + ul.icons-list li.divider { + height: 40px; } + ul.icons-list li.divider i { + width: auto; + height: auto; + margin: 2px 0 0; + font-size: 18px; } + +footer.footer { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 50px; + padding: 0 1rem; + line-height: 50px; + color: #263238; + background: #eceff1; + border-top: 1px solid #cfd8dc; } + +.btn-transparent { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent:hover { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent:focus, .btn-transparent.focus { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent:active, .btn-transparent.active, + .open > .btn-transparent.dropdown-toggle { + color: #fff; + background-color: transparent; + border-color: transparent; + background-image: none; } + .btn-transparent:active:hover, .btn-transparent:active:focus, .btn-transparent:active.focus, .btn-transparent.active:hover, .btn-transparent.active:focus, .btn-transparent.active.focus, + .open > .btn-transparent.dropdown-toggle:hover, + .open > .btn-transparent.dropdown-toggle:focus, + .open > .btn-transparent.dropdown-toggle.focus { + color: #fff; + background-color: transparent; + border-color: transparent; } + .btn-transparent.disabled:focus, .btn-transparent.disabled.focus, .btn-transparent:disabled:focus, .btn-transparent:disabled.focus { + background-color: transparent; + border-color: transparent; } + .btn-transparent.disabled:hover, .btn-transparent:disabled:hover { + background-color: transparent; + border-color: transparent; } + +.btn [class^="icon-"], .btn [class*=" icon-"] { + display: inline-block; + margin-top: -2px; + vertical-align: middle; } + +.btn-facebook, +.btn-twitter, +.btn-linkedin, +.btn-flickr, +.btn-tumblr, +.btn-xing, +.btn-github, +.btn-html5, +.btn-openid, +.btn-stack-overflow, +.btn-youtube, +.btn-css3, +.btn-dribbble, +.btn-google-plus, +.btn-instagram, +.btn-pinterest, +.btn-vk, +.btn-yahoo, +.btn-behance, +.btn-dropbox, +.btn-reddit, +.btn-spotify, +.btn-vine, +.btn-foursquare, +.btn-vimeo { + position: relative; + overflow: hidden; + color: #fff !important; + text-align: center; + padding: 0.5rem 1rem; + font-size: 0.875rem; + line-height: 1.5; + border: 0; } + .btn-facebook:before, + .btn-twitter:before, + .btn-linkedin:before, + .btn-flickr:before, + .btn-tumblr:before, + .btn-xing:before, + .btn-github:before, + .btn-html5:before, + .btn-openid:before, + .btn-stack-overflow:before, + .btn-youtube:before, + .btn-css3:before, + .btn-dribbble:before, + .btn-google-plus:before, + .btn-instagram:before, + .btn-pinterest:before, + .btn-vk:before, + .btn-yahoo:before, + .btn-behance:before, + .btn-dropbox:before, + .btn-reddit:before, + .btn-spotify:before, + .btn-vine:before, + .btn-foursquare:before, + .btn-vimeo:before { + position: absolute; + top: 0; + left: 0; + display: block; + font-family: 'FontAwesome'; + font-style: normal; + font-weight: normal; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; } + .btn-facebook:hover, + .btn-twitter:hover, + .btn-linkedin:hover, + .btn-flickr:hover, + .btn-tumblr:hover, + .btn-xing:hover, + .btn-github:hover, + .btn-html5:hover, + .btn-openid:hover, + .btn-stack-overflow:hover, + .btn-youtube:hover, + .btn-css3:hover, + .btn-dribbble:hover, + .btn-google-plus:hover, + .btn-instagram:hover, + .btn-pinterest:hover, + .btn-vk:hover, + .btn-yahoo:hover, + .btn-behance:hover, + .btn-dropbox:hover, + .btn-reddit:hover, + .btn-spotify:hover, + .btn-vine:hover, + .btn-foursquare:hover, + .btn-vimeo:hover { + color: #fff; } + .btn-facebook.icon span, + .btn-twitter.icon span, + .btn-linkedin.icon span, + .btn-flickr.icon span, + .btn-tumblr.icon span, + .btn-xing.icon span, + .btn-github.icon span, + .btn-html5.icon span, + .btn-openid.icon span, + .btn-stack-overflow.icon span, + .btn-youtube.icon span, + .btn-css3.icon span, + .btn-dribbble.icon span, + .btn-google-plus.icon span, + .btn-instagram.icon span, + .btn-pinterest.icon span, + .btn-vk.icon span, + .btn-yahoo.icon span, + .btn-behance.icon span, + .btn-dropbox.icon span, + .btn-reddit.icon span, + .btn-spotify.icon span, + .btn-vine.icon span, + .btn-foursquare.icon span, + .btn-vimeo.icon span { + display: none; } + .btn-facebook.text:before, + .btn-twitter.text:before, + .btn-linkedin.text:before, + .btn-flickr.text:before, + .btn-tumblr.text:before, + .btn-xing.text:before, + .btn-github.text:before, + .btn-html5.text:before, + .btn-openid.text:before, + .btn-stack-overflow.text:before, + .btn-youtube.text:before, + .btn-css3.text:before, + .btn-dribbble.text:before, + .btn-google-plus.text:before, + .btn-instagram.text:before, + .btn-pinterest.text:before, + .btn-vk.text:before, + .btn-yahoo.text:before, + .btn-behance.text:before, + .btn-dropbox.text:before, + .btn-reddit.text:before, + .btn-spotify.text:before, + .btn-vine.text:before, + .btn-foursquare.text:before, + .btn-vimeo.text:before { + display: none; } + .btn-facebook.text span, + .btn-twitter.text span, + .btn-linkedin.text span, + .btn-flickr.text span, + .btn-tumblr.text span, + .btn-xing.text span, + .btn-github.text span, + .btn-html5.text span, + .btn-openid.text span, + .btn-stack-overflow.text span, + .btn-youtube.text span, + .btn-css3.text span, + .btn-dribbble.text span, + .btn-google-plus.text span, + .btn-instagram.text span, + .btn-pinterest.text span, + .btn-vk.text span, + .btn-yahoo.text span, + .btn-behance.text span, + .btn-dropbox.text span, + .btn-reddit.text span, + .btn-spotify.text span, + .btn-vine.text span, + .btn-foursquare.text span, + .btn-vimeo.text span { + margin-left: 0 !important; } + .btn-facebook:before, + .btn-twitter:before, + .btn-linkedin:before, + .btn-flickr:before, + .btn-tumblr:before, + .btn-xing:before, + .btn-github:before, + .btn-html5:before, + .btn-openid:before, + .btn-stack-overflow:before, + .btn-youtube:before, + .btn-css3:before, + .btn-dribbble:before, + .btn-google-plus:before, + .btn-instagram:before, + .btn-pinterest:before, + .btn-vk:before, + .btn-yahoo:before, + .btn-behance:before, + .btn-dropbox:before, + .btn-reddit:before, + .btn-spotify:before, + .btn-vine:before, + .btn-foursquare:before, + .btn-vimeo:before { + width: 2.3125rem; + height: 2.3125rem; + padding: 0.5rem 0; + font-size: 0.875rem; + line-height: 1.5; } + .btn-facebook span, + .btn-twitter span, + .btn-linkedin span, + .btn-flickr span, + .btn-tumblr span, + .btn-xing span, + .btn-github span, + .btn-html5 span, + .btn-openid span, + .btn-stack-overflow span, + .btn-youtube span, + .btn-css3 span, + .btn-dribbble span, + .btn-google-plus span, + .btn-instagram span, + .btn-pinterest span, + .btn-vk span, + .btn-yahoo span, + .btn-behance span, + .btn-dropbox span, + .btn-reddit span, + .btn-spotify span, + .btn-vine span, + .btn-foursquare span, + .btn-vimeo span { + margin-left: 2.3125rem; } + .btn-facebook.icon, + .btn-twitter.icon, + .btn-linkedin.icon, + .btn-flickr.icon, + .btn-tumblr.icon, + .btn-xing.icon, + .btn-github.icon, + .btn-html5.icon, + .btn-openid.icon, + .btn-stack-overflow.icon, + .btn-youtube.icon, + .btn-css3.icon, + .btn-dribbble.icon, + .btn-google-plus.icon, + .btn-instagram.icon, + .btn-pinterest.icon, + .btn-vk.icon, + .btn-yahoo.icon, + .btn-behance.icon, + .btn-dropbox.icon, + .btn-reddit.icon, + .btn-spotify.icon, + .btn-vine.icon, + .btn-foursquare.icon, + .btn-vimeo.icon { + width: 2.3125rem; + height: 2.3125rem; } + .btn-facebook.btn-lg, .btn-group-lg > .btn-facebook.btn, + .btn-twitter.btn-lg, + .btn-group-lg > .btn-twitter.btn, + .btn-linkedin.btn-lg, + .btn-group-lg > .btn-linkedin.btn, + .btn-flickr.btn-lg, + .btn-group-lg > .btn-flickr.btn, + .btn-tumblr.btn-lg, + .btn-group-lg > .btn-tumblr.btn, + .btn-xing.btn-lg, + .btn-group-lg > .btn-xing.btn, + .btn-github.btn-lg, + .btn-group-lg > .btn-github.btn, + .btn-html5.btn-lg, + .btn-group-lg > .btn-html5.btn, + .btn-openid.btn-lg, + .btn-group-lg > .btn-openid.btn, + .btn-stack-overflow.btn-lg, + .btn-group-lg > .btn-stack-overflow.btn, + .btn-youtube.btn-lg, + .btn-group-lg > .btn-youtube.btn, + .btn-css3.btn-lg, + .btn-group-lg > .btn-css3.btn, + .btn-dribbble.btn-lg, + .btn-group-lg > .btn-dribbble.btn, + .btn-google-plus.btn-lg, + .btn-group-lg > .btn-google-plus.btn, + .btn-instagram.btn-lg, + .btn-group-lg > .btn-instagram.btn, + .btn-pinterest.btn-lg, + .btn-group-lg > .btn-pinterest.btn, + .btn-vk.btn-lg, + .btn-group-lg > .btn-vk.btn, + .btn-yahoo.btn-lg, + .btn-group-lg > .btn-yahoo.btn, + .btn-behance.btn-lg, + .btn-group-lg > .btn-behance.btn, + .btn-dropbox.btn-lg, + .btn-group-lg > .btn-dropbox.btn, + .btn-reddit.btn-lg, + .btn-group-lg > .btn-reddit.btn, + .btn-spotify.btn-lg, + .btn-group-lg > .btn-spotify.btn, + .btn-vine.btn-lg, + .btn-group-lg > .btn-vine.btn, + .btn-foursquare.btn-lg, + .btn-group-lg > .btn-foursquare.btn, + .btn-vimeo.btn-lg, + .btn-group-lg > .btn-vimeo.btn { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.33333; + border: 0; } + .btn-facebook.btn-lg:before, .btn-group-lg > .btn-facebook.btn:before, + .btn-twitter.btn-lg:before, + .btn-group-lg > .btn-twitter.btn:before, + .btn-linkedin.btn-lg:before, + .btn-group-lg > .btn-linkedin.btn:before, + .btn-flickr.btn-lg:before, + .btn-group-lg > .btn-flickr.btn:before, + .btn-tumblr.btn-lg:before, + .btn-group-lg > .btn-tumblr.btn:before, + .btn-xing.btn-lg:before, + .btn-group-lg > .btn-xing.btn:before, + .btn-github.btn-lg:before, + .btn-group-lg > .btn-github.btn:before, + .btn-html5.btn-lg:before, + .btn-group-lg > .btn-html5.btn:before, + .btn-openid.btn-lg:before, + .btn-group-lg > .btn-openid.btn:before, + .btn-stack-overflow.btn-lg:before, + .btn-group-lg > .btn-stack-overflow.btn:before, + .btn-youtube.btn-lg:before, + .btn-group-lg > .btn-youtube.btn:before, + .btn-css3.btn-lg:before, + .btn-group-lg > .btn-css3.btn:before, + .btn-dribbble.btn-lg:before, + .btn-group-lg > .btn-dribbble.btn:before, + .btn-google-plus.btn-lg:before, + .btn-group-lg > .btn-google-plus.btn:before, + .btn-instagram.btn-lg:before, + .btn-group-lg > .btn-instagram.btn:before, + .btn-pinterest.btn-lg:before, + .btn-group-lg > .btn-pinterest.btn:before, + .btn-vk.btn-lg:before, + .btn-group-lg > .btn-vk.btn:before, + .btn-yahoo.btn-lg:before, + .btn-group-lg > .btn-yahoo.btn:before, + .btn-behance.btn-lg:before, + .btn-group-lg > .btn-behance.btn:before, + .btn-dropbox.btn-lg:before, + .btn-group-lg > .btn-dropbox.btn:before, + .btn-reddit.btn-lg:before, + .btn-group-lg > .btn-reddit.btn:before, + .btn-spotify.btn-lg:before, + .btn-group-lg > .btn-spotify.btn:before, + .btn-vine.btn-lg:before, + .btn-group-lg > .btn-vine.btn:before, + .btn-foursquare.btn-lg:before, + .btn-group-lg > .btn-foursquare.btn:before, + .btn-vimeo.btn-lg:before, + .btn-group-lg > .btn-vimeo.btn:before { + width: 3.16667rem; + height: 3.16667rem; + padding: 0.75rem 0; + font-size: 1.25rem; + line-height: 1.33333; } + .btn-facebook.btn-lg span, .btn-group-lg > .btn-facebook.btn span, + .btn-twitter.btn-lg span, .btn-group-lg > .btn-twitter.btn span, + .btn-linkedin.btn-lg span, .btn-group-lg > .btn-linkedin.btn span, + .btn-flickr.btn-lg span, .btn-group-lg > .btn-flickr.btn span, + .btn-tumblr.btn-lg span, .btn-group-lg > .btn-tumblr.btn span, + .btn-xing.btn-lg span, .btn-group-lg > .btn-xing.btn span, + .btn-github.btn-lg span, .btn-group-lg > .btn-github.btn span, + .btn-html5.btn-lg span, .btn-group-lg > .btn-html5.btn span, + .btn-openid.btn-lg span, .btn-group-lg > .btn-openid.btn span, + .btn-stack-overflow.btn-lg span, .btn-group-lg > .btn-stack-overflow.btn span, + .btn-youtube.btn-lg span, .btn-group-lg > .btn-youtube.btn span, + .btn-css3.btn-lg span, .btn-group-lg > .btn-css3.btn span, + .btn-dribbble.btn-lg span, .btn-group-lg > .btn-dribbble.btn span, + .btn-google-plus.btn-lg span, .btn-group-lg > .btn-google-plus.btn span, + .btn-instagram.btn-lg span, .btn-group-lg > .btn-instagram.btn span, + .btn-pinterest.btn-lg span, .btn-group-lg > .btn-pinterest.btn span, + .btn-vk.btn-lg span, .btn-group-lg > .btn-vk.btn span, + .btn-yahoo.btn-lg span, .btn-group-lg > .btn-yahoo.btn span, + .btn-behance.btn-lg span, .btn-group-lg > .btn-behance.btn span, + .btn-dropbox.btn-lg span, .btn-group-lg > .btn-dropbox.btn span, + .btn-reddit.btn-lg span, .btn-group-lg > .btn-reddit.btn span, + .btn-spotify.btn-lg span, .btn-group-lg > .btn-spotify.btn span, + .btn-vine.btn-lg span, .btn-group-lg > .btn-vine.btn span, + .btn-foursquare.btn-lg span, .btn-group-lg > .btn-foursquare.btn span, + .btn-vimeo.btn-lg span, .btn-group-lg > .btn-vimeo.btn span { + margin-left: 3.16667rem; } + .btn-facebook.btn-lg.icon, .btn-group-lg > .btn-facebook.icon.btn, + .btn-twitter.btn-lg.icon, + .btn-group-lg > .btn-twitter.icon.btn, + .btn-linkedin.btn-lg.icon, + .btn-group-lg > .btn-linkedin.icon.btn, + .btn-flickr.btn-lg.icon, + .btn-group-lg > .btn-flickr.icon.btn, + .btn-tumblr.btn-lg.icon, + .btn-group-lg > .btn-tumblr.icon.btn, + .btn-xing.btn-lg.icon, + .btn-group-lg > .btn-xing.icon.btn, + .btn-github.btn-lg.icon, + .btn-group-lg > .btn-github.icon.btn, + .btn-html5.btn-lg.icon, + .btn-group-lg > .btn-html5.icon.btn, + .btn-openid.btn-lg.icon, + .btn-group-lg > .btn-openid.icon.btn, + .btn-stack-overflow.btn-lg.icon, + .btn-group-lg > .btn-stack-overflow.icon.btn, + .btn-youtube.btn-lg.icon, + .btn-group-lg > .btn-youtube.icon.btn, + .btn-css3.btn-lg.icon, + .btn-group-lg > .btn-css3.icon.btn, + .btn-dribbble.btn-lg.icon, + .btn-group-lg > .btn-dribbble.icon.btn, + .btn-google-plus.btn-lg.icon, + .btn-group-lg > .btn-google-plus.icon.btn, + .btn-instagram.btn-lg.icon, + .btn-group-lg > .btn-instagram.icon.btn, + .btn-pinterest.btn-lg.icon, + .btn-group-lg > .btn-pinterest.icon.btn, + .btn-vk.btn-lg.icon, + .btn-group-lg > .btn-vk.icon.btn, + .btn-yahoo.btn-lg.icon, + .btn-group-lg > .btn-yahoo.icon.btn, + .btn-behance.btn-lg.icon, + .btn-group-lg > .btn-behance.icon.btn, + .btn-dropbox.btn-lg.icon, + .btn-group-lg > .btn-dropbox.icon.btn, + .btn-reddit.btn-lg.icon, + .btn-group-lg > .btn-reddit.icon.btn, + .btn-spotify.btn-lg.icon, + .btn-group-lg > .btn-spotify.icon.btn, + .btn-vine.btn-lg.icon, + .btn-group-lg > .btn-vine.icon.btn, + .btn-foursquare.btn-lg.icon, + .btn-group-lg > .btn-foursquare.icon.btn, + .btn-vimeo.btn-lg.icon, + .btn-group-lg > .btn-vimeo.icon.btn { + width: 3.16667rem; + height: 3.16667rem; } + .btn-facebook.btn-sm, .btn-group-sm > .btn-facebook.btn, + .btn-twitter.btn-sm, + .btn-group-sm > .btn-twitter.btn, + .btn-linkedin.btn-sm, + .btn-group-sm > .btn-linkedin.btn, + .btn-flickr.btn-sm, + .btn-group-sm > .btn-flickr.btn, + .btn-tumblr.btn-sm, + .btn-group-sm > .btn-tumblr.btn, + .btn-xing.btn-sm, + .btn-group-sm > .btn-xing.btn, + .btn-github.btn-sm, + .btn-group-sm > .btn-github.btn, + .btn-html5.btn-sm, + .btn-group-sm > .btn-html5.btn, + .btn-openid.btn-sm, + .btn-group-sm > .btn-openid.btn, + .btn-stack-overflow.btn-sm, + .btn-group-sm > .btn-stack-overflow.btn, + .btn-youtube.btn-sm, + .btn-group-sm > .btn-youtube.btn, + .btn-css3.btn-sm, + .btn-group-sm > .btn-css3.btn, + .btn-dribbble.btn-sm, + .btn-group-sm > .btn-dribbble.btn, + .btn-google-plus.btn-sm, + .btn-group-sm > .btn-google-plus.btn, + .btn-instagram.btn-sm, + .btn-group-sm > .btn-instagram.btn, + .btn-pinterest.btn-sm, + .btn-group-sm > .btn-pinterest.btn, + .btn-vk.btn-sm, + .btn-group-sm > .btn-vk.btn, + .btn-yahoo.btn-sm, + .btn-group-sm > .btn-yahoo.btn, + .btn-behance.btn-sm, + .btn-group-sm > .btn-behance.btn, + .btn-dropbox.btn-sm, + .btn-group-sm > .btn-dropbox.btn, + .btn-reddit.btn-sm, + .btn-group-sm > .btn-reddit.btn, + .btn-spotify.btn-sm, + .btn-group-sm > .btn-spotify.btn, + .btn-vine.btn-sm, + .btn-group-sm > .btn-vine.btn, + .btn-foursquare.btn-sm, + .btn-group-sm > .btn-foursquare.btn, + .btn-vimeo.btn-sm, + .btn-group-sm > .btn-vimeo.btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border: 0; } + .btn-facebook.btn-sm:before, .btn-group-sm > .btn-facebook.btn:before, + .btn-twitter.btn-sm:before, + .btn-group-sm > .btn-twitter.btn:before, + .btn-linkedin.btn-sm:before, + .btn-group-sm > .btn-linkedin.btn:before, + .btn-flickr.btn-sm:before, + .btn-group-sm > .btn-flickr.btn:before, + .btn-tumblr.btn-sm:before, + .btn-group-sm > .btn-tumblr.btn:before, + .btn-xing.btn-sm:before, + .btn-group-sm > .btn-xing.btn:before, + .btn-github.btn-sm:before, + .btn-group-sm > .btn-github.btn:before, + .btn-html5.btn-sm:before, + .btn-group-sm > .btn-html5.btn:before, + .btn-openid.btn-sm:before, + .btn-group-sm > .btn-openid.btn:before, + .btn-stack-overflow.btn-sm:before, + .btn-group-sm > .btn-stack-overflow.btn:before, + .btn-youtube.btn-sm:before, + .btn-group-sm > .btn-youtube.btn:before, + .btn-css3.btn-sm:before, + .btn-group-sm > .btn-css3.btn:before, + .btn-dribbble.btn-sm:before, + .btn-group-sm > .btn-dribbble.btn:before, + .btn-google-plus.btn-sm:before, + .btn-group-sm > .btn-google-plus.btn:before, + .btn-instagram.btn-sm:before, + .btn-group-sm > .btn-instagram.btn:before, + .btn-pinterest.btn-sm:before, + .btn-group-sm > .btn-pinterest.btn:before, + .btn-vk.btn-sm:before, + .btn-group-sm > .btn-vk.btn:before, + .btn-yahoo.btn-sm:before, + .btn-group-sm > .btn-yahoo.btn:before, + .btn-behance.btn-sm:before, + .btn-group-sm > .btn-behance.btn:before, + .btn-dropbox.btn-sm:before, + .btn-group-sm > .btn-dropbox.btn:before, + .btn-reddit.btn-sm:before, + .btn-group-sm > .btn-reddit.btn:before, + .btn-spotify.btn-sm:before, + .btn-group-sm > .btn-spotify.btn:before, + .btn-vine.btn-sm:before, + .btn-group-sm > .btn-vine.btn:before, + .btn-foursquare.btn-sm:before, + .btn-group-sm > .btn-foursquare.btn:before, + .btn-vimeo.btn-sm:before, + .btn-group-sm > .btn-vimeo.btn:before { + width: 1.8125rem; + height: 1.8125rem; + padding: 0.25rem 0; + font-size: 0.875rem; + line-height: 1.5; } + .btn-facebook.btn-sm span, .btn-group-sm > .btn-facebook.btn span, + .btn-twitter.btn-sm span, .btn-group-sm > .btn-twitter.btn span, + .btn-linkedin.btn-sm span, .btn-group-sm > .btn-linkedin.btn span, + .btn-flickr.btn-sm span, .btn-group-sm > .btn-flickr.btn span, + .btn-tumblr.btn-sm span, .btn-group-sm > .btn-tumblr.btn span, + .btn-xing.btn-sm span, .btn-group-sm > .btn-xing.btn span, + .btn-github.btn-sm span, .btn-group-sm > .btn-github.btn span, + .btn-html5.btn-sm span, .btn-group-sm > .btn-html5.btn span, + .btn-openid.btn-sm span, .btn-group-sm > .btn-openid.btn span, + .btn-stack-overflow.btn-sm span, .btn-group-sm > .btn-stack-overflow.btn span, + .btn-youtube.btn-sm span, .btn-group-sm > .btn-youtube.btn span, + .btn-css3.btn-sm span, .btn-group-sm > .btn-css3.btn span, + .btn-dribbble.btn-sm span, .btn-group-sm > .btn-dribbble.btn span, + .btn-google-plus.btn-sm span, .btn-group-sm > .btn-google-plus.btn span, + .btn-instagram.btn-sm span, .btn-group-sm > .btn-instagram.btn span, + .btn-pinterest.btn-sm span, .btn-group-sm > .btn-pinterest.btn span, + .btn-vk.btn-sm span, .btn-group-sm > .btn-vk.btn span, + .btn-yahoo.btn-sm span, .btn-group-sm > .btn-yahoo.btn span, + .btn-behance.btn-sm span, .btn-group-sm > .btn-behance.btn span, + .btn-dropbox.btn-sm span, .btn-group-sm > .btn-dropbox.btn span, + .btn-reddit.btn-sm span, .btn-group-sm > .btn-reddit.btn span, + .btn-spotify.btn-sm span, .btn-group-sm > .btn-spotify.btn span, + .btn-vine.btn-sm span, .btn-group-sm > .btn-vine.btn span, + .btn-foursquare.btn-sm span, .btn-group-sm > .btn-foursquare.btn span, + .btn-vimeo.btn-sm span, .btn-group-sm > .btn-vimeo.btn span { + margin-left: 1.8125rem; } + .btn-facebook.btn-sm.icon, .btn-group-sm > .btn-facebook.icon.btn, + .btn-twitter.btn-sm.icon, + .btn-group-sm > .btn-twitter.icon.btn, + .btn-linkedin.btn-sm.icon, + .btn-group-sm > .btn-linkedin.icon.btn, + .btn-flickr.btn-sm.icon, + .btn-group-sm > .btn-flickr.icon.btn, + .btn-tumblr.btn-sm.icon, + .btn-group-sm > .btn-tumblr.icon.btn, + .btn-xing.btn-sm.icon, + .btn-group-sm > .btn-xing.icon.btn, + .btn-github.btn-sm.icon, + .btn-group-sm > .btn-github.icon.btn, + .btn-html5.btn-sm.icon, + .btn-group-sm > .btn-html5.icon.btn, + .btn-openid.btn-sm.icon, + .btn-group-sm > .btn-openid.icon.btn, + .btn-stack-overflow.btn-sm.icon, + .btn-group-sm > .btn-stack-overflow.icon.btn, + .btn-youtube.btn-sm.icon, + .btn-group-sm > .btn-youtube.icon.btn, + .btn-css3.btn-sm.icon, + .btn-group-sm > .btn-css3.icon.btn, + .btn-dribbble.btn-sm.icon, + .btn-group-sm > .btn-dribbble.icon.btn, + .btn-google-plus.btn-sm.icon, + .btn-group-sm > .btn-google-plus.icon.btn, + .btn-instagram.btn-sm.icon, + .btn-group-sm > .btn-instagram.icon.btn, + .btn-pinterest.btn-sm.icon, + .btn-group-sm > .btn-pinterest.icon.btn, + .btn-vk.btn-sm.icon, + .btn-group-sm > .btn-vk.icon.btn, + .btn-yahoo.btn-sm.icon, + .btn-group-sm > .btn-yahoo.icon.btn, + .btn-behance.btn-sm.icon, + .btn-group-sm > .btn-behance.icon.btn, + .btn-dropbox.btn-sm.icon, + .btn-group-sm > .btn-dropbox.icon.btn, + .btn-reddit.btn-sm.icon, + .btn-group-sm > .btn-reddit.icon.btn, + .btn-spotify.btn-sm.icon, + .btn-group-sm > .btn-spotify.icon.btn, + .btn-vine.btn-sm.icon, + .btn-group-sm > .btn-vine.icon.btn, + .btn-foursquare.btn-sm.icon, + .btn-group-sm > .btn-foursquare.icon.btn, + .btn-vimeo.btn-sm.icon, + .btn-group-sm > .btn-vimeo.icon.btn { + width: 1.8125rem; + height: 1.8125rem; } + +.btn-facebook { + background: #3b5998; } + .btn-facebook:before { + content: "\f09a"; + background: #344e86; } + .btn-facebook:hover { + background: #344e86; } + .btn-facebook:hover:before { + background: #2d4373; } + +.btn-twitter { + background: #00aced; } + .btn-twitter:before { + content: "\f099"; + background: #0099d4; } + .btn-twitter:hover { + background: #0099d4; } + .btn-twitter:hover:before { + background: #0087ba; } + +.btn-linkedin { + background: #4875b4; } + .btn-linkedin:before { + content: "\f0e1"; + background: #4169a2; } + .btn-linkedin:hover { + background: #4169a2; } + .btn-linkedin:hover:before { + background: #395d90; } + +.btn-flickr { + background: #ff0084; } + .btn-flickr:before { + content: "\f16e"; + background: #e60077; } + .btn-flickr:hover { + background: #e60077; } + .btn-flickr:hover:before { + background: #cc006a; } + +.btn-tumblr { + background: #32506d; } + .btn-tumblr:before { + content: "\f173"; + background: #2a435c; } + .btn-tumblr:hover { + background: #2a435c; } + .btn-tumblr:hover:before { + background: #22364a; } + +.btn-xing { + background: #026466; } + .btn-xing:before { + content: "\f168"; + background: #024b4d; } + .btn-xing:hover { + background: #024b4d; } + .btn-xing:hover:before { + background: #013334; } + +.btn-github { + background: #4183c4; } + .btn-github:before { + content: "\f09b"; + background: #3876b4; } + .btn-github:hover { + background: #3876b4; } + .btn-github:hover:before { + background: #3269a0; } + +.btn-html5 { + background: #e34f26; } + .btn-html5:before { + content: "\f13b"; + background: #d4431b; } + .btn-html5:hover { + background: #d4431b; } + .btn-html5:hover:before { + background: #be3c18; } + +.btn-openid { + background: #f78c40; } + .btn-openid:before { + content: "\f19b"; + background: #f67d28; } + .btn-openid:hover { + background: #f67d28; } + .btn-openid:hover:before { + background: #f56f0f; } + +.btn-stack-overflow { + background: #fe7a15; } + .btn-stack-overflow:before { + content: "\f16c"; + background: #f86c01; } + .btn-stack-overflow:hover { + background: #f86c01; } + .btn-stack-overflow:hover:before { + background: #df6101; } + +.btn-css3 { + background: #0170ba; } + .btn-css3:before { + content: "\f13c"; + background: #0161a1; } + .btn-css3:hover { + background: #0161a1; } + .btn-css3:hover:before { + background: #015187; } + +.btn-youtube { + background: #b00; } + .btn-youtube:before { + content: "\f167"; + background: #a20000; } + .btn-youtube:hover { + background: #a20000; } + .btn-youtube:hover:before { + background: #880000; } + +.btn-dribbble { + background: #ea4c89; } + .btn-dribbble:before { + content: "\f17d"; + background: #e7357a; } + .btn-dribbble:hover { + background: #e7357a; } + .btn-dribbble:hover:before { + background: #e51e6b; } + +.btn-google-plus { + background: #bb4b39; } + .btn-google-plus:before { + content: "\f0d5"; + background: #a74333; } + .btn-google-plus:hover { + background: #a74333; } + .btn-google-plus:hover:before { + background: #943b2d; } + +.btn-instagram { + background: #517fa4; } + .btn-instagram:before { + content: "\f16d"; + background: #497293; } + .btn-instagram:hover { + background: #497293; } + .btn-instagram:hover:before { + background: #406582; } + +.btn-pinterest { + background: #cb2027; } + .btn-pinterest:before { + content: "\f0d2"; + background: #b51d23; } + .btn-pinterest:hover { + background: #b51d23; } + .btn-pinterest:hover:before { + background: #9f191f; } + +.btn-vk { + background: #45668e; } + .btn-vk:before { + content: "\f189"; + background: #3d5a7d; } + .btn-vk:hover { + background: #3d5a7d; } + .btn-vk:hover:before { + background: #344d6c; } + +.btn-yahoo { + background: #400191; } + .btn-yahoo:before { + content: "\f19e"; + background: #350178; } + .btn-yahoo:hover { + background: #350178; } + .btn-yahoo:hover:before { + background: #2a015e; } + +.btn-behance { + background: #1769ff; } + .btn-behance:before { + content: "\f1b4"; + background: #0059fd; } + .btn-behance:hover { + background: #0059fd; } + .btn-behance:hover:before { + background: #0050e3; } + +.btn-dropbox { + background: #007ee5; } + .btn-dropbox:before { + content: "\f16b"; + background: #0070cc; } + .btn-dropbox:hover { + background: #0070cc; } + .btn-dropbox:hover:before { + background: #0062b2; } + +.btn-reddit { + background: #ff4500; } + .btn-reddit:before { + content: "\f1a1"; + background: #e63e00; } + .btn-reddit:hover { + background: #e63e00; } + .btn-reddit:hover:before { + background: #cc3700; } + +.btn-spotify { + background: #7ab800; } + .btn-spotify:before { + content: "\f1bc"; + background: #699f00; } + .btn-spotify:hover { + background: #699f00; } + .btn-spotify:hover:before { + background: #588500; } + +.btn-vine { + background: #00bf8f; } + .btn-vine:before { + content: "\f1ca"; + background: #00a67c; } + .btn-vine:hover { + background: #00a67c; } + .btn-vine:hover:before { + background: #008c69; } + +.btn-foursquare { + background: #1073af; } + .btn-foursquare:before { + content: "\f180"; + background: #0e6498; } + .btn-foursquare:hover { + background: #0e6498; } + .btn-foursquare:hover:before { + background: #0c5480; } + +.btn-vimeo { + background: #aad450; } + .btn-vimeo:before { + content: "\f194"; + background: #a0cf3c; } + .btn-vimeo:hover { + background: #a0cf3c; } + .btn-vimeo:hover:before { + background: #93c130; } + +hr.transparent { + border-top: 1px solid transparent; } + +.breadcrumb-menu { + position: absolute; + top: 0; + right: 1rem; + line-height: 43px; } + .breadcrumb-menu:before { + display: none; } + .breadcrumb-menu .btn-group { + margin-top: -2px; } + .breadcrumb-menu .btn.btn-secondary { + color: #b0bec5; + border: 0; } + .breadcrumb-menu .btn.btn-secondary:hover, .breadcrumb-menu .btn.btn-secondary.active { + color: #263238; + background: transparent; } + .breadcrumb-menu .open .btn.btn-secondary { + color: #263238; + background: transparent; } + .breadcrumb-menu .dropdown-menu { + min-width: 180px; + line-height: 1.5; } + +.img-avatar { + border-radius: 50em; } + +.avatar { + position: relative; + display: inline-block; + width: 36px; } + .avatar .img-avatar { + width: 36px; + height: 36px; } + .avatar .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 10px; + height: 10px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatar.avatar-xs { + position: relative; + display: inline-block; + width: 20px; } + .avatar.avatar-xs .img-avatar { + width: 20px; + height: 20px; } + .avatar.avatar-xs .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 8px; + height: 8px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatar.avatar-sm { + position: relative; + display: inline-block; + width: 24px; } + .avatar.avatar-sm .img-avatar { + width: 24px; + height: 24px; } + .avatar.avatar-sm .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 8px; + height: 8px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatar.avatar-lg { + position: relative; + display: inline-block; + width: 72px; } + .avatar.avatar-lg .img-avatar { + width: 72px; + height: 72px; } + .avatar.avatar-lg .avatar-status { + position: absolute; + right: 0; + bottom: 0; + display: block; + width: 12px; + height: 12px; + border: 1px solid #fff; + border-radius: 50em; } + +.avatars-stack .avatar.avatar-xs { + margin-right: -10px; } + +.avatars-stack .avatar { + margin-right: -15px; + transition-duration: 0.25s, 0.25s; + transition-property: margin-left, margin-right; } + .avatars-stack .avatar:hover { + margin-right: 0 !important; } + +.callout { + position: relative; + padding: 0 1rem; + margin: 1rem 0; + border: 0 solid #cfd8dc; + border-left-width: .25rem; } + .callout .chart-wrapper { + position: absolute; + top: 18px; + left: 45%; + float: right; + width: 100px; } + +.callout-bordered { + border: 1px solid #cfd8dc; + border-left-width: .25rem; } + +.callout code { + border-radius: .25rem; } + +.callout h4 { + margin-top: 0; + margin-bottom: .25rem; } + +.callout p:last-child { + margin-bottom: 0; } + +.callout + .callout { + margin-top: -0.25rem; } + +.callout-default { + border-left-color: #b0bec5; } + .callout-default h4 { + color: #b0bec5; } + +.callout-primary { + border-left-color: #20a8d8; } + .callout-primary h4 { + color: #20a8d8; } + +.callout-info { + border-left-color: #63c2de; } + .callout-info h4 { + color: #63c2de; } + +.callout-warning { + border-left-color: #f8cb00; } + .callout-warning h4 { + color: #f8cb00; } + +.callout-danger { + border-left-color: #f86c6b; } + .callout-danger h4 { + color: #f86c6b; } + +.callout-success { + border-left-color: #4dbd74; } + .callout-success h4 { + color: #4dbd74; } + +.switch.switch-default { + position: relative; + display: inline-block; + vertical-align: top; + width: 40px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-default .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-default .switch-label { + position: relative; + display: block; + height: inherit; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #fff; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-default .switch-input:checked ~ .switch-label:before { + opacity: 0; } + .switch.switch-default .switch-input:checked ~ .switch-label:after { + opacity: 1; } + .switch.switch-default .switch-handle { + position: absolute; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; } + .switch.switch-default .switch-input:checked ~ .switch-handle { + left: 18px; } + .switch.switch-default.switch-lg { + width: 48px; + height: 28px; } + .switch.switch-default.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-default.switch-lg .switch-handle { + width: 24px; + height: 24px; } + .switch.switch-default.switch-lg .switch-input:checked ~ .switch-handle { + left: 22px; } + .switch.switch-default.switch-sm { + width: 32px; + height: 20px; } + .switch.switch-default.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-default.switch-sm .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-default.switch-sm .switch-input:checked ~ .switch-handle { + left: 14px; } + .switch.switch-default.switch-xs { + width: 24px; + height: 16px; } + .switch.switch-default.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-default.switch-xs .switch-handle { + width: 12px; + height: 12px; } + .switch.switch-default.switch-xs .switch-input:checked ~ .switch-handle { + left: 10px; } + +.switch.switch-text { + position: relative; + display: inline-block; + vertical-align: top; + width: 48px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-text .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-text .switch-label { + position: relative; + display: block; + height: inherit; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #fff; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-text .switch-label:before, + .switch.switch-text .switch-label:after { + position: absolute; + top: 50%; + width: 50%; + margin-top: -.5em; + line-height: 1; + text-align: center; + -moz-transition: inherit; + -o-transition: inherit; + -webkit-transition: inherit; + transition: inherit; } + .switch.switch-text .switch-label:before { + right: 1px; + color: #cfd8dc; + content: attr(data-off); } + .switch.switch-text .switch-label:after { + left: 1px; + color: #fff; + content: attr(data-on); + opacity: 0; } + .switch.switch-text .switch-input:checked ~ .switch-label:before { + opacity: 0; } + .switch.switch-text .switch-input:checked ~ .switch-label:after { + opacity: 1; } + .switch.switch-text .switch-handle { + position: absolute; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; } + .switch.switch-text .switch-input:checked ~ .switch-handle { + left: 26px; } + .switch.switch-text.switch-lg { + width: 56px; + height: 28px; } + .switch.switch-text.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-text.switch-lg .switch-handle { + width: 24px; + height: 24px; } + .switch.switch-text.switch-lg .switch-input:checked ~ .switch-handle { + left: 30px; } + .switch.switch-text.switch-sm { + width: 40px; + height: 20px; } + .switch.switch-text.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-text.switch-sm .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-text.switch-sm .switch-input:checked ~ .switch-handle { + left: 22px; } + .switch.switch-text.switch-xs { + width: 32px; + height: 16px; } + .switch.switch-text.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-text.switch-xs .switch-handle { + width: 12px; + height: 12px; } + .switch.switch-text.switch-xs .switch-input:checked ~ .switch-handle { + left: 18px; } + +.switch.switch-icon { + position: relative; + display: inline-block; + vertical-align: top; + width: 48px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-icon .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-icon .switch-label { + position: relative; + display: block; + height: inherit; + font-family: FontAwesome; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #fff; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-icon .switch-label:before, + .switch.switch-icon .switch-label:after { + position: absolute; + top: 50%; + width: 50%; + margin-top: -.5em; + line-height: 1; + text-align: center; + -moz-transition: inherit; + -o-transition: inherit; + -webkit-transition: inherit; + transition: inherit; } + .switch.switch-icon .switch-label:before { + right: 1px; + color: #cfd8dc; + content: attr(data-off); } + .switch.switch-icon .switch-label:after { + left: 1px; + color: #fff; + content: attr(data-on); + opacity: 0; } + .switch.switch-icon .switch-input:checked ~ .switch-label:before { + opacity: 0; } + .switch.switch-icon .switch-input:checked ~ .switch-label:after { + opacity: 1; } + .switch.switch-icon .switch-handle { + position: absolute; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; } + .switch.switch-icon .switch-input:checked ~ .switch-handle { + left: 26px; } + .switch.switch-icon.switch-lg { + width: 56px; + height: 28px; } + .switch.switch-icon.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-icon.switch-lg .switch-handle { + width: 24px; + height: 24px; } + .switch.switch-icon.switch-lg .switch-input:checked ~ .switch-handle { + left: 30px; } + .switch.switch-icon.switch-sm { + width: 40px; + height: 20px; } + .switch.switch-icon.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-icon.switch-sm .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-icon.switch-sm .switch-input:checked ~ .switch-handle { + left: 22px; } + .switch.switch-icon.switch-xs { + width: 32px; + height: 16px; } + .switch.switch-icon.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-icon.switch-xs .switch-handle { + width: 12px; + height: 12px; } + .switch.switch-icon.switch-xs .switch-input:checked ~ .switch-handle { + left: 18px; } + +.switch.switch-3d { + position: relative; + display: inline-block; + vertical-align: top; + width: 40px; + height: 24px; + background-color: transparent; + cursor: pointer; } + .switch.switch-3d .switch-input { + position: absolute; + top: 0; + left: 0; + opacity: 0; } + .switch.switch-3d .switch-label { + position: relative; + display: block; + height: inherit; + font-size: 10px; + font-weight: 600; + text-transform: uppercase; + background-color: #eceff1; + border: 1px solid #cfd8dc; + border-radius: 2px; + -moz-transition: 0.15s ease-out; + -o-transition: 0.15s ease-out; + -webkit-transition: 0.15s ease-out; + transition: 0.15s ease-out; + -moz-transition-property: opacity background; + -o-transition-property: opacity background; + -webkit-transition-property: opacity background; + transition-property: opacity background; } + .switch.switch-3d .switch-input:checked ~ .switch-label:before { + opacity: 0; } + .switch.switch-3d .switch-input:checked ~ .switch-label:after { + opacity: 1; } + .switch.switch-3d .switch-handle { + position: absolute; + top: 0; + left: 0; + width: 24px; + height: 24px; + background: #fff; + border: 1px solid #cfd8dc; + border-radius: 1px; + -moz-transition: left 0.15s ease-out; + -o-transition: left 0.15s ease-out; + -webkit-transition: left 0.15s ease-out; + transition: left 0.15s ease-out; + border: 0; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); } + .switch.switch-3d .switch-input:checked ~ .switch-handle { + left: 16px; } + .switch.switch-3d.switch-lg { + width: 48px; + height: 28px; } + .switch.switch-3d.switch-lg .switch-label { + font-size: 12px; } + .switch.switch-3d.switch-lg .switch-handle { + width: 28px; + height: 28px; } + .switch.switch-3d.switch-lg .switch-input:checked ~ .switch-handle { + left: 20px; } + .switch.switch-3d.switch-sm { + width: 32px; + height: 20px; } + .switch.switch-3d.switch-sm .switch-label { + font-size: 8px; } + .switch.switch-3d.switch-sm .switch-handle { + width: 20px; + height: 20px; } + .switch.switch-3d.switch-sm .switch-input:checked ~ .switch-handle { + left: 12px; } + .switch.switch-3d.switch-xs { + width: 24px; + height: 16px; } + .switch.switch-3d.switch-xs .switch-label { + font-size: 7px; } + .switch.switch-3d.switch-xs .switch-handle { + width: 16px; + height: 16px; } + .switch.switch-3d.switch-xs .switch-input:checked ~ .switch-handle { + left: 8px; } + +.switch-pill .switch-label, .switch.switch-3d .switch-label, +.switch-pill .switch-handle, .switch.switch-3d .switch-handle { + border-radius: 50em !important; } + +.switch-pill .switch-label:before, .switch.switch-3d .switch-label:before { + right: 2px !important; } + +.switch-pill .switch-label:after, .switch.switch-3d .switch-label:after { + left: 2px !important; } + +.switch-primary > .switch-input:checked ~ .switch-label { + background: #20a8d8 !important; + border-color: #1985ac; } + +.switch-primary > .switch-input:checked ~ .switch-handle { + border-color: #1985ac; } + +.switch-primary-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #20a8d8; } + .switch-primary-outline > .switch-input:checked ~ .switch-label:after { + color: #20a8d8; } + +.switch-primary-outline > .switch-input:checked ~ .switch-handle { + border-color: #20a8d8; } + +.switch-primary-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #20a8d8; } + .switch-primary-outline-alt > .switch-input:checked ~ .switch-label:after { + color: #20a8d8; } + +.switch-primary-outline-alt > .switch-input:checked ~ .switch-handle { + background: #20a8d8 !important; + border-color: #20a8d8; } + +.switch-secondary > .switch-input:checked ~ .switch-label { + background: #cfd8dc !important; + border-color: #b2c0c6; } + +.switch-secondary > .switch-input:checked ~ .switch-handle { + border-color: #b2c0c6; } + +.switch-secondary-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #cfd8dc; } + .switch-secondary-outline > .switch-input:checked ~ .switch-label:after { + color: #cfd8dc; } + +.switch-secondary-outline > .switch-input:checked ~ .switch-handle { + border-color: #cfd8dc; } + +.switch-secondary-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #cfd8dc; } + .switch-secondary-outline-alt > .switch-input:checked ~ .switch-label:after { + color: #cfd8dc; } + +.switch-secondary-outline-alt > .switch-input:checked ~ .switch-handle { + background: #cfd8dc !important; + border-color: #cfd8dc; } + +.switch-success > .switch-input:checked ~ .switch-label { + background: #4dbd74 !important; + border-color: #3a9d5d; } + +.switch-success > .switch-input:checked ~ .switch-handle { + border-color: #3a9d5d; } + +.switch-success-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #4dbd74; } + .switch-success-outline > .switch-input:checked ~ .switch-label:after { + color: #4dbd74; } + +.switch-success-outline > .switch-input:checked ~ .switch-handle { + border-color: #4dbd74; } + +.switch-success-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #4dbd74; } + .switch-success-outline-alt > .switch-input:checked ~ .switch-label:after { + color: #4dbd74; } + +.switch-success-outline-alt > .switch-input:checked ~ .switch-handle { + background: #4dbd74 !important; + border-color: #4dbd74; } + +.switch-info > .switch-input:checked ~ .switch-label { + background: #63c2de !important; + border-color: #39b2d5; } + +.switch-info > .switch-input:checked ~ .switch-handle { + border-color: #39b2d5; } + +.switch-info-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #63c2de; } + .switch-info-outline > .switch-input:checked ~ .switch-label:after { + color: #63c2de; } + +.switch-info-outline > .switch-input:checked ~ .switch-handle { + border-color: #63c2de; } + +.switch-info-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #63c2de; } + .switch-info-outline-alt > .switch-input:checked ~ .switch-label:after { + color: #63c2de; } + +.switch-info-outline-alt > .switch-input:checked ~ .switch-handle { + background: #63c2de !important; + border-color: #63c2de; } + +.switch-warning > .switch-input:checked ~ .switch-label { + background: #f8cb00 !important; + border-color: #c5a100; } + +.switch-warning > .switch-input:checked ~ .switch-handle { + border-color: #c5a100; } + +.switch-warning-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f8cb00; } + .switch-warning-outline > .switch-input:checked ~ .switch-label:after { + color: #f8cb00; } + +.switch-warning-outline > .switch-input:checked ~ .switch-handle { + border-color: #f8cb00; } + +.switch-warning-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f8cb00; } + .switch-warning-outline-alt > .switch-input:checked ~ .switch-label:after { + color: #f8cb00; } + +.switch-warning-outline-alt > .switch-input:checked ~ .switch-handle { + background: #f8cb00 !important; + border-color: #f8cb00; } + +.switch-danger > .switch-input:checked ~ .switch-label { + background: #f86c6b !important; + border-color: #f63c3a; } + +.switch-danger > .switch-input:checked ~ .switch-handle { + border-color: #f63c3a; } + +.switch-danger-outline > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f86c6b; } + .switch-danger-outline > .switch-input:checked ~ .switch-label:after { + color: #f86c6b; } + +.switch-danger-outline > .switch-input:checked ~ .switch-handle { + border-color: #f86c6b; } + +.switch-danger-outline-alt > .switch-input:checked ~ .switch-label { + background: #fff !important; + border-color: #f86c6b; } + .switch-danger-outline-alt > .switch-input:checked ~ .switch-label:after { + color: #f86c6b; } + +.switch-danger-outline-alt > .switch-input:checked ~ .switch-handle { + background: #f86c6b !important; + border-color: #f86c6b; } + +canvas.chart { + display: inline-block !important; } + +base-chart.chart { + display: block !important; } + +.b-a-0 { + border: 0 !important; } + +.b-t-0 { + border-top: 0 !important; } + +.b-r-0 { + border-right: 0 !important; } + +.b-b-0 { + border-bottom: 0 !important; } + +.b-l-0 { + border-left: 0 !important; } + +.b-a-1 { + border: 1px solid #cfd8dc !important; } + +.b-t-1 { + border-top: 1px solid #cfd8dc !important; } + +.b-r-1 { + border-right: 1px solid #cfd8dc !important; } + +.b-b-1 { + border-bottom: 1px solid #cfd8dc !important; } + +.b-l-1 { + border-left: 1px solid #cfd8dc !important; } + +.b-a-2 { + border: 2px solid #cfd8dc !important; } + +.b-t-2 { + border-top: 2px solid #cfd8dc !important; } + +.b-r-2 { + border-right: 2px solid #cfd8dc !important; } + +.b-b-2 { + border-bottom: 2px solid #cfd8dc !important; } + +.b-l-2 { + border-left: 2px solid #cfd8dc !important; } + +.label-pill { + border-radius: 1rem !important; } + +@media (max-width: 991px) { + body { + padding: 0 !important; + margin: 0 !important; } + header.navbar { + position: fixed !important; + top: 0 !important; + right: 0 !important; + left: 0 !important; } + header.navbar .navbar-toggler { + position: absolute; + top: 0; + left: 0; + width: 70px; + height: inherit; } + header.navbar .navbar-brand { + width: 100% !important; + margin: 0 auto !important; } + .sidebar { + width: 200px; + margin-left: -200px; } + .sidebar .sidebar-footer { + margin-left: -200px; } + .breadcrumb-menu { + display: none; } + .main { + width: 100% !important; + padding: 0 !important; + padding-top: 55px !important; + margin: 0 !important; + overflow: hidden; } + .footer { + display: none; } + html { + max-width: 100%; + overflow-x: hidden; } + body.mobile-open { + max-width: 100%; + overflow-x: hidden; } + body.mobile-open .sidebar { + margin-left: 0; } + body.mobile-open .sidebar .sidebar-footer { + margin-left: 0; } + body.mobile-open .main { + margin-left: 200px !important; } } diff --git a/admin/src/environments/environment.prod.ts b/admin/src/environments/environment.prod.ts new file mode 100644 index 00000000..3612073b --- /dev/null +++ b/admin/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/admin/src/environments/environment.ts b/admin/src/environments/environment.ts new file mode 100644 index 00000000..00313f16 --- /dev/null +++ b/admin/src/environments/environment.ts @@ -0,0 +1,8 @@ +// The file contents for the current environment will overwrite these during build. +// The build system defaults to the dev environment which uses `environment.ts`, but if you do +// `ng build --env=prod` then `environment.prod.ts` will be used instead. +// The list of which env maps to which file can be found in `angular-cli.json`. + +export const environment = { + production: false +}; diff --git a/admin/src/favicon.ico b/admin/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8081c7ceaf2be08bf59010158c586170d9d2d517 GIT binary patch literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- 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 literal 0 HcmV?d00001 diff --git a/admin/src/index.html b/admin/src/index.html new file mode 100644 index 00000000..ca7826e5 --- /dev/null +++ b/admin/src/index.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + Colmena CMS - Open Source API and Admin + + + + + + + + + + diff --git a/admin/src/main.ts b/admin/src/main.ts new file mode 100644 index 00000000..5c3c5204 --- /dev/null +++ b/admin/src/main.ts @@ -0,0 +1,12 @@ +import './polyfills.ts'; + +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { enableProdMode } from '@angular/core'; +import { environment } from './environments/environment'; +import { AppModule } from './app/'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/admin/src/polyfills.ts b/admin/src/polyfills.ts new file mode 100644 index 00000000..3b4c55b0 --- /dev/null +++ b/admin/src/polyfills.ts @@ -0,0 +1,19 @@ +// This file includes polyfills needed by Angular 2 and is loaded before +// the app. You can add your own extra polyfills to this file. +import 'core-js/es6/symbol'; +import 'core-js/es6/object'; +import 'core-js/es6/function'; +import 'core-js/es6/parse-int'; +import 'core-js/es6/parse-float'; +import 'core-js/es6/number'; +import 'core-js/es6/math'; +import 'core-js/es6/string'; +import 'core-js/es6/date'; +import 'core-js/es6/array'; +import 'core-js/es6/regexp'; +import 'core-js/es6/map'; +import 'core-js/es6/set'; +import 'core-js/es6/reflect'; + +import 'core-js/es7/reflect'; +import 'zone.js/dist/zone'; diff --git a/admin/src/scss/bootstrap_custom/_breadcrumb.scss b/admin/src/scss/bootstrap_custom/_breadcrumb.scss new file mode 100644 index 00000000..2185ebdb --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_breadcrumb.scss @@ -0,0 +1,6 @@ +.breadcrumb { + position: relative; + margin-bottom: 1.5 * $spacer-y; + + @include borders($breadcrumb-borders); +} diff --git a/admin/src/scss/bootstrap_custom/_buttons.scss b/admin/src/scss/bootstrap_custom/_buttons.scss new file mode 100644 index 00000000..a225bb41 --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_buttons.scss @@ -0,0 +1,9 @@ +.btn { + + .tag { + position: absolute; + top: 2px; + right: 6px; + font-size: 9px; + } +} diff --git a/admin/src/scss/bootstrap_custom/_card.scss b/admin/src/scss/bootstrap_custom/_card.scss new file mode 100644 index 00000000..55cef25e --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_card.scss @@ -0,0 +1,259 @@ +.card { + margin-bottom: 1.5 * $spacer-y; +} + +.card-header { + + i.icon-bg { + display: inline-block; + padding: $card-spacer-y $card-spacer-x !important; + margin-top: -$card-spacer-y; + margin-right: $card-spacer-x; + margin-bottom: -$card-spacer-y; + margin-left: -$card-spacer-x; + line-height: inherit; + color: $card-icon-color; + vertical-align: bottom; + background: $card-icon-bg; + border-right: $card-border-width solid $card-border-color; + } + + ul.nav.nav-tabs { + margin-top: -$card-spacer-y; + margin-bottom: -$card-spacer-y; + border-bottom: 0; + + li.nav-item { + border-top: 0; + a.nav-link { + padding: $card-spacer-y $card-spacer-x / 2; + color: $text-muted; + border-top: 0; + + &.active { + color: $body-color; + background: #fff; + } + } + } + } + + &.card-header-inverse { + color: #fff; + } + + @each $variant, $color in (primary: $brand-primary, secondary: $gray-lighter, success: $brand-success, info: $brand-info, warning: $brand-warning, danger: $brand-danger) { + &.card-header-#{$variant} { + margin: -1px -1px 0; + background: $color; + border-bottom: 1px solid $color; + } + } + + .btn { + margin-top: - $btn-padding-y; + } + .btn-sm { + margin-top: - $btn-padding-y-sm; + } + .btn-lg { + margin-top: - $btn-padding-y-lg; + } +} +// +.card-footer { + + ul { + display: table; + width: 100%; + padding: 0; + margin: 0; + table-layout: fixed; + + li { + display: table-cell; + padding: 0 $card-spacer-x; + text-align: center; + + progress { + margin-top: $card-spacer-y; + margin-bottom: 0; + } + } + } +} + + +// +// Background variations +// + +@mixin card-variant($color) { + background-color: $color; + + .card-header { + border-color: darken($color,5%); + } + + .card-header, .card-footer { + background-color: darken($color,5%); + //border: 0; + } +} + +@each $variant, $color in (primary: $brand-primary, secondary: $gray-lighter, success: $brand-success, info: $brand-info, warning: $brand-warning, danger: $brand-danger) { + .card-#{$variant} { + @include card-variant($color) + } +} + +.card-inverse { + color: #fff; + + .text-muted { + color: rgba(255,255,255,.6) !important; + } + + .progress[value] { + background-color: rgba(255,255,255,.2) !important; + } + + // Unfilled portion of the bar + .progress[value]::-webkit-progress-bar { + background-color: rgba(255,255,255,.2) !important; + } + base::-moz-progress-bar, // Absurd-but-syntactically-valid selector to make these styles Firefox-only + .progress[value] { + background-color: rgba(255,255,255,.2) !important; + } + + .progress { + @include progress-variant(#fff !important); + } +} + +[class*="card-outline-"] { + .card-block { + background: #fff !important; + } + + &.card-outline-top { + border-top-width: 2px; + border-right-color: $border-color; + border-bottom-color: $border-color; + border-left-color: $border-color; + } +} + +// Cards with color accent +.card-accent-primary { + @include card-accent-variant($btn-primary-bg); +} +.card-accent-secondary { + @include card-accent-variant($btn-secondary-border); +} +.card-accent-info { + @include card-accent-variant($btn-info-bg); +} +.card-accent-success { + @include card-accent-variant($btn-success-bg); +} +.card-accent-warning { + @include card-accent-variant($btn-warning-bg); +} +.card-accent-danger { + @include card-accent-variant($btn-danger-bg); +} + +// Card Actions +.card-header { + > i { + margin-right: $spacer-x / 2; + } + .card-actions { + position: absolute; + top: 0; + right: 0; + //height: inherit; + + a, button { + display: block; + float: left; + width: 50px; + padding: $card-spacer-y 0; + margin: 0 !important; + color: $body-color; + text-align: center; + background: transparent; + border: 0; + border-left: 1px solid $border-color; + box-shadow: 0; + + &:hover { + text-decoration: none; + } + + [class^="icon-"], [class*=" icon-"] { + display: inline-block; + vertical-align: middle; + } + + i { + display: inline-block; + transition: .4s; + } + + i.r180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + } + } + + .input-group { + width: 230px; + margin: 6px; + + .input-group-addon { + background: #fff; + } + + input { + border-left: 0; + } + } + } +} + +.card-full { + margin-top: - $spacer-y; + margin-right: - $grid-gutter-width-base / 2; + margin-left: - $grid-gutter-width-base / 2; + border: 0; + border-bottom: $card-border-width solid $border-color; +} + +@include media-breakpoint-up(sm) { + .card-columns { + -moz-column-count: 3; + //-moz-column-count: 1.25rem; + -webkit-column-count: 3; + column-gap: 1.25rem; + //-webkit-column-count: 1.25rem; + column-count: 3; + + .card { + display: inline-block; + width: 100%; // Don't let them exceed the column width + } + + &.col-2 { + -moz-column-count: 2; + -webkit-column-count: 2; + column-count: 2; + } + } +} + +.card-group { + margin-bottom: 1.5 * $spacer-y; +} diff --git a/admin/src/scss/bootstrap_custom/_dropdown.scss b/admin/src/scss/bootstrap_custom/_dropdown.scss new file mode 100644 index 00000000..68a0c9e1 --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_dropdown.scss @@ -0,0 +1,45 @@ +// Links, buttons, and more within the dropdown menu +.dropdown-item { + position: relative; + padding: 10px 20px; + border-bottom: 1px solid $dropdown-border-color; + + &:last-child { + border-bottom: 0; + } + + i { + display: inline-block; + width: 20px; + margin-right: 10px; + margin-left: -10px; + color: $dropdown-border-color; + text-align: center; + } + + .tag { + position: absolute; + right: 10px; + margin-top: 2px; + } +} + +// Dropdown section headers +.dropdown-header { + padding: 8px 20px; + background: $dropdown-divider-bg; + border-bottom: 1px solid $dropdown-border-color; + + .btn { + margin-top: -7px; + color: $dropdown-header-color; + + &:hover { + color: $body-color; + } + + &.pull-right { + margin-right: -20px; + } + } +} diff --git a/admin/src/scss/bootstrap_custom/_input-group.scss b/admin/src/scss/bootstrap_custom/_input-group.scss new file mode 100644 index 00000000..536efe0c --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_input-group.scss @@ -0,0 +1,7 @@ + +.input-group-addon, +.input-group-btn { + min-width: 40px; + white-space: nowrap; + vertical-align: middle; // Match the inputs +} diff --git a/admin/src/scss/bootstrap_custom/_navbar.scss b/admin/src/scss/bootstrap_custom/_navbar.scss new file mode 100644 index 00000000..2fde9f87 --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_navbar.scss @@ -0,0 +1,117 @@ +header.navbar { + position: relative; + height: $navbar-height; + padding: 0; + line-height: $navbar-height; + background-color: $navbar-bg; + @include borders($navbar-border); + + .container-fluid { + padding: 0; + } + + .nav-item { + position: relative; + min-width: 50px; + margin: 0 !important; + text-align: center; + + .nav-link { + i { + vertical-align: middle; + } + + .tag { + position: absolute; + top: 9px; + right: 7px; + } + } + } + + .img-avatar { + height: $navbar-height - 20px; + margin: 0 10px; + } + + .dropdown-menu { + padding-bottom: 0; + line-height: $line-height-base; + } + + .dropdown-item { + min-width: 180px; + } + + a.navbar-brand { + display: inline-block; + width: $navbar-brand-width; + height: $navbar-height; + padding: $navbar-brand-padding; + padding-left: $navbar-brand-padding-left; + font-size: $navbar-brand-font-size; + //background-color: $navbar-brand-bg; + //background-image: $navbar-brand-logo; + //background-repeat: no-repeat; + //background-position: center center; + //background-size: $navbar-brand-logo-size; + @include borders($navbar-brand-border); + } +} + +header.navbar { + .navbar-brand { + margin-right: 0; + } +} + +.navbar-toggler, { + padding: 0 .75em; + line-height: $navbar-height - 4px; +} + +.aside-toggle, { + @extend .navbar-toggler; + padding: 0 .75em; + line-height: $navbar-height - 4px; +} + +header.navbar { + .navbar-nav { + .nav-link { + padding-top: 0; + padding-bottom: 0; + } + } +} + +.navbar-brand { + color: $navbar-active-color; + + @include hover-focus { + color: $navbar-active-color; + } +} + +.navbar-nav { + .nav-link { + color: $navbar-color; + + @include hover-focus { + color: $navbar-hover-color; + } + } + + .open > .nav-link, + .active > .nav-link, + .nav-link.open, + .nav-link.active { + @include plain-hover-focus { + color: $navbar-active-color; + } + } +} + +.navbar-divider { + background-color: rgba(0, 0, 0, .075); +} diff --git a/admin/src/scss/bootstrap_custom/_progress.scss b/admin/src/scss/bootstrap_custom/_progress.scss new file mode 100644 index 00000000..9c10c232 --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_progress.scss @@ -0,0 +1,8 @@ +.progress { + &.progress-sm { + height: 8px; + } + &.progress-xs { + height: 4px; + } +} diff --git a/admin/src/scss/bootstrap_custom/_tables.scss b/admin/src/scss/bootstrap_custom/_tables.scss new file mode 100644 index 00000000..5bc26490 --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_tables.scss @@ -0,0 +1,20 @@ +.table-outline { + border: 1px solid $table-border-color; + + td { + vertical-align: middle; + } +} + +.table-align-middle { + + td { + vertical-align: middle; + } +} + +.table-clear { + td { + border: 0; + } +} diff --git a/admin/src/scss/bootstrap_custom/_tags.scss b/admin/src/scss/bootstrap_custom/_tags.scss new file mode 100644 index 00000000..1aafa21d --- /dev/null +++ b/admin/src/scss/bootstrap_custom/_tags.scss @@ -0,0 +1,3 @@ +.tag-pill { + border-radius: $tag-pill-border-radius; +} diff --git a/admin/src/scss/bootstrap_src/_alert.scss b/admin/src/scss/bootstrap_src/_alert.scss new file mode 100755 index 00000000..260ce203 --- /dev/null +++ b/admin/src/scss/bootstrap_src/_alert.scss @@ -0,0 +1,56 @@ +// +// Base styles +// + +.alert { + padding: $alert-padding-y $alert-padding-x; + margin-bottom: $spacer-y; + border: $alert-border-width solid transparent; + @include border-radius($alert-border-radius); +} + +// Headings for larger alerts +.alert-heading { + // Specified to prevent conflicts of changing $headings-color + color: inherit; +} + +// Provide class for links that match alerts +.alert-link { + font-weight: $alert-link-font-weight; +} + + +// Dismissible alerts +// +// Expand the right padding and account for the close button's positioning. + +.alert-dismissible { + padding-right: ($alert-padding-x * 2); + + // Adjust close link position + .close { + position: relative; + top: -.125rem; + right: -$alert-padding-x; + color: inherit; + } +} + + +// Alternate styles +// +// Generate contextual modifier classes for colorizing the alert. + +.alert-success { + @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text); +} +.alert-info { + @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text); +} +.alert-warning { + @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text); +} +.alert-danger { + @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text); +} diff --git a/admin/src/scss/bootstrap_src/_animation.scss b/admin/src/scss/bootstrap_src/_animation.scss new file mode 100755 index 00000000..f0dfff81 --- /dev/null +++ b/admin/src/scss/bootstrap_src/_animation.scss @@ -0,0 +1,36 @@ +.fade { + opacity: 0; + transition: opacity .15s linear; + + &.in { + opacity: 1; + } +} + +.collapse { + display: none; + &.in { + display: block; + } +} + +tr { + &.collapse.in { + display: table-row; + } +} + +tbody { + &.collapse.in { + display: table-row-group; + } +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition-timing-function: ease; + transition-duration: .35s; + transition-property: height; +} diff --git a/admin/src/scss/bootstrap_src/_breadcrumb.scss b/admin/src/scss/bootstrap_src/_breadcrumb.scss new file mode 100755 index 00000000..1a09bba2 --- /dev/null +++ b/admin/src/scss/bootstrap_src/_breadcrumb.scss @@ -0,0 +1,38 @@ +.breadcrumb { + padding: $breadcrumb-padding-y $breadcrumb-padding-x; + margin-bottom: $spacer-y; + list-style: none; + background-color: $breadcrumb-bg; + @include border-radius($border-radius); + @include clearfix; +} + +.breadcrumb-item { + float: left; + + // The separator between breadcrumbs (by default, a forward-slash: "/") + + .breadcrumb-item::before { + display: inline-block; // Suppress underlining of the separator in modern browsers + padding-right: $breadcrumb-item-padding; + padding-left: $breadcrumb-item-padding; + color: $breadcrumb-divider-color; + content: "#{$breadcrumb-divider}"; + } + + // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built + // without `

-