refactor: new project structure
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
# dependencies
|
# dependencies
|
||||||
node_modules
|
node_modules
|
||||||
|
package-lock.json
|
||||||
|
|
||||||
# testing
|
# testing
|
||||||
coverage
|
coverage
|
||||||
|
80
package.json
@ -1,33 +1,57 @@
|
|||||||
{
|
{
|
||||||
"name": "@coreui/react-admin-template",
|
"name": "@coreui/react",
|
||||||
"version": "2.0.0",
|
"version": "1.0.10",
|
||||||
"description": "Free React Admin Template",
|
"description": "Open Source Bootstrap 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"
|
|
||||||
],
|
|
||||||
"author": "Łukasz Holeczek",
|
"author": "Łukasz Holeczek",
|
||||||
|
"homepage": "http://coreui.io",
|
||||||
|
"copyright": "Copyright 2018 creativeLabs Łukasz Holeczek",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bugs": {
|
"private": true,
|
||||||
"url": "https://github.com/mrholek/CoreUI-React/issues"
|
"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}
|
|
||||||
)
|
|
||||||
]
|
|
||||||
}
|
|
||||||
};
|
|