├── .github └── workflows │ └── main.yml ├── .gitignore ├── CHANGELOG.md ├── ISSUE_TEMPLATE.md ├── LICENSE.md ├── README.md ├── angular.json ├── documentation ├── css │ ├── bootstrap.min.css │ ├── documentation.css │ └── light-bootstrap-dashboard.css └── tutorial-lbd-angular2.html ├── e2e ├── app.e2e-spec.ts ├── app.po.ts └── tsconfig.json ├── karma.conf.js ├── package.json ├── protractor.conf.js ├── src ├── app │ ├── app.component.css │ ├── app.component.html │ ├── app.component.spec.ts │ ├── app.component.ts │ ├── app.module.ts │ ├── app.routing.ts │ ├── home │ │ ├── home.component.css │ │ ├── home.component.html │ │ ├── home.component.spec.ts │ │ └── home.component.ts │ ├── icons │ │ ├── icons.component.css │ │ ├── icons.component.html │ │ ├── icons.component.spec.ts │ │ └── icons.component.ts │ ├── layouts │ │ └── admin-layout │ │ │ ├── admin-layout.component.html │ │ │ ├── admin-layout.component.scss │ │ │ ├── admin-layout.component.spec.ts │ │ │ ├── admin-layout.component.ts │ │ │ ├── admin-layout.module.ts │ │ │ └── admin-layout.routing.ts │ ├── lbd │ │ ├── lbd-chart │ │ │ ├── lbd-chart.component.html │ │ │ └── lbd-chart.component.ts │ │ └── lbd.module.ts │ ├── maps │ │ ├── maps.component.css │ │ ├── maps.component.html │ │ ├── maps.component.spec.ts │ │ └── maps.component.ts │ ├── notifications │ │ ├── notifications.component.css │ │ ├── notifications.component.html │ │ ├── notifications.component.spec.ts │ │ └── notifications.component.ts │ ├── shared │ │ ├── footer │ │ │ ├── footer.component.html │ │ │ ├── footer.component.ts │ │ │ └── footer.module.ts │ │ └── navbar │ │ │ ├── navbar.component.html │ │ │ ├── navbar.component.ts │ │ │ └── navbar.module.ts │ ├── sidebar │ │ ├── sidebar.component.html │ │ ├── sidebar.component.ts │ │ └── sidebar.module.ts │ ├── tables │ │ ├── tables.component.css │ │ ├── tables.component.html │ │ ├── tables.component.spec.ts │ │ └── tables.component.ts │ ├── typography │ │ ├── typography.component.css │ │ ├── typography.component.html │ │ ├── typography.component.spec.ts │ │ └── typography.component.ts │ ├── upgrade │ │ ├── upgrade.component.css │ │ ├── upgrade.component.html │ │ ├── upgrade.component.spec.ts │ │ └── upgrade.component.ts │ └── user │ │ ├── user.component.css │ │ ├── user.component.html │ │ ├── user.component.spec.ts │ │ └── user.component.ts ├── assets │ ├── .gitkeep │ ├── css │ │ ├── demo.css │ │ └── pe-icon-7-stroke.css │ ├── fonts │ │ ├── Pe-icon-7-stroke.eot │ │ ├── Pe-icon-7-stroke.svg │ │ ├── Pe-icon-7-stroke.ttf │ │ └── Pe-icon-7-stroke.woff │ ├── img │ │ ├── angular-red.png │ │ ├── angular2-logo-white.png │ │ ├── angular2-logo.png │ │ ├── default-avatar.png │ │ ├── faces │ │ │ ├── face-0.jpg │ │ │ ├── face-1.jpg │ │ │ ├── face-2.jpg │ │ │ ├── face-3.jpg │ │ │ ├── face-4.jpg │ │ │ ├── face-5.jpg │ │ │ ├── face-6.jpg │ │ │ ├── face-7.jpg │ │ │ └── tim_vector.jpe │ │ ├── favicon.ico │ │ ├── full-screen-image-3.jpg │ │ ├── loader-preview.svg │ │ ├── loading-bubbles.svg │ │ ├── mask.png │ │ ├── new_logo.png │ │ ├── opt_lbd_angular_thumbnail.jpg │ │ ├── sidebar-1.jpg │ │ ├── sidebar-2.jpg │ │ ├── sidebar-3.jpg │ │ ├── sidebar-4.jpg │ │ ├── sidebar-5.jpg │ │ └── tim_80x80.png │ └── sass │ │ ├── lbd │ │ ├── _alerts.scss │ │ ├── _buttons.scss │ │ ├── _cards.scss │ │ ├── _chartist.scss │ │ ├── _checkbox-radio-switch.scss │ │ ├── _dropdown.scss │ │ ├── _footers.scss │ │ ├── _inputs.scss │ │ ├── _misc.scss │ │ ├── _mixins.scss │ │ ├── _navbars.scss │ │ ├── _responsive.scss │ │ ├── _sidebar-and-main-panel.scss │ │ ├── _tables.scss │ │ ├── _typography.scss │ │ ├── _variables.scss │ │ └── mixins │ │ │ ├── _buttons.scss │ │ │ ├── _cards.scss │ │ │ ├── _chartist.scss │ │ │ ├── _icons.scss │ │ │ ├── _inputs.scss │ │ │ ├── _labels.scss │ │ │ ├── _morphing-buttons.scss │ │ │ ├── _navbars.scss │ │ │ ├── _social-buttons.scss │ │ │ ├── _tabs.scss │ │ │ ├── _transparency.scss │ │ │ └── _vendor-prefixes.scss │ │ └── light-bootstrap-dashboard.scss ├── environments │ ├── environment.prod.ts │ └── environment.ts ├── favicon.ico ├── index.html ├── main.ts ├── polyfills.ts ├── styles.css ├── test.ts └── tsconfig.json ├── tslint.json └── typings.json /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Autocloser 2 | on: [issues] 3 | jobs: 4 | autoclose: 5 | runs-on: ubuntu-latest 6 | steps: 7 | - name: Issue auto-closer 8 | uses: roots/issue-closer-action@v1.1 9 | with: 10 | repo-token: ${{ secrets.GITHUB_TOKEN }} 11 | issue-close-message: "@${issue.user.login} this issue was automatically closed because it did not follow the bellow rules:\n\n
\n\n\n\nIMPORTANT: Please use the following link to create a new issue:\n\nhttps://www.creative-tim.com/new-issue/light-bootstrap-dashboard-angular2\n\n**If your issue was not created using the app above, it will be closed immediately.**\n\n\n\nLove Creative Tim? Do you need Angular, React, Vuejs or HTML? You can visit:\n👉  https://www.creative-tim.com/bundles\n👉  https://www.creative-tim.com\n\n\n
\n\n" 12 | issue-pattern: (\#\#\# Version([\S\s.*]*?)\#\#\# Reproduction link([\S\s.*]*?)\#\#\# Operating System([\S\s.*]*?)\#\#\# Device([\S\s.*]*?)\#\#\# Browser & Version([\S\s.*]*?)\#\#\# Steps to reproduce([\S\s.*]*?)\#\#\# What is expected([\S\s.*]*?)\#\#\# What is actually happening([\S\s.*]*?)---([\S\s.*]*?)\#\#\# Solution([\S\s.*]*?)\#\#\# Additional comments([\S\s.*]*?)\<\!-- generated by creative-tim-issues\. DO NOT REMOVE --\>)|(\#\#\# What is your enhancement([\S\s.*]*?)\<\!-- generated by creative-tim-issues\. DO NOT REMOVE --\>) 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | 7 | # dependencies 8 | /node_modules 9 | ./node_modules 10 | node_modules 11 | 12 | # IDEs and editors 13 | /.idea 14 | .project 15 | .classpath 16 | .c9/ 17 | *.launch 18 | .settings/ 19 | 20 | # IDE - VSCode 21 | .vscode/* 22 | !.vscode/settings.json 23 | !.vscode/tasks.json 24 | !.vscode/launch.json 25 | !.vscode/extensions.json 26 | 27 | # misc 28 | /.sass-cache 29 | /connect.lock 30 | /coverage/* 31 | /libpeerconnection.log 32 | npm-debug.log 33 | testem.log 34 | /typings 35 | 36 | # e2e 37 | /e2e/*.js 38 | /e2e/*.map 39 | 40 | #System Files 41 | .DS_Store 42 | Thumbs.db 43 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [1.7.0] - 2020-12-15 2 | ### Updates 3 | - update to Angular 11 4 | - update all dependencies to match Angular 11 version 5 | 6 | ## [1.6.0] - 2020-03-12 7 | ### Updates 8 | - update to Angular 9 9 | - update all dependencies to match Angular 9 version 10 | 11 | ## [1.5.0] - 2018-10-04 12 | ### Changes 13 | - update to Angular 6 14 | - added online documentation 15 | 16 | ## [1.4.0] - 2017-08-28 17 | ### Changes for Angular 4 18 | - added angular-cli 19 | - update to Angular 4 20 | 21 | ## [v1.3.0] 2017-08-28 22 | ### skipped for sync with Angular 4 version convention 23 | 24 | ## [v1.2.0] 2017-08-28 25 | ### skipped for sync with Angular 4 version convention 26 | 27 | ## [1.1.1] - 2017-03-21 28 | ### Added 29 | - added "@types/core-js": "0.9.35" in package 30 | 31 | ## [1.1.0] - 2017-03-01 32 | ### Added 33 | - fix version numbers in package.json and CSS and JS 34 | 35 | ## [1.0.2] - 2017-02-27 36 | ### Added 37 | - added upgrade to pro page 38 | - fixed navbar title 39 | - changed http://www.creative-tim.com/ with https://www.creative-tim.com/ 40 | 41 | ## [1.0.1] - 2017-02-13 42 | ### small fix 43 | - changes in routes(redirect '' to 'dashboard' + added HashLocationStrategy) 44 | - changes in documentation 45 | - changes in sidebar(cleaned li tags + changed z-index) 46 | - changes in footer(added current date) 47 | 48 | ## [1.0.0] - 2016-12-14 49 | ### initial Release 50 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Ashutosh Mohanty 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [Light Bootstrap Dashboard Angular](https://demos.creative-tim.com/light-bootstrap-dashboard-angular2/dashboard) 2 | [![version][version-badge]][CHANGELOG] ![license][license-badge] 3 | 4 | ![alt text](src/assets/img/opt_lbd_angular_thumbnail.jpg) 5 | 6 | **[Light Bootstrap Dashboard Angular](https://demos.creative-tim.com/light-bootstrap-dashboard-angular2/dashboard)** is an admin dashboard template designed to be beautiful and simple. It is built on top of Bootstrap 3, using [Light Bootstrap Dashboard](https://www.creative-tim.com/product/light-bootstrap-dashboard) and it is fully responsive. It comes with a big collections of elements that will offer you multiple possibilities to create the app that best fits your needs. It can be used to create admin panels, project management systems, web applications backend, CMS or CRM. 7 | 8 | The product represents a big suite of front-end developer tools that can help you jump start your project. We have created it thinking about things you actually need in a dashboard. Light Bootstrap Dashboard Angular 2 contains multiple handpicked and optimized plugins. Everything is designed to fit with one another. As you will be able to see, the dashboard you can access on Creative Tim is a customization of this product. 9 | 10 | It comes with 6 filter colors for the sidebar (“black”, “azure”,”green”,”orange”,”red”,”purple”) and an option to have a background image. 11 | 12 | Special thanks go to: Robert McIntosh for the notification system Chartist for the wonderful charts We are very excited to share this dashboard with you and we look forward to hearing your feedback! 13 | 14 | 15 | ## Quick Start: 16 | 17 | Quick start options: 18 | 19 | + [Download from Github](https://github.com/creativetimofficial/light-bootstrap-dashboard-angular2/archive/master.zip). 20 | + [Download from Creative Tim](https://www.creative-tim.com/product/light-bootstrap-dashboard-angular2). 21 | + Clone the repo: `git clone https://github.com/creativetimofficial/light-bootstrap-dashboard-angular2.git`. 22 | 23 | ## Terminal Commands 24 | 25 | 1. Install NodeJs from [NodeJs Official Page](https://nodejs.org/en). 26 | 2. Open Terminal 27 | 3. Go to your file project 28 | 4. Run in terminal: ```npm install -g @angular/cli``` 29 | 5. Then: ```npm install``` 30 | 6. And: ```ng serve``` 31 | 7. Navigate to `http://localhost:4200/` 32 | 33 | ### What's included 34 | 35 | Within the download you'll find the following directories and files: 36 | ``` 37 | light-bootstrap-dashboard-angular 38 | ├── CHANGELOG.md 39 | ├── LICENSE.md 40 | ├── README.md 41 | ├── angular.json 42 | ├── documentation 43 | │   ├── css 44 | │   └── tutorial-lbd-angular2.html 45 | ├── e2e 46 | ├── karma.conf.js 47 | ├── package-lock.json 48 | ├── package.json 49 | ├── protractor.conf.js 50 | ├── src 51 | │   ├── app 52 | │   │   ├── app.component.css 53 | │   │   ├── app.component.html 54 | │   │   ├── app.component.spec.ts 55 | │   │   ├── app.component.ts 56 | │   │   ├── app.module.ts 57 | │   │   ├── app.routing.ts 58 | │   │   ├── home 59 | │   │   │   ├── home.component.css 60 | │   │   │   ├── home.component.html 61 | │   │   │   ├── home.component.spec.ts 62 | │   │   │   └── home.component.ts 63 | │   │   ├── icons 64 | │   │   │   ├── icons.component.css 65 | │   │   │   ├── icons.component.html 66 | │   │   │   ├── icons.component.spec.ts 67 | │   │   │   └── icons.component.ts 68 | │   │   ├── layouts 69 | │   │   │   └── admin-layout 70 | │   │   │   ├── admin-layout.component.html 71 | │   │   │   ├── admin-layout.component.scss 72 | │   │   │   ├── admin-layout.component.spec.ts 73 | │   │   │   ├── admin-layout.component.ts 74 | │   │   │   ├── admin-layout.module.ts 75 | │   │   │   └── admin-layout.routing.ts 76 | │   │   ├── lbd 77 | │   │   │   ├── lbd-chart 78 | │   │   │   │   ├── lbd-chart.component.html 79 | │   │   │   │   └── lbd-chart.component.ts 80 | │   │   │   └── lbd.module.ts 81 | │   │   ├── maps 82 | │   │   │   ├── maps.component.css 83 | │   │   │   ├── maps.component.html 84 | │   │   │   ├── maps.component.spec.ts 85 | │   │   │   └── maps.component.ts 86 | │   │   ├── notifications 87 | │   │   │   ├── notifications.component.css 88 | │   │   │   ├── notifications.component.html 89 | │   │   │   ├── notifications.component.spec.ts 90 | │   │   │   └── notifications.component.ts 91 | │   │   ├── shared 92 | │   │   │   ├── footer 93 | │   │   │   │   ├── footer.component.html 94 | │   │   │   │   ├── footer.component.ts 95 | │   │   │   │   └── footer.module.ts 96 | │   │   │   └── navbar 97 | │   │   │   ├── navbar.component.html 98 | │   │   │   ├── navbar.component.ts 99 | │   │   │   └── navbar.module.ts 100 | │   │   ├── sidebar 101 | │   │   │   ├── sidebar.component.html 102 | │   │   │   ├── sidebar.component.ts 103 | │   │   │   └── sidebar.module.ts 104 | │   │   ├── tables 105 | │   │   │   ├── tables.component.css 106 | │   │   │   ├── tables.component.html 107 | │   │   │   ├── tables.component.spec.ts 108 | │   │   │   └── tables.component.ts 109 | │   │   ├── typography 110 | │   │   │   ├── typography.component.css 111 | │   │   │   ├── typography.component.html 112 | │   │   │   ├── typography.component.spec.ts 113 | │   │   │   └── typography.component.ts 114 | │   │   ├── upgrade 115 | │   │   │   ├── upgrade.component.css 116 | │   │   │   ├── upgrade.component.html 117 | │   │   │   ├── upgrade.component.spec.ts 118 | │   │   │   └── upgrade.component.ts 119 | │   │   └── user 120 | │   │   ├── user.component.css 121 | │   │   ├── user.component.html 122 | │   │   ├── user.component.spec.ts 123 | │   │   └── user.component.ts 124 | │   ├── assets 125 | │   │   ├── css 126 | │   │   ├── fonts 127 | │   │   ├── img 128 | │   │   └── sass 129 | │   │   ├── lbd 130 | │   │   └── light-bootstrap-dashboard.scss 131 | │   ├── environments 132 | │   ├── favicon.ico 133 | │   ├── index.html 134 | │   ├── main.ts 135 | │   ├── polyfills.ts 136 | │   ├── styles.css 137 | │   ├── test.ts 138 | │   └── tsconfig.json 139 | ├── tslint.json 140 | └── typings.json 141 | 142 | ``` 143 | ## Useful Links 144 | 145 | More products from Creative Tim: 146 | 147 | Tutorials: 148 | 149 | Freebies: 150 | 151 | Affiliate Program (earn money): 152 | 153 | Social Media: 154 | Twitter: 155 | 156 | Facebook: 157 | 158 | Instagram: 159 | 160 | [CHANGELOG]: ./CHANGELOG.md 161 | 162 | [CHANGELOG]: ./CHANGELOG.md 163 | 164 | [version-badge]: https://img.shields.io/badge/version-1.7.0-blue.svg 165 | [license-badge]: https://img.shields.io/badge/license-MIT-blue.svg 166 | -------------------------------------------------------------------------------- /angular.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json", 3 | "version": 1, 4 | "newProjectRoot": "projects", 5 | "projects": { 6 | "lbd-free-angular-cli": { 7 | "root": "", 8 | "sourceRoot": "src", 9 | "projectType": "application", 10 | "targets": { 11 | "build": { 12 | "builder": "@angular-devkit/build-angular:browser", 13 | "options": { 14 | "outputPath": "dist", 15 | "index": "src/index.html", 16 | "main": "src/main.ts", 17 | "tsConfig": "src/tsconfig.json", 18 | "polyfills": "src/polyfills.ts", 19 | "assets": [ 20 | "src/assets", 21 | "src/favicon.ico" 22 | ], 23 | "styles": [ 24 | "node_modules/perfect-scrollbar/css/perfect-scrollbar.css", 25 | "node_modules/animate.css/animate.min.css", 26 | "node_modules/bootstrap/dist/css/bootstrap.min.css", 27 | "src/assets/sass/light-bootstrap-dashboard.scss", 28 | "src/assets/css/demo.css" 29 | ], 30 | "scripts": [ 31 | "node_modules/jquery/dist/jquery.js", 32 | "node_modules/bootstrap/dist/js/bootstrap.js", 33 | "node_modules/bootstrap-notify/bootstrap-notify.js", 34 | "node_modules/chartist/dist/chartist.js" 35 | ] 36 | }, 37 | "configurations": { 38 | "production": { 39 | "optimization": true, 40 | "outputHashing": "all", 41 | "sourceMap": false, 42 | "extractCss": true, 43 | "namedChunks": false, 44 | "aot": true, 45 | "extractLicenses": true, 46 | "vendorChunk": false, 47 | "buildOptimizer": true, 48 | "fileReplacements": [ 49 | { 50 | "replace": "src/environments/environment.ts", 51 | "with": "src/environments/environment.prod.ts" 52 | } 53 | ] 54 | } 55 | } 56 | }, 57 | "serve": { 58 | "builder": "@angular-devkit/build-angular:dev-server", 59 | "options": { 60 | "browserTarget": "lbd-free-angular-cli:build" 61 | }, 62 | "configurations": { 63 | "production": { 64 | "browserTarget": "lbd-free-angular-cli:build:production" 65 | } 66 | } 67 | }, 68 | "extract-i18n": { 69 | "builder": "@angular-devkit/build-angular:extract-i18n", 70 | "options": { 71 | "browserTarget": "lbd-free-angular-cli:build" 72 | } 73 | }, 74 | "test": { 75 | "builder": "@angular-devkit/build-angular:karma", 76 | "options": { 77 | "main": "src/test.ts", 78 | "karmaConfig": "./karma.conf.js", 79 | "polyfills": "src/polyfills.ts", 80 | "scripts": [ 81 | "node_modules/jquery/dist/jquery.js", 82 | "node_modules/bootstrap/dist/js/bootstrap.js", 83 | "node_modules/bootstrap-notify/bootstrap-notify.js", 84 | "node_modules/chartist/dist/chartist.js" 85 | ], 86 | "styles": [ 87 | "node_modules/animate.css/animate.min.css", 88 | "node_modules/bootstrap/dist/css/bootstrap.min.css", 89 | "src/assets/sass/light-bootstrap-dashboard.scss", 90 | "src/assets/css/demo.css" 91 | ], 92 | "assets": [ 93 | "src/assets", 94 | "src/favicon.ico" 95 | ], 96 | "tsConfig": "src/tsconfig.json" 97 | } 98 | }, 99 | "lint": { 100 | "builder": "@angular-devkit/build-angular:tslint", 101 | "options": { 102 | "tsConfig": [ 103 | "src/tsconfig.json" 104 | ], 105 | "exclude": [] 106 | } 107 | } 108 | } 109 | }, 110 | "lbd-free-angular-cli-e2e": { 111 | "root": "e2e", 112 | "sourceRoot": "e2e", 113 | "projectType": "application", 114 | "targets": { 115 | "e2e": { 116 | "builder": "@angular-devkit/build-angular:protractor", 117 | "options": { 118 | "protractorConfig": "./protractor.conf.js", 119 | "devServerTarget": "lbd-free-angular-cli:serve" 120 | } 121 | }, 122 | "lint": { 123 | "builder": "@angular-devkit/build-angular:tslint", 124 | "options": { 125 | "tsConfig": [ 126 | "e2e/tsconfig.json" 127 | ], 128 | "exclude": [] 129 | } 130 | } 131 | } 132 | } 133 | }, 134 | "defaultProject": "lbd-free-angular-cli", 135 | "schematics": { 136 | "@schematics/angular:component": { 137 | "prefix": "app", 138 | "styleext": "scss" 139 | }, 140 | "@schematics/angular:directive": { 141 | "prefix": "app" 142 | } 143 | }, 144 | "cli": { 145 | "analytics": false 146 | } 147 | } -------------------------------------------------------------------------------- /documentation/css/documentation.css: -------------------------------------------------------------------------------- 1 | .navbar{ 2 | -webkit-transition: all 150ms linear; 3 | -moz-transition: all 150ms linear; 4 | -o-transition: all 150ms linear; 5 | -ms-transition: all 150ms linear; 6 | transition: all 150ms linear; 7 | } 8 | .header-wrapper .header, .header-wrapper .header .filter:after { 9 | height: 100vh !important; 10 | } 11 | .navbar-title{ 12 | height: 100%; 13 | } 14 | .navbar-title h4{ 15 | line-height: 12px; 16 | margin-top: 16px; 17 | margin-bottom: 5px; 18 | } 19 | 20 | .navbar-title img{ 21 | width: 100% 22 | } 23 | 24 | .header-wrapper .navbar-default{ 25 | box-shadow: 0 14px 20px -12px rgba(0, 0, 0, 0.2); 26 | color: #444; 27 | background-color: white; 28 | } 29 | .header-wrapper .navbar-default .btn{ 30 | color: #444; 31 | } 32 | .navbar-center{ 33 | float: none; 34 | display: inline-block; 35 | } 36 | .navbar-title .image-container{ 37 | height: 40px; 38 | width: 40px; 39 | display: inline-block; 40 | top: -3px; 41 | position: relative; 42 | } 43 | 44 | .tim-row{ 45 | margin-bottom: 40px; 46 | } 47 | .tim-row h2{ 48 | margin-top: 90px 49 | } 50 | 51 | pre.prettyprint{ 52 | background-color: #eee; 53 | border: 0px; 54 | margin-bottom: 0; 55 | margin-top: 20px; 56 | padding: 20px !important; 57 | text-align: left; 58 | border: 1px solid #ccc !important; 59 | } 60 | .tim-row:last-child pre{ 61 | position: relative; 62 | top: -45px; 63 | width: 100%; 64 | } 65 | .atv, .str{ 66 | color: #05AE0E; 67 | } 68 | .tag, .pln, .kwd{ 69 | color: #3472F7; 70 | } 71 | .atn{ 72 | color: #2C93FF; 73 | } 74 | .pln{ 75 | color: #333; 76 | } 77 | .com{ 78 | color: #999; 79 | } 80 | .space-top{ 81 | margin-top: 50px; 82 | } 83 | .btn-primary .caret{ 84 | border-top-color: #3472F7; 85 | color: #3472F7; 86 | } 87 | .area-line{ 88 | border: 1px solid #999; 89 | border-left: 0; 90 | border-right: 0; 91 | color: #666; 92 | display: block; 93 | margin-top: 20px; 94 | padding: 8px 0; 95 | text-align: center; 96 | } 97 | .area-line a{ 98 | color: #666; 99 | } 100 | .container-fluid{ 101 | padding-right: 15px; 102 | padding-left: 15px; 103 | } 104 | .logo-container .logo{ 105 | overflow: hidden; 106 | border-radius: 50%; 107 | border: 1px solid #333333; 108 | width: 50px; 109 | float: left; 110 | } 111 | .header-wrapper { 112 | position: relative; 113 | height: 500px; 114 | } 115 | 116 | .header-wrapper .header { 117 | background-position: center center; 118 | background-size: cover; 119 | height: 100vh; 120 | overflow: hidden; 121 | position: absolute; 122 | width: 100%; 123 | z-index: 1; 124 | } 125 | .header-wrapper .header .filter::after { 126 | background: -moz-linear-gradient(top, #FB404B 0%, rgba(187, 5, 2, 0.6) 100%); 127 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #FB404B), color-stop(100%, rgba(187, 5, 2, 0.6))); 128 | background: -webkit-linear-gradient(top, #FB404B 0%, rgba(187, 5, 2, 0.6) 100%); 129 | background: -o-linear-gradient(top, #FB404B 0%, rgba(187, 5, 2, 0.6) 100%); 130 | background: -ms-linear-gradient(top, #FB404B 0%, rgba(187, 5, 2, 0.6) 100%); 131 | background: linear-gradient(to bottom, #FB404B 0%, rgba(187, 5, 2, 0.6) 100%); content: ""; 132 | display: block; 133 | height: 450px; 134 | left: 0; 135 | opacity: 0.77; 136 | position: absolute; 137 | top: 0; 138 | width: 100%; 139 | z-index: 2; 140 | } 141 | .header-wrapper .title-container{ 142 | color: #fff; 143 | z-index: 3; 144 | position: absolute; 145 | top: 50%; 146 | margin-top: -180px; 147 | left: 0; 148 | width: 100%; 149 | } 150 | 151 | .title-container img{ 152 | width: 100px; 153 | height: 100px; 154 | } 155 | .logo-container .brand{ 156 | font-size: 18px; 157 | color: #FFFFFF; 158 | line-height: 20px; 159 | float: left; 160 | margin-left: 10px; 161 | margin-top: 5px; 162 | width: 50px; 163 | height: 50px; 164 | } 165 | .navbar-default .logo-container .brand{ 166 | color: #444; 167 | } 168 | .navbar-default.navbar-transparent .logo-container .brand{ 169 | color: #FFFFFF; 170 | } 171 | .navbar-default.navbar-transparent .navbar-nav>li>a{ 172 | color: #FFFFFF; 173 | } 174 | .logo-container{ 175 | margin-top: 10px; 176 | } 177 | .logo-container .logo img{ 178 | width: 100%; 179 | } 180 | .navbar-small .logo-container .brand{ 181 | color: #333333; 182 | } 183 | 184 | .navbar.navbar-transparent{ 185 | background-color: transparent; 186 | box-shadow: none; 187 | color: #fff; 188 | border: 0; 189 | padding-top: 0px; 190 | } 191 | 192 | .fixed-section{ 193 | max-height: 80vh; 194 | overflow: scroll; 195 | top: 110px; 196 | } 197 | .fixed-section ul li{ 198 | list-style: none; 199 | } 200 | .fixed-section li a{ 201 | font-size: 14px; 202 | padding: 2px; 203 | display: block; 204 | color: #666666; 205 | } 206 | .fixed-section li a.active{ 207 | color: #00bbff; 208 | } 209 | .fixed-section.float{ 210 | position: fixed; 211 | top: 100px; 212 | width: 200px; 213 | margin-top: 0; 214 | } 215 | .copyright { 216 | color: #777777; 217 | padding: 10px 15px; 218 | font-size: 14px; 219 | margin: 15px 3px; 220 | line-height: 20px; 221 | text-align: center; 222 | } 223 | 224 | .table-bigboy .img-container{ 225 | width: 130px; 226 | height: 85px; 227 | } 228 | 229 | .table-bigboy .td-name{ 230 | min-width: 170px; 231 | } 232 | 233 | .navbar .navbar-nav > li > a.btn{ 234 | padding: 8px 8px; 235 | } 236 | 237 | @media (max-width: 991px) { 238 | .fixed-section.affix { 239 | position: relative; 240 | margin-bottom: 100px; 241 | } 242 | 243 | .tim-row .nav.nav-pills{ 244 | margin-bottom: 25px; 245 | } 246 | 247 | .nav-mobile-menu .navbar-title{ 248 | display: none; 249 | } 250 | 251 | } 252 | 253 | @media (max-width: 1199px) { 254 | 255 | .navbar .navbar-brand { 256 | height: 50px; 257 | padding: 10px 15px; 258 | } 259 | 260 | } 261 | 262 | @media (max-width: 768px) { 263 | .footer .copyright { 264 | display: inline-block; 265 | text-align: center; 266 | padding: 10px 0; 267 | float: none !important; 268 | width: 100%; 269 | } 270 | } 271 | 272 | @media (max-width: 830px){ 273 | .main-raised{ 274 | margin-left: 10px; 275 | margin-right: 10px; 276 | } 277 | } 278 | -------------------------------------------------------------------------------- /documentation/tutorial-lbd-angular2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Light Bootstrap Dashboard Angular by Creative Tim 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 61 | 62 |
63 |
64 |
65 |

Light Bootstrap Dashboard Angular

66 |

v1.7.0

67 |

We are constantly doing updates for you.

68 | View Documentation 69 |
70 |
71 |
72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /e2e/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { LbdFreeAngularcliPage } from './app.po'; 2 | 3 | describe('lbd-free-angularcli App', function() { 4 | let page: LbdFreeAngularcliPage; 5 | 6 | beforeEach(() => { 7 | page = new LbdFreeAngularcliPage(); 8 | }); 9 | 10 | it('should display message saying app works', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('app works!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /e2e/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, element, by } from 'protractor'; 2 | 3 | export class LbdFreeAngularcliPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "declaration": false, 5 | "emitDecoratorMetadata": true, 6 | "experimentalDecorators": true, 7 | "module": "commonjs", 8 | "moduleResolution": "node", 9 | "outDir": "../dist/out-tsc-e2e", 10 | "sourceMap": true, 11 | "target": "es5", 12 | "typeRoots": [ 13 | "../node_modules/@types" 14 | ] 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /karma.conf.js: -------------------------------------------------------------------------------- 1 | // Karma configuration file, see link for more information 2 | // https://karma-runner.github.io/0.13/config/configuration-file.html 3 | 4 | module.exports = function (config) { 5 | config.set({ 6 | basePath: '', 7 | frameworks: ['jasmine', 'angular-cli'], 8 | plugins: [ 9 | require('karma-jasmine'), 10 | require('karma-chrome-launcher'), 11 | require('karma-remap-istanbul'), 12 | require('angular-cli/plugins/karma') 13 | ], 14 | files: [ 15 | 16 | ], 17 | preprocessors: { 18 | './src/test.ts': ['angular-cli'] 19 | }, 20 | mime: { 21 | 'text/x-typescript': ['ts','tsx'] 22 | }, 23 | remapIstanbulReporter: { 24 | dir: require('path').join(__dirname, 'coverage'), reports: { 25 | html: 'coverage', 26 | lcovonly: './coverage/coverage.lcov' 27 | } 28 | }, 29 | 30 | reporters: config.angularCli && config.angularCli.codeCoverage 31 | ? ['progress', 'karma-remap-istanbul'] 32 | : ['progress'], 33 | port: 9876, 34 | colors: true, 35 | logLevel: config.LOG_INFO, 36 | autoWatch: true, 37 | browsers: ['Chrome'], 38 | singleRun: false 39 | }); 40 | }; 41 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "lbd-free-angular-cli", 3 | "version": "1.7.0", 4 | "license": "MIT", 5 | "scripts": { 6 | "ng": "ng", 7 | "start": "ng serve", 8 | "build": "ng build", 9 | "test": "ng test", 10 | "lint": "ng lint", 11 | "e2e": "ng e2e", 12 | "install:clean": "rm -rf node_modules/ && rm -rf package-lock.json && npm install && npm start" 13 | }, 14 | "private": true, 15 | "dependencies": { 16 | "@angular/animations": "11.0.4", 17 | "@angular/common": "11.0.4", 18 | "@angular/compiler": "11.0.4", 19 | "@angular/core": "11.0.4", 20 | "@angular/forms": "11.0.4", 21 | "@angular/platform-browser": "11.0.4", 22 | "@angular/platform-browser-dynamic": "11.0.4", 23 | "@angular/router": "11.0.4", 24 | "@ngui/map": "0.30.3", 25 | "@types/googlemaps": "3.40.5", 26 | "animate.css": "4.1.1", 27 | "arrive": "2.4.1", 28 | "bootstrap": "3.3.7", 29 | "bootstrap-notify": "3.1.3", 30 | "chartist": "0.11.4", 31 | "core-js": "3.8.1", 32 | "googleapis": "66.0.0", 33 | "jquery": "3.5.1", 34 | "perfect-scrollbar": "1.5.0", 35 | "rxjs": "6.6.3", 36 | "rxjs-compat": "6.6.3", 37 | "zone.js": "0.11.3" 38 | }, 39 | "devDependencies": { 40 | "@angular-devkit/build-angular": "0.1100.4", 41 | "@angular/cli": "11.0.4", 42 | "@angular/compiler-cli": "11.0.4", 43 | "@types/jasmine": "3.6.2", 44 | "@types/node": "14.14.13", 45 | "codelyzer": "6.0.1", 46 | "jasmine-core": "3.6.0", 47 | "jasmine-spec-reporter": "6.0.0", 48 | "karma": "5.2.3", 49 | "karma-chrome-launcher": "3.1.0", 50 | "karma-cli": "2.0.0", 51 | "karma-jasmine": "4.0.1", 52 | "karma-jasmine-html-reporter": "1.5.4", 53 | "karma-coverage-istanbul-reporter": "3.0.3", 54 | "protractor": "7.0.0", 55 | "ts-node": "9.1.1", 56 | "tslint": "6.1.3", 57 | "typescript": "4.0.3" 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /protractor.conf.js: -------------------------------------------------------------------------------- 1 | // Protractor configuration file, see link for more information 2 | // https://github.com/angular/protractor/blob/master/lib/config.ts 3 | 4 | /*global jasmine */ 5 | var SpecReporter = require('jasmine-spec-reporter'); 6 | 7 | exports.config = { 8 | allScriptsTimeout: 11000, 9 | specs: [ 10 | './e2e/**/*.e2e-spec.ts' 11 | ], 12 | capabilities: { 13 | 'browserName': 'chrome' 14 | }, 15 | directConnect: true, 16 | baseUrl: 'http://localhost:4200/', 17 | framework: 'jasmine', 18 | jasmineNodeOpts: { 19 | showColors: true, 20 | defaultTimeoutInterval: 30000, 21 | print: function() {} 22 | }, 23 | useAllAngular2AppRoots: true, 24 | beforeLaunch: function() { 25 | require('ts-node').register({ 26 | project: 'e2e' 27 | }); 28 | }, 29 | onPrepare: function() { 30 | jasmine.getEnv().addReporter(new SpecReporter()); 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /src/app/app.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/app.component.css -------------------------------------------------------------------------------- /src/app/app.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async } from '@angular/core/testing'; 4 | import { AppComponent } from './app.component'; 5 | 6 | describe('AppComponent', () => { 7 | beforeEach(() => { 8 | TestBed.configureTestingModule({ 9 | declarations: [ 10 | AppComponent 11 | ], 12 | }); 13 | TestBed.compileComponents(); 14 | }); 15 | 16 | it('should create the app', async(() => { 17 | const fixture = TestBed.createComponent(AppComponent); 18 | const app = fixture.debugElement.componentInstance; 19 | expect(app).toBeTruthy(); 20 | })); 21 | 22 | it(`should have as title 'app works!'`, async(() => { 23 | const fixture = TestBed.createComponent(AppComponent); 24 | const app = fixture.debugElement.componentInstance; 25 | expect(app.title).toEqual('app works!'); 26 | })); 27 | 28 | it('should render title in a h1 tag', async(() => { 29 | const fixture = TestBed.createComponent(AppComponent); 30 | fixture.detectChanges(); 31 | const compiled = fixture.debugElement.nativeElement; 32 | expect(compiled.querySelector('h1').textContent).toContain('app works!'); 33 | })); 34 | }); 35 | -------------------------------------------------------------------------------- /src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { LocationStrategy, PlatformLocation, Location } from '@angular/common'; 3 | 4 | @Component({ 5 | selector: 'app-root', 6 | templateUrl: './app.component.html', 7 | styleUrls: ['./app.component.css'] 8 | }) 9 | export class AppComponent implements OnInit { 10 | 11 | constructor(public location: Location) {} 12 | 13 | ngOnInit(){ 14 | } 15 | 16 | isMap(path){ 17 | var titlee = this.location.prepareExternalUrl(this.location.path()); 18 | titlee = titlee.slice( 1 ); 19 | if(path == titlee){ 20 | return false; 21 | } 22 | else { 23 | return true; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; 2 | import { NgModule } from '@angular/core'; 3 | import { FormsModule } from '@angular/forms'; 4 | import { HttpClientModule } from '@angular/common/http'; 5 | import { RouterModule } from '@angular/router'; 6 | 7 | import { AppRoutingModule } from './app.routing'; 8 | import { NavbarModule } from './shared/navbar/navbar.module'; 9 | import { FooterModule } from './shared/footer/footer.module'; 10 | import { SidebarModule } from './sidebar/sidebar.module'; 11 | 12 | import { AppComponent } from './app.component'; 13 | 14 | import { AdminLayoutComponent } from './layouts/admin-layout/admin-layout.component'; 15 | 16 | @NgModule({ 17 | imports: [ 18 | BrowserAnimationsModule, 19 | FormsModule, 20 | RouterModule, 21 | HttpClientModule, 22 | NavbarModule, 23 | FooterModule, 24 | SidebarModule, 25 | AppRoutingModule 26 | ], 27 | declarations: [ 28 | AppComponent, 29 | AdminLayoutComponent 30 | ], 31 | providers: [], 32 | bootstrap: [AppComponent] 33 | }) 34 | export class AppModule { } 35 | -------------------------------------------------------------------------------- /src/app/app.routing.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule, } from '@angular/common'; 3 | import { BrowserModule } from '@angular/platform-browser'; 4 | import { Routes, RouterModule } from '@angular/router'; 5 | 6 | import { AdminLayoutComponent } from './layouts/admin-layout/admin-layout.component'; 7 | 8 | const routes: Routes =[ 9 | { 10 | path: '', 11 | redirectTo: 'dashboard', 12 | pathMatch: 'full', 13 | }, { 14 | path: '', 15 | component: AdminLayoutComponent, 16 | children: [ 17 | { 18 | path: '', 19 | loadChildren: './layouts/admin-layout/admin-layout.module#AdminLayoutModule' 20 | }]}, 21 | { 22 | path: '**', 23 | redirectTo: 'dashboard' 24 | } 25 | ]; 26 | 27 | @NgModule({ 28 | imports: [ 29 | CommonModule, 30 | BrowserModule, 31 | RouterModule.forRoot(routes,{ 32 | useHash: true 33 | }) 34 | ], 35 | exports: [ 36 | ], 37 | }) 38 | export class AppRoutingModule { } 39 | -------------------------------------------------------------------------------- /src/app/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/home/home.component.css -------------------------------------------------------------------------------- /src/app/home/home.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { HomeComponent } from './home.component'; 7 | 8 | describe('HomeComponent', () => { 9 | let component: HomeComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ HomeComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(HomeComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | import { LocationStrategy, PlatformLocation, Location } from '@angular/common'; 3 | import { LegendItem, ChartType } from '../lbd/lbd-chart/lbd-chart.component'; 4 | import * as Chartist from 'chartist'; 5 | 6 | @Component({ 7 | selector: 'app-home', 8 | templateUrl: './home.component.html', 9 | styleUrls: ['./home.component.css'] 10 | }) 11 | export class HomeComponent implements OnInit { 12 | public emailChartType: ChartType; 13 | public emailChartData: any; 14 | public emailChartLegendItems: LegendItem[]; 15 | 16 | public hoursChartType: ChartType; 17 | public hoursChartData: any; 18 | public hoursChartOptions: any; 19 | public hoursChartResponsive: any[]; 20 | public hoursChartLegendItems: LegendItem[]; 21 | 22 | public activityChartType: ChartType; 23 | public activityChartData: any; 24 | public activityChartOptions: any; 25 | public activityChartResponsive: any[]; 26 | public activityChartLegendItems: LegendItem[]; 27 | constructor() { } 28 | 29 | ngOnInit() { 30 | this.emailChartType = ChartType.Pie; 31 | this.emailChartData = { 32 | labels: ['62%', '32%', '6%'], 33 | series: [62, 32, 6] 34 | }; 35 | this.emailChartLegendItems = [ 36 | { title: 'Open', imageClass: 'fa fa-circle text-info' }, 37 | { title: 'Bounce', imageClass: 'fa fa-circle text-danger' }, 38 | { title: 'Unsubscribe', imageClass: 'fa fa-circle text-warning' } 39 | ]; 40 | 41 | this.hoursChartType = ChartType.Line; 42 | this.hoursChartData = { 43 | labels: ['9:00AM', '12:00AM', '3:00PM', '6:00PM', '9:00PM', '12:00PM', '3:00AM', '6:00AM'], 44 | series: [ 45 | [287, 385, 490, 492, 554, 586, 698, 695, 752, 788, 846, 944], 46 | [67, 152, 143, 240, 287, 335, 435, 437, 539, 542, 544, 647], 47 | [23, 113, 67, 108, 190, 239, 307, 308, 439, 410, 410, 509] 48 | ] 49 | }; 50 | this.hoursChartOptions = { 51 | low: 0, 52 | high: 800, 53 | showArea: true, 54 | height: '245px', 55 | axisX: { 56 | showGrid: false, 57 | }, 58 | lineSmooth: Chartist.Interpolation.simple({ 59 | divisor: 3 60 | }), 61 | showLine: false, 62 | showPoint: false, 63 | }; 64 | this.hoursChartResponsive = [ 65 | ['screen and (max-width: 640px)', { 66 | axisX: { 67 | labelInterpolationFnc: function (value) { 68 | return value[0]; 69 | } 70 | } 71 | }] 72 | ]; 73 | this.hoursChartLegendItems = [ 74 | { title: 'Open', imageClass: 'fa fa-circle text-info' }, 75 | { title: 'Click', imageClass: 'fa fa-circle text-danger' }, 76 | { title: 'Click Second Time', imageClass: 'fa fa-circle text-warning' } 77 | ]; 78 | 79 | this.activityChartType = ChartType.Bar; 80 | this.activityChartData = { 81 | labels: ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], 82 | series: [ 83 | [542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895], 84 | [412, 243, 280, 580, 453, 353, 300, 364, 368, 410, 636, 695] 85 | ] 86 | }; 87 | this.activityChartOptions = { 88 | seriesBarDistance: 10, 89 | axisX: { 90 | showGrid: false 91 | }, 92 | height: '245px' 93 | }; 94 | this.activityChartResponsive = [ 95 | ['screen and (max-width: 640px)', { 96 | seriesBarDistance: 5, 97 | axisX: { 98 | labelInterpolationFnc: function (value) { 99 | return value[0]; 100 | } 101 | } 102 | }] 103 | ]; 104 | this.activityChartLegendItems = [ 105 | { title: 'Tesla Model S', imageClass: 'fa fa-circle text-info' }, 106 | { title: 'BMW 5 Series', imageClass: 'fa fa-circle text-danger' } 107 | ]; 108 | 109 | 110 | } 111 | 112 | } 113 | -------------------------------------------------------------------------------- /src/app/icons/icons.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/icons/icons.component.css -------------------------------------------------------------------------------- /src/app/icons/icons.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { IconsComponent } from './icons.component'; 7 | 8 | describe('IconsComponent', () => { 9 | let component: IconsComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ IconsComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(IconsComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/icons/icons.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-icons', 5 | templateUrl: './icons.component.html', 6 | styleUrls: ['./icons.component.css'] 7 | }) 8 | export class IconsComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/app/layouts/admin-layout/admin-layout.component.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 7 | 8 |
9 | 10 | 11 |
12 | 13 |
14 |
15 | 16 |
17 | -------------------------------------------------------------------------------- /src/app/layouts/admin-layout/admin-layout.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/layouts/admin-layout/admin-layout.component.scss -------------------------------------------------------------------------------- /src/app/layouts/admin-layout/admin-layout.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { AdminLayoutComponent } from './admin-layout.component'; 4 | 5 | describe('AdminLayoutComponent', () => { 6 | let component: AdminLayoutComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ AdminLayoutComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(AdminLayoutComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /src/app/layouts/admin-layout/admin-layout.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core'; 2 | import { Location, LocationStrategy, PathLocationStrategy, PopStateEvent } from '@angular/common'; 3 | import 'rxjs/add/operator/filter'; 4 | import { NavbarComponent } from '../../shared/navbar/navbar.component'; 5 | import { Router, NavigationEnd, NavigationStart } from '@angular/router'; 6 | import { Subscription } from 'rxjs/Subscription'; 7 | import PerfectScrollbar from 'perfect-scrollbar'; 8 | import { Observable } from 'rxjs'; 9 | 10 | @Component({ 11 | selector: 'app-admin-layout', 12 | templateUrl: './admin-layout.component.html', 13 | styleUrls: ['./admin-layout.component.scss'] 14 | }) 15 | export class AdminLayoutComponent implements OnInit { 16 | private _router: Subscription; 17 | private lastPoppedUrl: string; 18 | private yScrollStack: number[] = []; 19 | 20 | constructor( public location: Location, private router: Router) {} 21 | 22 | ngOnInit() { 23 | console.log(this.router) 24 | const isWindows = navigator.platform.indexOf('Win') > -1 ? true : false; 25 | 26 | if (isWindows) { 27 | // if we are on windows OS we activate the perfectScrollbar function 28 | 29 | document.getElementsByTagName('body')[0].classList.add('perfect-scrollbar-on'); 30 | } else { 31 | document.getElementsByTagName('body')[0].classList.remove('perfect-scrollbar-off'); 32 | } 33 | const elemMainPanel = document.querySelector('.main-panel'); 34 | const elemSidebar = document.querySelector('.sidebar .sidebar-wrapper'); 35 | 36 | this.location.subscribe((ev:PopStateEvent) => { 37 | this.lastPoppedUrl = ev.url; 38 | }); 39 | this.router.events.subscribe((event:any) => { 40 | if (event instanceof NavigationStart) { 41 | if (event.url != this.lastPoppedUrl) 42 | this.yScrollStack.push(window.scrollY); 43 | } else if (event instanceof NavigationEnd) { 44 | if (event.url == this.lastPoppedUrl) { 45 | this.lastPoppedUrl = undefined; 46 | window.scrollTo(0, this.yScrollStack.pop()); 47 | } else 48 | window.scrollTo(0, 0); 49 | } 50 | }); 51 | this._router = this.router.events.filter(event => event instanceof NavigationEnd).subscribe((event: NavigationEnd) => { 52 | elemMainPanel.scrollTop = 0; 53 | elemSidebar.scrollTop = 0; 54 | }); 55 | if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) { 56 | let ps = new PerfectScrollbar(elemMainPanel); 57 | ps = new PerfectScrollbar(elemSidebar); 58 | } 59 | } 60 | ngAfterViewInit() { 61 | this.runOnRouteChange(); 62 | } 63 | isMap(path){ 64 | var titlee = this.location.prepareExternalUrl(this.location.path()); 65 | titlee = titlee.slice( 1 ); 66 | if(path == titlee){ 67 | return false; 68 | } 69 | else { 70 | return true; 71 | } 72 | } 73 | runOnRouteChange(): void { 74 | if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) { 75 | const elemMainPanel = document.querySelector('.main-panel'); 76 | const ps = new PerfectScrollbar(elemMainPanel); 77 | ps.update(); 78 | } 79 | } 80 | isMac(): boolean { 81 | let bool = false; 82 | if (navigator.platform.toUpperCase().indexOf('MAC') >= 0 || navigator.platform.toUpperCase().indexOf('IPAD') >= 0) { 83 | bool = true; 84 | } 85 | return bool; 86 | } 87 | 88 | } 89 | -------------------------------------------------------------------------------- /src/app/layouts/admin-layout/admin-layout.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { RouterModule } from '@angular/router'; 3 | import { CommonModule } from '@angular/common'; 4 | import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 5 | 6 | import { LbdModule } from '../../lbd/lbd.module'; 7 | import { NguiMapModule} from '@ngui/map'; 8 | 9 | import { AdminLayoutRoutes } from './admin-layout.routing'; 10 | 11 | import { HomeComponent } from '../../home/home.component'; 12 | import { UserComponent } from '../../user/user.component'; 13 | import { TablesComponent } from '../../tables/tables.component'; 14 | import { TypographyComponent } from '../../typography/typography.component'; 15 | import { IconsComponent } from '../../icons/icons.component'; 16 | import { MapsComponent } from '../../maps/maps.component'; 17 | import { NotificationsComponent } from '../../notifications/notifications.component'; 18 | import { UpgradeComponent } from '../../upgrade/upgrade.component'; 19 | 20 | 21 | @NgModule({ 22 | imports: [ 23 | CommonModule, 24 | RouterModule.forChild(AdminLayoutRoutes), 25 | FormsModule, 26 | LbdModule, 27 | NguiMapModule.forRoot({apiUrl: 'https://maps.google.com/maps/api/js?key=YOUR_KEY_HERE'}) 28 | ], 29 | declarations: [ 30 | HomeComponent, 31 | UserComponent, 32 | TablesComponent, 33 | TypographyComponent, 34 | IconsComponent, 35 | MapsComponent, 36 | NotificationsComponent, 37 | UpgradeComponent 38 | ] 39 | }) 40 | 41 | export class AdminLayoutModule {} 42 | -------------------------------------------------------------------------------- /src/app/layouts/admin-layout/admin-layout.routing.ts: -------------------------------------------------------------------------------- 1 | import { Routes } from '@angular/router'; 2 | 3 | import { HomeComponent } from '../../home/home.component'; 4 | import { UserComponent } from '../../user/user.component'; 5 | import { TablesComponent } from '../../tables/tables.component'; 6 | import { TypographyComponent } from '../../typography/typography.component'; 7 | import { IconsComponent } from '../../icons/icons.component'; 8 | import { MapsComponent } from '../../maps/maps.component'; 9 | import { NotificationsComponent } from '../../notifications/notifications.component'; 10 | import { UpgradeComponent } from '../../upgrade/upgrade.component'; 11 | 12 | export const AdminLayoutRoutes: Routes = [ 13 | { path: 'dashboard', component: HomeComponent }, 14 | { path: 'user', component: UserComponent }, 15 | { path: 'table', component: TablesComponent }, 16 | { path: 'typography', component: TypographyComponent }, 17 | { path: 'icons', component: IconsComponent }, 18 | { path: 'maps', component: MapsComponent }, 19 | { path: 'notifications', component: NotificationsComponent }, 20 | { path: 'upgrade', component: UpgradeComponent }, 21 | ]; 22 | -------------------------------------------------------------------------------- /src/app/lbd/lbd-chart/lbd-chart.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

{{ title }}

4 |

{{ subtitle }}

5 |
6 |
7 |
8 | 9 | 20 |
21 |
22 | -------------------------------------------------------------------------------- /src/app/lbd/lbd-chart/lbd-chart.component.ts: -------------------------------------------------------------------------------- 1 | import {Component, Input, OnInit, AfterViewInit, ChangeDetectionStrategy} from '@angular/core'; 2 | import * as Chartist from 'chartist'; 3 | 4 | export interface LegendItem { 5 | title: string; 6 | imageClass: string; 7 | } 8 | 9 | export enum ChartType { 10 | Pie, 11 | Line, 12 | Bar 13 | } 14 | 15 | @Component({ 16 | selector: 'lbd-chart', 17 | templateUrl: './lbd-chart.component.html', 18 | changeDetection: ChangeDetectionStrategy.OnPush 19 | }) 20 | export class LbdChartComponent implements OnInit, AfterViewInit { 21 | static currentId = 1; 22 | 23 | @Input() 24 | public title: string; 25 | 26 | @Input() 27 | public subtitle: string; 28 | 29 | @Input() 30 | public chartClass: string; 31 | 32 | @Input() 33 | public chartType: ChartType; 34 | 35 | @Input() 36 | public chartData: any; 37 | 38 | @Input() 39 | public chartOptions: any; 40 | 41 | @Input() 42 | public chartResponsive: any[]; 43 | 44 | @Input() 45 | public footerIconClass: string; 46 | 47 | @Input() 48 | public footerText: string; 49 | 50 | @Input() 51 | public legendItems: LegendItem[]; 52 | 53 | @Input() 54 | public withHr: boolean; 55 | 56 | public chartId: string; 57 | 58 | constructor() { 59 | } 60 | 61 | public ngOnInit(): void { 62 | this.chartId = `lbd-chart-${LbdChartComponent.currentId++}`; 63 | } 64 | 65 | public ngAfterViewInit(): void { 66 | 67 | switch (this.chartType) { 68 | case ChartType.Pie: 69 | new Chartist.Pie(`#${this.chartId}`, this.chartData, this.chartOptions, this.chartResponsive); 70 | break; 71 | case ChartType.Line: 72 | new Chartist.Line(`#${this.chartId}`, this.chartData, this.chartOptions, this.chartResponsive); 73 | break; 74 | case ChartType.Bar: 75 | new Chartist.Bar(`#${this.chartId}`, this.chartData, this.chartOptions, this.chartResponsive); 76 | break; 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /src/app/lbd/lbd.module.ts: -------------------------------------------------------------------------------- 1 | 2 | import { NgModule } from '@angular/core'; 3 | import { CommonModule } from '@angular/common'; 4 | import { RouterModule } from '@angular/router'; 5 | 6 | import { LbdChartComponent } from './lbd-chart/lbd-chart.component'; 7 | 8 | @NgModule({ 9 | imports: [ 10 | CommonModule, 11 | RouterModule 12 | ], 13 | declarations: [ 14 | 15 | LbdChartComponent 16 | 17 | ], 18 | exports: [ 19 | LbdChartComponent 20 | ] 21 | }) 22 | export class LbdModule { } 23 | -------------------------------------------------------------------------------- /src/app/maps/maps.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/maps/maps.component.css -------------------------------------------------------------------------------- /src/app/maps/maps.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 6 | 7 | 8 | 9 |
10 | -------------------------------------------------------------------------------- /src/app/maps/maps.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { MapsComponent } from './maps.component'; 7 | 8 | describe('MapsComponent', () => { 9 | let component: MapsComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ MapsComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(MapsComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/maps/maps.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-maps', 5 | templateUrl: './maps.component.html', 6 | styleUrls: ['./maps.component.css'] 7 | }) 8 | 9 | export class MapsComponent implements OnInit { 10 | 11 | constructor() { } 12 | 13 | ngOnInit() { } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/app/notifications/notifications.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/notifications/notifications.component.css -------------------------------------------------------------------------------- /src/app/notifications/notifications.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |

Notifications

6 |

Handcrafted by our friend Robert McIntosh. Please checkout the full documentation.

7 |
8 |
9 |
10 |
11 |
Notifications Style
12 |
13 | This is a plain notification 14 |
15 |
16 | 17 | This is a notification with close button. 18 |
19 |
20 | 21 | 22 | This is a notification with close button and icon. 23 |
24 |
25 | 26 | 27 | This is a notification with close button and icon and have many lines. You can see that the icon and the close button are always vertically aligned. This is a beautiful notification. So you don't have to worry about the style. 28 |
29 |
30 |
31 |
Notification states
32 |
33 | 34 | Info - This is a regular notification made with ".alert-info" 35 |
36 |
37 | 38 | Success - This is a regular notification made with ".alert-success" 39 |
40 |
41 | 42 | Warning - This is a regular notification made with ".alert-warning" 43 |
44 |
45 | 46 | Danger - This is a regular notification made with ".alert-danger" 47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
Notifications Places 56 |

Click to view notifications

57 |
58 |
59 |
60 |
61 |
62 | 63 |
64 |
65 | 66 |
67 |
68 | 69 |
70 |
71 |
72 |
73 | 74 |
75 |
76 | 77 |
78 |
79 | 80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 | -------------------------------------------------------------------------------- /src/app/notifications/notifications.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { NotificationsComponent } from './notifications.component'; 7 | 8 | describe('NotificationsComponent', () => { 9 | let component: NotificationsComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ NotificationsComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(NotificationsComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/notifications/notifications.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | declare var $:any; 4 | 5 | @Component({ 6 | selector: 'app-notifications', 7 | templateUrl: './notifications.component.html', 8 | styleUrls: ['./notifications.component.css'] 9 | }) 10 | export class NotificationsComponent implements OnInit { 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { 15 | } 16 | showNotification(from, align){ 17 | const type = ['','info','success','warning','danger']; 18 | 19 | var color = Math.floor((Math.random() * 4) + 1); 20 | $.notify({ 21 | icon: "pe-7s-gift", 22 | message: "Welcome to Light Bootstrap Dashboard - a beautiful freebie for every web developer." 23 | },{ 24 | type: type[color], 25 | timer: 1000, 26 | placement: { 27 | from: from, 28 | align: align 29 | } 30 | }); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/app/shared/footer/footer.component.html: -------------------------------------------------------------------------------- 1 | 32 | -------------------------------------------------------------------------------- /src/app/shared/footer/footer.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | declare var $:any; 4 | 5 | @Component({ 6 | selector: 'footer-cmp', 7 | templateUrl: 'footer.component.html' 8 | }) 9 | 10 | export class FooterComponent{ 11 | test : Date = new Date(); 12 | } 13 | -------------------------------------------------------------------------------- /src/app/shared/footer/footer.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { RouterModule } from '@angular/router'; 4 | import { FooterComponent } from './footer.component'; 5 | 6 | @NgModule({ 7 | imports: [ RouterModule, CommonModule ], 8 | declarations: [ FooterComponent ], 9 | exports: [ FooterComponent ] 10 | }) 11 | 12 | export class FooterModule {} 13 | -------------------------------------------------------------------------------- /src/app/shared/navbar/navbar.component.html: -------------------------------------------------------------------------------- 1 | 79 | -------------------------------------------------------------------------------- /src/app/shared/navbar/navbar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit, ElementRef } from '@angular/core'; 2 | import { ROUTES } from '../../sidebar/sidebar.component'; 3 | import {Location, LocationStrategy, PathLocationStrategy} from '@angular/common'; 4 | 5 | @Component({ 6 | // moduleId: module.id, 7 | selector: 'navbar-cmp', 8 | templateUrl: 'navbar.component.html' 9 | }) 10 | 11 | export class NavbarComponent implements OnInit{ 12 | private listTitles: any[]; 13 | location: Location; 14 | private toggleButton: any; 15 | private sidebarVisible: boolean; 16 | 17 | constructor(location: Location, private element: ElementRef) { 18 | this.location = location; 19 | this.sidebarVisible = false; 20 | } 21 | 22 | ngOnInit(){ 23 | this.listTitles = ROUTES.filter(listTitle => listTitle); 24 | const navbar: HTMLElement = this.element.nativeElement; 25 | this.toggleButton = navbar.getElementsByClassName('navbar-toggle')[0]; 26 | } 27 | sidebarOpen() { 28 | const toggleButton = this.toggleButton; 29 | const body = document.getElementsByTagName('body')[0]; 30 | setTimeout(function(){ 31 | toggleButton.classList.add('toggled'); 32 | }, 500); 33 | body.classList.add('nav-open'); 34 | 35 | this.sidebarVisible = true; 36 | }; 37 | sidebarClose() { 38 | const body = document.getElementsByTagName('body')[0]; 39 | this.toggleButton.classList.remove('toggled'); 40 | this.sidebarVisible = false; 41 | body.classList.remove('nav-open'); 42 | }; 43 | sidebarToggle() { 44 | // const toggleButton = this.toggleButton; 45 | // const body = document.getElementsByTagName('body')[0]; 46 | if (this.sidebarVisible === false) { 47 | this.sidebarOpen(); 48 | } else { 49 | this.sidebarClose(); 50 | } 51 | }; 52 | 53 | getTitle(){ 54 | var titlee = this.location.prepareExternalUrl(this.location.path()); 55 | if(titlee.charAt(0) === '#'){ 56 | titlee = titlee.slice( 1 ); 57 | } 58 | 59 | for(var item = 0; item < this.listTitles.length; item++){ 60 | if(this.listTitles[item].path === titlee){ 61 | return this.listTitles[item].title; 62 | } 63 | } 64 | return 'Dashboard'; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/app/shared/navbar/navbar.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { RouterModule } from '@angular/router'; 4 | import { NavbarComponent } from './navbar.component'; 5 | 6 | @NgModule({ 7 | imports: [ RouterModule, CommonModule ], 8 | declarations: [ NavbarComponent ], 9 | exports: [ NavbarComponent ] 10 | }) 11 | 12 | export class NavbarModule {} 13 | -------------------------------------------------------------------------------- /src/app/sidebar/sidebar.component.html: -------------------------------------------------------------------------------- 1 | 2 | 79 | -------------------------------------------------------------------------------- /src/app/sidebar/sidebar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | declare const $: any; 4 | declare interface RouteInfo { 5 | path: string; 6 | title: string; 7 | icon: string; 8 | class: string; 9 | } 10 | export const ROUTES: RouteInfo[] = [ 11 | { path: '/dashboard', title: 'Dashboard', icon: 'pe-7s-graph', class: '' }, 12 | { path: '/user', title: 'User Profile', icon:'pe-7s-user', class: '' }, 13 | { path: '/table', title: 'Table List', icon:'pe-7s-note2', class: '' }, 14 | { path: '/typography', title: 'Typography', icon:'pe-7s-news-paper', class: '' }, 15 | { path: '/icons', title: 'Icons', icon:'pe-7s-science', class: '' }, 16 | { path: '/maps', title: 'Maps', icon:'pe-7s-map-marker', class: '' }, 17 | { path: '/notifications', title: 'Notifications', icon:'pe-7s-bell', class: '' }, 18 | { path: '/upgrade', title: 'Upgrade to PRO', icon:'pe-7s-rocket', class: 'active-pro' }, 19 | ]; 20 | 21 | @Component({ 22 | selector: 'app-sidebar', 23 | templateUrl: './sidebar.component.html' 24 | }) 25 | export class SidebarComponent implements OnInit { 26 | menuItems: any[]; 27 | 28 | constructor() { } 29 | 30 | ngOnInit() { 31 | this.menuItems = ROUTES.filter(menuItem => menuItem); 32 | } 33 | isMobileMenu() { 34 | if ($(window).width() > 991) { 35 | return false; 36 | } 37 | return true; 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /src/app/sidebar/sidebar.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { RouterModule } from '@angular/router'; 4 | import { SidebarComponent } from './sidebar.component'; 5 | 6 | @NgModule({ 7 | imports: [ RouterModule, CommonModule ], 8 | declarations: [ SidebarComponent ], 9 | exports: [ SidebarComponent ] 10 | }) 11 | 12 | export class SidebarModule {} 13 | -------------------------------------------------------------------------------- /src/app/tables/tables.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/tables/tables.component.css -------------------------------------------------------------------------------- /src/app/tables/tables.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |

Striped Table with Hover

8 |

Here is a subtitle for this table

9 |
10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
{{ cell }}
{{cell}}
23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 |

Table on Plain Background

31 |

Here is a subtitle for this table

32 |
33 |
34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 |
{{ cell }}
{{cell}}
46 |
47 |
48 |
49 |
50 |
51 |
52 | -------------------------------------------------------------------------------- /src/app/tables/tables.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { TablesComponent } from './tables.component'; 7 | 8 | describe('TablesComponent', () => { 9 | let component: TablesComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ TablesComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(TablesComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/tables/tables.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | declare interface TableData { 4 | headerRow: string[]; 5 | dataRows: string[][]; 6 | } 7 | 8 | @Component({ 9 | selector: 'app-tables', 10 | templateUrl: './tables.component.html', 11 | styleUrls: ['./tables.component.css'] 12 | }) 13 | export class TablesComponent implements OnInit { 14 | public tableData1: TableData; 15 | public tableData2: TableData; 16 | 17 | constructor() { } 18 | 19 | ngOnInit() { 20 | this.tableData1 = { 21 | headerRow: [ 'ID', 'Name', 'Country', 'City', 'Salary'], 22 | dataRows: [ 23 | ['1', 'Dakota Rice', 'Niger', 'Oud-Turnhout', '$36,738'], 24 | ['2', 'Minerva Hooper', 'Curaçao', 'Sinaai-Waas', '$23,789'], 25 | ['3', 'Sage Rodriguez', 'Netherlands', 'Baileux', '$56,142'], 26 | ['4', 'Philip Chaney', 'Korea, South', 'Overland Park', '$38,735'], 27 | ['5', 'Doris Greene', 'Malawi', 'Feldkirchen in Kärnten', '$63,542'], 28 | ['6', 'Mason Porter', 'Chile', 'Gloucester', '$78,615'] 29 | ] 30 | }; 31 | this.tableData2 = { 32 | headerRow: [ 'ID', 'Name', 'Salary', 'Country', 'City' ], 33 | dataRows: [ 34 | ['1', 'Dakota Rice','$36,738', 'Niger', 'Oud-Turnhout' ], 35 | ['2', 'Minerva Hooper', '$23,789', 'Curaçao', 'Sinaai-Waas'], 36 | ['3', 'Sage Rodriguez', '$56,142', 'Netherlands', 'Baileux' ], 37 | ['4', 'Philip Chaney', '$38,735', 'Korea, South', 'Overland Park' ], 38 | ['5', 'Doris Greene', '$63,542', 'Malawi', 'Feldkirchen in Kärnten', ], 39 | ['6', 'Mason Porter', '$78,615', 'Chile', 'Gloucester' ] 40 | ] 41 | }; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/app/typography/typography.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/typography/typography.component.css -------------------------------------------------------------------------------- /src/app/typography/typography.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |

Light Bootstrap Table Heading

8 |

Created using Roboto Font Family

9 |
10 |
11 | 12 |
13 |

Header 1

Light Bootstrap Table Heading

14 |
15 | 16 |
17 |

Header 2

Light Bootstrap Table Heading

18 |
19 |
20 |

Header 3

Light Bootstrap Table Heading

21 |
22 |
23 |

Header 4

Light Bootstrap Table Heading

24 |
25 |
26 |

Header 5

Light Bootstrap Table Heading
27 |
28 |
29 |

Header 6

Light Bootstrap Table Heading
30 |
31 |
32 |

ParagraphLorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam.

33 |
34 |
35 |

Quote

36 |
37 |

38 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam. 39 |

40 | 41 | Steve Jobs, CEO Apple 42 | 43 |
44 |
45 | 46 |
47 |

Muted Text

48 |

49 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet. 50 |

51 |
52 |
53 | 56 |

Coloured Text 57 |

58 |

59 | Text Primary - Light Bootstrap Table Heading and complex bootstrap dashboard you've ever seen on the internet. 60 |

61 |

62 | Text Info - Light Bootstrap Table Heading and complex bootstrap dashboard you've ever seen on the internet. 63 |

64 |

65 | Text Success - Light Bootstrap Table Heading and complex bootstrap dashboard you've ever seen on the internet. 66 |

67 |

68 | Text Warning - Light Bootstrap Table Heading and complex bootstrap dashboard you've ever seen on the internet. 69 |

70 |

71 | Text Danger - Light Bootstrap Table Heading and complex bootstrap dashboard you've ever seen on the internet. 72 |

73 |
74 |
75 |

Small Tag

Header with small subtitle
".small" is a tag for the headers

76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 | -------------------------------------------------------------------------------- /src/app/typography/typography.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { TypographyComponent } from './typography.component'; 7 | 8 | describe('TypographyComponent', () => { 9 | let component: TypographyComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ TypographyComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(TypographyComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/typography/typography.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-typography', 5 | templateUrl: './typography.component.html', 6 | styleUrls: ['./typography.component.css'] 7 | }) 8 | export class TypographyComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/app/upgrade/upgrade.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/upgrade/upgrade.component.css -------------------------------------------------------------------------------- /src/app/upgrade/upgrade.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |

Light Bootstrap Dashboard PRO Angular

8 |

Looking for more components? Please check our Premium Version of Light Bootstrap Dashboard Angular.

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 | 37 | 38 | 41 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 70 | 73 | 74 | 75 |
FreePRO
Components16115+
Plugins414+
Example Pages422+
Documentation 39 | 40 | 42 | 43 |
SASS Files
Login/Register/Lock Pages
Premium Support
FreeJust $49
68 | Current Version 69 | 71 | Upgrade to PRO 72 |
76 | 77 |
78 |
79 |
80 |
81 | 82 |
83 |
84 | -------------------------------------------------------------------------------- /src/app/upgrade/upgrade.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 2 | 3 | import { UpgradeComponent } from './upgrade.component'; 4 | 5 | describe('UpgradeComponent', () => { 6 | let component: UpgradeComponent; 7 | let fixture: ComponentFixture; 8 | 9 | beforeEach(async(() => { 10 | TestBed.configureTestingModule({ 11 | declarations: [ UpgradeComponent ] 12 | }) 13 | .compileComponents(); 14 | })); 15 | 16 | beforeEach(() => { 17 | fixture = TestBed.createComponent(UpgradeComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | }); 21 | 22 | it('should create', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /src/app/upgrade/upgrade.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-upgrade', 5 | templateUrl: './upgrade.component.html', 6 | styleUrls: ['./upgrade.component.css'] 7 | }) 8 | export class UpgradeComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/app/user/user.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/app/user/user.component.css -------------------------------------------------------------------------------- /src/app/user/user.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 |
7 |

Edit Profile

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 | 37 |
38 |
39 |
40 |
41 | 42 | 43 |
44 |
45 |
46 | 47 |
48 |
49 |
50 | 51 | 52 |
53 |
54 |
55 | 56 |
57 |
58 |
59 | 60 | 61 |
62 |
63 |
64 |
65 | 66 | 67 |
68 |
69 |
70 |
71 | 72 | 73 |
74 |
75 |
76 | 77 |
78 |
79 |
80 | 81 | 82 |
83 |
84 |
85 | 86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | ... 95 |
96 |
97 | 106 |

"Lamborghini Mercy
107 | Your chick she so thirsty
108 | I'm in that two seat Lambo" 109 |

110 |
111 |
112 |
113 | 114 | 115 | 116 |
117 |
118 |
119 |
120 |
121 |
122 | -------------------------------------------------------------------------------- /src/app/user/user.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { UserComponent } from './user.component'; 7 | 8 | describe('UserComponent', () => { 9 | let component: UserComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ UserComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(UserComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /src/app/user/user.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-user', 5 | templateUrl: './user.component.html', 6 | styleUrls: ['./user.component.css'] 7 | }) 8 | export class UserComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/.gitkeep -------------------------------------------------------------------------------- /src/assets/css/demo.css: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard Angular - v1.5.1 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-angular2 8 | * Copyright 2016 Creative Tim (http://www.creative-tim.com) 9 | * Licensed under MIT 10 | 11 | ========================================================= 12 | 13 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 14 | 15 | */ 16 | @media (min-width: 992px){ 17 | .typo-line{ 18 | padding-left: 140px; 19 | margin-bottom: 40px; 20 | position: relative; 21 | } 22 | 23 | .typo-line .category{ 24 | transform: translateY(-50%); 25 | top: 50%; 26 | left: 0px; 27 | position: absolute; 28 | } 29 | } 30 | 31 | .all-icons [class*="pe-"]{ 32 | font-size: 40px; 33 | } 34 | .all-icons input{ 35 | border: 0; 36 | } 37 | .all-icons .font-icon-detail{ 38 | text-align: center; 39 | padding: 45px 0px 30px; 40 | border: 1px solid #e5e5e5; 41 | border-radius: 6px; 42 | margin: 15px 0; 43 | } 44 | .all-icons .font-icon-detail input{ 45 | margin: 25px auto 0; 46 | width: 100%; 47 | text-align: center; 48 | display: block; 49 | color: #aaa; 50 | font-size: 13px; 51 | } 52 | 53 | #map{ 54 | position:relative; 55 | width:100%; 56 | height: 100%; 57 | } 58 | .map{ 59 | height: 280px !important; 60 | 61 | } 62 | .places-buttons .btn{ 63 | margin-bottom: 30px 64 | } 65 | .sidebar .nav > li.active-pro{ 66 | position: absolute; 67 | width: 100%; 68 | bottom: 10px; 69 | } 70 | .sidebar .nav > li.active-pro a{ 71 | background: rgba(255, 255, 255, 0.14); 72 | opacity: 1; 73 | color: #FFFFFF; 74 | } 75 | 76 | .table-upgrade td:nth-child(2), 77 | .table-upgrade td:nth-child(3){ 78 | text-align: center; 79 | } 80 | -------------------------------------------------------------------------------- /src/assets/fonts/Pe-icon-7-stroke.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/fonts/Pe-icon-7-stroke.eot -------------------------------------------------------------------------------- /src/assets/fonts/Pe-icon-7-stroke.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/fonts/Pe-icon-7-stroke.ttf -------------------------------------------------------------------------------- /src/assets/fonts/Pe-icon-7-stroke.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/fonts/Pe-icon-7-stroke.woff -------------------------------------------------------------------------------- /src/assets/img/angular-red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/angular-red.png -------------------------------------------------------------------------------- /src/assets/img/angular2-logo-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/angular2-logo-white.png -------------------------------------------------------------------------------- /src/assets/img/angular2-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/angular2-logo.png -------------------------------------------------------------------------------- /src/assets/img/default-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/default-avatar.png -------------------------------------------------------------------------------- /src/assets/img/faces/face-0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-0.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-1.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-2.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-3.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-4.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-5.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-6.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/face-7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/face-7.jpg -------------------------------------------------------------------------------- /src/assets/img/faces/tim_vector.jpe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/faces/tim_vector.jpe -------------------------------------------------------------------------------- /src/assets/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/favicon.ico -------------------------------------------------------------------------------- /src/assets/img/full-screen-image-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/full-screen-image-3.jpg -------------------------------------------------------------------------------- /src/assets/img/loader-preview.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/loading-bubbles.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/img/mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/mask.png -------------------------------------------------------------------------------- /src/assets/img/new_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/new_logo.png -------------------------------------------------------------------------------- /src/assets/img/opt_lbd_angular_thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/opt_lbd_angular_thumbnail.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/sidebar-1.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/sidebar-2.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/sidebar-3.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/sidebar-4.jpg -------------------------------------------------------------------------------- /src/assets/img/sidebar-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/sidebar-5.jpg -------------------------------------------------------------------------------- /src/assets/img/tim_80x80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/assets/img/tim_80x80.png -------------------------------------------------------------------------------- /src/assets/sass/lbd/_alerts.scss: -------------------------------------------------------------------------------- 1 | .alert{ 2 | border: 0; 3 | border-radius: 0; 4 | color: #FFFFFF; 5 | padding: 10px 15px; 6 | font-size: 14px; 7 | 8 | .container &{ 9 | border-radius: 4px; 10 | 11 | } 12 | .navbar &{ 13 | border-radius: 0; 14 | left: 0; 15 | position: absolute; 16 | right: 0; 17 | top: 85px; 18 | width: 100%; 19 | z-index: 3; 20 | } 21 | .navbar:not(.navbar-transparent) &{ 22 | top: 70px; 23 | } 24 | 25 | span[data-notify="icon"]{ 26 | font-size: 30px; 27 | display: block; 28 | left: 15px; 29 | position: absolute; 30 | top: 50%; 31 | margin-top: -15px; 32 | } 33 | [data-notify="icon"][class*="pe-"] ~ [data-notify="message"]{ 34 | padding-left: 50px; 35 | } 36 | button.close{ 37 | position: absolute; 38 | right: 10px; 39 | top: 50%!important; 40 | margin-top: -13px; 41 | z-index: 1033; 42 | background-color: #FFFFFF; 43 | display: block; 44 | border-radius: 50%; 45 | opacity: .4; 46 | line-height: 11px; 47 | width: 25px; 48 | height: 25px; 49 | outline: 0 !important; 50 | text-align: center; 51 | padding: 3px; 52 | font-weight: 300; 53 | 54 | &:hover{ 55 | opacity: .55; 56 | } 57 | } 58 | 59 | .close ~ span{ 60 | display: block; 61 | max-width: 89%; 62 | } 63 | 64 | &[data-notify="container"]{ 65 | padding: 10px 10px 10px 20px; 66 | border-radius: $border-radius-base; 67 | } 68 | 69 | &.alert-with-icon{ 70 | padding-left: 65px; 71 | } 72 | } 73 | .alert-info{ 74 | background-color: $azure-navbar; 75 | } 76 | .alert-success { 77 | background-color: $green-navbar; 78 | } 79 | .alert-warning { 80 | background-color: $orange-navbar; 81 | } 82 | .alert-danger { 83 | background-color: $red-navbar; 84 | } 85 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_buttons.scss: -------------------------------------------------------------------------------- 1 | .btn{ 2 | border-width: $border-thick; 3 | background-color: $transparent-bg; 4 | font-weight: $font-weight-normal; 5 | 6 | @include opacity(.8); 7 | padding: $padding-base-vertical $padding-base-horizontal; 8 | 9 | @include btn-styles($default-color, $default-states-color); 10 | 11 | &:hover, 12 | &:focus{ 13 | @include opacity(1); 14 | outline: 0 !important; 15 | } 16 | &:active, 17 | &.active, 18 | .open > &.dropdown-toggle { 19 | @include box-shadow(none); 20 | outline: 0 !important; 21 | } 22 | 23 | &.btn-icon{ 24 | padding: $padding-base-vertical; 25 | } 26 | 27 | } 28 | 29 | // Apply the mixin to the buttons 30 | //.btn-default { @include btn-styles($default-color, $default-states-color); } 31 | .btn-primary { @include btn-styles($primary-color, $primary-states-color); } 32 | .btn-success { @include btn-styles($success-color, $success-states-color); } 33 | .btn-info { @include btn-styles($info-color, $info-states-color); } 34 | .btn-warning { @include btn-styles($warning-color, $warning-states-color); } 35 | .btn-danger { @include btn-styles($danger-color, $danger-states-color); } 36 | .btn-neutral { 37 | @include btn-styles($white-color, $white-color); 38 | 39 | &:active, 40 | &.active, 41 | .open > &.dropdown-toggle{ 42 | background-color: $white-color; 43 | color: $default-color; 44 | } 45 | 46 | &.btn-fill, 47 | &.btn-fill:hover, 48 | &.btn-fill:focus{ 49 | color: $default-color; 50 | } 51 | 52 | &.btn-simple:active, 53 | &.btn-simple.active{ 54 | background-color: transparent; 55 | } 56 | } 57 | 58 | .btn{ 59 | &:disabled, 60 | &[disabled], 61 | &.disabled{ 62 | @include opacity(.5); 63 | } 64 | } 65 | .btn-round{ 66 | border-width: $border-thin; 67 | border-radius: $btn-round-radius !important; 68 | padding: $padding-round-vertical $padding-round-horizontal; 69 | 70 | &.btn-icon{ 71 | padding: $padding-round-vertical; 72 | } 73 | } 74 | .btn-simple{ 75 | border: $none; 76 | font-size: $font-size-medium; 77 | padding: $padding-base-vertical $padding-base-horizontal; 78 | 79 | &.btn-icon{ 80 | padding: $padding-base-vertical; 81 | } 82 | } 83 | .btn-lg{ 84 | @include btn-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large); 85 | font-weight: $font-weight-normal; 86 | } 87 | .btn-sm{ 88 | @include btn-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small); 89 | } 90 | .btn-xs { 91 | @include btn-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $border-radius-small); 92 | } 93 | .btn-wd { 94 | min-width: 140px; 95 | } 96 | 97 | .btn-group.select{ 98 | width: 100%; 99 | } 100 | .btn-group.select .btn{ 101 | text-align: left; 102 | } 103 | .btn-group.select .caret{ 104 | position: absolute; 105 | top: 50%; 106 | margin-top: -1px; 107 | right: 8px; 108 | } 109 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_cards.scss: -------------------------------------------------------------------------------- 1 | .card{ 2 | border-radius: $border-radius-base; 3 | box-shadow: 0 1px 2px rgba(0,0,0,.05),0 0 0 1px rgba(63,63,68,.1); 4 | background-color: #FFFFFF; 5 | margin-bottom: 30px; 6 | 7 | .image{ 8 | width: 100%; 9 | overflow: hidden; 10 | height: 260px; 11 | border-radius: $border-radius-base $border-radius-base 0 0; 12 | position: relative; 13 | -webkit-transform-style: preserve-3d; 14 | -moz-transform-style: preserve-3d; 15 | transform-style: preserve-3d; 16 | 17 | img { 18 | width: 100%; 19 | } 20 | } 21 | .filter{ 22 | position: absolute; 23 | z-index: 2; 24 | background-color: rgba(0,0,0,.68); 25 | top: 0; 26 | left: 0; 27 | width: 100%; 28 | height: 100%; 29 | text-align: center; 30 | 31 | @include opacity(0); 32 | 33 | .btn{ 34 | @include vertical-align(); 35 | } 36 | } 37 | &:hover .filter{ 38 | @include opacity(1); 39 | } 40 | .btn-hover{ 41 | @include opacity(0); 42 | } 43 | &:hover .btn-hover{ 44 | @include opacity(1); 45 | } 46 | .content{ 47 | padding: 15px 15px 10px 15px; 48 | } 49 | .header{ 50 | padding: 15px 15px 0; 51 | } 52 | .category, 53 | label{ 54 | font-size: $font-size-base; 55 | font-weight: $font-weight-normal; 56 | color: $dark-gray; 57 | margin-bottom: 0px; 58 | 59 | i{ 60 | font-size: $font-paragraph; 61 | } 62 | } 63 | 64 | label{ 65 | font-size: $font-size-small; 66 | margin-bottom: 5px; 67 | text-transform: uppercase; 68 | } 69 | 70 | .title{ 71 | margin: $none; 72 | color: $black-color; 73 | font-weight: $font-weight-light; 74 | } 75 | .avatar{ 76 | width: 30px; 77 | height: 30px; 78 | overflow: hidden; 79 | border-radius: 50%; 80 | margin-right: 5px; 81 | } 82 | .description{ 83 | font-size: $font-size-base; 84 | color: #333; 85 | } 86 | .footer{ 87 | padding: 0; 88 | background-color: $transparent-bg; 89 | line-height: 30px; 90 | 91 | .legend{ 92 | padding: 5px 0; 93 | } 94 | 95 | hr{ 96 | margin-top: 5px; 97 | margin-bottom: 5px; 98 | } 99 | } 100 | .stats{ 101 | color: #a9a9a9; 102 | } 103 | .footer div{ 104 | display: inline-block; 105 | } 106 | 107 | .author{ 108 | font-size: $font-size-small; 109 | font-weight: $font-weight-bold; 110 | text-transform: uppercase; 111 | } 112 | .author i{ 113 | font-size: $font-size-base; 114 | } 115 | h6{ 116 | font-size: $font-size-small; 117 | margin: 0; 118 | } 119 | &.card-separator:after{ 120 | height: 100%; 121 | right: -15px; 122 | top: 0; 123 | width: 1px; 124 | background-color: $medium-gray; 125 | content: ""; 126 | position: absolute; 127 | } 128 | 129 | .ct-chart{ 130 | margin: 30px 0 30px; 131 | height: 245px; 132 | } 133 | 134 | .table{ 135 | tbody td:first-child, 136 | thead th:first-child{ 137 | padding-left: 15px; 138 | } 139 | 140 | tbody td:last-child, 141 | thead th:last-child{ 142 | padding-right: 15px; 143 | } 144 | } 145 | 146 | .alert{ 147 | border-radius: $border-radius-base; 148 | position: relative; 149 | 150 | &.alert-with-icon{ 151 | padding-left: 65px; 152 | } 153 | } 154 | } 155 | .card-user{ 156 | .image{ 157 | height: 110px; 158 | } 159 | .image-plain{ 160 | height: 0; 161 | margin-top: 110px; 162 | } 163 | .author{ 164 | text-align: center; 165 | text-transform: none; 166 | margin-top: -70px; 167 | } 168 | .avatar{ 169 | width: 124px; 170 | height: 124px; 171 | border: 5px solid #FFFFFF; 172 | position: relative; 173 | margin-bottom: 15px; 174 | 175 | &.border-gray{ 176 | border-color: #EEEEEE; 177 | } 178 | } 179 | .title{ 180 | line-height: 24px; 181 | } 182 | .content{ 183 | min-height: 240px; 184 | } 185 | } 186 | 187 | .card-user, 188 | .card-price{ 189 | .footer{ 190 | padding: 5px 15px 10px; 191 | } 192 | hr{ 193 | margin: 5px 15px; 194 | } 195 | } 196 | .card-plain{ 197 | background-color: transparent; 198 | box-shadow: none; 199 | border-radius: 0; 200 | 201 | .image{ 202 | border-radius: 4px; 203 | } 204 | } 205 | 206 | 207 | 208 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_chartist.scss: -------------------------------------------------------------------------------- 1 | @mixin ct-responsive-svg-container($width: 100%, $ratio: $ct-container-ratio) { 2 | display: block; 3 | position: relative; 4 | width: $width; 5 | 6 | &:before { 7 | display: block; 8 | float: left; 9 | content: ""; 10 | width: 0; 11 | height: 0; 12 | padding-bottom: $ratio * 100%; 13 | } 14 | 15 | &:after { 16 | content: ""; 17 | display: table; 18 | clear: both; 19 | } 20 | 21 | > svg { 22 | display: block; 23 | position: absolute; 24 | top: 0; 25 | left: 0; 26 | } 27 | } 28 | 29 | @mixin ct-align-justify($ct-text-align: $ct-text-align, $ct-text-justify: $ct-text-justify) { 30 | -webkit-box-align: $ct-text-align; 31 | -webkit-align-items: $ct-text-align; 32 | -ms-flex-align: $ct-text-align; 33 | align-items: $ct-text-align; 34 | -webkit-box-pack: $ct-text-justify; 35 | -webkit-justify-content: $ct-text-justify; 36 | -ms-flex-pack: $ct-text-justify; 37 | justify-content: $ct-text-justify; 38 | // Fallback to text-align for non-flex browsers 39 | @if($ct-text-justify == 'flex-start') { 40 | text-align: left; 41 | } @else if ($ct-text-justify == 'flex-end') { 42 | text-align: right; 43 | } @else { 44 | text-align: center; 45 | } 46 | } 47 | 48 | @mixin ct-flex() { 49 | // Fallback to block 50 | display: block; 51 | display: -webkit-box; 52 | display: -moz-box; 53 | display: -ms-flexbox; 54 | display: -webkit-flex; 55 | display: flex; 56 | } 57 | 58 | @mixin ct-chart-label($ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-text-line-height: $ct-text-line-height) { 59 | fill: $ct-text-color; 60 | color: $ct-text-color; 61 | font-size: $ct-text-size; 62 | line-height: $ct-text-line-height; 63 | } 64 | 65 | @mixin ct-chart-grid($ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray) { 66 | stroke: $ct-grid-color; 67 | stroke-width: $ct-grid-width; 68 | 69 | @if ($ct-grid-dasharray) { 70 | stroke-dasharray: $ct-grid-dasharray; 71 | } 72 | } 73 | 74 | @mixin ct-chart-point($ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape) { 75 | stroke-width: $ct-point-size; 76 | stroke-linecap: $ct-point-shape; 77 | } 78 | 79 | @mixin ct-chart-line($ct-line-width: $ct-line-width, $ct-line-dasharray: $ct-line-dasharray) { 80 | fill: none; 81 | stroke-width: $ct-line-width; 82 | 83 | @if ($ct-line-dasharray) { 84 | stroke-dasharray: $ct-line-dasharray; 85 | } 86 | } 87 | 88 | @mixin ct-chart-area($ct-area-opacity: $ct-area-opacity) { 89 | stroke: none; 90 | fill-opacity: $ct-area-opacity; 91 | } 92 | 93 | @mixin ct-chart-bar($ct-bar-width: $ct-bar-width) { 94 | fill: none; 95 | stroke-width: $ct-bar-width; 96 | } 97 | 98 | @mixin ct-chart-donut($ct-donut-width: $ct-donut-width) { 99 | fill: none; 100 | stroke-width: $ct-donut-width; 101 | } 102 | 103 | @mixin ct-chart-series-color($color) { 104 | .#{$ct-class-point}, .#{$ct-class-line}, .#{$ct-class-bar}, .#{$ct-class-slice-donut} { 105 | stroke: $color; 106 | } 107 | 108 | .#{$ct-class-slice-pie}, .#{$ct-class-area} { 109 | fill: $color; 110 | } 111 | } 112 | 113 | @mixin ct-chart($ct-container-ratio: $ct-container-ratio, $ct-text-color: $ct-text-color, $ct-text-size: $ct-text-size, $ct-grid-color: $ct-grid-color, $ct-grid-width: $ct-grid-width, $ct-grid-dasharray: $ct-grid-dasharray, $ct-point-size: $ct-point-size, $ct-point-shape: $ct-point-shape, $ct-line-width: $ct-line-width, $ct-bar-width: $ct-bar-width, $ct-donut-width: $ct-donut-width, $ct-series-names: $ct-series-names, $ct-series-colors: $ct-series-colors) { 114 | 115 | .#{$ct-class-label} { 116 | @include ct-chart-label($ct-text-color, $ct-text-size); 117 | } 118 | 119 | .#{$ct-class-chart-line} .#{$ct-class-label}, 120 | .#{$ct-class-chart-bar} .#{$ct-class-label} { 121 | @include ct-flex(); 122 | } 123 | 124 | .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { 125 | @include ct-align-justify(flex-end, flex-start); 126 | // Fallback for browsers that don't support foreignObjects 127 | text-anchor: start; 128 | } 129 | 130 | .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { 131 | @include ct-align-justify(flex-start, flex-start); 132 | // Fallback for browsers that don't support foreignObjects 133 | text-anchor: start; 134 | } 135 | 136 | .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} { 137 | @include ct-align-justify(flex-end, flex-end); 138 | // Fallback for browsers that don't support foreignObjects 139 | text-anchor: end; 140 | } 141 | 142 | .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} { 143 | @include ct-align-justify(flex-end, flex-start); 144 | // Fallback for browsers that don't support foreignObjects 145 | text-anchor: start; 146 | } 147 | 148 | .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { 149 | @include ct-align-justify(flex-end, center); 150 | // Fallback for browsers that don't support foreignObjects 151 | text-anchor: start; 152 | } 153 | 154 | .#{$ct-class-chart-bar} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { 155 | @include ct-align-justify(flex-start, center); 156 | // Fallback for browsers that don't support foreignObjects 157 | text-anchor: start; 158 | } 159 | 160 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-start} { 161 | @include ct-align-justify(flex-end, flex-start); 162 | // Fallback for browsers that don't support foreignObjects 163 | text-anchor: start; 164 | } 165 | 166 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-horizontal}.#{$ct-class-end} { 167 | @include ct-align-justify(flex-start, flex-start); 168 | // Fallback for browsers that don't support foreignObjects 169 | text-anchor: start; 170 | } 171 | 172 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-start} { 173 | //@include ct-chart-label($ct-text-color, $ct-text-size, center, $ct-vertical-text-justify); 174 | @include ct-align-justify(center, flex-end); 175 | // Fallback for browsers that don't support foreignObjects 176 | text-anchor: end; 177 | } 178 | 179 | .#{$ct-class-chart-bar}.#{$ct-class-horizontal-bars} .#{$ct-class-label}.#{$ct-class-vertical}.#{$ct-class-end} { 180 | @include ct-align-justify(center, flex-start); 181 | // Fallback for browsers that don't support foreignObjects 182 | text-anchor: end; 183 | } 184 | 185 | .#{$ct-class-grid} { 186 | @include ct-chart-grid($ct-grid-color, $ct-grid-width, $ct-grid-dasharray); 187 | } 188 | 189 | .#{$ct-class-point} { 190 | @include ct-chart-point($ct-point-size, $ct-point-shape); 191 | } 192 | 193 | .#{$ct-class-line} { 194 | @include ct-chart-line($ct-line-width); 195 | } 196 | 197 | .#{$ct-class-area} { 198 | @include ct-chart-area(); 199 | } 200 | 201 | .#{$ct-class-bar} { 202 | @include ct-chart-bar($ct-bar-width); 203 | } 204 | 205 | .#{$ct-class-slice-donut} { 206 | @include ct-chart-donut($ct-donut-width); 207 | } 208 | 209 | @if $ct-include-colored-series { 210 | @for $i from 0 to length($ct-series-names) { 211 | .#{$ct-class-series}-#{nth($ct-series-names, $i + 1)} { 212 | $color: nth($ct-series-colors, $i + 1); 213 | 214 | @include ct-chart-series-color($color); 215 | } 216 | } 217 | } 218 | } 219 | 220 | @if $ct-include-classes { 221 | @include ct-chart(); 222 | 223 | @if $ct-include-alternative-responsive-containers { 224 | @for $i from 0 to length($ct-scales-names) { 225 | .#{nth($ct-scales-names, $i + 1)} { 226 | @include ct-responsive-svg-container($ratio: nth($ct-scales, $i + 1)); 227 | } 228 | } 229 | } 230 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/_checkbox-radio-switch.scss: -------------------------------------------------------------------------------- 1 | /* Checkbox and radio */ 2 | .checkbox, 3 | .radio { 4 | margin-bottom: 12px; 5 | } 6 | 7 | .checkbox label, 8 | .radio label { 9 | display: inline-block; 10 | position: relative; 11 | cursor: pointer; 12 | padding-left: 24px; 13 | margin-bottom: 0; 14 | } 15 | 16 | .checkbox label::before, 17 | .checkbox label::after{ 18 | font-family: 'FontAwesome'; 19 | content: "\f096"; 20 | display: inline-block; 21 | position: absolute; 22 | width: 20px; 23 | height: 20px; 24 | left: 0; 25 | cursor: pointer; 26 | line-height: 20px; 27 | font-size: 20px; 28 | -webkit-font-smoothing: antialiased; 29 | -moz-osx-font-smoothing: grayscale; 30 | top: 0px; 31 | color: $medium-gray; 32 | transition: color 0.2s linear; 33 | padding: 1px; 34 | } 35 | 36 | .checkbox label::after{ 37 | content: ""; 38 | text-align: center; 39 | opacity: 1; 40 | left: -1px; 41 | color: $medium-gray; 42 | } 43 | 44 | .checkbox input[type="checkbox"], 45 | .radio input[type="radio"] { 46 | opacity: 0; 47 | margin-left: 0; 48 | } 49 | 50 | .checkbox input[type="checkbox"]:checked + label::after, 51 | .checkbox input[type="checkbox"]:not(:disabled):hover + label::after{ 52 | font-family: 'FontAwesome'; 53 | content: "\f046"; 54 | } 55 | 56 | .checkbox input[type="checkbox"]:checked + label::after{ 57 | color: $color-azure; 58 | } 59 | 60 | 61 | 62 | .checkbox input[type="checkbox"]:not(:disabled):hover + label::before, 63 | .checkbox input[type="checkbox"]:checked + label::before{ 64 | opacity: 0; 65 | } 66 | 67 | .checkbox input[type="checkbox"]:disabled + label, 68 | .radio input[type="radio"]:disabled + label, 69 | .checkbox input[type="checkbox"]:disabled:checked + label::after { 70 | color: $medium-gray; 71 | } 72 | 73 | .checkbox input[type="checkbox"]:disabled + label::before, 74 | .checkbox input[type="checkbox"]:disabled + label::after{ 75 | cursor: not-allowed; 76 | } 77 | 78 | .checkbox input[type="checkbox"]:disabled + label, 79 | .radio input[type="radio"]:disabled + label{ 80 | cursor: not-allowed; 81 | } 82 | 83 | .checkbox.checkbox-circle label::before { 84 | border-radius: 50%; 85 | } 86 | 87 | .checkbox.checkbox-inline { 88 | padding-left:0; 89 | } 90 | 91 | .checkbox-primary input[type="checkbox"]:checked + label::before { 92 | background-color: #428bca; 93 | border-color: #428bca; 94 | } 95 | 96 | .checkbox-primary input[type="checkbox"]:checked + label::after { 97 | color: #fff; 98 | } 99 | 100 | .checkbox-danger input[type="checkbox"]:checked + label::before { 101 | background-color: #d9534f; 102 | border-color: #d9534f; 103 | } 104 | 105 | .checkbox-danger input[type="checkbox"]:checked + label::after { 106 | color: #fff; 107 | } 108 | 109 | .checkbox-info input[type="checkbox"]:checked + label::before { 110 | background-color: #5bc0de; 111 | border-color: #5bc0de; 112 | } 113 | 114 | .checkbox-info input[type="checkbox"]:checked + label::after { 115 | color: #fff; 116 | } 117 | 118 | .checkbox-warning input[type="checkbox"]:checked + label::before { 119 | background-color: #f0ad4e; 120 | border-color: #f0ad4e; 121 | } 122 | 123 | .checkbox-warning input[type="checkbox"]:checked + label::after { 124 | color: #fff; 125 | } 126 | 127 | .checkbox-success input[type="checkbox"]:checked + label::before { 128 | background-color: #5cb85c; 129 | border-color: #5cb85c; 130 | } 131 | 132 | .checkbox-success input[type="checkbox"]:checked + label::after { 133 | color: #fff; 134 | } 135 | 136 | .radio label::before, 137 | .radio label::after { 138 | font-family: 'FontAwesome'; 139 | content: "\f10c"; 140 | font-size: 20px; 141 | height: 20px; 142 | width: 20px; 143 | -webkit-font-smoothing: antialiased; 144 | -moz-osx-font-smoothing: grayscale; 145 | display: inline-block; 146 | position: absolute; 147 | line-height: 20px; 148 | left: 0; 149 | top: 0; 150 | color: $medium-gray; 151 | padding: 1px; 152 | transition: color 0.2s linear; 153 | } 154 | 155 | .radio input[type="radio"]:not(:disabled):hover + label::after, 156 | .radio input[type="radio"]:checked + label::after { 157 | font-family: 'FontAwesome'; 158 | content: "\f192"; 159 | color: $medium-gray; 160 | } 161 | 162 | .radio input[type="radio"]:checked:not(:disabled):hover + label::after, 163 | .radio input[type="radio"]:checked + label::after{ 164 | color: $color-azure; 165 | } 166 | 167 | 168 | .radio input[type="radio"]:disabled + label { 169 | color: #ddd; 170 | } 171 | 172 | .radio input[type="radio"]:disabled + label::before, 173 | .radio input[type="radio"]:disabled + label::after { 174 | color: #ddd; 175 | } 176 | 177 | .radio.radio-inline { 178 | margin-top: 0; 179 | } 180 | 181 | // .radio-primary input[type="radio"] + label::after { 182 | // background-color: #428bca; 183 | // } 184 | // 185 | // .radio-primary input[type="radio"]:checked + label::before { 186 | // border-color: #428bca; 187 | // } 188 | // 189 | // .radio-primary input[type="radio"]:checked + label::after { 190 | // background-color: #428bca; 191 | // } 192 | // 193 | // .radio-danger input[type="radio"] + label::after { 194 | // background-color: #d9534f; 195 | // } 196 | // 197 | // .radio-danger input[type="radio"]:checked + label::before { 198 | // border-color: #d9534f; 199 | // } 200 | // 201 | // .radio-danger input[type="radio"]:checked + label::after { 202 | // background-color: #d9534f; 203 | // } 204 | // 205 | // .radio-info input[type="radio"] + label::after { 206 | // background-color: #5bc0de; 207 | // } 208 | // 209 | // .radio-info input[type="radio"]:checked + label::before { 210 | // border-color: #5bc0de; 211 | // } 212 | // 213 | // .radio-info input[type="radio"]:checked + label::after { 214 | // background-color: #5bc0de; 215 | // } 216 | // 217 | // .radio-warning input[type="radio"] + label::after { 218 | // background-color: #f0ad4e; 219 | // } 220 | // 221 | // .radio-warning input[type="radio"]:checked + label::before { 222 | // border-color: #f0ad4e; 223 | // } 224 | // 225 | // .radio-warning input[type="radio"]:checked + label::after { 226 | // background-color: #f0ad4e; 227 | // } 228 | // 229 | // .radio-success input[type="radio"] + label::after { 230 | // background-color: #5cb85c; 231 | // } 232 | // 233 | // .radio-success input[type="radio"]:checked + label::before { 234 | // border-color: #5cb85c; 235 | // } 236 | // 237 | // .radio-success input[type="radio"]:checked + label::after { 238 | // background-color: #5cb85c; 239 | // } 240 | 241 | 242 | 243 | 244 | 245 | /* ============================================================ 246 | * bootstrapSwitch v1.3 by Larentis Mattia @spiritualGuru 247 | * http://www.larentis.eu/switch/ 248 | * ============================================================ 249 | * Licensed under the Apache License, Version 2.0 250 | * http://www.apache.org/licenses/LICENSE-2.0 251 | * ============================================================ */ 252 | .has-switch { 253 | border-radius: 30px; 254 | cursor: pointer; 255 | display: inline-block; 256 | line-height: 1.72222; 257 | overflow: hidden; 258 | position: relative; 259 | text-align: left; 260 | width: 60px; 261 | 262 | -webkit-user-select: none; 263 | -moz-user-select: none; 264 | -ms-user-select: none; 265 | -o-user-select: none; 266 | user-select: none; 267 | 268 | /* this code is for fixing safari bug with hidden overflow for border-radius */ 269 | -webkit-mask: url('/img/mask.png') 0 0 no-repeat; 270 | -webkit-mask-size: 60px 24px; 271 | mask: url('/img/mask.png') 0 0 no-repeat; 272 | } 273 | .has-switch.deactivate { 274 | opacity: 0.5; 275 | filter: alpha(opacity=50); 276 | cursor: default !important; 277 | } 278 | .has-switch.deactivate label, 279 | .has-switch.deactivate span { 280 | cursor: default !important; 281 | } 282 | .has-switch > div { 283 | position: relative; 284 | top: 0; 285 | width: 100px; 286 | } 287 | .has-switch > div.switch-animate { 288 | -webkit-transition: left 0.25s ease-out; 289 | transition: left 0.25s ease-out; 290 | } 291 | .has-switch > div.switch-off { 292 | left: -35px; 293 | } 294 | 295 | .has-switch > div.switch-on { 296 | left: 0; 297 | } 298 | .has-switch > div label { 299 | background-color: #FFFFFF; 300 | @include icon-gradient (rgba(255,255,255,1), rgba(241,241,242,1)); 301 | 302 | box-shadow: 0 1px 1px #FFFFFF inset, 0 1px 1px rgba(0, 0, 0, 0.25); 303 | cursor: pointer; 304 | } 305 | .has-switch input[type=checkbox] { 306 | display: none; 307 | } 308 | .has-switch span { 309 | /* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2) inset; */ 310 | cursor: pointer; 311 | float: left; 312 | font-size: 11px; 313 | font-weight: 400; 314 | height: 24px; 315 | line-height: 15px; 316 | margin: 0; 317 | padding-bottom: 6px; 318 | padding-top: 5px; 319 | position: relative; 320 | text-align: center; 321 | text-indent: -10px; 322 | width: 50%; 323 | z-index: 1; 324 | -webkit-transition: 0.25s ease-out; 325 | transition: 0.25s ease-out; 326 | } 327 | .has-switch span.switch-left { 328 | background-color: $info-color; 329 | border-left: 1px solid rgba(0, 0, 0, 0); 330 | border-radius: 30px 0 0 30px; 331 | color: #FFFFFF; 332 | } 333 | .has-switch .switch-off span.switch-left{ 334 | background-color: $medium-gray; 335 | } 336 | .has-switch span.switch-right { 337 | border-radius: 0 30px 30px 0; 338 | background-color: $info-color; 339 | color: #ffffff; 340 | text-indent: 1px; 341 | } 342 | .has-switch .switch-off span.switch-right{ 343 | background-color: $medium-gray; 344 | } 345 | 346 | .has-switch label { 347 | border-radius: 12px; 348 | float: left; 349 | height: 22px; 350 | margin: 1px -13px; 351 | padding: 0; 352 | position: relative; 353 | transition: all 0.25s ease-out 0s; 354 | vertical-align: middle; 355 | width: 22px; 356 | z-index: 100; 357 | -webkit-transition: 0.25s ease-out; 358 | transition: 0.25s ease-out; 359 | } 360 | .has-switch .switch-on .fa-check:before{ 361 | margin-left: 10px; 362 | } 363 | .has-switch:hover .switch-on label{ 364 | margin: 1px -17px; 365 | width: 26px; 366 | } 367 | .has-switch:hover .switch-off label{ 368 | margin: 1px -13px; 369 | width: 26px; 370 | } 371 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_dropdown.scss: -------------------------------------------------------------------------------- 1 | .dropdown-menu{ 2 | visibility: hidden; 3 | margin: 0; 4 | padding: 0; 5 | border-radius: $border-radius-extreme; 6 | display: block; 7 | z-index: 9000; 8 | position: absolute; 9 | 10 | @include opacity(0); 11 | @include box-shadow($dropdown-shadow); 12 | 13 | .open &{ 14 | @include opacity(1); 15 | visibility: visible; 16 | } 17 | .select &{ 18 | border-radius: $border-radius-bottom; 19 | @include box-shadow(none); 20 | @include transform-origin($select-coordinates); 21 | @include transform-scale(1); 22 | @include transition($fast-transition-time, $transition-linear); 23 | margin-top: -20px; 24 | } 25 | .select.open &{ 26 | margin-top: -1px; 27 | } 28 | 29 | > li > a { 30 | padding: $padding-base-vertical $padding-base-horizontal; 31 | color: #333333; 32 | 33 | img{ 34 | margin-top: -3px; 35 | } 36 | } 37 | > li > a:focus{ 38 | outline: 0 !important; 39 | } 40 | 41 | .btn-group.select &{ 42 | min-width: 100%; 43 | } 44 | 45 | > li:first-child > a{ 46 | border-top-left-radius: $border-radius-extreme; 47 | border-top-right-radius: $border-radius-extreme; 48 | } 49 | 50 | > li:last-child > a{ 51 | border-bottom-left-radius: $border-radius-extreme; 52 | border-bottom-right-radius: $border-radius-extreme; 53 | } 54 | 55 | .select & > li:first-child > a{ 56 | border-radius: 0; 57 | border-bottom: 0 none; 58 | } 59 | 60 | > li > a:hover, 61 | > li > a:focus { 62 | background-color: $smoke-bg; 63 | color: #333333; 64 | opacity: 1; 65 | text-decoration: none; 66 | } 67 | 68 | &.dropdown-blue > li > a:hover, 69 | &.dropdown-blue > li > a:focus{ 70 | background-color: $light-blue; 71 | } 72 | &.dropdown-azure > li > a:hover, 73 | &.dropdown-azure > li > a:focus{ 74 | background-color: $light-azure; 75 | } 76 | &.ct-green > li > a:hover, 77 | &.ct-green > li > a:focus{ 78 | background-color: $light-green; 79 | } 80 | &.dropdown-orange > li > a:hover, 81 | &.dropdown-orange > li > a:focus{ 82 | background-color: $light-orange; 83 | } 84 | &.dropdown-red > li > a:hover, 85 | &.dropdown-red > li > a:focus{ 86 | background-color: $light-red; 87 | } 88 | 89 | } 90 | 91 | .dropdown-with-icons{ 92 | > li > a{ 93 | padding-left: 0px; 94 | line-height: 28px; 95 | } 96 | i{ 97 | text-align: center; 98 | line-height: 28px; 99 | float: left; 100 | 101 | &[class^="pe-"]{ 102 | font-size: 24px; 103 | width: 46px; 104 | } 105 | &[class^="fa"]{ 106 | font-size: 14px; 107 | width: 38px; 108 | } 109 | } 110 | } 111 | 112 | //fix bug for the select items in btn-group 113 | .btn-group.select{ 114 | overflow: hidden; 115 | } 116 | .btn-group.select.open{ 117 | overflow: visible; 118 | } 119 | 120 | 121 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_footers.scss: -------------------------------------------------------------------------------- 1 | .footer{ 2 | background-color: $white-color; 3 | line-height: $line-height; 4 | 5 | nav > ul{ 6 | list-style: none; 7 | margin: 0; 8 | padding: 0; 9 | font-weight: normal; 10 | 11 | a:not(.btn){ 12 | color: $dark-gray; 13 | display: block; 14 | margin-bottom: 3px; 15 | &:hover, 16 | &:focus{ 17 | color: $default-states-color; 18 | } 19 | } 20 | } 21 | .social-area{ 22 | padding: 15px 0; 23 | h5{ 24 | padding-bottom: 15px; 25 | } 26 | } 27 | .social-area > a:not(.btn){ 28 | color: $dark-gray; 29 | display: inline-block; 30 | vertical-align: top; 31 | padding: $padding-social-a; 32 | font-size: $font-size-large-navbar; 33 | font-weight: normal; 34 | line-height: $line-height; 35 | text-align: center; 36 | &:hover, 37 | &:focus{ 38 | color: $default-states-color; 39 | } 40 | } 41 | .copyright{ 42 | color: $default-states-color; 43 | padding: 10px 15px; 44 | margin: 10px 3px; 45 | line-height: 20px; 46 | font-size: $font-size-base; 47 | } 48 | hr{ 49 | border-color: $medium-gray; 50 | } 51 | .title{ 52 | color: $default-states-color; 53 | } 54 | } 55 | 56 | .footer-default{ 57 | background-color: $smoke-bg; 58 | } 59 | 60 | .footer:not(.footer-big){ 61 | nav > ul{ 62 | font-size: $font-size-base; 63 | li{ 64 | margin-left: 20px; 65 | float: left; 66 | } 67 | a{ 68 | padding: 10px 0px; 69 | margin: 10px 10px 10px 0px; 70 | } 71 | } 72 | } 73 | 74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_inputs.scss: -------------------------------------------------------------------------------- 1 | .form-control::-moz-placeholder{ 2 | @include placeholder($medium-gray,1); 3 | } 4 | .form-control:-moz-placeholder{ 5 | @include placeholder($medium-gray,1); 6 | } 7 | .form-control::-webkit-input-placeholder{ 8 | @include placeholder($medium-gray,1); 9 | } 10 | .form-control:-ms-input-placeholder{ 11 | @include placeholder($medium-gray,1); 12 | } 13 | 14 | .form-control { 15 | background-color: $white-bg; 16 | border: 1px solid $light-gray; 17 | border-radius: $border-radius-base; 18 | color: #565656; 19 | @include input-size($padding-base-vertical, $padding-base-horizontal - 4, $height-base); 20 | @include box-shadow(none); 21 | 22 | &:focus{ 23 | background-color: $white-bg; 24 | border: 1px solid $medium-dark-gray; 25 | @include box-shadow(none); 26 | outline: 0 !important; 27 | color: #333333; 28 | } 29 | 30 | .has-success &, 31 | .has-error &, 32 | .has-success &:focus, 33 | .has-error &:focus{ 34 | border-color: $light-gray; 35 | @include box-shadow(none); 36 | } 37 | 38 | .has-success &{ 39 | color: $success-color; 40 | } 41 | .has-success &:focus{ 42 | border-color: $success-color; 43 | } 44 | .has-error &{ 45 | color: $danger-color; 46 | } 47 | .has-error &:focus{ 48 | border-color: $danger-color; 49 | } 50 | 51 | & + .form-control-feedback{ 52 | border-radius: $border-radius-large; 53 | font-size: $font-size-base; 54 | margin-top: -7px; 55 | position: absolute; 56 | right: 10px; 57 | top: 50%; 58 | vertical-align: middle; 59 | } 60 | 61 | .open &{ 62 | border-radius: $border-radius-base $border-radius-base 0 0; 63 | border-bottom-color: transparent; 64 | } 65 | } 66 | 67 | .input-lg{ 68 | height: 55px; 69 | padding: $padding-large-vertical $padding-large-horizontal; 70 | } 71 | 72 | .has-error{ 73 | .form-control-feedback{ 74 | color: $danger-color; 75 | } 76 | } 77 | .has-success{ 78 | .form-control-feedback{ 79 | color: $success-color 80 | } 81 | } 82 | 83 | 84 | .input-group-addon { 85 | background-color: $white-color; 86 | border: 1px solid $light-gray; 87 | border-radius: $border-radius-base; 88 | 89 | .has-success &, 90 | .has-error &{ 91 | background-color: $white-color; 92 | border: 1px solid $light-gray; 93 | } 94 | .has-error .form-control:focus + &{ 95 | border-color: $danger-color; 96 | color: $danger-color; 97 | } 98 | .has-success .form-control:focus + &{ 99 | border-color: $success-color; 100 | color: $success-color; 101 | } 102 | .form-control:focus + &, 103 | .form-control:focus ~ &{ 104 | background-color: $white-color; 105 | border-color: $dark-gray; 106 | } 107 | } 108 | 109 | .input-group .form-control:first-child, 110 | .input-group-addon:first-child, 111 | .input-group-btn:first-child > .dropdown-toggle, 112 | .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { 113 | border-right: 0 none; 114 | } 115 | .input-group .form-control:last-child, 116 | .input-group-addon:last-child, 117 | .input-group-btn:last-child > .dropdown-toggle, 118 | .input-group-btn:first-child > .btn:not(:first-child) { 119 | border-left: 0 none; 120 | } 121 | .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { 122 | background-color: $smoke-bg; 123 | color: $default-color; 124 | cursor: not-allowed; 125 | } 126 | 127 | .input-group-btn .btn{ 128 | border-width: $border-thin; 129 | padding: $padding-round-vertical $padding-base-horizontal; 130 | } 131 | .input-group-btn .btn-default:not(.btn-fill){ 132 | border-color: $medium-gray; 133 | } 134 | 135 | .input-group-btn:last-child > .btn{ 136 | margin-left: 0; 137 | } 138 | 139 | .input-group-focus .input-group-addon{ 140 | border-color: $dark-gray; 141 | } 142 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_misc.scss: -------------------------------------------------------------------------------- 1 | /* General overwrite */ 2 | body, 3 | .wrapper{ 4 | min-height: 100vh; 5 | position: relative; 6 | } 7 | a{ 8 | color: $info-color; 9 | 10 | &:hover, &:focus{ 11 | color: $info-states-color; 12 | text-decoration: none; 13 | } 14 | } 15 | 16 | a:focus, a:active, 17 | button::-moz-focus-inner, 18 | input::-moz-focus-inner, 19 | input[type="reset"]::-moz-focus-inner, 20 | input[type="button"]::-moz-focus-inner, 21 | input[type="submit"]::-moz-focus-inner, 22 | select::-moz-focus-inner, 23 | input[type="file"] > input[type="button"]::-moz-focus-inner{ 24 | outline:0; 25 | } 26 | .ui-slider-handle:focus, 27 | .navbar-toggle, 28 | input:focus { 29 | outline : 0 !important; 30 | } 31 | 32 | /* Animations */ 33 | .form-control, 34 | .input-group-addon, 35 | .tagsinput, 36 | .navbar, 37 | .navbar .alert{ 38 | @include transition($general-transition-time, $transition-linear); 39 | } 40 | 41 | .table > tbody > tr .td-actions .btn{ 42 | @include transition($fast-transition-time, $transition-ease-in); 43 | } 44 | 45 | .btn{ 46 | @include transition($ultra-fast-transition-time, $transition-ease-in); 47 | } 48 | .fa{ 49 | width: 18px; 50 | text-align: center; 51 | } 52 | .margin-top{ 53 | margin-top: 50px; 54 | } 55 | 56 | .wrapper{ 57 | position: relative; 58 | top: 0; 59 | height: 100vh; 60 | } 61 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_mixins.scss: -------------------------------------------------------------------------------- 1 | //Utilities 2 | 3 | @import "mixins/transparency"; 4 | @import "mixins/vendor-prefixes"; 5 | 6 | 7 | //Components 8 | 9 | @import "mixins/buttons"; 10 | @import "mixins/inputs"; 11 | @import "mixins/labels"; 12 | @import "mixins/tabs"; 13 | 14 | @import "mixins/navbars"; 15 | @import "mixins/icons"; 16 | @import "mixins/social-buttons"; 17 | 18 | @import "mixins/morphing-buttons"; 19 | 20 | @import "mixins/cards"; 21 | 22 | @import "mixins/chartist"; -------------------------------------------------------------------------------- /src/assets/sass/lbd/_navbars.scss: -------------------------------------------------------------------------------- 1 | .nav { 2 | > li{ 3 | > a:hover, 4 | > a:focus{ 5 | background-color: transparent; 6 | } 7 | a{ 8 | p{ 9 | margin-bottom: 0; 10 | } 11 | } 12 | } 13 | } 14 | .navbar{ 15 | border: $none; 16 | font-size: $font-size-navbar; 17 | border-radius: 0; 18 | 19 | .navbar-brand { 20 | font-weight: $font-weight-normal; 21 | margin: $navbar-margin-brand; 22 | padding: $navbar-padding-brand; 23 | font-size: $font-size-large-navbar; 24 | } 25 | .navbar-nav{ 26 | > li > a { 27 | padding: $navbar-padding-a; 28 | margin: $navbar-margin-a; 29 | position: relative; 30 | } 31 | > li > a.btn{ 32 | margin: $navbar-margin-a-btn; 33 | padding: $padding-base-vertical $padding-base-horizontal; 34 | } 35 | > li > a.btn-round{ 36 | margin: $navbar-margin-a-btn-round; 37 | } 38 | > li > a [class^="fa"]{ 39 | font-size: $font-size-large + 1; 40 | position: relative; 41 | line-height: 16px; 42 | top: 1px; 43 | } 44 | 45 | .notification{ 46 | position: absolute; 47 | background-color: #FB404B; 48 | text-align: center; 49 | border-radius: 10px; 50 | min-width: 18px; 51 | padding: 0 5px; 52 | height: 18px; 53 | font-size: 12px; 54 | color: #FFFFFF; 55 | font-weight: bold; 56 | line-height: 18px; 57 | top: 0px; 58 | left: 7px; 59 | } 60 | } 61 | .btn{ 62 | margin: $navbar-margin-btn; 63 | font-size: $font-size-base; 64 | } 65 | .btn-simple{ 66 | font-size: $font-size-medium; 67 | } 68 | .caret{ 69 | // @include center-item(); 70 | } 71 | 72 | &.fixed{ 73 | width: calc(100% - $sidebar-width); 74 | right: 0; 75 | left: auto; 76 | border-radius: 0; 77 | } 78 | 79 | } 80 | 81 | .navbar-nav > li > .dropdown-menu{ 82 | border-radius: $border-radius-extreme; 83 | margin-top: -5px; 84 | } 85 | 86 | .navbar-transparent, [class*="navbar-ct"]{ 87 | .navbar-brand{ 88 | color: $white-color; 89 | @include opacity(.9); 90 | 91 | &:focus, 92 | &:hover{ 93 | background-color: transparent; 94 | @include opacity(1); 95 | } 96 | } 97 | 98 | .navbar-nav{ 99 | > li > a:not(.btn){ 100 | color: $white-color; 101 | border-color: $white-color; 102 | @include opacity(0.8); 103 | } 104 | > .active > a:not(.btn), 105 | > .active > a:hover:not(.btn), 106 | > .active > a:focus:not(.btn), 107 | > li > a:hover:not(.btn), 108 | > li > a:focus:not(.btn){ 109 | background-color: transparent; 110 | border-radius: 3px; 111 | color: $white-color; 112 | @include opacity(1); 113 | } 114 | .nav > li > a.btn:hover{ 115 | background-color: transparent; 116 | } 117 | 118 | > .dropdown > a .caret, 119 | > .dropdown > a:hover .caret, 120 | > .dropdown > a:focus .caret{ 121 | border-bottom-color: $white-color; 122 | border-top-color: $white-color; 123 | } 124 | 125 | > .open > a, 126 | > .open > a:hover, 127 | > .open > a:focus { 128 | background-color: transparent; 129 | color: $white-color; 130 | @include opacity(1); 131 | } 132 | } 133 | 134 | .btn-default{ 135 | color: $white-color; 136 | border-color: $white-color; 137 | } 138 | .btn-default.btn-fill{ 139 | color: $dark-gray; 140 | background-color: $white-color; 141 | @include opacity(.9); 142 | } 143 | .btn-default.btn-fill:hover, 144 | .btn-default.btn-fill:focus, 145 | .btn-default.btn-fill:active, 146 | .btn-default.btn-fill.active, 147 | .open .dropdown-toggle.btn-fill.btn-default{ 148 | border-color: $white-color; 149 | @include opacity(1); 150 | } 151 | 152 | } 153 | .navbar-transparent{ 154 | .dropdown-menu .divider{ 155 | background-color: rgba($white-color,.2); 156 | } 157 | } 158 | 159 | .nav-open .nav .caret{ 160 | border-bottom-color: $white-color; 161 | border-top-color: $white-color; 162 | } 163 | 164 | .navbar-default { 165 | background-color: $white-navbar; 166 | border-bottom: 1px solid rgba(0, 0, 0, 0.1); 167 | 168 | .navbar-nav{ 169 | > li > a:not(.btn){ 170 | color: $dark-gray; 171 | } 172 | 173 | > .active > a, 174 | > .active > a:not(.btn):hover, 175 | > .active > a:not(.btn):focus, 176 | > li > a:not(.btn):hover, 177 | > li > a:not(.btn):focus { 178 | background-color: transparent; 179 | border-radius: 3px; 180 | color: $info-color; 181 | @include opacity(1); 182 | } 183 | 184 | > .dropdown > a:hover .caret, 185 | > .dropdown > a:focus .caret { 186 | border-bottom-color: $info-color; 187 | border-top-color: $info-color; 188 | 189 | } 190 | 191 | > .open > a, 192 | > .open > a:hover, 193 | > .open > a:focus{ 194 | background-color: transparent; 195 | color: $info-color; 196 | } 197 | 198 | .navbar-toggle:hover,.navbar-toggle:focus { 199 | background-color: transparent; 200 | } 201 | 202 | } 203 | 204 | &:not(.navbar-transparent) .btn-default:hover{ 205 | color: $info-color; 206 | border-color: $info-color; 207 | } 208 | &:not(.navbar-transparent) .btn-neutral, 209 | &:not(.navbar-transparent) .btn-neutral:hover, 210 | &:not(.navbar-transparent) .btn-neutral:active{ 211 | color: $dark-gray; 212 | } 213 | } 214 | 215 | /* Navbar with icons */ 216 | 217 | .navbar-icons{ 218 | &.navbar .navbar-brand{ 219 | margin-top: 12px; 220 | margin-bottom: 12px; 221 | } 222 | .navbar-nav{ 223 | > li > a{ 224 | text-align: center; 225 | padding: $navbar-padding-a-icons; 226 | margin: $navbar-margin-a-icons; 227 | } 228 | 229 | [class^="pe"] { 230 | font-size: 30px; 231 | position: relative; 232 | } 233 | p { 234 | margin: 3px 0 0; 235 | } 236 | } 237 | } 238 | 239 | .navbar-form{ 240 | @include box-shadow(none); 241 | .form-control{ 242 | @include light-form(); 243 | height: 22px; 244 | font-size: $font-size-navbar; 245 | line-height: $line-height-general; 246 | color: $light-gray; 247 | } 248 | .navbar-transparent & .form-control, 249 | [class*="navbar-ct"] & .form-control{ 250 | color: $white-color; 251 | border: $none; 252 | border-bottom: 1px solid rgba($white-color,.6); 253 | } 254 | 255 | } 256 | 257 | .navbar-ct-blue{ 258 | @include navbar-color($blue-navbar); 259 | } 260 | .navbar-ct-azure{ 261 | @include navbar-color($azure-navbar); 262 | } 263 | .navbar-ct-green{ 264 | @include navbar-color($green-navbar); 265 | } 266 | .navbar-ct-orange{ 267 | @include navbar-color($orange-navbar); 268 | } 269 | .navbar-ct-red{ 270 | @include navbar-color($red-navbar); 271 | } 272 | 273 | .navbar-transparent{ 274 | padding-top: 15px; 275 | background-color: transparent; 276 | border-bottom: 1px solid transparent; 277 | } 278 | 279 | .navbar-toggle{ 280 | margin-top: 19px; 281 | margin-bottom: 19px; 282 | border: $none; 283 | 284 | .icon-bar { 285 | background-color: $white-color; 286 | } 287 | .navbar-collapse, 288 | .navbar-form { 289 | border-color: transparent; 290 | } 291 | 292 | &.navbar-default .navbar-toggle:hover, 293 | &.navbar-default .navbar-toggle:focus { 294 | background-color: transparent; 295 | } 296 | } 297 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_sidebar-and-main-panel.scss: -------------------------------------------------------------------------------- 1 | .sidebar, 2 | .bootstrap-navbar{ 3 | position: absolute; 4 | top: 0; 5 | bottom: 0; 6 | left: 0; 7 | width: 260px; 8 | display: block; 9 | z-index: 5; 10 | color: #fff; 11 | font-weight: 200; 12 | background-size: cover; 13 | background-position: center center; 14 | 15 | .sidebar-wrapper{ 16 | position: relative; 17 | max-height: calc(100vh - 75px); 18 | min-height: 100%; 19 | overflow: auto; 20 | width: 260px; 21 | z-index: 4; 22 | 23 | padding-bottom: 75px; 24 | 25 | .dropdown .dropdown-backdrop{ 26 | display: none !important; 27 | } 28 | } 29 | 30 | .sidebar-background{ 31 | position: absolute; 32 | z-index: 1; 33 | height: 100%; 34 | width: 100%; 35 | display: block; 36 | top: 0; 37 | left: 0; 38 | background-size: cover; 39 | background-position: center center; 40 | } 41 | 42 | .logo{ 43 | padding: $navbar-padding-a; 44 | border-bottom: 1px solid rgba(255, 255, 255, 0.2); 45 | 46 | p{ 47 | float: left; 48 | font-size: 20px; 49 | margin: 10px 10px; 50 | color: $white-color; 51 | line-height: 20px; 52 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 53 | } 54 | 55 | .simple-text{ 56 | text-transform: uppercase; 57 | padding: $padding-small-vertical $padding-zero; 58 | display: block; 59 | font-size: $font-size-large; 60 | color: $white-color; 61 | text-align: left; 62 | font-weight: $font-weight-normal; 63 | line-height: 30px; 64 | } 65 | } 66 | .logo-img{ 67 | width: 30px; 68 | display: inline-block; 69 | max-height: 30px; 70 | margin-right: 10px; 71 | 72 | img{ 73 | width: 35px; 74 | top: 11px; 75 | position: absolute; 76 | } 77 | } 78 | 79 | .logo-tim{ 80 | border-radius: 50%; 81 | border: 1px solid #333; 82 | display: block; 83 | height: 61px; 84 | width: 61px; 85 | float: left; 86 | overflow: hidden; 87 | 88 | img{ 89 | width: 60px; 90 | height: 60px; 91 | } 92 | } 93 | 94 | .nav{ 95 | margin-top: 20px; 96 | float: none; 97 | 98 | li{ 99 | > a{ 100 | color: #FFFFFF; 101 | margin: 5px 15px; 102 | opacity: .86; 103 | border-radius: 4px; 104 | display: block; 105 | } 106 | 107 | &:hover > a{ 108 | background: rgba(255,255,255,0.13); 109 | opacity: 1; 110 | } 111 | 112 | &.active > a{ 113 | color: #FFFFFF; 114 | opacity: 1; 115 | background: rgba(255,255,255,0.23); 116 | 117 | } 118 | 119 | a.dropdown-toggle{ 120 | background-color: transparent; 121 | outline: none; 122 | } 123 | 124 | &.separator{ 125 | margin: 15px 0; 126 | border-bottom: 1px solid rgba(255, 255, 255, 0.2); 127 | 128 | & + li { 129 | margin-top: 31px; 130 | } 131 | } 132 | } 133 | 134 | p{ 135 | margin: 0; 136 | line-height: 30px; 137 | font-size: 12px; 138 | font-weight: 600; 139 | text-transform: uppercase; 140 | margin-left: 45px; 141 | color: $white-color; 142 | } 143 | 144 | i{ 145 | font-size: 28px; 146 | float: left; 147 | margin-right: 15px; 148 | line-height: 30px; 149 | width: 30px; 150 | text-align: center; 151 | color: $white-color; 152 | } 153 | 154 | .caret{ 155 | margin-top: 13px; 156 | position: absolute; 157 | right: 30px; 158 | } 159 | } 160 | 161 | .logo{ 162 | padding: $navbar-padding-a; 163 | border-bottom: 1px solid rgba(255, 255, 255, 0.2); 164 | 165 | p{ 166 | float: left; 167 | font-size: 20px; 168 | margin: 10px 10px; 169 | color: $white-color; 170 | line-height: 20px; 171 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 172 | } 173 | 174 | .simple-text{ 175 | text-transform: uppercase; 176 | padding: 5px 0px 5px 15px; 177 | display: block; 178 | font-size: $font-size-large; 179 | color: $white-color; 180 | text-align: left; 181 | font-weight: $font-weight-normal; 182 | line-height: 30px; 183 | } 184 | } 185 | 186 | .logo-tim{ 187 | border-radius: 50%; 188 | border: 1px solid #333; 189 | display: block; 190 | height: 61px; 191 | width: 61px; 192 | float: left; 193 | overflow: hidden; 194 | 195 | img{ 196 | width: 60px; 197 | height: 60px; 198 | } 199 | } 200 | 201 | &:after, 202 | &:before{ 203 | display: block; 204 | content: ""; 205 | position: absolute; 206 | width: 100%; 207 | height: 100%; 208 | top: 0; 209 | left: 0; 210 | z-index: 2; 211 | } 212 | 213 | &:before{ 214 | opacity: .33; 215 | background: #000000; 216 | } 217 | 218 | &:after{ 219 | @include icon-gradient($black-color-top, $black-color-bottom); 220 | z-index: 3; 221 | opacity: 1; 222 | } 223 | 224 | &[data-image]:after, 225 | &.has-image:after{ 226 | opacity: .77; 227 | } 228 | 229 | &[data-color="blue"]:after{ 230 | @include icon-gradient($new-dark-blue, $blue-color-bottom); 231 | } 232 | &[data-color="azure"]:after{ 233 | @include icon-gradient($new-blue, $azure-color-bottom); 234 | } 235 | &[data-color="green"]:after{ 236 | @include icon-gradient($new-green, $green-color-bottom); 237 | } 238 | &[data-color="orange"]:after{ 239 | @include icon-gradient($new-orange, $orange-color-bottom); 240 | } 241 | &[data-color="red"]:after{ 242 | @include icon-gradient($new-red, $red-color-bottom); 243 | } 244 | &[data-color="purple"]:after{ 245 | @include icon-gradient($new-purple, $purple-color-bottom); 246 | } 247 | } 248 | 249 | 250 | .main-panel{ 251 | background: rgba(203,203,210,.15); 252 | position: relative; 253 | z-index: 2; 254 | float: right; 255 | width: $sidebar-width; 256 | min-height: 100%; 257 | overflow: auto; 258 | 259 | .main-content{ 260 | padding: 30px 15px; 261 | min-height: calc(100% - 123px); 262 | } 263 | 264 | > .footer{ 265 | border-top: 1px solid #e7e7e7; 266 | } 267 | 268 | .navbar{ 269 | margin-bottom: 0; 270 | } 271 | } 272 | 273 | .sidebar, 274 | .main-panel, 275 | .sidebar-wrapper, 276 | .navbar-cmp-fixed .navbar{ 277 | -webkit-transition-property: top,bottom,width; 278 | transition-property: top,bottom, width; 279 | -webkit-transition-duration: .2s,.2s, .35s; 280 | transition-duration: .2s,.2s, .35s; 281 | -webkit-transition-timing-function: linear,linear,ease; 282 | transition-timing-function: linear,linear,ease; 283 | -webkit-overflow-scrolling: touch; 284 | } 285 | 286 | .main-panel{ 287 | max-height: 100%; 288 | height: 100%; 289 | } 290 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_tables.scss: -------------------------------------------------------------------------------- 1 | .table{ 2 | 3 | .radio, 4 | .checkbox{ 5 | position: relative; 6 | height: 20px; 7 | display: block; 8 | width: 20px; 9 | padding: 0px 0px; 10 | margin: 0px 5px; 11 | text-align: center; 12 | 13 | .icons{ 14 | left: 5px; 15 | } 16 | } 17 | > thead > tr > th, 18 | > tbody > tr > th, 19 | > tfoot > tr > th, 20 | > thead > tr > td, 21 | > tbody > tr > td, 22 | > tfoot > tr > td{ 23 | padding: 12px 8px; 24 | vertical-align: middle; 25 | } 26 | 27 | > thead > tr > th{ 28 | border-bottom-width: 1px; 29 | font-size: $font-size-small; 30 | text-transform: uppercase; 31 | color: $dark-gray; 32 | font-weight: $font-weight-normal; 33 | padding-bottom: 5px; 34 | } 35 | 36 | .td-actions .btn{ 37 | @include opacity(0.36); 38 | 39 | &.btn-xs{ 40 | padding-left: 3px; 41 | padding-right: 3px; 42 | } 43 | } 44 | .td-actions{ 45 | min-width: 90px; 46 | } 47 | 48 | > tbody > tr{ 49 | position: relative; 50 | 51 | &:hover{ 52 | .td-actions .btn{ 53 | @include opacity(1); 54 | } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_typography.scss: -------------------------------------------------------------------------------- 1 | /* Font Smoothing */ 2 | body, 3 | h1, .h1, 4 | h2, .h2, 5 | h3, .h3, 6 | h4, .h4, 7 | h5, .h5, 8 | h6, .h6, 9 | p, 10 | .navbar, 11 | .brand, 12 | .btn-simple, 13 | .alert, 14 | a, 15 | .td-name, 16 | td, 17 | button.close{ 18 | -moz-osx-font-smoothing: grayscale; 19 | -webkit-font-smoothing: antialiased; 20 | font-family: "Roboto","Helvetica Neue",Arial,sans-serif; 21 | font-weight: $font-weight-normal; 22 | } 23 | 24 | h1, .h1, h2, .h2, h3, .h3, h4, .h4{ 25 | font-weight: $font-weight-light; 26 | margin: $margin-large-vertical 0 $margin-base-vertical; 27 | } 28 | 29 | h1, .h1 { 30 | font-size: $font-size-h1; 31 | } 32 | h2, .h2{ 33 | font-size: $font-size-h2; 34 | } 35 | h3, .h3{ 36 | font-size: $font-size-h3; 37 | margin: 20px 0 10px; 38 | } 39 | h4, .h4{ 40 | font-size: $font-size-h4; 41 | line-height: 30px; 42 | } 43 | h5, .h5 { 44 | font-size: $font-size-h5; 45 | margin-bottom: 15px; 46 | } 47 | h6, .h6{ 48 | font-size: $font-size-h6; 49 | font-weight: $font-weight-bold; 50 | text-transform: uppercase; 51 | } 52 | p{ 53 | font-size: $font-paragraph; 54 | line-height: $line-height-general; 55 | } 56 | 57 | h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small { 58 | color: $dark-gray; 59 | font-weight: $font-weight-light; 60 | line-height: $line-height-general; 61 | } 62 | 63 | h1 small, h2 small, h3 small, h1 .small, h2 .small, h3 .small { 64 | font-size: 60%; 65 | } 66 | 67 | h1 .subtitle{ 68 | display: block; 69 | margin: 0 0 $margin-large-vertical; 70 | } 71 | 72 | .text-muted{ 73 | color: #9A9A9A; 74 | } 75 | .text-primary, .text-primary:hover{ 76 | color: #1D62F0 !important; 77 | } 78 | .text-info, .text-info:hover{ 79 | color: $info-color !important; 80 | } 81 | .text-success, .text-success:hover{ 82 | color: $success-color !important; 83 | } 84 | .text-warning, .text-warning:hover{ 85 | color: $warning-color !important; 86 | } 87 | .text-danger, .text-danger:hover{ 88 | color: $danger-color !important; 89 | } 90 | 91 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/_variables.scss: -------------------------------------------------------------------------------- 1 | //== Buttons 2 | // 3 | //## For each of Bootstrap's buttons, define text, background and border color. 4 | // General Colors 5 | 6 | 7 | $color-azure: #23CCEF; 8 | $color-purple: #9368E9; 9 | $color-red: #FB404B; 10 | $color-green: #87CB16; 11 | $color-orange: #FFA534; 12 | $color-blue: #447DF7; 13 | $color-black: #5e5e5e; 14 | 15 | $none: 0 !default; 16 | $border-thin: 1px !default; 17 | $border-thick: 2px !default; 18 | 19 | $white-color: #FFFFFF !default; 20 | $white-bg: #FFFFFF !default; 21 | 22 | $smoke-bg: #F5F5F5 !default; 23 | 24 | $black-bg: rgba(30,30,30,.97) !default; 25 | 26 | $black-color: #333333 !default; 27 | $black-hr: #444444 !default; 28 | 29 | $light-gray: #E3E3E3 !default; 30 | $medium-gray: #DDDDDD !default; 31 | $medium-dark-gray: #AAAAAA !default; 32 | $dark-gray: #9A9A9A !default; 33 | 34 | $transparent-bg: transparent !default; 35 | 36 | $default-color: #888888 !default; 37 | $default-bg: #888888 !default; 38 | $default-states-color: #777777 !default; 39 | 40 | $primary-color: #3472F7 !default; 41 | $primary-bg: #3472F7 !default; 42 | $primary-states-color: #1D62F0 !default; 43 | 44 | $success-color: #87CB16 !default; 45 | $success-bg: #87CB16 !default; 46 | $success-states-color: #049F0C !default; 47 | 48 | $info-color: #1DC7EA !default; 49 | $info-bg: #1DC7EA !default; 50 | $info-states-color: lighten($info-color, 8%) !default; 51 | 52 | $warning-color: #FF9500 !default; 53 | $warning-bg: #FF9500 !default; 54 | $warning-states-color: #ED8D00 !default; 55 | 56 | 57 | $danger-color: #FF4A55 !default; 58 | $danger-bg: #FF4A55 !default; 59 | $danger-states-color: #EE2D20 !default; 60 | 61 | 62 | 63 | $link-disabled-color: #666666 !default; 64 | 65 | 66 | /* light colors */ 67 | $light-blue: rgba($primary-color, .2); 68 | $light-azure: rgba($info-color, .2); 69 | $light-green: rgba($success-color, .2); 70 | $light-orange: rgba($warning-color, .2); 71 | $light-red: rgba($danger-color, .2); 72 | 73 | 74 | //== Components 75 | // 76 | 77 | $padding-base-vertical: 8px !default; 78 | $padding-base-horizontal: 16px !default; 79 | 80 | $padding-round-vertical: 9px !default; 81 | $padding-round-horizontal: 18px !default; 82 | 83 | $padding-simple-vertical: 10px !default; 84 | $padding-simple-horizontal: 18px !default; 85 | 86 | $padding-large-vertical: 14px !default; 87 | $padding-large-horizontal: 30px !default; 88 | 89 | $padding-small-vertical: 5px !default; 90 | $padding-small-horizontal: 10px !default; 91 | 92 | $padding-xs-vertical: 1px !default; 93 | $padding-xs-horizontal: 5px !default; 94 | 95 | $padding-label-vertical: 2px !default; 96 | $padding-label-horizontal: 12px !default; 97 | 98 | $margin-large-vertical: 30px !default; 99 | $margin-base-vertical: 15px !default; 100 | 101 | $padding-zero: 0px !default; 102 | 103 | $margin-bottom: 0 0 10px 0 !default; 104 | $border-radius-small: 3px !default; 105 | $border-radius-base: 4px !default; 106 | $border-radius-large: 6px !default; 107 | $border-radius-extreme: 10px !default; 108 | 109 | $border-radius-large-top: $border-radius-large $border-radius-large 0 0 !default; 110 | $border-radius-large-bottom: 0 0 $border-radius-large $border-radius-large !default; 111 | 112 | $btn-round-radius: 30px !default; 113 | 114 | $height-base: 40px !default; 115 | 116 | $font-size-base: 14px !default; 117 | $font-size-small: 12px !default; 118 | $font-size-medium: 16px !default; 119 | $font-size-large: 18px !default; 120 | $font-size-large-navbar: 20px !default; 121 | 122 | $font-size-h1: 52px !default; 123 | $font-size-h2: 36px !default; 124 | $font-size-h3: 28px !default; 125 | $font-size-h4: 22px !default; 126 | $font-size-h5: 16px !default; 127 | $font-size-h6: 14px !default; 128 | $font-paragraph: 16px !default; 129 | $font-size-navbar: 16px !default; 130 | $font-size-small: 12px !default; 131 | 132 | $font-weight-light: 300 !default; 133 | $font-weight-normal: 400 !default; 134 | $font-weight-semi: 500 !default; 135 | $font-weight-bold: 600 !default; 136 | 137 | $line-height-general: 1.5 !default; 138 | $line-height: 20px !default; 139 | $line-height-lg: 54px !default; 140 | 141 | $sidebar-width: calc(100% - 260px) !default; 142 | 143 | 144 | $border-radius-top: 10px 10px 0 0 !default; 145 | $border-radius-bottom: 0 0 10px 10px !default; 146 | 147 | $dropdown-shadow: 1px 2px 3px rgba(0, 0, 0, 0.125); 148 | 149 | $general-transition-time: 300ms !default; 150 | 151 | $slow-transition-time: 370ms !default; 152 | $dropdown-coordinates: 29px -50px !default; 153 | 154 | $fast-transition-time: 150ms !default; 155 | 156 | $ultra-fast-transition-time: 100ms !default; 157 | 158 | $select-coordinates: 50% -40px !default; 159 | 160 | $transition-linear: linear !default; 161 | $transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default; 162 | $transition-ease: ease 0s; 163 | $transition-ease-in: ease-in !default; 164 | $transition-ease-out: ease-out !default; 165 | 166 | 167 | $navbar-padding-a: 10px 15px; 168 | $navbar-margin-a: 10px 3px; 169 | 170 | $padding-social-a: 10px 5px; 171 | 172 | $navbar-margin-a-btn: 15px 3px; 173 | $navbar-margin-a-btn-round: 16px 3px; 174 | 175 | $navbar-padding-a-icons: 6px 15px; 176 | $navbar-margin-a-icons: 6px 3px; 177 | 178 | $navbar-padding-brand: 15px 15px; 179 | $navbar-margin-brand: 5px 0px; 180 | 181 | $navbar-margin-brand-icons: 12px auto; 182 | 183 | $navbar-margin-btn: 15px 3px; 184 | 185 | $height-icon: 64px !default; 186 | $width-icon: 64px !default; 187 | $padding-icon: 12px !default; 188 | $border-radius-icon: 15px !default; 189 | 190 | $size-icon: 64px; 191 | $size-icon-sm: 32px; 192 | 193 | 194 | $height-icon-sm: 32px; 195 | $width-icon-sm: 32px; 196 | $padding-icon-sm: 4px; 197 | $border-radius-icon-sm: 7px; 198 | 199 | $height-icon-message: 40px; 200 | $width-icon-message: 40px; 201 | 202 | $height-icon-message-sm: 20px; 203 | $width-icon-message-sm: 20px; 204 | 205 | $default-color-top: #d9d9d9 !default; 206 | $default-color-bottom: #909297 !default; 207 | 208 | $blue-color-top: #4087ea; 209 | $blue-color-bottom: #533ce1; 210 | 211 | $azure-color-top: #45c0fd; 212 | $azure-color-bottom: #4091ff; 213 | 214 | $green-color-top: #a1eb3a; 215 | $green-color-bottom: #6dc030; 216 | 217 | $orange-color-top: #ffb33b; 218 | $orange-color-bottom: #ff5221; 219 | 220 | $red-color-top: #ff3b30; 221 | $red-color-bottom: #bb0502; 222 | 223 | $purple-color-top: #df55e1; 224 | $purple-color-bottom: #943bea; 225 | 226 | $pink-color-top: #ff2a63; 227 | $pink-color-bottom: #ff2e2e; 228 | 229 | $black-color-top: #787878; 230 | $black-color-bottom: #343434; 231 | 232 | $social-facebook: #3b5998; 233 | $social-twitter: #55acee; 234 | $social-pinterest: #cc2127; 235 | $social-google: #dd4b39; 236 | $social-linkedin: #0976b4; 237 | $social-dribbble: #ea4c89; 238 | $social-github: #333333; 239 | $social-youtube: #e52d27; 240 | $social-stumbleupon: #eb4924; 241 | $social-reddit: #ff4500; 242 | $social-tumblr: #35465c; 243 | $social-behance: #1769ff; 244 | 245 | 246 | $filter-blue: darken($primary-color, 10%); 247 | $filter-azure: darken($info-color, 10%); 248 | $filter-green: darken($success-color, 10%); 249 | $filter-orange: darken($warning-color, 10%); 250 | $filter-red: darken($danger-color, 10%); 251 | 252 | 253 | $new-blue: #1DC7EA; 254 | $new-purple: #9368E9; 255 | $new-red: #FB404B; 256 | $new-green: #87CB16; 257 | $new-orange: #FFA534; 258 | $new-dark-blue: #1F77D0; 259 | $new-black: #5e5e5e; 260 | 261 | 262 | $topbar-x: topbar-x !default; 263 | $topbar-back: topbar-back !default; 264 | $bottombar-x: bottombar-x !default; 265 | $bottombar-back: bottombar-back !default; 266 | 267 | 268 | $white-navbar: rgba(#FFFFFF, .96); 269 | $blue-navbar: lighten($new-dark-blue, 10%); 270 | $azure-navbar: lighten($new-blue, 15%); 271 | $green-navbar: lighten($new-green, 10%); 272 | $orange-navbar: lighten($new-orange, 10%); 273 | $red-navbar: lighten($new-red, 10%); 274 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_buttons.scss: -------------------------------------------------------------------------------- 1 | // Mixin for generating new styles 2 | @mixin btn-styles($btn-color, $btn-states-color) { 3 | border-color: $btn-color; 4 | color: $btn-color; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open > &.dropdown-toggle { 11 | background-color: $transparent-bg; 12 | color: $btn-states-color; 13 | border-color: $btn-states-color; 14 | } 15 | 16 | &.disabled, 17 | &:disabled, 18 | &[disabled], 19 | fieldset[disabled] & { 20 | &, 21 | &:hover, 22 | &:focus, 23 | &.focus, 24 | &:active, 25 | &.active { 26 | background-color: $transparent-bg; 27 | border-color: $btn-color; 28 | } 29 | } 30 | 31 | 32 | &.btn-fill { 33 | color: $white-color; 34 | background-color: $btn-color; 35 | @include opacity(1); 36 | 37 | &:hover, 38 | &:focus, 39 | &:active, 40 | &.active, 41 | .open > &.dropdown-toggle{ 42 | background-color: $btn-states-color; 43 | color: $white-color; 44 | } 45 | 46 | .caret{ 47 | border-top-color: $white-color; 48 | } 49 | } 50 | 51 | .caret{ 52 | border-top-color: $btn-color; 53 | } 54 | } 55 | 56 | 57 | @mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){ 58 | font-size: $font-size; 59 | border-radius: $border; 60 | padding: $padding-vertical $padding-horizontal; 61 | 62 | &.btn-round{ 63 | padding: $padding-vertical + 1 $padding-horizontal; 64 | } 65 | 66 | &.btn-simple{ 67 | padding: $padding-vertical + 2 $padding-horizontal; 68 | } 69 | 70 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_cards.scss: -------------------------------------------------------------------------------- 1 | @mixin filter($color){ 2 | @if $color == #FFFFFF{ 3 | background-color: rgba($color,.91); 4 | } @else { 5 | background-color: rgba($color,.69); 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_chartist.scss: -------------------------------------------------------------------------------- 1 | // Scales for responsive SVG containers 2 | $ct-scales: ((1), (15/16), (8/9), (5/6), (4/5), (3/4), (2/3), (5/8), (1/1.618), (3/5), (9/16), (8/15), (1/2), (2/5), (3/8), (1/3), (1/4)) !default; 3 | $ct-scales-names: (ct-square, ct-minor-second, ct-major-second, ct-minor-third, ct-major-third, ct-perfect-fourth, ct-perfect-fifth, ct-minor-sixth, ct-golden-section, ct-major-sixth, ct-minor-seventh, ct-major-seventh, ct-octave, ct-major-tenth, ct-major-eleventh, ct-major-twelfth, ct-double-octave) !default; 4 | 5 | // Class names to be used when generating CSS 6 | $ct-class-chart: ct-chart !default; 7 | $ct-class-chart-line: ct-chart-line !default; 8 | $ct-class-chart-bar: ct-chart-bar !default; 9 | $ct-class-horizontal-bars: ct-horizontal-bars !default; 10 | $ct-class-chart-pie: ct-chart-pie !default; 11 | $ct-class-chart-donut: ct-chart-donut !default; 12 | $ct-class-label: ct-label !default; 13 | $ct-class-series: ct-series !default; 14 | $ct-class-line: ct-line !default; 15 | $ct-class-point: ct-point !default; 16 | $ct-class-area: ct-area !default; 17 | $ct-class-bar: ct-bar !default; 18 | $ct-class-slice-pie: ct-slice-pie !default; 19 | $ct-class-slice-donut: ct-slice-donut !default; 20 | $ct-class-grid: ct-grid !default; 21 | $ct-class-vertical: ct-vertical !default; 22 | $ct-class-horizontal: ct-horizontal !default; 23 | $ct-class-start: ct-start !default; 24 | $ct-class-end: ct-end !default; 25 | 26 | // Container ratio 27 | $ct-container-ratio: (1/1.618) !default; 28 | 29 | // Text styles for labels 30 | $ct-text-color: rgba(0, 0, 0, 0.4) !default; 31 | $ct-text-size: 1.3rem !default; 32 | $ct-text-align: flex-start !default; 33 | $ct-text-justify: flex-start !default; 34 | $ct-text-line-height: 1; 35 | 36 | // Grid styles 37 | $ct-grid-color: rgba(0, 0, 0, 0.2) !default; 38 | $ct-grid-dasharray: 2px !default; 39 | $ct-grid-width: 1px !default; 40 | 41 | // Line chart properties 42 | $ct-line-width: 3px !default; 43 | $ct-line-dasharray: false !default; 44 | $ct-point-size: 8px !default; 45 | // Line chart point, can be either round or square 46 | $ct-point-shape: round !default; 47 | // Area fill transparency between 0 and 1 48 | $ct-area-opacity: 0.8 !default; 49 | 50 | // Bar chart bar width 51 | $ct-bar-width: 10px !default; 52 | 53 | // Donut width (If donut width is to big it can cause issues where the shape gets distorted) 54 | $ct-donut-width: 60px !default; 55 | 56 | // If set to true it will include the default classes and generate CSS output. If you're planning to use the mixins you 57 | // should set this property to false 58 | $ct-include-classes: true !default; 59 | 60 | // If this is set to true the CSS will contain colored series. You can extend or change the color with the 61 | // properties below 62 | $ct-include-colored-series: $ct-include-classes !default; 63 | 64 | // If set to true this will include all responsive container variations using the scales defined at the top of the script 65 | $ct-include-alternative-responsive-containers: $ct-include-classes !default; 66 | 67 | // Series names and colors. This can be extended or customized as desired. Just add more series and colors. 68 | $ct-series-names: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) !default; 69 | $ct-series-colors: ( 70 | $new-blue, 71 | $new-red, 72 | $new-orange, 73 | $new-purple, 74 | $new-green, 75 | $new-dark-blue, 76 | $new-black, 77 | $social-google, 78 | $social-tumblr, 79 | $social-youtube, 80 | $social-twitter, 81 | $social-pinterest, 82 | $social-behance, 83 | #6188e2, 84 | #a748ca 85 | ) !default; -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_icons.scss: -------------------------------------------------------------------------------- 1 | @mixin icon-background ($icon-url){ 2 | background-image : url($icon-url); 3 | 4 | } 5 | 6 | @mixin icon-shape ($size, $padding, $border-radius) { 7 | height: $size; 8 | width: $size; 9 | padding: $padding; 10 | border-radius: $border-radius; 11 | display: inline-table; 12 | 13 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_inputs.scss: -------------------------------------------------------------------------------- 1 | @mixin input-size($padding-vertical, $padding-horizontal, $height){ 2 | padding: $padding-vertical $padding-horizontal; 3 | height: $height; 4 | } 5 | 6 | @mixin placeholder($color, $opacity){ 7 | color: $color; 8 | @include opacity(1); 9 | } 10 | 11 | @mixin light-form(){ 12 | border-radius: 0; 13 | border:0; 14 | padding: 0; 15 | background-color: transparent; 16 | 17 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_labels.scss: -------------------------------------------------------------------------------- 1 | @mixin label-style(){ 2 | padding: $padding-label-vertical $padding-label-horizontal; 3 | border: 1px solid $default-color; 4 | border-radius: $border-radius-small; 5 | color: $default-color; 6 | font-weight: $font-weight-semi; 7 | font-size: $font-size-small; 8 | text-transform: uppercase; 9 | display: inline-block; 10 | vertical-align: middle; 11 | } 12 | 13 | @mixin label-color($color){ 14 | border-color: $color; 15 | color: $color; 16 | } 17 | @mixin label-color-fill($color){ 18 | border-color: $color; 19 | color: $white-color; 20 | background-color: $color; 21 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_morphing-buttons.scss: -------------------------------------------------------------------------------- 1 | $prefixes: ('', '-moz-', '-webkit-', '-ms-') !default; 2 | 3 | @mixin circle-animation(){ 4 | @for $i from 0 to length($prefixes) { 5 | @include circle-animation-details(nth($prefixes, $i + 1)); 6 | } 7 | } 8 | 9 | @mixin circle-animation-details($name){ 10 | #{$name}animation-name: spin; 11 | #{$name}animation-duration: 1250ms; 12 | #{$name}animation-iteration-count: infinite; 13 | #{$name}animation-timing-function: linear; 14 | 15 | } 16 | @keyframes spin { 17 | from { transform:rotate(0deg); } 18 | to { transform:rotate(360deg); } 19 | } 20 | 21 | @-webkit-keyframes spin { 22 | from { -webkit-transform: rotate(0deg); } 23 | to { -webkit-transform: rotate(360deg); } 24 | } 25 | 26 | @-moz-keyframes spin { 27 | from { -moz-transform: rotate(0deg); } 28 | to { -moz-transform: rotate(360deg); } 29 | } 30 | 31 | @-ms-keyframes spin { 32 | from { -ms-transform: rotate(0deg); } 33 | to { -ms-transform: rotate(360deg); } 34 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_navbars.scss: -------------------------------------------------------------------------------- 1 | @mixin navbar-color($color){ 2 | background-color: $color; 3 | } 4 | 5 | @mixin center-item(){ 6 | left: 0; 7 | right: 0; 8 | margin-right: auto; 9 | margin-left: auto; 10 | position: absolute; 11 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_social-buttons.scss: -------------------------------------------------------------------------------- 1 | @mixin social-buttons-color ($color){ 2 | 3 | border-color: $color; 4 | color: $color; 5 | 6 | &:hover, 7 | &:focus, 8 | &:active, 9 | &.active, 10 | .open > &.dropdown-toggle { 11 | background-color: $transparent-bg; 12 | color: $color; 13 | border-color: $color; 14 | opacity: 1; 15 | } 16 | 17 | &:disabled, 18 | &[disabled], 19 | &.disabled { 20 | background-color: $transparent-bg; 21 | border-color: $color; 22 | } 23 | 24 | &.btn-fill { 25 | color: $white-color; 26 | background-color: $color; 27 | opacity: 0.9; 28 | 29 | &:hover, 30 | &:focus, 31 | &:active, 32 | &.active, 33 | .open > &.dropdown-toggle{ 34 | background-color: $color; 35 | color: $white-color; 36 | opacity: 1; 37 | } 38 | 39 | } 40 | 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_tabs.scss: -------------------------------------------------------------------------------- 1 | @mixin pill-style($color){ 2 | border: 1px solid $color; 3 | color: $color; 4 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_transparency.scss: -------------------------------------------------------------------------------- 1 | // Opacity 2 | 3 | @mixin opacity($opacity) { 4 | opacity: $opacity; 5 | // IE8 filter 6 | $opacity-ie: ($opacity * 100); 7 | filter: #{alpha(opacity=$opacity-ie)}; 8 | } 9 | 10 | @mixin black-filter($opacity){ 11 | top: 0; 12 | left: 0; 13 | height: 100%; 14 | width: 100%; 15 | position: absolute; 16 | background-color: rgba(17,17,17,$opacity); 17 | display: block; 18 | content: ""; 19 | z-index: 1; 20 | } -------------------------------------------------------------------------------- /src/assets/sass/lbd/mixins/_vendor-prefixes.scss: -------------------------------------------------------------------------------- 1 | // User select 2 | // For selecting text on the page 3 | 4 | @mixin user-select($select) { 5 | -webkit-user-select: $select; 6 | -moz-user-select: $select; 7 | -ms-user-select: $select; // IE10+ 8 | user-select: $select; 9 | } 10 | 11 | @mixin box-shadow($shadow...) { 12 | -webkit-box-shadow: $shadow; // iOS <4.3 & Android <4.1 13 | box-shadow: $shadow; 14 | } 15 | 16 | // Box sizing 17 | @mixin box-sizing($boxmodel) { 18 | -webkit-box-sizing: $boxmodel; 19 | -moz-box-sizing: $boxmodel; 20 | box-sizing: $boxmodel; 21 | } 22 | 23 | 24 | @mixin transition($time, $type){ 25 | -webkit-transition: all $time $type; 26 | -moz-transition: all $time $type; 27 | -o-transition: all $time $type; 28 | -ms-transition: all $time $type; 29 | transition: all $time $type; 30 | } 31 | 32 | @mixin transform-scale($value){ 33 | -webkit-transform: scale($value); 34 | -moz-transform: scale($value); 35 | -o-transform: scale($value); 36 | -ms-transform: scale($value); 37 | transform: scale($value); 38 | } 39 | 40 | @mixin transform-translate-x($value){ 41 | -webkit-transform: translate3d($value, 0, 0); 42 | -moz-transform: translate3d($value, 0, 0); 43 | -o-transform: translate3d($value, 0, 0); 44 | -ms-transform: translate3d($value, 0, 0); 45 | transform: translate3d($value, 0, 0); 46 | } 47 | 48 | @mixin transform-origin($coordinates){ 49 | -webkit-transform-origin: $coordinates; 50 | -moz-transform-origin: $coordinates; 51 | -o-transform-origin: $coordinates; 52 | -ms-transform-origin: $coordinates; 53 | transform-origin: $coordinates; 54 | } 55 | 56 | @mixin icon-gradient ($top-color, $bottom-color){ 57 | background: $top-color; 58 | background: -moz-linear-gradient(top, $top-color 0%, $bottom-color 100%); 59 | background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,$top-color), color-stop(100%,$bottom-color)); 60 | background: -webkit-linear-gradient(top, $top-color 0%,$bottom-color 100%); 61 | background: -o-linear-gradient(top, $top-color 0%,$bottom-color 100%); 62 | background: -ms-linear-gradient(top, $top-color 0%,$bottom-color 100%); 63 | background: linear-gradient(to bottom, $top-color 0%,$bottom-color 100%); 64 | background-size: 150% 150%; 65 | } 66 | 67 | @mixin radial-gradient($extern-color, $center-color){ 68 | background: $extern-color; 69 | background: -moz-radial-gradient(center, ellipse cover, $center-color 0%, $extern-color 100%); /* FF3.6+ */ 70 | background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,$center-color), color-stop(100%,$extern-color)); /* Chrome,Safari4+ */ 71 | background: -webkit-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Chrome10+,Safari5.1+ */ 72 | background: -o-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* Opera 12+ */ 73 | background: -ms-radial-gradient(center, ellipse cover, $center-color 0%,$extern-color 100%); /* IE10+ */ 74 | background: radial-gradient(ellipse at center, $center-color 0%,$extern-color 100%); /* W3C */ 75 | background-size: 550% 450%; 76 | } 77 | 78 | @mixin vertical-align { 79 | position: relative; 80 | top: 50%; 81 | -webkit-transform: translateY(-50%); 82 | -ms-transform: translateY(-50%); 83 | transform: translateY(-50%); 84 | } 85 | 86 | @mixin rotate-180(){ 87 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 88 | -webkit-transform: rotate(180deg); 89 | -ms-transform: rotate(180deg); 90 | transform: rotate(180deg); 91 | } 92 | 93 | @mixin bar-animation($type){ 94 | -webkit-animation: $type 500ms linear 0s; 95 | -moz-animation: $type 500ms linear 0s; 96 | animation: $type 500ms 0s; 97 | -webkit-animation-fill-mode: forwards; 98 | -moz-animation-fill-mode: forwards; 99 | animation-fill-mode: forwards; 100 | } 101 | 102 | @mixin topbar-x-rotation(){ 103 | @keyframes topbar-x { 104 | 0% {top: 0px; transform: rotate(0deg); } 105 | 45% {top: 6px; transform: rotate(145deg); } 106 | 75% {transform: rotate(130deg); } 107 | 100% {transform: rotate(135deg); } 108 | } 109 | @-webkit-keyframes topbar-x { 110 | 0% {top: 0px; -webkit-transform: rotate(0deg); } 111 | 45% {top: 6px; -webkit-transform: rotate(145deg); } 112 | 75% {-webkit-transform: rotate(130deg); } 113 | 100% { -webkit-transform: rotate(135deg); } 114 | } 115 | @-moz-keyframes topbar-x { 116 | 0% {top: 0px; -moz-transform: rotate(0deg); } 117 | 45% {top: 6px; -moz-transform: rotate(145deg); } 118 | 75% {-moz-transform: rotate(130deg); } 119 | 100% { -moz-transform: rotate(135deg); } 120 | } 121 | } 122 | 123 | @mixin topbar-back-rotation(){ 124 | @keyframes topbar-back { 125 | 0% { top: 6px; transform: rotate(135deg); } 126 | 45% { transform: rotate(-10deg); } 127 | 75% { transform: rotate(5deg); } 128 | 100% { top: 0px; transform: rotate(0); } 129 | } 130 | 131 | @-webkit-keyframes topbar-back { 132 | 0% { top: 6px; -webkit-transform: rotate(135deg); } 133 | 45% { -webkit-transform: rotate(-10deg); } 134 | 75% { -webkit-transform: rotate(5deg); } 135 | 100% { top: 0px; -webkit-transform: rotate(0); } 136 | } 137 | 138 | @-moz-keyframes topbar-back { 139 | 0% { top: 6px; -moz-transform: rotate(135deg); } 140 | 45% { -moz-transform: rotate(-10deg); } 141 | 75% { -moz-transform: rotate(5deg); } 142 | 100% { top: 0px; -moz-transform: rotate(0); } 143 | } 144 | } 145 | 146 | @mixin bottombar-x-rotation(){ 147 | @keyframes bottombar-x { 148 | 0% {bottom: 0px; transform: rotate(0deg);} 149 | 45% {bottom: 6px; transform: rotate(-145deg);} 150 | 75% {transform: rotate(-130deg);} 151 | 100% {transform: rotate(-135deg);} 152 | } 153 | @-webkit-keyframes bottombar-x { 154 | 0% {bottom: 0px; -webkit-transform: rotate(0deg);} 155 | 45% {bottom: 6px; -webkit-transform: rotate(-145deg);} 156 | 75% {-webkit-transform: rotate(-130deg);} 157 | 100% {-webkit-transform: rotate(-135deg);} 158 | } 159 | @-moz-keyframes bottombar-x { 160 | 0% {bottom: 0px; -moz-transform: rotate(0deg);} 161 | 45% {bottom: 6px; -moz-transform: rotate(-145deg);} 162 | 75% {-moz-transform: rotate(-130deg);} 163 | 100% {-moz-transform: rotate(-135deg);} 164 | } 165 | } 166 | 167 | @mixin bottombar-back-rotation{ 168 | @keyframes bottombar-back { 169 | 0% { bottom: 6px;transform: rotate(-135deg);} 170 | 45% { transform: rotate(10deg);} 171 | 75% { transform: rotate(-5deg);} 172 | 100% { bottom: 0px;transform: rotate(0);} 173 | } 174 | @-webkit-keyframes bottombar-back { 175 | 0% {bottom: 6px;-webkit-transform: rotate(-135deg);} 176 | 45% {-webkit-transform: rotate(10deg);} 177 | 75% {-webkit-transform: rotate(-5deg);} 178 | 100% {bottom: 0px;-webkit-transform: rotate(0);} 179 | } 180 | @-moz-keyframes bottombar-back { 181 | 0% {bottom: 6px;-moz-transform: rotate(-135deg);} 182 | 45% {-moz-transform: rotate(10deg);} 183 | 75% {-moz-transform: rotate(-5deg);} 184 | 100% {bottom: 0px;-moz-transform: rotate(0);} 185 | } 186 | 187 | } 188 | 189 | 190 | -------------------------------------------------------------------------------- /src/assets/sass/light-bootstrap-dashboard.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard Angular - v1.7.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-angular2 8 | * Copyright 2020 Creative Tim (http://www.creative-tim.com) 9 | * Licensed under MIT 10 | 11 | ========================================================= 12 | 13 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 14 | 15 | */ 16 | @import "lbd/variables"; 17 | @import "lbd/mixins"; 18 | 19 | @import "lbd/typography"; 20 | 21 | // Core CSS 22 | @import "lbd/misc"; 23 | @import "lbd/sidebar-and-main-panel"; 24 | @import "lbd/buttons"; 25 | @import "lbd/inputs"; 26 | 27 | @import "lbd/alerts"; 28 | @import "lbd/tables"; 29 | 30 | @import "lbd/checkbox-radio-switch"; 31 | @import "lbd/navbars"; 32 | @import "lbd/footers"; 33 | 34 | // Fancy Stuff 35 | @import "lbd/dropdown"; 36 | @import "lbd/cards"; 37 | @import "lbd/chartist"; 38 | @import "lbd/responsive"; 39 | -------------------------------------------------------------------------------- /src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // The file contents for the current environment will overwrite these during build. 2 | // The build system defaults to the dev environment which uses `environment.ts`, but if you do 3 | // `ng build --env=prod` then `environment.prod.ts` will be used instead. 4 | // The list of which env maps to which file can be found in `angular-cli.json`. 5 | 6 | export const environment = { 7 | production: false 8 | }; 9 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Ashutosh102/Angular_with_bootstrap/75c6f2cbbcc86bf9af7c3c135037b127948bc919/src/favicon.ico -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Light Bootstrap Dashboard by Creative Tim 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 57 | 58 | 59 | 60 |
loading
61 |
62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | ========================================================= 4 | * Light Bootstrap Dashboard Angular - v1.7.0 5 | ========================================================= 6 | 7 | * Product Page: https://www.creative-tim.com/product/light-bootstrap-dashboard-angular2 8 | * Copyright 2020 Creative Tim (http://www.creative-tim.com) 9 | * Licensed under MIT 10 | 11 | ========================================================= 12 | 13 | * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 14 | 15 | */ 16 | import { enableProdMode } from '@angular/core'; 17 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 18 | 19 | import { AppModule } from './app/app.module'; 20 | import { environment } from './environments/environment'; 21 | 22 | if (environment.production) { 23 | enableProdMode(); 24 | } 25 | 26 | platformBrowserDynamic().bootstrapModule(AppModule); 27 | -------------------------------------------------------------------------------- /src/polyfills.ts: -------------------------------------------------------------------------------- 1 | // This file includes polyfills needed by Angular and is loaded before the app. 2 | // You can add your own extra polyfills to this file. 3 | import 'core-js/es6/symbol'; 4 | import 'core-js/es6/object'; 5 | import 'core-js/es6/function'; 6 | import 'core-js/es6/parse-int'; 7 | import 'core-js/es6/parse-float'; 8 | import 'core-js/es6/number'; 9 | import 'core-js/es6/math'; 10 | import 'core-js/es6/string'; 11 | import 'core-js/es6/date'; 12 | import 'core-js/es6/array'; 13 | import 'core-js/es6/regexp'; 14 | import 'core-js/es6/map'; 15 | import 'core-js/es6/set'; 16 | import 'core-js/es6/reflect'; 17 | 18 | import 'core-js/es7/reflect'; 19 | import 'zone.js/dist/zone'; 20 | 21 | // If you need to support the browsers/features below, uncomment the import 22 | // and run `npm install import-name-here'; 23 | // Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html 24 | 25 | // Needed for: IE9 26 | // import 'classlist.js'; 27 | 28 | // Animations 29 | // Needed for: All but Chrome and Firefox, Not supported in IE9 30 | // import 'web-animations-js'; 31 | 32 | // Date, currency, decimal and percent pipes 33 | // Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 34 | // import 'intl'; 35 | 36 | // NgClass on SVG elements 37 | // Needed for: IE10, IE11 38 | // import 'classlist.js'; 39 | -------------------------------------------------------------------------------- /src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/long-stack-trace-zone'; 4 | import 'zone.js/dist/proxy.js'; 5 | import 'zone.js/dist/sync-test'; 6 | import 'zone.js/dist/jasmine-patch'; 7 | import 'zone.js/dist/async-test'; 8 | import 'zone.js/dist/fake-async-test'; 9 | import { getTestBed } from '@angular/core/testing'; 10 | import { 11 | BrowserDynamicTestingModule, 12 | platformBrowserDynamicTesting 13 | } from '@angular/platform-browser-dynamic/testing'; 14 | 15 | // Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. 16 | declare var __karma__: any; 17 | declare var require: any; 18 | 19 | // Prevent Karma from running prematurely. 20 | __karma__.loaded = function () {}; 21 | 22 | // First, initialize the Angular testing environment. 23 | getTestBed().initTestEnvironment( 24 | BrowserDynamicTestingModule, 25 | platformBrowserDynamicTesting() 26 | ); 27 | // Then we find all the tests. 28 | const context = require.context('./', true, /\.spec\.ts$/); 29 | // And load the modules. 30 | context.keys().map(context); 31 | // Finally, start Karma to run the tests. 32 | __karma__.start(); 33 | -------------------------------------------------------------------------------- /src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "", 4 | "declaration": false, 5 | "emitDecoratorMetadata": true, 6 | "experimentalDecorators": true, 7 | "lib": ["es6", "dom"], 8 | "mapRoot": "./", 9 | "module": "commonjs", 10 | "moduleResolution": "node", 11 | "outDir": "../dist/out-tsc", 12 | "sourceMap": true, 13 | "target": "es5", 14 | "allowJs":true, 15 | "typeRoots": [ 16 | "../node_modules/@types" 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rulesDirectory": [ 3 | "node_modules/codelyzer" 4 | ], 5 | "rules": { 6 | "callable-types": true, 7 | "class-name": true, 8 | "comment-format": [ 9 | true, 10 | "check-space" 11 | ], 12 | "curly": true, 13 | "eofline": true, 14 | "forin": true, 15 | "import-blacklist": [true], 16 | "import-spacing": true, 17 | "indent": [ 18 | true, 19 | "spaces" 20 | ], 21 | "interface-over-type-literal": true, 22 | "label-position": true, 23 | "max-line-length": [ 24 | true, 25 | 140 26 | ], 27 | "member-access": false, 28 | "member-ordering": [ 29 | true, 30 | "static-before-instance", 31 | "variables-before-functions" 32 | ], 33 | "no-arg": true, 34 | "no-bitwise": true, 35 | "no-console": [ 36 | true, 37 | "debug", 38 | "info", 39 | "time", 40 | "timeEnd", 41 | "trace" 42 | ], 43 | "no-construct": true, 44 | "no-debugger": true, 45 | "no-duplicate-variable": true, 46 | "no-empty": false, 47 | "no-empty-interface": true, 48 | "no-eval": true, 49 | "no-inferrable-types": true, 50 | "no-shadowed-variable": true, 51 | "no-string-literal": false, 52 | "no-string-throw": true, 53 | "no-switch-case-fall-through": true, 54 | "no-trailing-whitespace": true, 55 | "no-unused-expression": true, 56 | "no-use-before-declare": true, 57 | "no-var-keyword": true, 58 | "object-literal-sort-keys": false, 59 | "one-line": [ 60 | true, 61 | "check-open-brace", 62 | "check-catch", 63 | "check-else", 64 | "check-whitespace" 65 | ], 66 | "prefer-const": true, 67 | "quotemark": [ 68 | true, 69 | "single" 70 | ], 71 | "radix": true, 72 | "semicolon": [ 73 | "always" 74 | ], 75 | "triple-equals": [ 76 | true, 77 | "allow-null-check" 78 | ], 79 | "typedef-whitespace": [ 80 | true, 81 | { 82 | "call-signature": "nospace", 83 | "index-signature": "nospace", 84 | "parameter": "nospace", 85 | "property-declaration": "nospace", 86 | "variable-declaration": "nospace" 87 | } 88 | ], 89 | "typeof-compare": true, 90 | "unified-signatures": true, 91 | "variable-name": false, 92 | "whitespace": [ 93 | true, 94 | "check-branch", 95 | "check-decl", 96 | "check-operator", 97 | "check-separator", 98 | "check-type" 99 | ], 100 | 101 | "directive-selector": [true, "attribute", "app", "camelCase"], 102 | "component-selector": [true, "element", "app", "kebab-case"], 103 | "use-input-property-decorator": true, 104 | "use-output-property-decorator": true, 105 | "use-host-property-decorator": true, 106 | "no-input-rename": true, 107 | "no-output-rename": true, 108 | "use-life-cycle-interface": true, 109 | "use-pipe-transform-interface": true, 110 | "component-class-suffix": true, 111 | "directive-class-suffix": true, 112 | "no-access-missing-member": true, 113 | "templates-use-public": true, 114 | "invoke-injectable": true 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /typings.json: -------------------------------------------------------------------------------- 1 | { 2 | "globalDependencies": { 3 | "jquery": "registry:dt/jquery#1.10.0+20170123093700" 4 | } 5 | } 6 | --------------------------------------------------------------------------------