refactor: new project structure
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
||||
|
||||
# dependencies
|
||||
node_modules
|
||||
package-lock.json
|
||||
|
||||
# testing
|
||||
coverage
|
||||
|
80
package.json
@ -1,33 +1,57 @@
|
||||
{
|
||||
"name": "@coreui/react-admin-template",
|
||||
"version": "2.0.0",
|
||||
"description": "Free React Admin Template",
|
||||
"main": "",
|
||||
"homepage": "http://coreui.io/react/",
|
||||
"github": "https://github.com/mrholek/CoreUI-React#readme",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/mrholek/CoreUI-React.git"
|
||||
},
|
||||
"keywords": [
|
||||
"Bootstrap",
|
||||
"Admin",
|
||||
"Template",
|
||||
"Open Source",
|
||||
"CSS",
|
||||
"HTML",
|
||||
"RWD",
|
||||
"Dashboard",
|
||||
"React",
|
||||
"React.js",
|
||||
"Reactjs"
|
||||
],
|
||||
"name": "@coreui/react",
|
||||
"version": "1.0.10",
|
||||
"description": "Open Source Bootstrap Admin Template",
|
||||
"author": "Łukasz Holeczek",
|
||||
"homepage": "http://coreui.io",
|
||||
"copyright": "Copyright 2018 creativeLabs Łukasz Holeczek",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/mrholek/CoreUI-React/issues"
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"babel-core": "6.26.0",
|
||||
"babel-loader": "7.1.2",
|
||||
"babel-plugin-transform-object-rest-spread": "6.26.0",
|
||||
"babel-preset-env": "1.6.1",
|
||||
"babel-preset-react": "6.24.1",
|
||||
"copy-webpack-plugin": "4.3.1",
|
||||
"css-hot-loader": "1.3.6",
|
||||
"css-loader": "0.28.9",
|
||||
"extract-text-webpack-plugin": "3.0.2",
|
||||
"file-loader": "1.1.6",
|
||||
"html-loader": "0.5.5",
|
||||
"html-webpack-plugin": "2.30.1",
|
||||
"node-sass": "4.7.2",
|
||||
"rimraf": "2.6.2",
|
||||
"sass-loader": "6.0.6",
|
||||
"source-list-map": "2.0.0",
|
||||
"style-loader": "0.20.1",
|
||||
"uglify-js": "3.3.9",
|
||||
"url-loader": "0.6.2",
|
||||
"webpack": "3.10.0",
|
||||
"webpack-dev-server": "2.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "4.0.0",
|
||||
"chart.js": "2.7.1",
|
||||
"flag-icon-css": "2.9.0",
|
||||
"font-awesome": "4.7.0",
|
||||
"history": "4.7.2",
|
||||
"react": "16.2.0",
|
||||
"react-chartjs-2": "2.7.0",
|
||||
"react-dom": "16.2.0",
|
||||
"react-router-dom": "4.2.2",
|
||||
"react-transition-group": "2.2.1",
|
||||
"reactstrap": "5.0.0-beta",
|
||||
"simple-line-icons": "2.4.1"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "webpack -d --progress --watch --profile --json > compilation-stats.json --env.dev",
|
||||
"start": "webpack-dev-server --progress --color --inline --env.dev",
|
||||
"build": "webpack -p --progress --env.prod",
|
||||
"clean": "rimraf ./build"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.9.4",
|
||||
"npm": ">= 5.6.0"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
19
react_full_project/.gitignore
vendored
@ -1,19 +0,0 @@
|
||||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
node_modules
|
||||
package-lock.json
|
||||
|
||||
# testing
|
||||
coverage
|
||||
|
||||
# production
|
||||
build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
.env
|
||||
.idea
|
||||
npm-debug.log
|
||||
compilation-stats.json
|
@ -1,57 +0,0 @@
|
||||
{
|
||||
"name": "@coreui/react",
|
||||
"version": "1.0.10",
|
||||
"description": "Open Source Bootstrap Admin Template",
|
||||
"author": "Łukasz Holeczek",
|
||||
"homepage": "http://coreui.io",
|
||||
"copyright": "Copyright 2018 creativeLabs Łukasz Holeczek",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"babel-core": "6.26.0",
|
||||
"babel-loader": "7.1.2",
|
||||
"babel-plugin-transform-object-rest-spread": "6.26.0",
|
||||
"babel-preset-env": "1.6.1",
|
||||
"babel-preset-react": "6.24.1",
|
||||
"copy-webpack-plugin": "4.3.1",
|
||||
"css-hot-loader": "1.3.6",
|
||||
"css-loader": "0.28.9",
|
||||
"extract-text-webpack-plugin": "3.0.2",
|
||||
"file-loader": "1.1.6",
|
||||
"html-loader": "0.5.5",
|
||||
"html-webpack-plugin": "2.30.1",
|
||||
"node-sass": "4.7.2",
|
||||
"rimraf": "2.6.2",
|
||||
"sass-loader": "6.0.6",
|
||||
"source-list-map": "2.0.0",
|
||||
"style-loader": "0.20.1",
|
||||
"uglify-js": "3.3.9",
|
||||
"url-loader": "0.6.2",
|
||||
"webpack": "3.10.0",
|
||||
"webpack-dev-server": "2.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "4.0.0",
|
||||
"chart.js": "2.7.1",
|
||||
"flag-icon-css": "2.9.0",
|
||||
"font-awesome": "4.7.0",
|
||||
"history": "4.7.2",
|
||||
"react": "16.2.0",
|
||||
"react-chartjs-2": "2.7.0",
|
||||
"react-dom": "16.2.0",
|
||||
"react-router-dom": "4.2.2",
|
||||
"react-transition-group": "2.2.1",
|
||||
"reactstrap": "5.0.0-beta",
|
||||
"simple-line-icons": "2.4.1"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "webpack -d --progress --watch --profile --json > compilation-stats.json --env.dev",
|
||||
"start": "webpack-dev-server --progress --color --inline --env.dev",
|
||||
"build": "webpack -p --progress --env.prod",
|
||||
"clean": "rimraf ./build"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.9.4",
|
||||
"npm": ">= 5.6.0"
|
||||
}
|
||||
}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"presets": [
|
||||
["react"], ["env"]
|
||||
],
|
||||
"plugins": ["transform-object-rest-spread"]
|
||||
}
|
19
react_starter/.gitignore
vendored
@ -1,19 +0,0 @@
|
||||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
node_modules
|
||||
package-lock.json
|
||||
|
||||
# testing
|
||||
coverage
|
||||
|
||||
# production
|
||||
build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
.env
|
||||
.idea
|
||||
npm-debug.log
|
||||
compilation-stats.json
|
@ -1,57 +0,0 @@
|
||||
{
|
||||
"name": "@coreui/react",
|
||||
"version": "1.0.10",
|
||||
"description": "Open Source Bootstrap Admin Template",
|
||||
"author": "Łukasz Holeczek",
|
||||
"homepage": "http://coreui.io",
|
||||
"copyright": "Copyright 2018 creativeLabs Łukasz Holeczek",
|
||||
"license": "MIT",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"babel-core": "6.26.0",
|
||||
"babel-loader": "7.1.2",
|
||||
"babel-plugin-transform-object-rest-spread": "6.26.0",
|
||||
"babel-preset-env": "1.6.1",
|
||||
"babel-preset-react": "6.24.1",
|
||||
"copy-webpack-plugin": "4.3.1",
|
||||
"css-hot-loader": "1.3.6",
|
||||
"css-loader": "0.28.9",
|
||||
"extract-text-webpack-plugin": "3.0.2",
|
||||
"file-loader": "1.1.6",
|
||||
"html-loader": "0.5.5",
|
||||
"html-webpack-plugin": "2.30.1",
|
||||
"node-sass": "4.7.2",
|
||||
"rimraf": "2.6.2",
|
||||
"sass-loader": "6.0.6",
|
||||
"source-list-map": "2.0.0",
|
||||
"style-loader": "0.20.1",
|
||||
"uglify-js": "3.3.9",
|
||||
"url-loader": "0.6.2",
|
||||
"webpack": "3.10.0",
|
||||
"webpack-dev-server": "2.11.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"bootstrap": "4.0.0",
|
||||
"chart.js": "2.7.1",
|
||||
"flag-icon-css": "2.9.0",
|
||||
"font-awesome": "4.7.0",
|
||||
"history": "4.7.2",
|
||||
"react": "16.2.0",
|
||||
"react-chartjs-2": "2.7.0",
|
||||
"react-dom": "16.2.0",
|
||||
"react-router-dom": "4.2.2",
|
||||
"react-transition-group": "2.2.1",
|
||||
"reactstrap": "5.0.0-beta",
|
||||
"simple-line-icons": "2.4.1"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "webpack -d --progress --watch --profile --json > compilation-stats.json --env.dev",
|
||||
"start": "webpack-dev-server --progress --color --inline --env.dev",
|
||||
"build": "webpack -p --progress --env.prod",
|
||||
"clean": "rimraf ./build"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.9.4",
|
||||
"npm": ">= 5.6.0"
|
||||
}
|
||||
}
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,53 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Warstwa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="707.1px" height="200px" viewBox="0 0 707.1 200" style="enable-background:new 0 0 707.1 200;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#1FA8D7;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{opacity:4.000000e-02;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st3{opacity:8.000000e-02;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st4{opacity:0;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st5{fill:#333333;}
|
||||
.st6{fill:#1EA7D6;}
|
||||
</style>
|
||||
<polygon class="st0" points="0,150 0,50 86.6,0 173.2,50 173.2,150 86.6,200 "/>
|
||||
<polygon class="st1" points="86.6,133.3 57.7,116.7 57.7,83.3 86.6,66.7 115.5,83.3 144.3,66.7 86.6,33.3 28.9,66.7 28.9,133.3
|
||||
86.6,166.7 144.3,133.3 115.5,116.7 "/>
|
||||
<polygon class="st2" points="0,50 86.6,100 86.6,0 "/>
|
||||
<polygon class="st2" points="0,150 86.6,200 86.6,100 "/>
|
||||
<polygon class="st3" points="86.6,100 173.2,150 173.2,50 "/>
|
||||
<polygon class="st4" points="86.6,100 0,50 0,150 "/>
|
||||
<polygon class="st3" points="173.2,150 86.6,100 86.6,200 "/>
|
||||
<polygon class="st3" points="173.2,50 86.6,0 86.6,100 "/>
|
||||
<g>
|
||||
<path class="st5" d="M290.4,127.3c1,0,1.8,0.4,2.6,1.1l7.2,7.8c-4,4.9-8.8,8.7-14.6,11.3c-5.8,2.6-12.7,3.9-20.8,3.9
|
||||
c-7.2,0-13.8-1.2-19.5-3.7c-5.8-2.5-10.7-5.9-14.8-10.3c-4.1-4.4-7.2-9.7-9.4-15.8c-2.2-6.1-3.3-12.8-3.3-20
|
||||
c0-7.3,1.2-14.1,3.6-20.1c2.4-6.1,5.8-11.4,10.3-15.8c4.4-4.4,9.7-7.8,15.8-10.3c6.1-2.5,12.9-3.7,20.4-3.7c7.2,0,13.6,1.2,19,3.5
|
||||
c5.4,2.3,10.1,5.4,13.9,9.2l-6.1,8.4c-0.4,0.5-0.8,1-1.4,1.4c-0.6,0.4-1.3,0.6-2.3,0.6c-1,0-2.1-0.4-3.2-1.2s-2.5-1.7-4.1-2.6
|
||||
c-1.7-0.9-3.8-1.8-6.3-2.6c-2.5-0.8-5.8-1.2-9.7-1.2c-4.6,0-8.8,0.8-12.7,2.4c-3.8,1.6-7.2,3.9-9.9,6.9s-4.9,6.6-6.5,10.8
|
||||
c-1.6,4.3-2.3,9-2.3,14.3c0,5.5,0.8,10.4,2.3,14.6c1.6,4.3,3.7,7.9,6.3,10.8c2.7,2.9,5.8,5.2,9.4,6.7c3.6,1.6,7.5,2.3,11.6,2.3
|
||||
c2.5,0,4.7-0.1,6.7-0.4c2-0.3,3.8-0.7,5.5-1.3c1.7-0.6,3.3-1.3,4.8-2.3c1.5-0.9,3-2.1,4.5-3.4c0.4-0.4,0.9-0.7,1.4-1
|
||||
C289.3,127.4,289.9,127.3,290.4,127.3z"/>
|
||||
<path class="st5" d="M407.5,101.5c0,7.2-1.2,13.8-3.6,19.9c-2.4,6.1-5.7,11.4-10.1,15.8c-4.3,4.5-9.5,7.9-15.6,10.4
|
||||
c-6.1,2.5-12.8,3.7-20.2,3.7c-7.4,0-14.1-1.2-20.2-3.7c-6.1-2.5-11.3-6-15.7-10.4c-4.3-4.5-7.7-9.7-10.1-15.8
|
||||
c-2.4-6.1-3.6-12.7-3.6-19.9c0-7.2,1.2-13.8,3.6-19.9c2.4-6.1,5.7-11.4,10.1-15.8c4.3-4.5,9.6-7.9,15.7-10.4
|
||||
c6.1-2.5,12.8-3.7,20.2-3.7c7.4,0,14.1,1.3,20.2,3.8c6.1,2.5,11.3,6,15.6,10.4c4.3,4.4,7.7,9.7,10.1,15.8
|
||||
C406.3,87.7,407.5,94.3,407.5,101.5z M388.9,101.5c0-5.4-0.7-10.2-2.1-14.4c-1.4-4.3-3.5-7.9-6.1-10.8c-2.7-3-5.9-5.2-9.7-6.8
|
||||
c-3.8-1.6-8.1-2.4-12.9-2.4c-4.8,0-9.1,0.8-12.9,2.4c-3.8,1.6-7.1,3.8-9.8,6.8c-2.7,3-4.7,6.6-6.2,10.8c-1.4,4.3-2.2,9.1-2.2,14.4
|
||||
c0,5.4,0.7,10.2,2.2,14.4c1.4,4.3,3.5,7.9,6.2,10.8c2.7,2.9,5.9,5.2,9.8,6.8c3.8,1.6,8.1,2.4,12.9,2.4c4.8,0,9.1-0.8,12.9-2.4
|
||||
c3.8-1.6,7-3.8,9.7-6.8c2.7-2.9,4.7-6.5,6.1-10.8C388.2,111.7,388.9,106.9,388.9,101.5z"/>
|
||||
<path class="st5" d="M440.6,112.2v38.1h-18.2V52.7h29.8c6.7,0,12.4,0.7,17.1,2.1c4.7,1.4,8.6,3.3,11.7,5.8c3,2.5,5.3,5.4,6.7,8.9
|
||||
c1.4,3.4,2.1,7.2,2.1,11.4c0,3.3-0.5,6.4-1.5,9.3c-1,2.9-2.4,5.6-4.2,8c-1.8,2.4-4.1,4.5-6.8,6.3c-2.7,1.8-5.7,3.2-9.1,4.3
|
||||
c2.3,1.3,4.3,3.2,5.9,5.6l24.4,36h-16.3c-1.6,0-2.9-0.3-4-0.9c-1.1-0.6-2-1.5-2.8-2.7l-20.5-31.3c-0.8-1.2-1.6-2-2.5-2.5
|
||||
c-0.9-0.5-2.3-0.7-4.1-0.7H440.6z M440.6,99.1h11.3c3.4,0,6.4-0.4,8.9-1.3c2.5-0.9,4.6-2,6.3-3.5c1.6-1.5,2.9-3.3,3.7-5.4
|
||||
c0.8-2.1,1.2-4.3,1.2-6.8c0-4.9-1.6-8.8-4.9-11.4c-3.3-2.7-8.2-4-15-4h-11.6V99.1z"/>
|
||||
<path class="st5" d="M571.8,52.7v14.4h-43.3v27.1h34.1v14h-34.1v27.6h43.3v14.5h-61.6V52.7H571.8z"/>
|
||||
<path class="st6" d="M626.8,135.7c3.5,0,6.6-0.6,9.4-1.8c2.8-1.2,5.1-2.8,7-4.9c1.9-2.1,3.4-4.7,4.4-7.7c1-3,1.5-6.4,1.5-10.1V52.7
|
||||
h18.2v58.5c0,5.8-0.9,11.2-2.8,16.1c-1.9,4.9-4.6,9.2-8.1,12.8c-3.5,3.6-7.8,6.4-12.8,8.4s-10.6,3-16.9,3s-11.9-1-16.9-3
|
||||
s-9.2-4.8-12.7-8.4c-3.5-3.6-6.2-7.8-8-12.8c-1.9-4.9-2.8-10.3-2.8-16.1V52.7h18.2v58.4c0,3.7,0.5,7.1,1.5,10.1
|
||||
c1,3,2.5,5.6,4.4,7.7c1.9,2.1,4.2,3.8,7,5C620.1,135.1,623.3,135.7,626.8,135.7z"/>
|
||||
<path class="st6" d="M706.2,150.3H688V52.7h18.2V150.3z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.3 KiB |
@ -1,53 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Warstwa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="173.2px" height="200px" viewBox="0 0 173.2 200" style="enable-background:new 0 0 173.2 200;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#1FA8D7;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{opacity:4.000000e-02;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st3{opacity:8.000000e-02;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st4{opacity:0;stroke:#FFFFFF;stroke-miterlimit:10;}
|
||||
.st5{fill:#333333;}
|
||||
.st6{fill:#1EA7D6;}
|
||||
</style>
|
||||
<polygon class="st0" points="0,150 0,50 86.6,0 173.2,50 173.2,150 86.6,200 "/>
|
||||
<polygon class="st1" points="86.6,133.3 57.7,116.7 57.7,83.3 86.6,66.7 115.5,83.3 144.3,66.7 86.6,33.3 28.9,66.7 28.9,133.3
|
||||
86.6,166.7 144.3,133.3 115.5,116.7 "/>
|
||||
<polygon class="st2" points="0,50 86.6,100 86.6,0 "/>
|
||||
<polygon class="st2" points="0,150 86.6,200 86.6,100 "/>
|
||||
<polygon class="st3" points="86.6,100 173.2,150 173.2,50 "/>
|
||||
<polygon class="st4" points="86.6,100 0,50 0,150 "/>
|
||||
<polygon class="st3" points="173.2,150 86.6,100 86.6,200 "/>
|
||||
<polygon class="st3" points="173.2,50 86.6,0 86.6,100 "/>
|
||||
<g>
|
||||
<path class="st5" d="M290.4,127.3c1,0,1.8,0.4,2.6,1.1l7.2,7.8c-4,4.9-8.8,8.7-14.6,11.3c-5.8,2.6-12.7,3.9-20.8,3.9
|
||||
c-7.2,0-13.8-1.2-19.5-3.7c-5.8-2.5-10.7-5.9-14.8-10.3c-4.1-4.4-7.2-9.7-9.4-15.8c-2.2-6.1-3.3-12.8-3.3-20
|
||||
c0-7.3,1.2-14.1,3.6-20.1c2.4-6.1,5.8-11.4,10.3-15.8c4.4-4.4,9.7-7.8,15.8-10.3c6.1-2.5,12.9-3.7,20.4-3.7c7.2,0,13.6,1.2,19,3.5
|
||||
c5.4,2.3,10.1,5.4,13.9,9.2l-6.1,8.4c-0.4,0.5-0.8,1-1.4,1.4c-0.6,0.4-1.3,0.6-2.3,0.6c-1,0-2.1-0.4-3.2-1.2s-2.5-1.7-4.1-2.6
|
||||
c-1.7-0.9-3.8-1.8-6.3-2.6c-2.5-0.8-5.8-1.2-9.7-1.2c-4.6,0-8.8,0.8-12.7,2.4c-3.8,1.6-7.2,3.9-9.9,6.9s-4.9,6.6-6.5,10.8
|
||||
c-1.6,4.3-2.3,9-2.3,14.3c0,5.5,0.8,10.4,2.3,14.6c1.6,4.3,3.7,7.9,6.3,10.8c2.7,2.9,5.8,5.2,9.4,6.7c3.6,1.6,7.5,2.3,11.6,2.3
|
||||
c2.5,0,4.7-0.1,6.7-0.4c2-0.3,3.8-0.7,5.5-1.3c1.7-0.6,3.3-1.3,4.8-2.3c1.5-0.9,3-2.1,4.5-3.4c0.4-0.4,0.9-0.7,1.4-1
|
||||
C289.3,127.4,289.9,127.3,290.4,127.3z"/>
|
||||
<path class="st5" d="M407.5,101.5c0,7.2-1.2,13.8-3.6,19.9c-2.4,6.1-5.7,11.4-10.1,15.8c-4.3,4.5-9.5,7.9-15.6,10.4
|
||||
c-6.1,2.5-12.8,3.7-20.2,3.7c-7.4,0-14.1-1.2-20.2-3.7c-6.1-2.5-11.3-6-15.7-10.4c-4.3-4.5-7.7-9.7-10.1-15.8
|
||||
c-2.4-6.1-3.6-12.7-3.6-19.9c0-7.2,1.2-13.8,3.6-19.9c2.4-6.1,5.7-11.4,10.1-15.8c4.3-4.5,9.6-7.9,15.7-10.4
|
||||
c6.1-2.5,12.8-3.7,20.2-3.7c7.4,0,14.1,1.3,20.2,3.8c6.1,2.5,11.3,6,15.6,10.4c4.3,4.4,7.7,9.7,10.1,15.8
|
||||
C406.3,87.7,407.5,94.3,407.5,101.5z M388.9,101.5c0-5.4-0.7-10.2-2.1-14.4c-1.4-4.3-3.5-7.9-6.1-10.8c-2.7-3-5.9-5.2-9.7-6.8
|
||||
c-3.8-1.6-8.1-2.4-12.9-2.4c-4.8,0-9.1,0.8-12.9,2.4c-3.8,1.6-7.1,3.8-9.8,6.8c-2.7,3-4.7,6.6-6.2,10.8c-1.4,4.3-2.2,9.1-2.2,14.4
|
||||
c0,5.4,0.7,10.2,2.2,14.4c1.4,4.3,3.5,7.9,6.2,10.8c2.7,2.9,5.9,5.2,9.8,6.8c3.8,1.6,8.1,2.4,12.9,2.4c4.8,0,9.1-0.8,12.9-2.4
|
||||
c3.8-1.6,7-3.8,9.7-6.8c2.7-2.9,4.7-6.5,6.1-10.8C388.2,111.7,388.9,106.9,388.9,101.5z"/>
|
||||
<path class="st5" d="M440.6,112.2v38.1h-18.2V52.7h29.8c6.7,0,12.4,0.7,17.1,2.1c4.7,1.4,8.6,3.3,11.7,5.8c3,2.5,5.3,5.4,6.7,8.9
|
||||
c1.4,3.4,2.1,7.2,2.1,11.4c0,3.3-0.5,6.4-1.5,9.3c-1,2.9-2.4,5.6-4.2,8c-1.8,2.4-4.1,4.5-6.8,6.3c-2.7,1.8-5.7,3.2-9.1,4.3
|
||||
c2.3,1.3,4.3,3.2,5.9,5.6l24.4,36h-16.3c-1.6,0-2.9-0.3-4-0.9c-1.1-0.6-2-1.5-2.8-2.7l-20.5-31.3c-0.8-1.2-1.6-2-2.5-2.5
|
||||
c-0.9-0.5-2.3-0.7-4.1-0.7H440.6z M440.6,99.1h11.3c3.4,0,6.4-0.4,8.9-1.3c2.5-0.9,4.6-2,6.3-3.5c1.6-1.5,2.9-3.3,3.7-5.4
|
||||
c0.8-2.1,1.2-4.3,1.2-6.8c0-4.9-1.6-8.8-4.9-11.4c-3.3-2.7-8.2-4-15-4h-11.6V99.1z"/>
|
||||
<path class="st5" d="M571.8,52.7v14.4h-43.3v27.1h34.1v14h-34.1v27.6h43.3v14.5h-61.6V52.7H571.8z"/>
|
||||
<path class="st6" d="M626.8,135.7c3.5,0,6.6-0.6,9.4-1.8c2.8-1.2,5.1-2.8,7-4.9c1.9-2.1,3.4-4.7,4.4-7.7c1-3,1.5-6.4,1.5-10.1V52.7
|
||||
h18.2v58.5c0,5.8-0.9,11.2-2.8,16.1c-1.9,4.9-4.6,9.2-8.1,12.8c-3.5,3.6-7.8,6.4-12.8,8.4s-10.6,3-16.9,3s-11.9-1-16.9-3
|
||||
s-9.2-4.8-12.7-8.4c-3.5-3.6-6.2-7.8-8-12.8c-1.9-4.9-2.8-10.3-2.8-16.1V52.7h18.2v58.4c0,3.7,0.5,7.1,1.5,10.1
|
||||
c1,3,2.5,5.6,4.4,7.7c1.9,2.1,4.2,3.8,7,5C620.1,135.1,623.3,135.7,626.8,135.7z"/>
|
||||
<path class="st6" d="M706.2,150.3H688V52.7h18.2V150.3z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.3 KiB |
@ -1,55 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="description" content="CoreUI - Open Source Bootstrap Admin Template">
|
||||
<meta name="author" content="Łukasz Holeczek">
|
||||
<meta name="keyword" content="Bootstrap,Admin,Template,Open,Source,AngularJS,Angular,Angular2,Angular 2,Angular4,Angular 4,jQuery,CSS,HTML,RWD,Dashboard,React,React.js,Vue,Vue.js">
|
||||
<link rel="shortcut icon" href="img/favicon.png">
|
||||
<title>CoreUI - Open Source Bootstrap Admin Template</title>
|
||||
</head>
|
||||
|
||||
<!-- BODY options, add following classes to body to change options
|
||||
|
||||
// Header options
|
||||
1. '.header-fixed' - Fixed Header
|
||||
|
||||
// Brand options
|
||||
1. '.brand-minimized' - Minimized brand (Only symbol)
|
||||
|
||||
// Sidebar options
|
||||
1. '.sidebar-fixed' - Fixed Sidebar
|
||||
2. '.sidebar-hidden' - Hidden Sidebar
|
||||
3. '.sidebar-off-canvas' - Off Canvas Sidebar
|
||||
4. '.sidebar-minimized' - Minimized Sidebar (Only icons)
|
||||
5. '.sidebar-compact' - Compact Sidebar
|
||||
|
||||
// Aside options
|
||||
1. '.aside-menu-fixed' - Fixed Aside Menu
|
||||
2. '.aside-menu-hidden' - Hidden Aside Menu
|
||||
3. '.aside-menu-off-canvas' - Off Canvas Aside Menu
|
||||
|
||||
// Breadcrumb options
|
||||
1. '.breadcrumb-fixed' - Fixed Breadcrumb
|
||||
|
||||
// Footer options
|
||||
1. '.footer-fixed' - Fixed footer
|
||||
|
||||
-->
|
||||
|
||||
<body class="app header-fixed sidebar-fixed aside-menu-fixed aside-menu-hidden">
|
||||
<div id="root"></div>
|
||||
<!--
|
||||
This HTML file is a template.
|
||||
If you open it directly in the browser, you will see an empty page.
|
||||
|
||||
You can add webfonts, meta tags, or analytics to this file.
|
||||
The build step will place the bundled scripts into the <body> tag.
|
||||
|
||||
To begin the development, run `npm start`.
|
||||
To create a production bundle, use `npm run build`.
|
||||
-->
|
||||
</body>
|
||||
</html>
|
@ -1 +0,0 @@
|
||||
// Here you can add other styles
|
@ -1 +0,0 @@
|
||||
// Variable overrides
|
@ -1,8 +0,0 @@
|
||||
// If you want to override variables do it here
|
||||
@import "variables";
|
||||
|
||||
// Import styles
|
||||
@import "node_modules/@coreui/styles/scss/coreui";
|
||||
|
||||
// If you want to add something do it here
|
||||
@import "custom";
|
@ -1,7 +0,0 @@
|
||||
// Override Boostrap variables
|
||||
@import "../variables";
|
||||
@import "node_modules/@coreui/styles/scss/bootstrap-variables";
|
||||
@import "node_modules/bootstrap/scss/mixins";
|
||||
@import "node_modules/bootstrap/scss/functions";
|
||||
@import "node_modules/bootstrap/scss/variables";
|
||||
@import "node_modules/@coreui/styles/scss/variables";
|
@ -1,14 +0,0 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
|
||||
class Aside extends Component {
|
||||
render() {
|
||||
return (
|
||||
<aside className="aside-menu">
|
||||
{/*Aside Menu*/}
|
||||
</aside>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default Aside;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Aside",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Aside.js"
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
import React from 'react';
|
||||
import {Route, Link} from 'react-router-dom';
|
||||
import {Breadcrumb, BreadcrumbItem} from 'reactstrap';
|
||||
import routes from '../../routes';
|
||||
|
||||
const findRouteName = url => routes[url];
|
||||
|
||||
const getPaths = (pathname) => {
|
||||
const paths = ['/'];
|
||||
|
||||
if (pathname === '/') return paths;
|
||||
|
||||
pathname.split('/').reduce((prev, curr, index) => {
|
||||
const currPath = `${prev}/${curr}`;
|
||||
paths.push(currPath);
|
||||
return currPath;
|
||||
});
|
||||
return paths;
|
||||
};
|
||||
|
||||
const BreadcrumbsItem = ({...rest, match}) => {
|
||||
const routeName = findRouteName(match.url);
|
||||
if (routeName) {
|
||||
return (
|
||||
match.isExact ?
|
||||
(
|
||||
<BreadcrumbItem active>{routeName}</BreadcrumbItem>
|
||||
) :
|
||||
(
|
||||
<BreadcrumbItem>
|
||||
<Link to={match.url || ''}>
|
||||
{routeName}
|
||||
</Link>
|
||||
</BreadcrumbItem>
|
||||
)
|
||||
);
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
const Breadcrumbs = ({...rest, location : {pathname}, match}) => {
|
||||
const paths = getPaths(pathname);
|
||||
const items = paths.map((path, i) => <Route key={i++} path={path} component={BreadcrumbsItem}/>);
|
||||
return (
|
||||
<Breadcrumb>
|
||||
{items}
|
||||
</Breadcrumb>
|
||||
);
|
||||
};
|
||||
|
||||
export default props => (
|
||||
<div>
|
||||
<Route path="/:path" component={Breadcrumbs} {...props} />
|
||||
</div>
|
||||
);
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Breadcrumb",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Breadcrumb.js"
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
|
||||
class Footer extends Component {
|
||||
render() {
|
||||
return (
|
||||
<footer className="app-footer">
|
||||
<span><a href="http://coreui.io">CoreUI</a> © 2018 creativeLabs.</span>
|
||||
<span className="ml-auto">Powered by <a href="http://coreui.io">CoreUI</a></span>
|
||||
</footer>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default Footer;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Footer",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Footer.js"
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
import {
|
||||
Nav,
|
||||
NavItem,
|
||||
NavbarToggler,
|
||||
NavbarBrand,
|
||||
} from 'reactstrap';
|
||||
|
||||
class Header extends Component {
|
||||
|
||||
sidebarToggle(e) {
|
||||
e.preventDefault();
|
||||
document.body.classList.toggle('sidebar-hidden');
|
||||
}
|
||||
|
||||
sidebarMinimize(e) {
|
||||
e.preventDefault();
|
||||
document.body.classList.toggle('sidebar-minimized');
|
||||
}
|
||||
|
||||
mobileSidebarToggle(e) {
|
||||
e.preventDefault();
|
||||
document.body.classList.toggle('sidebar-mobile-show');
|
||||
}
|
||||
|
||||
asideToggle(e) {
|
||||
e.preventDefault();
|
||||
document.body.classList.toggle('aside-menu-hidden');
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<header className="app-header navbar">
|
||||
<NavbarToggler className="d-lg-none" onClick={this.mobileSidebarToggle}>
|
||||
<span className="navbar-toggler-icon"></span>
|
||||
</NavbarToggler>
|
||||
<NavbarBrand href="#"></NavbarBrand>
|
||||
<NavbarToggler className="d-md-down-none mr-auto" onClick={this.sidebarToggle}>
|
||||
<span className="navbar-toggler-icon"></span>
|
||||
</NavbarToggler>
|
||||
<NavbarToggler className="d-md-down-none" onClick={this.asideToggle}>
|
||||
<span className="navbar-toggler-icon"></span>
|
||||
</NavbarToggler>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Header;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Header",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Header.js"
|
||||
}
|
@ -1,164 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
import {NavLink} from 'react-router-dom';
|
||||
import {Badge, Nav, NavItem, NavLink as RsNavLink} from 'reactstrap';
|
||||
import classNames from 'classnames';
|
||||
import nav from './_nav';
|
||||
import SidebarFooter from './../SidebarFooter';
|
||||
import SidebarForm from './../SidebarForm';
|
||||
import SidebarHeader from './../SidebarHeader';
|
||||
import SidebarMinimizer from './../SidebarMinimizer';
|
||||
|
||||
class Sidebar extends Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.handleClick = this.handleClick.bind(this);
|
||||
this.activeRoute = this.activeRoute.bind(this);
|
||||
this.hideMobile = this.hideMobile.bind(this);
|
||||
}
|
||||
|
||||
|
||||
handleClick(e) {
|
||||
e.preventDefault();
|
||||
e.target.parentElement.classList.toggle('open');
|
||||
}
|
||||
|
||||
activeRoute(routeName, props) {
|
||||
// return this.props.location.pathname.indexOf(routeName) > -1 ? 'nav-item nav-dropdown open' : 'nav-item nav-dropdown';
|
||||
return props.location.pathname.indexOf(routeName) > -1 ? 'nav-item nav-dropdown open' : 'nav-item nav-dropdown';
|
||||
|
||||
}
|
||||
|
||||
hideMobile() {
|
||||
if (document.body.classList.contains('sidebar-mobile-show')) {
|
||||
document.body.classList.toggle('sidebar-mobile-show')
|
||||
}
|
||||
}
|
||||
|
||||
// todo Sidebar nav secondLevel
|
||||
// secondLevelActive(routeName) {
|
||||
// return this.props.location.pathname.indexOf(routeName) > -1 ? "nav nav-second-level collapse in" : "nav nav-second-level collapse";
|
||||
// }
|
||||
|
||||
|
||||
render() {
|
||||
|
||||
const props = this.props;
|
||||
|
||||
// badge addon to NavItem
|
||||
const badge = (badge) => {
|
||||
if (badge) {
|
||||
const classes = classNames( badge.class );
|
||||
return (<Badge className={ classes } color={ badge.variant }>{ badge.text }</Badge>)
|
||||
}
|
||||
};
|
||||
|
||||
// simple wrapper for nav-title item
|
||||
const wrapper = item => { return (item.wrapper && item.wrapper.element ? (React.createElement(item.wrapper.element, item.wrapper.attributes, item.name)): item.name ) };
|
||||
|
||||
// nav list section title
|
||||
const title = (title, key) => {
|
||||
const classes = classNames( 'nav-title', title.class);
|
||||
return (<li key={key} className={ classes }>{wrapper(title)} </li>);
|
||||
};
|
||||
|
||||
// nav list divider
|
||||
const divider = (divider, key) => {
|
||||
const classes = classNames( 'divider', divider.class);
|
||||
return (<li key={key} className={ classes }></li>);
|
||||
};
|
||||
|
||||
// nav label with nav link
|
||||
const navLabel = (item, key) => {
|
||||
const classes = {
|
||||
item: classNames( 'hidden-cn', item.class ),
|
||||
link: classNames( 'nav-label', item.class ? item.class : ''),
|
||||
icon: classNames(
|
||||
!item.icon ? 'fa fa-circle' : item.icon ,
|
||||
item.label.variant ? `text-${item.label.variant}` : '',
|
||||
item.label.class ? item.label.class : ''
|
||||
)
|
||||
};
|
||||
return (
|
||||
navLink(item, key, classes)
|
||||
);
|
||||
};
|
||||
|
||||
// nav item with nav link
|
||||
const navItem = (item, key) => {
|
||||
const classes = {
|
||||
item: classNames( item.class) ,
|
||||
link: classNames( 'nav-link', item.variant ? `nav-link-${item.variant}` : ''),
|
||||
icon: classNames( item.icon )
|
||||
};
|
||||
return (
|
||||
navLink(item, key, classes)
|
||||
)
|
||||
};
|
||||
|
||||
// nav link
|
||||
const navLink = (item, key, classes) => {
|
||||
const url = item.url ? item.url : '';
|
||||
return (
|
||||
<NavItem key={key} className={classes.item}>
|
||||
{ isExternal(url) ?
|
||||
<RsNavLink href={url} className={classes.link} active>
|
||||
<i className={classes.icon}></i>{item.name}{badge(item.badge)}
|
||||
</RsNavLink>
|
||||
:
|
||||
<NavLink to={url} className={classes.link} activeClassName="active" onClick={this.hideMobile}>
|
||||
<i className={classes.icon}></i>{item.name}{badge(item.badge)}
|
||||
</NavLink>
|
||||
}
|
||||
</NavItem>
|
||||
)
|
||||
};
|
||||
|
||||
// nav dropdown
|
||||
const navDropdown = (item, key) => {
|
||||
return (
|
||||
<li key={key} className={this.activeRoute(item.url, props)}>
|
||||
<a className="nav-link nav-dropdown-toggle" href="#" onClick={this.handleClick}><i className={item.icon}></i>{item.name}</a>
|
||||
<ul className="nav-dropdown-items">
|
||||
{navList(item.children)}
|
||||
</ul>
|
||||
</li>)
|
||||
};
|
||||
|
||||
// nav type
|
||||
const navType = (item, idx) =>
|
||||
item.title ? title(item, idx) :
|
||||
item.divider ? divider(item, idx) :
|
||||
item.label ? navLabel(item, idx) :
|
||||
item.children ? navDropdown(item, idx)
|
||||
: navItem(item, idx) ;
|
||||
|
||||
// nav list
|
||||
const navList = (items) => {
|
||||
return items.map( (item, index) => navType(item, index) );
|
||||
};
|
||||
|
||||
const isExternal = (url) => {
|
||||
const link = url ? url.substring(0, 4) : '';
|
||||
return link === 'http';
|
||||
};
|
||||
|
||||
// sidebar-nav root
|
||||
return (
|
||||
<div className="sidebar">
|
||||
<SidebarHeader/>
|
||||
<SidebarForm/>
|
||||
<nav className="sidebar-nav">
|
||||
<Nav>
|
||||
{navList(nav.items)}
|
||||
</Nav>
|
||||
</nav>
|
||||
<SidebarFooter/>
|
||||
<SidebarMinimizer/>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default Sidebar;
|
@ -1,13 +0,0 @@
|
||||
export default {
|
||||
items: [
|
||||
{
|
||||
name: 'Dashboard',
|
||||
url: '/dashboard',
|
||||
icon: 'icon-speedometer',
|
||||
badge: {
|
||||
variant: 'info',
|
||||
text: 'NEW'
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Sidebar",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Sidebar.js"
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
|
||||
class SidebarFooter extends Component {
|
||||
|
||||
render() {
|
||||
return null
|
||||
// Uncomment following code lines to add Sidebar Footer
|
||||
// return (
|
||||
// <div className="sidebar-footer"></div>
|
||||
// )
|
||||
}
|
||||
}
|
||||
|
||||
export default SidebarFooter;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "SidebarFooter",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./SidebarFooter.js"
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
|
||||
class SidebarForm extends Component {
|
||||
|
||||
render() {
|
||||
return null
|
||||
// Uncomment following code lines to add Sidebar Form
|
||||
// return (
|
||||
// <div className="sidebar-form"></div>
|
||||
// )
|
||||
}
|
||||
}
|
||||
|
||||
export default SidebarForm;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "SidebarForm",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./SidebarForm.js"
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
|
||||
class SidebarHeader extends Component {
|
||||
|
||||
render() {
|
||||
return null
|
||||
// Uncomment following code lines to add Sidebar Header
|
||||
// return (
|
||||
// <div className="sidebar-header"></div>
|
||||
// )
|
||||
}
|
||||
}
|
||||
|
||||
export default SidebarHeader;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "SidebarHeader",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./SidebarHeader.js"
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
|
||||
class SidebarMinimizer extends Component {
|
||||
|
||||
sidebarMinimize() {
|
||||
document.body.classList.toggle('sidebar-minimized');
|
||||
}
|
||||
|
||||
brandMinimize() {
|
||||
document.body.classList.toggle('brand-minimized');
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<button className="sidebar-minimizer" type="button" onClick={(event) => { this.sidebarMinimize(); this.brandMinimize() }}></button>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default SidebarMinimizer;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "SidebarMinimizer",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./SidebarMinimizer.js"
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
import React, {Component} from 'react';
|
||||
import {Link, Switch, Route, Redirect} from 'react-router-dom';
|
||||
import {Container} from 'reactstrap';
|
||||
import Header from '../../components/Header/';
|
||||
import Sidebar from '../../components/Sidebar/';
|
||||
import Breadcrumb from '../../components/Breadcrumb/';
|
||||
import Aside from '../../components/Aside/';
|
||||
import Footer from '../../components/Footer/';
|
||||
|
||||
import Dashboard from '../../views/Dashboard/';
|
||||
|
||||
class Full extends Component {
|
||||
render() {
|
||||
return (
|
||||
<div className="app">
|
||||
<Header />
|
||||
<div className="app-body">
|
||||
<Sidebar {...this.props}/>
|
||||
<main className="main">
|
||||
<Breadcrumb />
|
||||
<Container fluid>
|
||||
<Switch>
|
||||
<Route path="/dashboard" name="Dashboard" component={Dashboard}/>
|
||||
<Redirect from="/" to="/dashboard"/>
|
||||
</Switch>
|
||||
</Container>
|
||||
</main>
|
||||
<Aside />
|
||||
</div>
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Full;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Full",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Full.js"
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import {HashRouter, Route, Switch} from 'react-router-dom';
|
||||
|
||||
// Styles
|
||||
// Import Flag Icons Set
|
||||
import 'flag-icon-css/css/flag-icon.min.css';
|
||||
// Import Font Awesome Icons Set
|
||||
import 'font-awesome/css/font-awesome.min.css';
|
||||
// Import Simple Line Icons Set
|
||||
import 'simple-line-icons/css/simple-line-icons.css';
|
||||
// Import Main styles for this application
|
||||
import '../scss/style.scss'
|
||||
// Temp fix for reactstrap
|
||||
import '../scss/core/_dropdown-menu-right.scss'
|
||||
|
||||
// Containers
|
||||
import Full from './containers/Full/'
|
||||
|
||||
ReactDOM.render((
|
||||
<HashRouter>
|
||||
<Switch>
|
||||
<Route path="/" name="Home" component={Full}/>
|
||||
</Switch>
|
||||
</HashRouter>
|
||||
), document.getElementById('root'));
|
@ -1,5 +0,0 @@
|
||||
const routes = {
|
||||
'/': 'Home',
|
||||
'/dashboard': 'Dashboard'
|
||||
};
|
||||
export default routes;
|
@ -1,14 +0,0 @@
|
||||
import React, { Component } from 'react';
|
||||
|
||||
class Dashboard extends Component {
|
||||
|
||||
render() {
|
||||
return (
|
||||
<div className="animated fadeIn">
|
||||
Hello World
|
||||
</div>
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export default Dashboard;
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Dashboard",
|
||||
"version": "0.0.0",
|
||||
"private": true,
|
||||
"main": "./Dashboard.js"
|
||||
}
|
@ -1,112 +0,0 @@
|
||||
const webpack = require('webpack');
|
||||
const path = require('path');
|
||||
const ExtractTextPlugin = require('extract-text-webpack-plugin');
|
||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||
|
||||
const extractCSS = new ExtractTextPlugin('[name].fonts.css');
|
||||
const extractSCSS = new ExtractTextPlugin('[name].styles.css');
|
||||
|
||||
const BUILD_DIR = path.resolve(__dirname, 'build');
|
||||
const SRC_DIR = path.resolve(__dirname, 'src');
|
||||
|
||||
console.log('BUILD_DIR', BUILD_DIR);
|
||||
console.log('SRC_DIR', SRC_DIR);
|
||||
|
||||
module.exports = (env = {}) => {
|
||||
return {
|
||||
entry: {
|
||||
index: [SRC_DIR + '/index.js']
|
||||
},
|
||||
output: {
|
||||
path: BUILD_DIR,
|
||||
filename: '[name].bundle.js'
|
||||
},
|
||||
// watch: true,
|
||||
devtool: env.prod ? 'source-map' : 'cheap-module-eval-source-map',
|
||||
devServer: {
|
||||
contentBase: BUILD_DIR,
|
||||
// port: 9001,
|
||||
compress: true,
|
||||
hot: true,
|
||||
open: true
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.(js|jsx)$/,
|
||||
exclude: /node_modules/,
|
||||
use: {
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
cacheDirectory: true,
|
||||
presets: ['react', 'env']
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
test: /\.html$/,
|
||||
loader: 'html-loader'
|
||||
},
|
||||
{
|
||||
test: /\.(scss)$/,
|
||||
use: ['css-hot-loader'].concat(extractSCSS.extract({
|
||||
fallback: 'style-loader',
|
||||
use: [
|
||||
{
|
||||
loader: 'css-loader',
|
||||
options: {alias: {'../img': '../public/img'}}
|
||||
},
|
||||
{
|
||||
loader: 'sass-loader'
|
||||
}
|
||||
]
|
||||
}))
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
use: extractCSS.extract({
|
||||
fallback: 'style-loader',
|
||||
use: 'css-loader'
|
||||
})
|
||||
},
|
||||
{
|
||||
test: /\.(png|jpg|jpeg|gif|ico)$/,
|
||||
use: [
|
||||
{
|
||||
// loader: 'url-loader'
|
||||
loader: 'file-loader',
|
||||
options: {
|
||||
name: './img/[name].[hash].[ext]'
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
|
||||
loader: 'file-loader',
|
||||
options: {
|
||||
name: './fonts/[name].[hash].[ext]'
|
||||
}
|
||||
}]
|
||||
},
|
||||
plugins: [
|
||||
new webpack.HotModuleReplacementPlugin(),
|
||||
new webpack.optimize.UglifyJsPlugin({sourceMap: true}),
|
||||
new webpack.NamedModulesPlugin(),
|
||||
extractCSS,
|
||||
extractSCSS,
|
||||
new HtmlWebpackPlugin(
|
||||
{
|
||||
inject: true,
|
||||
template: './public/index.html'
|
||||
}
|
||||
),
|
||||
new CopyWebpackPlugin([
|
||||
{from: './public/img', to: 'img'}
|
||||
],
|
||||
{copyUnmodified: false}
|
||||
)
|
||||
]
|
||||
}
|
||||
};
|