Compare commits
489 Commits
v3.0.0-alp
...
v3.0.3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
87b8078d9b | ||
|
|
ae68ffc134 | ||
|
|
b9460ae8ea | ||
|
|
c6b1b4f586 | ||
|
|
67174b5c6b | ||
|
|
683f7bfccf | ||
|
|
ed6ae4dbb2 | ||
|
|
129475db78 | ||
|
|
b6e1529f3d | ||
|
|
0643791d8d | ||
|
|
bc3123cb08 | ||
|
|
14719bdd88 | ||
|
|
21641f7c7c | ||
|
|
76854a2634 | ||
|
|
6934469b38 | ||
|
|
09b89135c7 | ||
|
|
61a58cda9a | ||
|
|
cafc66ae7d | ||
|
|
662b51c9c0 | ||
|
|
b7efadbbca | ||
|
|
533a5917f5 | ||
|
|
9261d762b7 | ||
|
|
f70527b620 | ||
|
|
3551ac8afb | ||
|
|
9baa03ed63 | ||
|
|
27ba2f178e | ||
|
|
6934f4c541 | ||
|
|
3b69d63eb4 | ||
|
|
ede720e2b8 | ||
|
|
4ba150d509 | ||
|
|
187331143f | ||
|
|
ba8f8a8bbc | ||
|
|
a3ede49485 | ||
|
|
f9a40e3b46 | ||
|
|
b1b5ce3cb5 | ||
|
|
771a2d5530 | ||
|
|
4480db7f27 | ||
|
|
0238015f5e | ||
|
|
b1c99c8963 | ||
|
|
4d08d4b577 | ||
|
|
4b2ea27a82 | ||
|
|
ff41f98ea5 | ||
|
|
3f8802e647 | ||
|
|
8a66185901 | ||
|
|
63eb7d2e8d | ||
|
|
64874f04fe | ||
|
|
6800a0235d | ||
|
|
56ec9a3942 | ||
|
|
e73c7f15fa | ||
|
|
0e48302342 | ||
|
|
ce486267c4 | ||
|
|
1ea675c50d | ||
|
|
a4d297de9d | ||
|
|
ffadc3d261 | ||
|
|
1cbf929bcf | ||
|
|
3e236c9ff9 | ||
|
|
6fbbde4883 | ||
|
|
44fac0f65e | ||
|
|
8da329441e | ||
|
|
d68e264e42 | ||
|
|
6c06201930 | ||
|
|
dbe3e80778 | ||
|
|
add29e7168 | ||
|
|
05f23cb8c3 | ||
|
|
56c5319f98 | ||
|
|
7a47aad1e9 | ||
|
|
478cfc1743 | ||
|
|
2473021861 | ||
|
|
22436d9cd2 | ||
|
|
a67b6b8d10 | ||
|
|
72d348d34d | ||
|
|
71d32f8114 | ||
|
|
945fd0c43b | ||
|
|
ebe29fbd24 | ||
|
|
5613006ea7 | ||
|
|
6832bf6937 | ||
|
|
ad3cfdd498 | ||
|
|
0b1372dd0f | ||
|
|
857c3e7e69 | ||
|
|
a324025b67 | ||
|
|
42d4b59808 | ||
|
|
502887c71c | ||
|
|
17a48d70c7 | ||
|
|
d23a8d3d7f | ||
|
|
c27e8738cc | ||
|
|
259d67ef8e | ||
|
|
d327d76ae4 | ||
|
|
5988c4f9db | ||
|
|
29dc8e85fd | ||
|
|
d1f555e679 | ||
|
|
e24c4d01ff | ||
|
|
f5286d6229 | ||
|
|
7e86bd68cb | ||
|
|
2c7229674c | ||
|
|
78325db63a | ||
|
|
a2200f9bde | ||
|
|
6cb3427fb8 | ||
|
|
fb77bcb178 | ||
|
|
bfb74266b7 | ||
|
|
f80e848273 | ||
|
|
1406f85866 | ||
|
|
98c5a988ba | ||
|
|
59417e2a29 | ||
|
|
e100ad119f | ||
|
|
a038600a03 | ||
|
|
0a0b7b5978 | ||
|
|
4754f57ee8 | ||
|
|
f7aa7f36ba | ||
|
|
db50d38af4 | ||
|
|
d17b058db4 | ||
|
|
3348d3a414 | ||
|
|
e78ee8d9ca | ||
|
|
5198872d30 | ||
|
|
b7a1c871ce | ||
|
|
2ea45f22f3 | ||
|
|
6457d31b0d | ||
|
|
c4b90591a8 | ||
|
|
bed1408234 | ||
|
|
54adf72cd3 | ||
|
|
d5404fb1f3 | ||
|
|
ec0cf8a197 | ||
|
|
4d13072001 | ||
|
|
08c597d413 | ||
|
|
67024d83e4 | ||
|
|
60830bb6c7 | ||
|
|
448556d366 | ||
|
|
e8ddb644a6 | ||
|
|
e7d646cba1 | ||
|
|
090bffc34c | ||
|
|
925254199e | ||
|
|
f60e0626fc | ||
|
|
139fbd3454 | ||
|
|
242ef8984a | ||
|
|
acf9fe8403 | ||
|
|
247b797c38 | ||
|
|
c5c5b6a407 | ||
|
|
7d26cdd615 | ||
|
|
0f18f03807 | ||
|
|
373c131092 | ||
|
|
8d20d4791f | ||
|
|
4acb2b49e6 | ||
|
|
46a05235ab | ||
|
|
977d95b43c | ||
|
|
4f28b5e39a | ||
|
|
016ca7c2b3 | ||
|
|
386b525f77 | ||
|
|
2bfcb514df | ||
|
|
9f67b816a4 | ||
|
|
cec053b7bf | ||
|
|
eae052422d | ||
|
|
829a9b3c6c | ||
|
|
14967aec94 | ||
|
|
0d4a75475a | ||
|
|
7acb89f44b | ||
|
|
29a3ba3953 | ||
|
|
302c85fb47 | ||
|
|
f83f34546d | ||
|
|
30b69da0b3 | ||
|
|
bd982813c4 | ||
|
|
e920e164e6 | ||
|
|
f13e935b75 | ||
|
|
5bfaaa02d8 | ||
|
|
c3a6d62a1d | ||
|
|
00ae60be24 | ||
|
|
2356b9844b | ||
|
|
6f2a4f7a0b | ||
|
|
0dc32b828a | ||
|
|
10d10e7537 | ||
|
|
2b0e4aa843 | ||
|
|
c6a19a97f2 | ||
|
|
d8a6ddca02 | ||
|
|
7a4a0659d1 | ||
|
|
85a1215dd5 | ||
|
|
c011e42b77 | ||
|
|
99e51bc31a | ||
|
|
c09241069b | ||
|
|
c2d3d8595c | ||
|
|
3be22b6be9 | ||
|
|
c22642766e | ||
|
|
81e3dd0eab | ||
|
|
43786cdd8c | ||
|
|
4e8de7689f | ||
|
|
5d7e709c7c | ||
|
|
c08bc98075 | ||
|
|
9dc6d1dfd3 | ||
|
|
0997acea1e | ||
|
|
00675ef1cb | ||
|
|
cd5f84b253 | ||
|
|
6099356207 | ||
|
|
debb6c4727 | ||
|
|
c153f13057 | ||
|
|
c78169c3f7 | ||
|
|
ffc0c92678 | ||
|
|
6ebedadced | ||
|
|
6c2104dc2d | ||
|
|
acd65cf524 | ||
|
|
f51bce162f | ||
|
|
5af52cf9df | ||
|
|
c950273d43 | ||
|
|
c1207646f4 | ||
|
|
40d88ee12e | ||
|
|
91840e0231 | ||
|
|
4454f712ff | ||
|
|
3607ed15ed | ||
|
|
a9203b3882 | ||
|
|
483a58ce74 | ||
|
|
8799b5497c | ||
|
|
1261a7e36c | ||
|
|
7774adb2a7 | ||
|
|
be0ce68264 | ||
|
|
556c1c80df | ||
|
|
e6db3e09ea | ||
|
|
683a015a4e | ||
|
|
026f400dcd | ||
|
|
64df71d125 | ||
|
|
6f73dc7ca7 | ||
|
|
a93835979a | ||
|
|
bb2e0de6cd | ||
|
|
ef35ff2cbe | ||
|
|
28fff0df4c | ||
|
|
accf50cf1b | ||
|
|
7f68cf5cc9 | ||
|
|
d8e5b6f2c2 | ||
|
|
748fd54d3f | ||
|
|
ec008a693f | ||
|
|
487ccecf05 | ||
|
|
7bb5b47bff | ||
|
|
9f46a194d3 | ||
|
|
0c9e0b7b49 | ||
|
|
b8eac86970 | ||
|
|
e2ad19ab11 | ||
|
|
15f11f2f33 | ||
|
|
d8904dd346 | ||
|
|
b78a1c45bb | ||
|
|
d37b7e6af8 | ||
|
|
1f6e992757 | ||
|
|
580e6a12a5 | ||
|
|
abece383c4 | ||
|
|
9b290fa5d0 | ||
|
|
bc8b990c1a | ||
|
|
0fd72b8837 | ||
|
|
8c18a36f6e | ||
|
|
26741a95c5 | ||
|
|
7d35fb3b3e | ||
|
|
4453262bb0 | ||
|
|
07720d6094 | ||
|
|
ce78f25deb | ||
|
|
aebfe08b33 | ||
|
|
a99c9b7959 | ||
|
|
cac5828617 | ||
|
|
0a1338086a | ||
|
|
b2139077f5 | ||
|
|
f93b3fea4d | ||
|
|
0bf308ebd6 | ||
|
|
baea4e435b | ||
|
|
cda2fe3f4c | ||
|
|
df6eb2f1d5 | ||
|
|
cf176f0cb0 | ||
|
|
7d15c6ac8c | ||
|
|
4d0080e1c6 | ||
|
|
2658574241 | ||
|
|
a8051f5666 | ||
|
|
8cee30f14e | ||
|
|
51579d5324 | ||
|
|
56682c498f | ||
|
|
742cb25c07 | ||
|
|
643efcd1a4 | ||
|
|
349ed57ce5 | ||
|
|
d15055042e | ||
|
|
577dc4db6e | ||
|
|
eeeee1fbbf | ||
|
|
05e0de2291 | ||
|
|
1f576576ce | ||
|
|
7c730af2c8 | ||
|
|
6edd3d88d7 | ||
|
|
2865815c47 | ||
|
|
e3888aee85 | ||
|
|
ce9734ef07 | ||
|
|
6a85e9c5a1 | ||
|
|
6874eb31d7 | ||
|
|
6d0fcbc8b1 | ||
|
|
42b6ff1b11 | ||
|
|
8c9ef56657 | ||
|
|
2805e35b2f | ||
|
|
4f231d5367 | ||
|
|
937dffc03d | ||
|
|
4cb6c94411 | ||
|
|
ae419c1f72 | ||
|
|
2ab586c4db | ||
|
|
0437635830 | ||
|
|
c9b02625dd | ||
|
|
e8b6ff4e56 | ||
|
|
6b683b1d94 | ||
|
|
08d1a8d898 | ||
|
|
a5241489f8 | ||
|
|
2d36befc04 | ||
|
|
d27aa49026 | ||
|
|
1aa67a08ea | ||
|
|
09651f0a82 | ||
|
|
1b1b909162 | ||
|
|
b816ef347a | ||
|
|
ec9f780ed7 | ||
|
|
62a29b624e | ||
|
|
0381231b23 | ||
|
|
a514515799 | ||
|
|
c98018c880 | ||
|
|
c3fffde6c0 | ||
|
|
f3eeb0bfaa | ||
|
|
d6c8360f4f | ||
|
|
c471db9628 | ||
|
|
af21f07b3d | ||
|
|
f549efa62a | ||
|
|
a14df4917b | ||
|
|
bc04864edf | ||
|
|
89fc86a000 | ||
|
|
7dd7bce535 | ||
|
|
02fe824919 | ||
|
|
acdbe25cfa | ||
|
|
2ca7f5411d | ||
|
|
66055cd96a | ||
|
|
e4970b6c30 | ||
|
|
c4c082c4ac | ||
|
|
0876d0ab70 | ||
|
|
fd8183c965 | ||
|
|
ac6a58c118 | ||
|
|
9d55dee3ad | ||
|
|
40007571f9 | ||
|
|
8685cde1b0 | ||
|
|
3d8c88799a | ||
|
|
5fceda1ba8 | ||
|
|
9e251efd0c | ||
|
|
1ff65e5bd9 | ||
|
|
e9b7ad1354 | ||
|
|
4be1bd935c | ||
|
|
8c08ab1846 | ||
|
|
f96d4aea3e | ||
|
|
d3554c591e | ||
|
|
f54bb66724 | ||
|
|
97168e80be | ||
|
|
2e4e2b0572 | ||
|
|
64ad688e24 | ||
|
|
4e717712cc | ||
|
|
de09bbc21d | ||
|
|
165c02e0c7 | ||
|
|
5639e8c4eb | ||
|
|
427d512881 | ||
|
|
a1d72f02ee | ||
|
|
14f59c34f2 | ||
|
|
8845f6a8e5 | ||
|
|
f61e3a04d6 | ||
|
|
fe693889dd | ||
|
|
64ef08f35d | ||
|
|
f69272d504 | ||
|
|
9cd8bac035 | ||
|
|
8b24386671 | ||
|
|
3fed7f5897 | ||
|
|
c089bc9796 | ||
|
|
dd0794bab2 | ||
|
|
f8f0d8fc8e | ||
|
|
2804a35d13 | ||
|
|
8f5b3d68b9 | ||
|
|
f1f98ba2d8 | ||
|
|
4d14a6f3b7 | ||
|
|
7a28ca5ac2 | ||
|
|
a5bbef158a | ||
|
|
2e7c44faa3 | ||
|
|
377d2718de | ||
|
|
7745078a45 | ||
|
|
6773bd1772 | ||
|
|
c66ab85940 | ||
|
|
b313b6ab1e | ||
|
|
54653bbb1e | ||
|
|
02c398e707 | ||
|
|
127188bb2c | ||
|
|
149400ec6b | ||
|
|
c26d880962 | ||
|
|
bf7cc5018f | ||
|
|
11e09242ea | ||
|
|
4c0f3d0baf | ||
|
|
dcc223da7b | ||
|
|
68ff7620f0 | ||
|
|
042e05989a | ||
|
|
7e2ec226e0 | ||
|
|
91ef7e7bbd | ||
|
|
bc362337a1 | ||
|
|
5daf8673cc | ||
|
|
7c959812ef | ||
|
|
a5141cabc7 | ||
|
|
36ae4e2445 | ||
|
|
164df59d01 | ||
|
|
974a67812c | ||
|
|
78c74fda2f | ||
|
|
f21bf2fb4f | ||
|
|
ad91b7fdb7 | ||
|
|
03ed07ba8e | ||
|
|
dd08a3911a | ||
|
|
496950ea1c | ||
|
|
0dfa558aef | ||
|
|
0e3049751e | ||
|
|
aec10766cb | ||
|
|
e9bffa1f53 | ||
|
|
df5187ee55 | ||
|
|
94d37b5520 | ||
|
|
9edbe410c9 | ||
|
|
01bfe7a6ae | ||
|
|
5db40b310f | ||
|
|
22e2587dc4 | ||
|
|
57309870f6 | ||
|
|
48a4ee3f1f | ||
|
|
0e9bc9bca4 | ||
|
|
323b0733b9 | ||
|
|
64e592c369 | ||
|
|
29c9568b69 | ||
|
|
509a1abedd | ||
|
|
3b8df1a62b | ||
|
|
9dfbc32be7 | ||
|
|
e40b8c5171 | ||
|
|
4a05cb5e99 | ||
|
|
04b90fdd55 | ||
|
|
9d4cbbc221 | ||
|
|
f6dcb64c05 | ||
|
|
33a3044d54 | ||
|
|
3e0b25943b | ||
|
|
6002edb486 | ||
|
|
e94beaa54f | ||
|
|
132d00da32 | ||
|
|
e5db7c30ac | ||
|
|
e60faca74a | ||
|
|
e9163d3688 | ||
|
|
c99806c497 | ||
|
|
7e5ac7051e | ||
|
|
a80f1bd38c | ||
|
|
459146487c | ||
|
|
14da827d37 | ||
|
|
d31d3f0dfc | ||
|
|
4350df0686 | ||
|
|
2c5cf85ee0 | ||
|
|
8fe10a9963 | ||
|
|
01e6030f43 | ||
|
|
66f15c4f3d | ||
|
|
0b96c5ca71 | ||
|
|
0ab4842315 | ||
|
|
db9c190e5c | ||
|
|
d852f4ba34 | ||
|
|
0f1f556d68 | ||
|
|
f70483a806 | ||
|
|
91434f4215 | ||
|
|
95ca8ec4da | ||
|
|
b84dfe673b | ||
|
|
b8ffeb2d5d | ||
|
|
9b03b865ad | ||
|
|
9ffff7df6f | ||
|
|
7ad0bae031 | ||
|
|
0cb792e529 | ||
|
|
2c7fa653d1 | ||
|
|
cc8a2d7e51 | ||
|
|
96dc774be3 | ||
|
|
5e05228f3c | ||
|
|
9c640e0f6f | ||
|
|
42568b9b8d | ||
|
|
b03be999e8 | ||
|
|
809acd4afa | ||
|
|
ce032ed76f | ||
|
|
d753e8cef9 | ||
|
|
64aaa1d3cf | ||
|
|
13dd7ea384 | ||
|
|
d715cc95f4 | ||
|
|
a873327611 | ||
|
|
a7c8355424 | ||
|
|
210ee93972 | ||
|
|
eab9a2dc00 | ||
|
|
fd7bda276f | ||
|
|
8a2e0508bb | ||
|
|
91533abab1 | ||
|
|
7e4417d759 | ||
|
|
24c3922f70 | ||
|
|
00e1180d9e | ||
|
|
61f3ef7a91 | ||
|
|
8a7de1cc56 | ||
|
|
654f5b169d | ||
|
|
7e09433c4d | ||
|
|
bbb9e4f61b | ||
|
|
163e2d4976 | ||
|
|
26a521bfa0 | ||
|
|
ab9715fd6a | ||
|
|
261c5c714e | ||
|
|
a8ed14c146 | ||
|
|
dfd2677a6d | ||
|
|
8b45fa3c4d |
4
.babelrc
4
.babelrc
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"presets": [
|
"presets": [
|
||||||
[
|
[
|
||||||
"env",
|
"@babel/preset-env",
|
||||||
{
|
{
|
||||||
"loose": true,
|
"loose": true,
|
||||||
"modules": false
|
"modules": false
|
||||||
@@ -9,6 +9,6 @@
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"external-helpers"
|
"@babel/plugin-external-helpers"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
13
.browserslistrc
Normal file
13
.browserslistrc
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# https://github.com/browserslist/browserslist#readme
|
||||||
|
|
||||||
|
>= 1%
|
||||||
|
last 1 major version
|
||||||
|
not dead
|
||||||
|
Chrome >= 45
|
||||||
|
Firefox >= 38
|
||||||
|
Edge >= 12
|
||||||
|
Explorer >= 10
|
||||||
|
iOS >= 9
|
||||||
|
Safari >= 9
|
||||||
|
Android >= 4.4
|
||||||
|
Opera >= 30
|
||||||
9
.editorconfig
Normal file
9
.editorconfig
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
insert_final_newline = true
|
||||||
|
indent_style = space
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
32
.github/ISSUE_TEMPLATE/bug-report-for-adminlte-v2-4-x.md
vendored
Normal file
32
.github/ISSUE_TEMPLATE/bug-report-for-adminlte-v2-4-x.md
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: Bug report for AdminLTE v2.4.x
|
||||||
|
about: Create a report to help us improve AdminLTE v2.4.x
|
||||||
|
title: "[BUG]"
|
||||||
|
labels: type:bug, version:2.4.x
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Environment (please complete the following information):**
|
||||||
|
- AdminLTE Version: [e.g. v2.4.18]
|
||||||
|
- Operating System: [e.g. macOS Catalina]
|
||||||
|
- Browser (Version): [e.g. Chrome (Latest)]
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
32
.github/ISSUE_TEMPLATE/bug-report-for-adminlte-v3-x.md
vendored
Normal file
32
.github/ISSUE_TEMPLATE/bug-report-for-adminlte-v3-x.md
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
name: Bug report for AdminLTE v3.x
|
||||||
|
about: Create a report to help us improve AdminLTE v3.x
|
||||||
|
title: "[BUG]"
|
||||||
|
labels: type:bug, version:3.x
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots to help explain your problem.
|
||||||
|
|
||||||
|
**Environment (please complete the following information):**
|
||||||
|
- AdminLTE Version: [e.g. v3.0.0]
|
||||||
|
- Operating System: [e.g. macOS Catalina]
|
||||||
|
- Browser (Version): [e.g. Chrome (Latest)]
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
20
.github/ISSUE_TEMPLATE/feature-request-for-adminlte-v3-x.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature-request-for-adminlte-v3-x.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
name: Feature request for AdminLTE v3.x
|
||||||
|
about: Suggest an idea for this project
|
||||||
|
title: "[FEATURE]"
|
||||||
|
labels: type:enhancement, version:3.x
|
||||||
|
assignees: ''
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
34
.gitignore
vendored
34
.gitignore
vendored
@@ -1,12 +1,38 @@
|
|||||||
|
// System / Log files
|
||||||
*.DS_Store
|
*.DS_Store
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
|
// Archives
|
||||||
*.zip
|
*.zip
|
||||||
|
|
||||||
|
// Sass Cache
|
||||||
|
.sass-cache
|
||||||
|
|
||||||
|
// Project files
|
||||||
.idea
|
.idea
|
||||||
nbproject
|
nbproject
|
||||||
nbproject/private
|
nbproject/private
|
||||||
node_modules
|
.vscode/
|
||||||
.sass-cache
|
.vs/
|
||||||
bower_components
|
|
||||||
ad.js
|
// Node / Bower
|
||||||
|
node_modules/
|
||||||
|
bower_components/
|
||||||
|
|
||||||
|
// Plugins
|
||||||
|
/plugins/*/*.md
|
||||||
|
/plugins/*/*.html
|
||||||
|
/plugins/*/package.json
|
||||||
|
|
||||||
|
|
||||||
|
// Docs
|
||||||
|
Gemfile.lock
|
||||||
|
docs/_site
|
||||||
|
docs_html/
|
||||||
|
.jekyll-cache/
|
||||||
|
.jekyll-metadata
|
||||||
|
|
||||||
|
// ETC
|
||||||
TODO
|
TODO
|
||||||
test.html
|
test.html
|
||||||
|
ad.js
|
||||||
|
|||||||
1
.npmignore
Normal file
1
.npmignore
Normal file
@@ -0,0 +1 @@
|
|||||||
|
!/docs_html/
|
||||||
25
.travis.yml
Normal file
25
.travis.yml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
language: node_js
|
||||||
|
|
||||||
|
node_js:
|
||||||
|
- 8
|
||||||
|
- 10
|
||||||
|
- 11
|
||||||
|
- 12
|
||||||
|
|
||||||
|
env:
|
||||||
|
- INSTALL=yarn
|
||||||
|
- INSTALL=npm
|
||||||
|
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
fast_finish: true
|
||||||
|
exclude:
|
||||||
|
- node_js: 8
|
||||||
|
env: INSTALL=yarn
|
||||||
|
|
||||||
|
install:
|
||||||
|
- if [ "yarn" == $INSTALL ]; then yarn install; fi
|
||||||
|
- if [ "npm" == $INSTALL ]; then npm install; fi
|
||||||
|
|
||||||
|
script:
|
||||||
|
- echo 'Tests must be configured'
|
||||||
44
README.md
44
README.md
@@ -1,14 +1,19 @@
|
|||||||
Introduction
|
Introduction
|
||||||
============
|
============
|
||||||
|
|
||||||
|
[](https://travis-ci.org/ColorlibHQ/AdminLTE)
|
||||||
|
[](https://www.npmjs.com/package/admin-lte)
|
||||||
|
[](https://packagist.org/packages/almasaeed2010/adminlte)
|
||||||
|
[](https://cdnjs.com/libraries/admin-lte)
|
||||||
|
|
||||||
**AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 4](https://getbootstrap.com)** framework.
|
**AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 4](https://getbootstrap.com)** framework.
|
||||||
Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.
|
Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.
|
||||||
|
|
||||||
**Download & Preview on [AdminLTE.io](https://adminlte.io)**
|
**Preview on [AdminLTE.io](https://adminlte.io/themes/v3)**
|
||||||
|
|
||||||
Looking for Premium Templates?
|
Looking for Premium Templates?
|
||||||
------------------------------
|
------------------------------
|
||||||
AdminLTE.io just opened a new premium templates page. Hand picked to insure the best quality and the most affordable
|
AdminLTE.io just opened a new premium templates page. Hand picked to ensure the best quality and the most affordable
|
||||||
prices. Visit https://adminlte.io/premium for more information.
|
prices. Visit https://adminlte.io/premium for more information.
|
||||||
|
|
||||||

|

|
||||||
@@ -22,25 +27,34 @@ There are multiple ways to install AdminLTE.
|
|||||||
|
|
||||||
#### Download:
|
#### Download:
|
||||||
|
|
||||||
Download from Github or [visit AdminLTE.io](https://adminlte.io) and download the latest release.
|
Download from [Github releases](https://github.com/ColorlibHQ/AdminLTE/releases).
|
||||||
|
|
||||||
#### Using The Command Line:
|
#### Using The Command Line:
|
||||||
|
|
||||||
**NPM**
|
__Via NPM__
|
||||||
```bash
|
```bash
|
||||||
npm install admin-lte
|
npm install admin-lte@^3.0 --save
|
||||||
```
|
```
|
||||||
|
|
||||||
**Github**
|
__Via Yarn__
|
||||||
|
```bash
|
||||||
|
yarn add admin-lte@^3.0
|
||||||
|
```
|
||||||
|
|
||||||
|
__Via Composer__
|
||||||
|
```bash
|
||||||
|
composer require "almasaeed2010/adminlte=~3.0"
|
||||||
|
```
|
||||||
|
|
||||||
|
__Via Git__
|
||||||
- Clone to your machine
|
- Clone to your machine
|
||||||
```
|
```
|
||||||
git clone https://github.com/almasaeed2010/AdminLTE.git
|
git clone https://github.com/ColorlibHQ/AdminLTE.git
|
||||||
```
|
```
|
||||||
|
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
Visit the [online documentation](https://adminlte.io/themes/AdminLTE/documentation/index.html) for the most
|
Visit the [online documentation](https://adminlte.io/docs/3.0/) for the most
|
||||||
updated guide. Information will be added on a weekly basis.
|
updated guide. Information will be added on a weekly basis.
|
||||||
|
|
||||||
Browser Support
|
Browser Support
|
||||||
@@ -61,8 +75,14 @@ Contribution are always **welcome and recommended**! Here is how:
|
|||||||
- Make your changes
|
- Make your changes
|
||||||
- Create a pull request
|
- Create a pull request
|
||||||
|
|
||||||
#### Contribution Requirements:
|
#### Compile dist files
|
||||||
|
To compile the dist files you need nodejs/npm, clone/download the repo then:
|
||||||
|
|
||||||
|
1. `npm install` (install npm deps)
|
||||||
|
2. _Optional:_ `npm run dev` (developer mode, autocompile with browsersync support for live demo)
|
||||||
|
3. `npm run production` (compile css/js files)
|
||||||
|
|
||||||
|
#### Contribution Requirements:
|
||||||
- When you contribute, you agree to give a non-exclusive license to AdminLTE.io to use that contribution in any context as we (AdminLTE.io) see appropriate.
|
- When you contribute, you agree to give a non-exclusive license to AdminLTE.io to use that contribution in any context as we (AdminLTE.io) see appropriate.
|
||||||
- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
|
- If you use content provided by another party, it must be appropriately licensed using an [open source](http://opensource.org/licenses) license.
|
||||||
- Contributions are only accepted through Github pull requests.
|
- Contributions are only accepted through Github pull requests.
|
||||||
@@ -75,12 +95,12 @@ reserves the right to change the license of future releases.
|
|||||||
|
|
||||||
Legacy Releases
|
Legacy Releases
|
||||||
---------------
|
---------------
|
||||||
- [AdminLTE 2](https://github.com/almasaeed2010/AdminLTE/releases/tag/v2.4.3)
|
- [AdminLTE 2](https://github.com/ColorlibHQ/AdminLTE/releases/tag/v2.4.18)
|
||||||
- [AdminLTE 1](https://github.com/almasaeed2010/AdminLTE/releases/tag/1.3.1)
|
- [AdminLTE 1](https://github.com/ColorlibHQ/AdminLTE/releases/tag/1.3.1)
|
||||||
|
|
||||||
Change log
|
Change log
|
||||||
----------
|
----------
|
||||||
Visit the [releases](https://github.com/almasaeed2010/AdminLTE/releases) page to view the changelog
|
Visit the [releases](https://github.com/ColorlibHQ/AdminLTE/releases) page to view the changelog
|
||||||
|
|
||||||
Image Credits
|
Image Credits
|
||||||
-------------
|
-------------
|
||||||
|
|||||||
14
build/config/postcss.config.js
Normal file
14
build/config/postcss.config.js
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
module.exports = (ctx) => ({
|
||||||
|
map: ctx.file.dirname.includes('examples') ? false : {
|
||||||
|
inline: false,
|
||||||
|
annotation: true,
|
||||||
|
sourcesContent: true
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
autoprefixer: {
|
||||||
|
cascade: false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
29
build/config/rollup.config.js
Normal file
29
build/config/rollup.config.js
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import babel from 'rollup-plugin-babel'
|
||||||
|
|
||||||
|
const pkg = require('../../package')
|
||||||
|
const year = new Date().getFullYear()
|
||||||
|
|
||||||
|
const globals = {
|
||||||
|
jquery: 'jQuery'
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
input : 'build/js/AdminLTE.js',
|
||||||
|
output : {
|
||||||
|
banner: `/*!
|
||||||
|
* AdminLTE v${pkg.version} (${pkg.homepage})
|
||||||
|
* Copyright 2014-${year} ${pkg.author}
|
||||||
|
* Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)
|
||||||
|
*/`,
|
||||||
|
file : 'dist/js/adminlte.js',
|
||||||
|
format: 'umd',
|
||||||
|
globals,
|
||||||
|
name : 'adminlte'
|
||||||
|
},
|
||||||
|
plugins: [
|
||||||
|
babel({
|
||||||
|
exclude: 'node_modules/**',
|
||||||
|
externalHelpers: true
|
||||||
|
})
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -2,12 +2,22 @@ import ControlSidebar from './ControlSidebar'
|
|||||||
import Layout from './Layout'
|
import Layout from './Layout'
|
||||||
import PushMenu from './PushMenu'
|
import PushMenu from './PushMenu'
|
||||||
import Treeview from './Treeview'
|
import Treeview from './Treeview'
|
||||||
import Widget from './Widget'
|
import DirectChat from './DirectChat'
|
||||||
|
import TodoList from './TodoList'
|
||||||
|
import CardWidget from './CardWidget'
|
||||||
|
import CardRefresh from './CardRefresh'
|
||||||
|
import Dropdown from './Dropdown'
|
||||||
|
import Toasts from './Toasts'
|
||||||
|
|
||||||
export {
|
export {
|
||||||
ControlSidebar,
|
ControlSidebar,
|
||||||
Layout,
|
Layout,
|
||||||
PushMenu,
|
PushMenu,
|
||||||
Treeview,
|
Treeview,
|
||||||
Widget
|
DirectChat,
|
||||||
|
TodoList,
|
||||||
|
CardWidget,
|
||||||
|
CardRefresh,
|
||||||
|
Dropdown,
|
||||||
|
Toasts
|
||||||
}
|
}
|
||||||
|
|||||||
168
build/js/CardRefresh.js
Normal file
168
build/js/CardRefresh.js
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
/**
|
||||||
|
* --------------------------------------------
|
||||||
|
* AdminLTE CardRefresh.js
|
||||||
|
* License MIT
|
||||||
|
* --------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const CardRefresh = (($) => {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'CardRefresh'
|
||||||
|
const DATA_KEY = 'lte.cardrefresh'
|
||||||
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
|
||||||
|
const Event = {
|
||||||
|
LOADED: `loaded${EVENT_KEY}`,
|
||||||
|
OVERLAY_ADDED: `overlay.added${EVENT_KEY}`,
|
||||||
|
OVERLAY_REMOVED: `overlay.removed${EVENT_KEY}`,
|
||||||
|
}
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
CARD: 'card',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
CARD: `.${ClassName.CARD}`,
|
||||||
|
DATA_REFRESH: '[data-card-widget="card-refresh"]',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
source: '',
|
||||||
|
sourceSelector: '',
|
||||||
|
params: {},
|
||||||
|
trigger: Selector.DATA_REFRESH,
|
||||||
|
content: '.card-body',
|
||||||
|
loadInContent: true,
|
||||||
|
loadOnInit: true,
|
||||||
|
responseType: '',
|
||||||
|
overlayTemplate: '<div class="overlay"><i class="fas fa-2x fa-sync-alt fa-spin"></i></div>',
|
||||||
|
onLoadStart: function () {
|
||||||
|
},
|
||||||
|
onLoadDone: function (response) {
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class CardRefresh {
|
||||||
|
constructor(element, settings) {
|
||||||
|
this._element = element
|
||||||
|
this._parent = element.parents(Selector.CARD).first()
|
||||||
|
this._settings = $.extend({}, Default, settings)
|
||||||
|
this._overlay = $(this._settings.overlayTemplate)
|
||||||
|
|
||||||
|
if (element.hasClass(ClassName.CARD)) {
|
||||||
|
this._parent = element
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._settings.source === '') {
|
||||||
|
throw new Error('Source url was not defined. Please specify a url in your CardRefresh source option.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
load() {
|
||||||
|
this._addOverlay()
|
||||||
|
this._settings.onLoadStart.call($(this))
|
||||||
|
|
||||||
|
$.get(this._settings.source, this._settings.params, function (response) {
|
||||||
|
if (this._settings.loadInContent) {
|
||||||
|
if (this._settings.sourceSelector != '') {
|
||||||
|
response = $(response).find(this._settings.sourceSelector).html()
|
||||||
|
}
|
||||||
|
|
||||||
|
this._parent.find(this._settings.content).html(response)
|
||||||
|
}
|
||||||
|
|
||||||
|
this._settings.onLoadDone.call($(this), response)
|
||||||
|
this._removeOverlay();
|
||||||
|
}.bind(this), this._settings.responseType !== '' && this._settings.responseType)
|
||||||
|
|
||||||
|
const loadedEvent = $.Event(Event.LOADED)
|
||||||
|
$(this._element).trigger(loadedEvent)
|
||||||
|
}
|
||||||
|
|
||||||
|
_addOverlay() {
|
||||||
|
this._parent.append(this._overlay)
|
||||||
|
|
||||||
|
const overlayAddedEvent = $.Event(Event.OVERLAY_ADDED)
|
||||||
|
$(this._element).trigger(overlayAddedEvent)
|
||||||
|
};
|
||||||
|
|
||||||
|
_removeOverlay() {
|
||||||
|
this._parent.find(this._overlay).remove()
|
||||||
|
|
||||||
|
const overlayRemovedEvent = $.Event(Event.OVERLAY_REMOVED)
|
||||||
|
$(this._element).trigger(overlayRemovedEvent)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Private
|
||||||
|
|
||||||
|
_init(card) {
|
||||||
|
$(this).find(this._settings.trigger).on('click', () => {
|
||||||
|
this.load()
|
||||||
|
})
|
||||||
|
|
||||||
|
if (this._settings.loadOnInit) {
|
||||||
|
this.load()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
static _jQueryInterface(config) {
|
||||||
|
let data = $(this).data(DATA_KEY)
|
||||||
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new CardRefresh($(this), _options)
|
||||||
|
$(this).data(DATA_KEY, typeof config === 'string' ? data: config)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string' && config.match(/load/)) {
|
||||||
|
data[config]()
|
||||||
|
} else {
|
||||||
|
data._init($(this))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).on('click', Selector.DATA_REFRESH, function (event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
|
CardRefresh._jQueryInterface.call($(this), 'load')
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
$(Selector.DATA_REFRESH).each(function() {
|
||||||
|
CardRefresh._jQueryInterface.call($(this))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = CardRefresh._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = CardRefresh
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return CardRefresh._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return CardRefresh
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default CardRefresh
|
||||||
253
build/js/CardWidget.js
Normal file
253
build/js/CardWidget.js
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
/**
|
||||||
|
* --------------------------------------------
|
||||||
|
* AdminLTE CardWidget.js
|
||||||
|
* License MIT
|
||||||
|
* --------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const CardWidget = (($) => {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'CardWidget'
|
||||||
|
const DATA_KEY = 'lte.cardwidget'
|
||||||
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
|
||||||
|
const Event = {
|
||||||
|
EXPANDED: `expanded${EVENT_KEY}`,
|
||||||
|
COLLAPSED: `collapsed${EVENT_KEY}`,
|
||||||
|
MAXIMIZED: `maximized${EVENT_KEY}`,
|
||||||
|
MINIMIZED: `minimized${EVENT_KEY}`,
|
||||||
|
REMOVED: `removed${EVENT_KEY}`
|
||||||
|
}
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
CARD: 'card',
|
||||||
|
COLLAPSED: 'collapsed-card',
|
||||||
|
COLLAPSING: 'collapsing-card',
|
||||||
|
EXPANDING: 'expanding-card',
|
||||||
|
WAS_COLLAPSED: 'was-collapsed',
|
||||||
|
MAXIMIZED: 'maximized-card',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
DATA_REMOVE: '[data-card-widget="remove"]',
|
||||||
|
DATA_COLLAPSE: '[data-card-widget="collapse"]',
|
||||||
|
DATA_MAXIMIZE: '[data-card-widget="maximize"]',
|
||||||
|
CARD: `.${ClassName.CARD}`,
|
||||||
|
CARD_HEADER: '.card-header',
|
||||||
|
CARD_BODY: '.card-body',
|
||||||
|
CARD_FOOTER: '.card-footer',
|
||||||
|
COLLAPSED: `.${ClassName.COLLAPSED}`,
|
||||||
|
}
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
animationSpeed: 'normal',
|
||||||
|
collapseTrigger: Selector.DATA_COLLAPSE,
|
||||||
|
removeTrigger: Selector.DATA_REMOVE,
|
||||||
|
maximizeTrigger: Selector.DATA_MAXIMIZE,
|
||||||
|
collapseIcon: 'fa-minus',
|
||||||
|
expandIcon: 'fa-plus',
|
||||||
|
maximizeIcon: 'fa-expand',
|
||||||
|
minimizeIcon: 'fa-compress',
|
||||||
|
}
|
||||||
|
|
||||||
|
class CardWidget {
|
||||||
|
constructor(element, settings) {
|
||||||
|
this._element = element
|
||||||
|
this._parent = element.parents(Selector.CARD).first()
|
||||||
|
|
||||||
|
if (element.hasClass(ClassName.CARD)) {
|
||||||
|
this._parent = element
|
||||||
|
}
|
||||||
|
|
||||||
|
this._settings = $.extend({}, Default, settings)
|
||||||
|
}
|
||||||
|
|
||||||
|
collapse() {
|
||||||
|
this._parent.addClass(ClassName.COLLAPSING).children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
|
||||||
|
.slideUp(this._settings.animationSpeed, () => {
|
||||||
|
this._parent.addClass(ClassName.COLLAPSED).removeClass(ClassName.COLLAPSING)
|
||||||
|
})
|
||||||
|
|
||||||
|
this._parent.find('> ' + Selector.CARD_HEADER + ' ' + this._settings.collapseTrigger + ' .' + this._settings.collapseIcon)
|
||||||
|
.addClass(this._settings.expandIcon)
|
||||||
|
.removeClass(this._settings.collapseIcon)
|
||||||
|
|
||||||
|
const collapsed = $.Event(Event.COLLAPSED)
|
||||||
|
|
||||||
|
this._element.trigger(collapsed, this._parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
expand() {
|
||||||
|
this._parent.addClass(ClassName.EXPANDING).children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
|
||||||
|
.slideDown(this._settings.animationSpeed, () => {
|
||||||
|
this._parent.removeClass(ClassName.COLLAPSED).removeClass(ClassName.EXPANDING)
|
||||||
|
})
|
||||||
|
|
||||||
|
this._parent.find('> ' + Selector.CARD_HEADER + ' ' + this._settings.collapseTrigger + ' .' + this._settings.expandIcon)
|
||||||
|
.addClass(this._settings.collapseIcon)
|
||||||
|
.removeClass(this._settings.expandIcon)
|
||||||
|
|
||||||
|
const expanded = $.Event(Event.EXPANDED)
|
||||||
|
|
||||||
|
this._element.trigger(expanded, this._parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
remove() {
|
||||||
|
this._parent.slideUp()
|
||||||
|
|
||||||
|
const removed = $.Event(Event.REMOVED)
|
||||||
|
|
||||||
|
this._element.trigger(removed, this._parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
if (this._parent.hasClass(ClassName.COLLAPSED)) {
|
||||||
|
this.expand()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this.collapse()
|
||||||
|
}
|
||||||
|
|
||||||
|
maximize() {
|
||||||
|
this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.maximizeIcon)
|
||||||
|
.addClass(this._settings.minimizeIcon)
|
||||||
|
.removeClass(this._settings.maximizeIcon)
|
||||||
|
this._parent.css({
|
||||||
|
'height': this._parent.height(),
|
||||||
|
'width': this._parent.width(),
|
||||||
|
'transition': 'all .15s'
|
||||||
|
}).delay(150).queue(function(){
|
||||||
|
$(this).addClass(ClassName.MAXIMIZED)
|
||||||
|
$('html').addClass(ClassName.MAXIMIZED)
|
||||||
|
if ($(this).hasClass(ClassName.COLLAPSED)) {
|
||||||
|
$(this).addClass(ClassName.WAS_COLLAPSED)
|
||||||
|
}
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
|
|
||||||
|
const maximized = $.Event(Event.MAXIMIZED)
|
||||||
|
|
||||||
|
this._element.trigger(maximized, this._parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
minimize() {
|
||||||
|
this._parent.find(this._settings.maximizeTrigger + ' .' + this._settings.minimizeIcon)
|
||||||
|
.addClass(this._settings.maximizeIcon)
|
||||||
|
.removeClass(this._settings.minimizeIcon)
|
||||||
|
this._parent.css('cssText', 'height:' + this._parent[0].style.height + ' !important;' +
|
||||||
|
'width:' + this._parent[0].style.width + ' !important; transition: all .15s;'
|
||||||
|
).delay(10).queue(function(){
|
||||||
|
$(this).removeClass(ClassName.MAXIMIZED)
|
||||||
|
$('html').removeClass(ClassName.MAXIMIZED)
|
||||||
|
$(this).css({
|
||||||
|
'height': 'inherit',
|
||||||
|
'width': 'inherit'
|
||||||
|
})
|
||||||
|
if ($(this).hasClass(ClassName.WAS_COLLAPSED)) {
|
||||||
|
$(this).removeClass(ClassName.WAS_COLLAPSED)
|
||||||
|
}
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
|
|
||||||
|
const MINIMIZED = $.Event(Event.MINIMIZED)
|
||||||
|
|
||||||
|
this._element.trigger(MINIMIZED, this._parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
toggleMaximize() {
|
||||||
|
if (this._parent.hasClass(ClassName.MAXIMIZED)) {
|
||||||
|
this.minimize()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this.maximize()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Private
|
||||||
|
|
||||||
|
_init(card) {
|
||||||
|
this._parent = card
|
||||||
|
|
||||||
|
$(this).find(this._settings.collapseTrigger).click(() => {
|
||||||
|
this.toggle()
|
||||||
|
})
|
||||||
|
|
||||||
|
$(this).find(this._settings.maximizeTrigger).click(() => {
|
||||||
|
this.toggleMaximize()
|
||||||
|
})
|
||||||
|
|
||||||
|
$(this).find(this._settings.removeTrigger).click(() => {
|
||||||
|
this.remove()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
static _jQueryInterface(config) {
|
||||||
|
let data = $(this).data(DATA_KEY)
|
||||||
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new CardWidget($(this), _options)
|
||||||
|
$(this).data(DATA_KEY, typeof config === 'string' ? data: config)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string' && config.match(/collapse|expand|remove|toggle|maximize|minimize|toggleMaximize/)) {
|
||||||
|
data[config]()
|
||||||
|
} else if (typeof config === 'object') {
|
||||||
|
data._init($(this))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).on('click', Selector.DATA_COLLAPSE, function (event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
|
CardWidget._jQueryInterface.call($(this), 'toggle')
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).on('click', Selector.DATA_REMOVE, function (event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
|
CardWidget._jQueryInterface.call($(this), 'remove')
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).on('click', Selector.DATA_MAXIMIZE, function (event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
|
CardWidget._jQueryInterface.call($(this), 'toggleMaximize')
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = CardWidget._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = CardWidget
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return CardWidget._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return CardWidget
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default CardWidget
|
||||||
@@ -12,28 +12,46 @@ const ControlSidebar = (($) => {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const NAME = 'ControlSidebar'
|
const NAME = 'ControlSidebar'
|
||||||
const DATA_KEY = 'lte.control.sidebar'
|
const DATA_KEY = 'lte.controlsidebar'
|
||||||
const EVENT_KEY = `.${DATA_KEY}`
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
const DATA_API_KEY = '.data-api'
|
const DATA_API_KEY = '.data-api'
|
||||||
|
|
||||||
const Event = {
|
const Event = {
|
||||||
CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`
|
COLLAPSED: `collapsed${EVENT_KEY}`,
|
||||||
|
EXPANDED: `expanded${EVENT_KEY}`,
|
||||||
}
|
}
|
||||||
|
|
||||||
const Selector = {
|
const Selector = {
|
||||||
CONTROL_SIDEBAR: '.control-sidebar',
|
CONTROL_SIDEBAR: '.control-sidebar',
|
||||||
DATA_TOGGLE : '[data-widget="control-sidebar"]',
|
CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content',
|
||||||
MAIN_HEADER : '.main-header'
|
DATA_TOGGLE: '[data-widget="control-sidebar"]',
|
||||||
|
CONTENT: '.content-wrapper',
|
||||||
|
HEADER: '.main-header',
|
||||||
|
FOOTER: '.main-footer',
|
||||||
}
|
}
|
||||||
|
|
||||||
const ClassName = {
|
const ClassName = {
|
||||||
CONTROL_SIDEBAR_OPEN : 'control-sidebar-open',
|
CONTROL_SIDEBAR_ANIMATE: 'control-sidebar-animate',
|
||||||
CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open'
|
CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',
|
||||||
|
CONTROL_SIDEBAR_SLIDE: 'control-sidebar-slide-open',
|
||||||
|
LAYOUT_FIXED: 'layout-fixed',
|
||||||
|
NAVBAR_FIXED: 'layout-navbar-fixed',
|
||||||
|
NAVBAR_SM_FIXED: 'layout-sm-navbar-fixed',
|
||||||
|
NAVBAR_MD_FIXED: 'layout-md-navbar-fixed',
|
||||||
|
NAVBAR_LG_FIXED: 'layout-lg-navbar-fixed',
|
||||||
|
NAVBAR_XL_FIXED: 'layout-xl-navbar-fixed',
|
||||||
|
FOOTER_FIXED: 'layout-footer-fixed',
|
||||||
|
FOOTER_SM_FIXED: 'layout-sm-footer-fixed',
|
||||||
|
FOOTER_MD_FIXED: 'layout-md-footer-fixed',
|
||||||
|
FOOTER_LG_FIXED: 'layout-lg-footer-fixed',
|
||||||
|
FOOTER_XL_FIXED: 'layout-xl-footer-fixed',
|
||||||
}
|
}
|
||||||
|
|
||||||
const Default = {
|
const Default = {
|
||||||
slide: true
|
controlsidebarSlide: true,
|
||||||
|
scrollbarTheme : 'os-theme-light',
|
||||||
|
scrollbarAutoHide: 'l',
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -44,63 +62,194 @@ const ControlSidebar = (($) => {
|
|||||||
class ControlSidebar {
|
class ControlSidebar {
|
||||||
constructor(element, config) {
|
constructor(element, config) {
|
||||||
this._element = element
|
this._element = element
|
||||||
this._config = this._getConfig(config)
|
this._config = config
|
||||||
|
|
||||||
|
this._init()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public
|
// Public
|
||||||
|
|
||||||
show() {
|
collapse() {
|
||||||
// Show the control sidebar
|
// Show the control sidebar
|
||||||
if (this._config.slide) {
|
if (this._config.controlsidebarSlide) {
|
||||||
$('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE)
|
$('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
|
||||||
|
$('body').removeClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function(){
|
||||||
|
$(Selector.CONTROL_SIDEBAR).hide()
|
||||||
|
$('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
$('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)
|
$('body').removeClass(ClassName.CONTROL_SIDEBAR_OPEN)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||||
|
$(this._element).trigger(collapsedEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
collapse() {
|
show() {
|
||||||
// Collapse the control sidebar
|
// Collapse the control sidebar
|
||||||
if (this._config.slide) {
|
if (this._config.controlsidebarSlide) {
|
||||||
$('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE)
|
$('html').addClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
|
||||||
|
$(Selector.CONTROL_SIDEBAR).show().delay(10).queue(function(){
|
||||||
|
$('body').addClass(ClassName.CONTROL_SIDEBAR_SLIDE).delay(300).queue(function(){
|
||||||
|
$('html').removeClass(ClassName.CONTROL_SIDEBAR_ANIMATE)
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
$('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)
|
$('body').addClass(ClassName.CONTROL_SIDEBAR_OPEN)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const expandedEvent = $.Event(Event.EXPANDED)
|
||||||
|
$(this._element).trigger(expandedEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
this._setMargin()
|
const shouldClose = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body')
|
||||||
|
|
||||||
const shouldOpen = $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body')
|
|
||||||
.hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)
|
.hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)
|
||||||
if (shouldOpen) {
|
if (shouldClose) {
|
||||||
// Open the control sidebar
|
|
||||||
this.show()
|
|
||||||
} else {
|
|
||||||
// Close the control sidebar
|
// Close the control sidebar
|
||||||
this.collapse()
|
this.collapse()
|
||||||
|
} else {
|
||||||
|
// Open the control sidebar
|
||||||
|
this.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
|
|
||||||
_getConfig(config) {
|
_init() {
|
||||||
return $.extend({}, Default, config)
|
this._fixHeight()
|
||||||
}
|
this._fixScrollHeight()
|
||||||
|
|
||||||
_setMargin() {
|
$(window).resize(() => {
|
||||||
$(Selector.CONTROL_SIDEBAR).css({
|
this._fixHeight()
|
||||||
top: $(Selector.MAIN_HEADER).outerHeight()
|
this._fixScrollHeight()
|
||||||
|
})
|
||||||
|
|
||||||
|
$(window).scroll(() => {
|
||||||
|
if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE)) {
|
||||||
|
this._fixScrollHeight()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_fixScrollHeight() {
|
||||||
|
const heights = {
|
||||||
|
scroll: $(document).height(),
|
||||||
|
window: $(window).height(),
|
||||||
|
header: $(Selector.HEADER).outerHeight(),
|
||||||
|
footer: $(Selector.FOOTER).outerHeight(),
|
||||||
|
}
|
||||||
|
const positions = {
|
||||||
|
bottom: Math.abs((heights.window + $(window).scrollTop()) - heights.scroll),
|
||||||
|
top: $(window).scrollTop(),
|
||||||
|
}
|
||||||
|
|
||||||
|
let navbarFixed = false;
|
||||||
|
let footerFixed = false;
|
||||||
|
|
||||||
|
if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
|
||||||
|
if (
|
||||||
|
$('body').hasClass(ClassName.NAVBAR_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.NAVBAR_SM_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.NAVBAR_MD_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.NAVBAR_LG_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.NAVBAR_XL_FIXED)
|
||||||
|
) {
|
||||||
|
if ($(Selector.HEADER).css("position") === "fixed") {
|
||||||
|
navbarFixed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
$('body').hasClass(ClassName.FOOTER_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_SM_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_MD_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_LG_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_XL_FIXED)
|
||||||
|
) {
|
||||||
|
if ($(Selector.FOOTER).css("position") === "fixed") {
|
||||||
|
footerFixed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (positions.top === 0 && positions.bottom === 0) {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer);
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('top', heights.header);
|
||||||
|
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header + heights.footer))
|
||||||
|
} else if (positions.bottom <= heights.footer) {
|
||||||
|
if (footerFixed === false) {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer - positions.bottom);
|
||||||
|
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.footer - positions.bottom))
|
||||||
|
} else {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('bottom', heights.footer);
|
||||||
|
}
|
||||||
|
} else if (positions.top <= heights.header) {
|
||||||
|
if (navbarFixed === false) {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('top', heights.header - positions.top);
|
||||||
|
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window - (heights.header - positions.top))
|
||||||
|
} else {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('top', heights.header);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (navbarFixed === false) {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('top', 0);
|
||||||
|
$(Selector.CONTROL_SIDEBAR + ', ' + Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', heights.window)
|
||||||
|
} else {
|
||||||
|
$(Selector.CONTROL_SIDEBAR).css('top', heights.header);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_fixHeight() {
|
||||||
|
const heights = {
|
||||||
|
window: $(window).height(),
|
||||||
|
header: $(Selector.HEADER).outerHeight(),
|
||||||
|
footer: $(Selector.FOOTER).outerHeight(),
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
|
||||||
|
let sidebarHeight = heights.window - heights.header;
|
||||||
|
|
||||||
|
if (
|
||||||
|
$('body').hasClass(ClassName.FOOTER_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_SM_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_MD_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_LG_FIXED)
|
||||||
|
|| $('body').hasClass(ClassName.FOOTER_XL_FIXED)
|
||||||
|
) {
|
||||||
|
if ($(Selector.FOOTER).css("position") === "fixed") {
|
||||||
|
sidebarHeight = heights.window - heights.header - heights.footer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).css('height', sidebarHeight)
|
||||||
|
|
||||||
|
if (typeof $.fn.overlayScrollbars !== 'undefined') {
|
||||||
|
$(Selector.CONTROL_SIDEBAR + ' ' + Selector.CONTROL_SIDEBAR_CONTENT).overlayScrollbars({
|
||||||
|
className : this._config.scrollbarTheme,
|
||||||
|
sizeAutoCapable : true,
|
||||||
|
scrollbars : {
|
||||||
|
autoHide: this._config.scrollbarAutoHide,
|
||||||
|
clickScrolling : true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Static
|
// Static
|
||||||
|
|
||||||
static _jQueryInterface(operation) {
|
static _jQueryInterface(operation) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
let data = $(this).data(DATA_KEY)
|
let data = $(this).data(DATA_KEY)
|
||||||
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
data = new ControlSidebar(this, $(this).data())
|
data = new ControlSidebar(this, _options)
|
||||||
$(this).data(DATA_KEY, data)
|
$(this).data(DATA_KEY, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,3 +289,4 @@ const ControlSidebar = (($) => {
|
|||||||
})(jQuery)
|
})(jQuery)
|
||||||
|
|
||||||
export default ControlSidebar
|
export default ControlSidebar
|
||||||
|
|
||||||
|
|||||||
92
build/js/DirectChat.js
Normal file
92
build/js/DirectChat.js
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
/**
|
||||||
|
* --------------------------------------------
|
||||||
|
* AdminLTE DirectChat.js
|
||||||
|
* License MIT
|
||||||
|
* --------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const DirectChat = (($) => {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'DirectChat'
|
||||||
|
const DATA_KEY = 'lte.directchat'
|
||||||
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
const DATA_API_KEY = '.data-api'
|
||||||
|
|
||||||
|
const Event = {
|
||||||
|
TOGGLED: `toggled{EVENT_KEY}`
|
||||||
|
}
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
DATA_TOGGLE: '[data-widget="chat-pane-toggle"]',
|
||||||
|
DIRECT_CHAT: '.direct-chat'
|
||||||
|
};
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
DIRECT_CHAT_OPEN: 'direct-chat-contacts-open'
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Definition
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
class DirectChat {
|
||||||
|
constructor(element, config) {
|
||||||
|
this._element = element
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
$(this._element).parents(Selector.DIRECT_CHAT).first().toggleClass(ClassName.DIRECT_CHAT_OPEN);
|
||||||
|
|
||||||
|
const toggledEvent = $.Event(Event.TOGGLED)
|
||||||
|
$(this._element).trigger(toggledEvent)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
static _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
let data = $(this).data(DATA_KEY)
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new DirectChat($(this))
|
||||||
|
$(this).data(DATA_KEY, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
data[config]()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Data Api implementation
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).on('click', Selector.DATA_TOGGLE, function (event) {
|
||||||
|
if (event) event.preventDefault();
|
||||||
|
DirectChat._jQueryInterface.call($(this), 'toggle');
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = DirectChat._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = DirectChat
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return DirectChat._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return DirectChat
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default DirectChat
|
||||||
143
build/js/Dropdown.js
Normal file
143
build/js/Dropdown.js
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
/**
|
||||||
|
* --------------------------------------------
|
||||||
|
* AdminLTE Dropdown.js
|
||||||
|
* License MIT
|
||||||
|
* --------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const Dropdown = (($) => {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'Dropdown'
|
||||||
|
const DATA_KEY = 'lte.dropdown'
|
||||||
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
NAVBAR: '.navbar',
|
||||||
|
DROPDOWN_MENU: '.dropdown-menu',
|
||||||
|
DROPDOWN_MENU_ACTIVE: '.dropdown-menu.show',
|
||||||
|
DROPDOWN_TOGGLE: '[data-toggle="dropdown"]',
|
||||||
|
}
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
DROPDOWN_HOVER: 'dropdown-hover',
|
||||||
|
DROPDOWN_RIGHT: 'dropdown-menu-right'
|
||||||
|
}
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Definition
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Dropdown {
|
||||||
|
constructor(element, config) {
|
||||||
|
this._config = config
|
||||||
|
this._element = element
|
||||||
|
}
|
||||||
|
|
||||||
|
// Public
|
||||||
|
|
||||||
|
toggleSubmenu() {
|
||||||
|
this._element.siblings().show().toggleClass("show")
|
||||||
|
|
||||||
|
if (! this._element.next().hasClass('show')) {
|
||||||
|
this._element.parents('.dropdown-menu').first().find('.show').removeClass("show").hide()
|
||||||
|
}
|
||||||
|
|
||||||
|
this._element.parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) {
|
||||||
|
$('.dropdown-submenu .show').removeClass("show").hide()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
fixPosition() {
|
||||||
|
let elm = $(Selector.DROPDOWN_MENU_ACTIVE)
|
||||||
|
|
||||||
|
if (elm.length !== 0) {
|
||||||
|
if (elm.hasClass(ClassName.DROPDOWN_RIGHT)) {
|
||||||
|
elm.css('left', 'inherit')
|
||||||
|
elm.css('right', 0)
|
||||||
|
} else {
|
||||||
|
elm.css('left', 0)
|
||||||
|
elm.css('right', 'inherit')
|
||||||
|
}
|
||||||
|
|
||||||
|
let offset = elm.offset()
|
||||||
|
let width = elm.width()
|
||||||
|
let windowWidth = $(window).width()
|
||||||
|
let visiblePart = windowWidth - offset.left
|
||||||
|
|
||||||
|
if (offset.left < 0) {
|
||||||
|
elm.css('left', 'inherit')
|
||||||
|
elm.css('right', (offset.left - 5))
|
||||||
|
} else {
|
||||||
|
if (visiblePart < width) {
|
||||||
|
elm.css('left', 'inherit')
|
||||||
|
elm.css('right', 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
static _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
let data = $(this).data(DATA_KEY)
|
||||||
|
const _config = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Dropdown($(this), _config)
|
||||||
|
$(this).data(DATA_KEY, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config === 'toggleSubmenu' || config == 'fixPosition') {
|
||||||
|
data[config]()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(Selector.DROPDOWN_MENU + ' ' + Selector.DROPDOWN_TOGGLE).on("click", function(event) {
|
||||||
|
event.preventDefault()
|
||||||
|
event.stopPropagation()
|
||||||
|
|
||||||
|
Dropdown._jQueryInterface.call($(this), 'toggleSubmenu')
|
||||||
|
});
|
||||||
|
|
||||||
|
$(Selector.NAVBAR + ' ' + Selector.DROPDOWN_TOGGLE).on("click", function(event) {
|
||||||
|
event.preventDefault()
|
||||||
|
|
||||||
|
setTimeout(function() {
|
||||||
|
Dropdown._jQueryInterface.call($(this), 'fixPosition')
|
||||||
|
}, 1)
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = Dropdown._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = Dropdown
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return Dropdown._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return Dropdown
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default Dropdown
|
||||||
@@ -21,20 +21,42 @@ const Layout = (($) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const Selector = {
|
const Selector = {
|
||||||
SIDEBAR : '.main-sidebar',
|
|
||||||
HEADER : '.main-header',
|
HEADER : '.main-header',
|
||||||
|
MAIN_SIDEBAR : '.main-sidebar',
|
||||||
|
SIDEBAR : '.main-sidebar .sidebar',
|
||||||
CONTENT : '.content-wrapper',
|
CONTENT : '.content-wrapper',
|
||||||
|
BRAND : '.brand-link',
|
||||||
CONTENT_HEADER : '.content-header',
|
CONTENT_HEADER : '.content-header',
|
||||||
WRAPPER : '.wrapper',
|
WRAPPER : '.wrapper',
|
||||||
CONTROL_SIDEBAR: '.control-sidebar',
|
CONTROL_SIDEBAR: '.control-sidebar',
|
||||||
|
CONTROL_SIDEBAR_CONTENT: '.control-sidebar-content',
|
||||||
|
CONTROL_SIDEBAR_BTN: '[data-widget="control-sidebar"]',
|
||||||
LAYOUT_FIXED : '.layout-fixed',
|
LAYOUT_FIXED : '.layout-fixed',
|
||||||
FOOTER : '.main-footer'
|
FOOTER : '.main-footer',
|
||||||
|
PUSHMENU_BTN : '[data-widget="pushmenu"]',
|
||||||
|
LOGIN_BOX : '.login-box',
|
||||||
|
REGISTER_BOX : '.register-box'
|
||||||
}
|
}
|
||||||
|
|
||||||
const ClassName = {
|
const ClassName = {
|
||||||
HOLD : 'hold-transition',
|
HOLD : 'hold-transition',
|
||||||
SIDEBAR : 'main-sidebar',
|
SIDEBAR : 'main-sidebar',
|
||||||
LAYOUT_FIXED: 'layout-fixed'
|
CONTENT_FIXED : 'content-fixed',
|
||||||
|
SIDEBAR_FOCUSED: 'sidebar-focused',
|
||||||
|
LAYOUT_FIXED : 'layout-fixed',
|
||||||
|
NAVBAR_FIXED : 'layout-navbar-fixed',
|
||||||
|
FOOTER_FIXED : 'layout-footer-fixed',
|
||||||
|
LOGIN_PAGE : 'login-page',
|
||||||
|
REGISTER_PAGE : 'register-page',
|
||||||
|
CONTROL_SIDEBAR_SLIDE_OPEN: 'control-sidebar-slide-open',
|
||||||
|
CONTROL_SIDEBAR_OPEN: 'control-sidebar-open',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
scrollbarTheme : 'os-theme-light',
|
||||||
|
scrollbarAutoHide: 'l',
|
||||||
|
panelAutoHeight: true,
|
||||||
|
loginRegisterAutoHeight: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -43,7 +65,8 @@ const Layout = (($) => {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class Layout {
|
class Layout {
|
||||||
constructor(element) {
|
constructor(element, config) {
|
||||||
|
this._config = config
|
||||||
this._element = element
|
this._element = element
|
||||||
|
|
||||||
this._init()
|
this._init()
|
||||||
@@ -51,37 +74,103 @@ const Layout = (($) => {
|
|||||||
|
|
||||||
// Public
|
// Public
|
||||||
|
|
||||||
fixLayoutHeight() {
|
fixLayoutHeight(extra = null) {
|
||||||
const heights = {
|
let control_sidebar = 0
|
||||||
window : $(window).height(),
|
|
||||||
header : $(Selector.HEADER).outerHeight(),
|
|
||||||
footer : $(Selector.FOOTER).outerHeight(),
|
|
||||||
sidebar: $(Selector.SIDEBAR).height()
|
|
||||||
}
|
|
||||||
const max = this._max(heights)
|
|
||||||
|
|
||||||
$(Selector.CONTENT).css('min-height', max - (heights.header))
|
if ($('body').hasClass(ClassName.CONTROL_SIDEBAR_SLIDE_OPEN) || $('body').hasClass(ClassName.CONTROL_SIDEBAR_OPEN) || extra == 'control_sidebar') {
|
||||||
$(Selector.SIDEBAR).css('min-height', max - heights.header)
|
control_sidebar = $(Selector.CONTROL_SIDEBAR_CONTENT).height()
|
||||||
|
}
|
||||||
|
|
||||||
|
const heights = {
|
||||||
|
window: $(window).height(),
|
||||||
|
header: $(Selector.HEADER).length !== 0 ? $(Selector.HEADER).outerHeight() : 0,
|
||||||
|
footer: $(Selector.FOOTER).length !== 0 ? $(Selector.FOOTER).outerHeight() : 0,
|
||||||
|
sidebar: $(Selector.SIDEBAR).length !== 0 ? $(Selector.SIDEBAR).height() : 0,
|
||||||
|
control_sidebar: control_sidebar,
|
||||||
|
}
|
||||||
|
|
||||||
|
const max = this._max(heights)
|
||||||
|
let offset = this._config.panelAutoHeight
|
||||||
|
|
||||||
|
if (offset === true) {
|
||||||
|
offset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (offset !== false) {
|
||||||
|
if (max == heights.control_sidebar) {
|
||||||
|
$(Selector.CONTENT).css('min-height', (max + offset))
|
||||||
|
} else if (max == heights.window) {
|
||||||
|
$(Selector.CONTENT).css('min-height', (max + offset) - heights.header - heights.footer)
|
||||||
|
} else {
|
||||||
|
$(Selector.CONTENT).css('min-height', (max + offset) - heights.header)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($('body').hasClass(ClassName.LAYOUT_FIXED)) {
|
||||||
|
if (offset !== false) {
|
||||||
|
$(Selector.CONTENT).css('min-height', (max + offset) - heights.header - heights.footer)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof $.fn.overlayScrollbars !== 'undefined') {
|
||||||
|
$(Selector.SIDEBAR).overlayScrollbars({
|
||||||
|
className : this._config.scrollbarTheme,
|
||||||
|
sizeAutoCapable : true,
|
||||||
|
scrollbars : {
|
||||||
|
autoHide: this._config.scrollbarAutoHide,
|
||||||
|
clickScrolling : true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fixLoginRegisterHeight() {
|
||||||
|
if ($(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).length === 0) {
|
||||||
|
$('body, html').css('height', 'auto')
|
||||||
|
} else if ($(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).length !== 0) {
|
||||||
|
let box_height = $(Selector.LOGIN_BOX + ', ' + Selector.REGISTER_BOX).height()
|
||||||
|
|
||||||
|
if ($('body').css('min-height') !== box_height) {
|
||||||
|
$('body').css('min-height', box_height)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
|
|
||||||
_init() {
|
_init() {
|
||||||
// Enable transitions
|
|
||||||
$('body').removeClass(ClassName.HOLD)
|
|
||||||
|
|
||||||
// Activate layout height watcher
|
// Activate layout height watcher
|
||||||
this.fixLayoutHeight()
|
this.fixLayoutHeight()
|
||||||
|
|
||||||
|
if (this._config.loginRegisterAutoHeight === true) {
|
||||||
|
this.fixLoginRegisterHeight()
|
||||||
|
} else if (Number.isInteger(this._config.loginRegisterAutoHeight)) {
|
||||||
|
setInterval(this.fixLoginRegisterHeight, this._config.loginRegisterAutoHeight);
|
||||||
|
}
|
||||||
|
|
||||||
$(Selector.SIDEBAR)
|
$(Selector.SIDEBAR)
|
||||||
.on('collapsed.lte.treeview expanded.lte.treeview collapsed.lte.pushmenu expanded.lte.pushmenu', () => {
|
.on('collapsed.lte.treeview expanded.lte.treeview', () => {
|
||||||
this.fixLayoutHeight()
|
this.fixLayoutHeight()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$(Selector.PUSHMENU_BTN)
|
||||||
|
.on('collapsed.lte.pushmenu shown.lte.pushmenu', () => {
|
||||||
|
this.fixLayoutHeight()
|
||||||
|
})
|
||||||
|
|
||||||
|
$(Selector.CONTROL_SIDEBAR_BTN)
|
||||||
|
.on('collapsed.lte.controlsidebar', () => {
|
||||||
|
this.fixLayoutHeight()
|
||||||
|
})
|
||||||
|
.on('expanded.lte.controlsidebar', () => {
|
||||||
|
this.fixLayoutHeight('control_sidebar')
|
||||||
|
})
|
||||||
|
|
||||||
$(window).resize(() => {
|
$(window).resize(() => {
|
||||||
this.fixLayoutHeight()
|
this.fixLayoutHeight()
|
||||||
})
|
})
|
||||||
|
|
||||||
$('body, html').css('height', 'auto')
|
$('body.hold-transition').removeClass('hold-transition')
|
||||||
}
|
}
|
||||||
|
|
||||||
_max(numbers) {
|
_max(numbers) {
|
||||||
@@ -99,18 +188,20 @@ const Layout = (($) => {
|
|||||||
|
|
||||||
// Static
|
// Static
|
||||||
|
|
||||||
static _jQueryInterface(operation) {
|
static _jQueryInterface(config = '') {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
let data = $(this)
|
let data = $(this).data(DATA_KEY)
|
||||||
.data(DATA_KEY)
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
data = new Layout(this)
|
data = new Layout($(this), _options)
|
||||||
$(this).data(DATA_KEY, data)
|
$(this).data(DATA_KEY, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation) {
|
if (config === 'init' || config === '') {
|
||||||
data[operation]()
|
data['_init']()
|
||||||
|
} else if (config === 'fixLayoutHeight' || config === 'fixLoginRegisterHeight') {
|
||||||
|
data[config]()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -120,10 +211,19 @@ const Layout = (($) => {
|
|||||||
* Data API
|
* Data API
|
||||||
* ====================================================
|
* ====================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$(window).on('load', () => {
|
$(window).on('load', () => {
|
||||||
Layout._jQueryInterface.call($('body'))
|
Layout._jQueryInterface.call($('body'))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$(Selector.SIDEBAR + ' a').on('focusin', () => {
|
||||||
|
$(Selector.MAIN_SIDEBAR).addClass(ClassName.SIDEBAR_FOCUSED);
|
||||||
|
})
|
||||||
|
|
||||||
|
$(Selector.SIDEBAR + ' a').on('focusout', () => {
|
||||||
|
$(Selector.MAIN_SIDEBAR).removeClass(ClassName.SIDEBAR_FOCUSED);
|
||||||
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* jQuery API
|
* jQuery API
|
||||||
* ====================================================
|
* ====================================================
|
||||||
@@ -131,7 +231,7 @@ const Layout = (($) => {
|
|||||||
|
|
||||||
$.fn[NAME] = Layout._jQueryInterface
|
$.fn[NAME] = Layout._jQueryInterface
|
||||||
$.fn[NAME].Constructor = Layout
|
$.fn[NAME].Constructor = Layout
|
||||||
$.fn[NAME].noConflict = function () {
|
$.fn[NAME].noConflict = function () {
|
||||||
$.fn[NAME] = JQUERY_NO_CONFLICT
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
return Layout._jQueryInterface
|
return Layout._jQueryInterface
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,27 +18,28 @@ const PushMenu = (($) => {
|
|||||||
|
|
||||||
const Event = {
|
const Event = {
|
||||||
COLLAPSED: `collapsed${EVENT_KEY}`,
|
COLLAPSED: `collapsed${EVENT_KEY}`,
|
||||||
SHOWN : `shown${EVENT_KEY}`
|
SHOWN: `shown${EVENT_KEY}`
|
||||||
}
|
}
|
||||||
|
|
||||||
const Default = {
|
const Default = {
|
||||||
screenCollapseSize: 768
|
autoCollapseSize: 992,
|
||||||
|
enableRemember: false,
|
||||||
|
noTransitionAfterReload: true
|
||||||
}
|
}
|
||||||
|
|
||||||
const Selector = {
|
const Selector = {
|
||||||
TOGGLE_BUTTON : '[data-widget="pushmenu"]',
|
TOGGLE_BUTTON: '[data-widget="pushmenu"]',
|
||||||
SIDEBAR_MINI : '.sidebar-mini',
|
SIDEBAR_MINI: '.sidebar-mini',
|
||||||
SIDEBAR_COLLAPSED: '.sidebar-collapse',
|
SIDEBAR_COLLAPSED: '.sidebar-collapse',
|
||||||
BODY : 'body',
|
BODY: 'body',
|
||||||
OVERLAY : '#sidebar-overlay',
|
OVERLAY: '#sidebar-overlay',
|
||||||
WRAPPER : '.wrapper'
|
WRAPPER: '.wrapper'
|
||||||
}
|
}
|
||||||
|
|
||||||
const ClassName = {
|
const ClassName = {
|
||||||
SIDEBAR_OPEN: 'sidebar-open',
|
SIDEBAR_OPEN: 'sidebar-open',
|
||||||
COLLAPSED : 'sidebar-collapse',
|
COLLAPSED: 'sidebar-collapse',
|
||||||
OPEN : 'sidebar-open',
|
OPEN: 'sidebar-open'
|
||||||
SIDEBAR_MINI: 'sidebar-mini'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,40 +55,104 @@ const PushMenu = (($) => {
|
|||||||
if (!$(Selector.OVERLAY).length) {
|
if (!$(Selector.OVERLAY).length) {
|
||||||
this._addOverlay()
|
this._addOverlay()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._init()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Public
|
// Public
|
||||||
|
|
||||||
show() {
|
expand() {
|
||||||
$(Selector.BODY).addClass(ClassName.OPEN).removeClass(ClassName.COLLAPSED)
|
if (this._options.autoCollapseSize) {
|
||||||
|
if ($(window).width() <= this._options.autoCollapseSize) {
|
||||||
|
$(Selector.BODY).addClass(ClassName.OPEN)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(Selector.BODY).removeClass(ClassName.COLLAPSED)
|
||||||
|
|
||||||
|
if(this._options.enableRemember) {
|
||||||
|
localStorage.setItem(`remember${EVENT_KEY}`, ClassName.OPEN)
|
||||||
|
}
|
||||||
|
|
||||||
const shownEvent = $.Event(Event.SHOWN)
|
const shownEvent = $.Event(Event.SHOWN)
|
||||||
$(this._element).trigger(shownEvent)
|
$(this._element).trigger(shownEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
collapse() {
|
collapse() {
|
||||||
$(Selector.BODY).removeClass(ClassName.OPEN).addClass(ClassName.COLLAPSED)
|
if (this._options.autoCollapseSize) {
|
||||||
|
if ($(window).width() <= this._options.autoCollapseSize) {
|
||||||
|
$(Selector.BODY).removeClass(ClassName.OPEN)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(Selector.BODY).addClass(ClassName.COLLAPSED)
|
||||||
|
|
||||||
|
if(this._options.enableRemember) {
|
||||||
|
localStorage.setItem(`remember${EVENT_KEY}`, ClassName.COLLAPSED)
|
||||||
|
}
|
||||||
|
|
||||||
const collapsedEvent = $.Event(Event.COLLAPSED)
|
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||||
$(this._element).trigger(collapsedEvent)
|
$(this._element).trigger(collapsedEvent)
|
||||||
}
|
}
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
let isShown
|
if (!$(Selector.BODY).hasClass(ClassName.COLLAPSED)) {
|
||||||
if ($(window).width() >= this._options.screenCollapseSize) {
|
|
||||||
isShown = !$(Selector.BODY).hasClass(ClassName.COLLAPSED)
|
|
||||||
} else {
|
|
||||||
isShown = $(Selector.BODY).hasClass(ClassName.OPEN)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isShown) {
|
|
||||||
this.collapse()
|
this.collapse()
|
||||||
} else {
|
} else {
|
||||||
this.show()
|
this.expand()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
autoCollapse(resize = false) {
|
||||||
|
if (this._options.autoCollapseSize) {
|
||||||
|
if ($(window).width() <= this._options.autoCollapseSize) {
|
||||||
|
if (!$(Selector.BODY).hasClass(ClassName.OPEN)) {
|
||||||
|
this.collapse()
|
||||||
|
}
|
||||||
|
} else if (resize == true) {
|
||||||
|
if ($(Selector.BODY).hasClass(ClassName.OPEN)) {
|
||||||
|
$(Selector.BODY).removeClass(ClassName.OPEN)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
remember() {
|
||||||
|
if(this._options.enableRemember) {
|
||||||
|
let toggleState = localStorage.getItem(`remember${EVENT_KEY}`)
|
||||||
|
if (toggleState == ClassName.COLLAPSED){
|
||||||
|
if (this._options.noTransitionAfterReload) {
|
||||||
|
$("body").addClass('hold-transition').addClass(ClassName.COLLAPSED).delay(50).queue(function() {
|
||||||
|
$(this).removeClass('hold-transition')
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
$("body").addClass(ClassName.COLLAPSED)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (this._options.noTransitionAfterReload) {
|
||||||
|
$("body").addClass('hold-transition').removeClass(ClassName.COLLAPSED).delay(50).queue(function() {
|
||||||
|
$(this).removeClass('hold-transition')
|
||||||
|
$(this).dequeue()
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
$("body").removeClass(ClassName.COLLAPSED)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Private
|
// Private
|
||||||
|
|
||||||
|
_init() {
|
||||||
|
this.remember()
|
||||||
|
this.autoCollapse()
|
||||||
|
|
||||||
|
$(window).resize(() => {
|
||||||
|
this.autoCollapse(true)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
_addOverlay() {
|
_addOverlay() {
|
||||||
const overlay = $('<div />', {
|
const overlay = $('<div />', {
|
||||||
id: 'sidebar-overlay'
|
id: 'sidebar-overlay'
|
||||||
@@ -105,13 +170,14 @@ const PushMenu = (($) => {
|
|||||||
static _jQueryInterface(operation) {
|
static _jQueryInterface(operation) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
let data = $(this).data(DATA_KEY)
|
let data = $(this).data(DATA_KEY)
|
||||||
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
data = new PushMenu(this)
|
data = new PushMenu(this, _options)
|
||||||
$(this).data(DATA_KEY, data)
|
$(this).data(DATA_KEY, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (operation) {
|
if (typeof operation === 'string' && operation.match(/collapse|expand|toggle/)) {
|
||||||
data[operation]()
|
data[operation]()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -135,6 +201,10 @@ const PushMenu = (($) => {
|
|||||||
PushMenu._jQueryInterface.call($(button), 'toggle')
|
PushMenu._jQueryInterface.call($(button), 'toggle')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
$(window).on('load', () => {
|
||||||
|
PushMenu._jQueryInterface.call($(Selector.TOGGLE_BUTTON))
|
||||||
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* jQuery API
|
* jQuery API
|
||||||
* ====================================================
|
* ====================================================
|
||||||
|
|||||||
229
build/js/Toasts.js
Normal file
229
build/js/Toasts.js
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
/**
|
||||||
|
* --------------------------------------------
|
||||||
|
* AdminLTE Toasts.js
|
||||||
|
* License MIT
|
||||||
|
* --------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const Toasts = (($) => {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'Toasts'
|
||||||
|
const DATA_KEY = 'lte.toasts'
|
||||||
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
|
||||||
|
const Event = {
|
||||||
|
INIT: `init${EVENT_KEY}`,
|
||||||
|
CREATED: `created${EVENT_KEY}`,
|
||||||
|
REMOVED: `removed${EVENT_KEY}`,
|
||||||
|
}
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
BODY: 'toast-body',
|
||||||
|
CONTAINER_TOP_RIGHT: '#toastsContainerTopRight',
|
||||||
|
CONTAINER_TOP_LEFT: '#toastsContainerTopLeft',
|
||||||
|
CONTAINER_BOTTOM_RIGHT: '#toastsContainerBottomRight',
|
||||||
|
CONTAINER_BOTTOM_LEFT: '#toastsContainerBottomLeft',
|
||||||
|
}
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
TOP_RIGHT: 'toasts-top-right',
|
||||||
|
TOP_LEFT: 'toasts-top-left',
|
||||||
|
BOTTOM_RIGHT: 'toasts-bottom-right',
|
||||||
|
BOTTOM_LEFT: 'toasts-bottom-left',
|
||||||
|
FADE: 'fade',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Position = {
|
||||||
|
TOP_RIGHT: 'topRight',
|
||||||
|
TOP_LEFT: 'topLeft',
|
||||||
|
BOTTOM_RIGHT: 'bottomRight',
|
||||||
|
BOTTOM_LEFT: 'bottomLeft',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Id = {
|
||||||
|
CONTAINER_TOP_RIGHT: 'toastsContainerTopRight',
|
||||||
|
CONTAINER_TOP_LEFT: 'toastsContainerTopLeft',
|
||||||
|
CONTAINER_BOTTOM_RIGHT: 'toastsContainerBottomRight',
|
||||||
|
CONTAINER_BOTTOM_LEFT: 'toastsContainerBottomLeft',
|
||||||
|
}
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
position: Position.TOP_RIGHT,
|
||||||
|
fixed: true,
|
||||||
|
autohide: false,
|
||||||
|
autoremove: true,
|
||||||
|
delay: 1000,
|
||||||
|
fade: true,
|
||||||
|
icon: null,
|
||||||
|
image: null,
|
||||||
|
imageAlt: null,
|
||||||
|
imageHeight: '25px',
|
||||||
|
title: null,
|
||||||
|
subtitle: null,
|
||||||
|
close: true,
|
||||||
|
body: null,
|
||||||
|
class: null,
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Definition
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
class Toasts {
|
||||||
|
constructor(element, config) {
|
||||||
|
this._config = config
|
||||||
|
|
||||||
|
this._prepareContainer();
|
||||||
|
|
||||||
|
const initEvent = $.Event(Event.INIT)
|
||||||
|
$('body').trigger(initEvent)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Public
|
||||||
|
|
||||||
|
create() {
|
||||||
|
var toast = $('<div class="toast" role="alert" aria-live="assertive" aria-atomic="true"/>')
|
||||||
|
|
||||||
|
toast.data('autohide', this._config.autohide)
|
||||||
|
toast.data('animation', this._config.fade)
|
||||||
|
|
||||||
|
if (this._config.class) {
|
||||||
|
toast.addClass(this._config.class)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._config.delay && this._config.delay != 500) {
|
||||||
|
toast.data('delay', this._config.delay)
|
||||||
|
}
|
||||||
|
|
||||||
|
var toast_header = $('<div class="toast-header">')
|
||||||
|
|
||||||
|
if (this._config.image != null) {
|
||||||
|
var toast_image = $('<img />').addClass('rounded mr-2').attr('src', this._config.image).attr('alt', this._config.imageAlt)
|
||||||
|
|
||||||
|
if (this._config.imageHeight != null) {
|
||||||
|
toast_image.height(this._config.imageHeight).width('auto')
|
||||||
|
}
|
||||||
|
|
||||||
|
toast_header.append(toast_image)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._config.icon != null) {
|
||||||
|
toast_header.append($('<i />').addClass('mr-2').addClass(this._config.icon))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._config.title != null) {
|
||||||
|
toast_header.append($('<strong />').addClass('mr-auto').html(this._config.title))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._config.subtitle != null) {
|
||||||
|
toast_header.append($('<small />').html(this._config.subtitle))
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._config.close == true) {
|
||||||
|
var toast_close = $('<button data-dismiss="toast" />').attr('type', 'button').addClass('ml-2 mb-1 close').attr('aria-label', 'Close').append('<span aria-hidden="true">×</span>')
|
||||||
|
|
||||||
|
if (this._config.title == null) {
|
||||||
|
toast_close.toggleClass('ml-2 ml-auto')
|
||||||
|
}
|
||||||
|
|
||||||
|
toast_header.append(toast_close)
|
||||||
|
}
|
||||||
|
|
||||||
|
toast.append(toast_header)
|
||||||
|
|
||||||
|
if (this._config.body != null) {
|
||||||
|
toast.append($('<div class="toast-body" />').html(this._config.body))
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._getContainerId()).prepend(toast)
|
||||||
|
|
||||||
|
const createdEvent = $.Event(Event.CREATED)
|
||||||
|
$('body').trigger(createdEvent)
|
||||||
|
|
||||||
|
toast.toast('show')
|
||||||
|
|
||||||
|
|
||||||
|
if (this._config.autoremove) {
|
||||||
|
toast.on('hidden.bs.toast', function () {
|
||||||
|
$(this).delay(200).remove();
|
||||||
|
|
||||||
|
const removedEvent = $.Event(Event.REMOVED)
|
||||||
|
$('body').trigger(removedEvent)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
_getContainerId() {
|
||||||
|
if (this._config.position == Position.TOP_RIGHT) {
|
||||||
|
return Selector.CONTAINER_TOP_RIGHT;
|
||||||
|
} else if (this._config.position == Position.TOP_LEFT) {
|
||||||
|
return Selector.CONTAINER_TOP_LEFT;
|
||||||
|
} else if (this._config.position == Position.BOTTOM_RIGHT) {
|
||||||
|
return Selector.CONTAINER_BOTTOM_RIGHT;
|
||||||
|
} else if (this._config.position == Position.BOTTOM_LEFT) {
|
||||||
|
return Selector.CONTAINER_BOTTOM_LEFT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_prepareContainer() {
|
||||||
|
if ($(this._getContainerId()).length === 0) {
|
||||||
|
var container = $('<div />').attr('id', this._getContainerId().replace('#', ''))
|
||||||
|
if (this._config.position == Position.TOP_RIGHT) {
|
||||||
|
container.addClass(ClassName.TOP_RIGHT)
|
||||||
|
} else if (this._config.position == Position.TOP_LEFT) {
|
||||||
|
container.addClass(ClassName.TOP_LEFT)
|
||||||
|
} else if (this._config.position == Position.BOTTOM_RIGHT) {
|
||||||
|
container.addClass(ClassName.BOTTOM_RIGHT)
|
||||||
|
} else if (this._config.position == Position.BOTTOM_LEFT) {
|
||||||
|
container.addClass(ClassName.BOTTOM_LEFT)
|
||||||
|
}
|
||||||
|
|
||||||
|
$('body').append(container)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._config.fixed) {
|
||||||
|
$(this._getContainerId()).addClass('fixed')
|
||||||
|
} else {
|
||||||
|
$(this._getContainerId()).removeClass('fixed')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
static _jQueryInterface(option, config) {
|
||||||
|
return this.each(function () {
|
||||||
|
const _options = $.extend({}, Default, config)
|
||||||
|
var toast = new Toasts($(this), _options)
|
||||||
|
|
||||||
|
if (option === 'create') {
|
||||||
|
toast[option]()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = Toasts._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = Toasts
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return Toasts._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return Toasts
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default Toasts
|
||||||
122
build/js/TodoList.js
Normal file
122
build/js/TodoList.js
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
/**
|
||||||
|
* --------------------------------------------
|
||||||
|
* AdminLTE TodoList.js
|
||||||
|
* License MIT
|
||||||
|
* --------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const TodoList = (($) => {
|
||||||
|
/**
|
||||||
|
* Constants
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'TodoList'
|
||||||
|
const DATA_KEY = 'lte.todolist'
|
||||||
|
const EVENT_KEY = `.${DATA_KEY}`
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
DATA_TOGGLE: '[data-widget="todo-list"]'
|
||||||
|
}
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
TODO_LIST_DONE: 'done'
|
||||||
|
}
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
onCheck: function (item) {
|
||||||
|
return item;
|
||||||
|
},
|
||||||
|
onUnCheck: function (item) {
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Definition
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
class TodoList {
|
||||||
|
constructor(element, config) {
|
||||||
|
this._config = config
|
||||||
|
this._element = element
|
||||||
|
|
||||||
|
this._init()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Public
|
||||||
|
|
||||||
|
toggle(item) {
|
||||||
|
item.parents('li').toggleClass(ClassName.TODO_LIST_DONE);
|
||||||
|
if (! $(item).prop('checked')) {
|
||||||
|
this.unCheck($(item));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.check(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
check (item) {
|
||||||
|
this._config.onCheck.call(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
unCheck (item) {
|
||||||
|
this._config.onUnCheck.call(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Private
|
||||||
|
|
||||||
|
_init() {
|
||||||
|
var that = this
|
||||||
|
$(Selector.DATA_TOGGLE).find('input:checkbox:checked').parents('li').toggleClass(ClassName.TODO_LIST_DONE)
|
||||||
|
$(Selector.DATA_TOGGLE).on('change', 'input:checkbox', (event) => {
|
||||||
|
that.toggle($(event.target))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static
|
||||||
|
|
||||||
|
static _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
let data = $(this).data(DATA_KEY)
|
||||||
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new TodoList($(this), _options)
|
||||||
|
$(this).data(DATA_KEY, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config === 'init') {
|
||||||
|
data[config]()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(window).on('load', () => {
|
||||||
|
TodoList._jQueryInterface.call($(Selector.DATA_TOGGLE))
|
||||||
|
})
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jQuery API
|
||||||
|
* ====================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = TodoList._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = TodoList
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return TodoList._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return TodoList
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default TodoList
|
||||||
@@ -32,16 +32,19 @@ const Treeview = (($) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ClassName = {
|
const ClassName = {
|
||||||
LI : 'nav-item',
|
LI : 'nav-item',
|
||||||
LINK : 'nav-link',
|
LINK : 'nav-link',
|
||||||
TREEVIEW_MENU: 'nav-treeview',
|
TREEVIEW_MENU : 'nav-treeview',
|
||||||
OPEN : 'menu-open'
|
OPEN : 'menu-open',
|
||||||
|
SIDEBAR_COLLAPSED: 'sidebar-collapse'
|
||||||
}
|
}
|
||||||
|
|
||||||
const Default = {
|
const Default = {
|
||||||
trigger : `${Selector.DATA_WIDGET} ${Selector.LINK}`,
|
trigger : `${Selector.DATA_WIDGET} ${Selector.LINK}`,
|
||||||
animationSpeed: 300,
|
animationSpeed : 300,
|
||||||
accordion : true
|
accordion : true,
|
||||||
|
expandSidebar : false,
|
||||||
|
sidebarButtonSelector: '[data-widget="pushmenu"]'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -69,16 +72,20 @@ const Treeview = (($) => {
|
|||||||
this.collapse(openTreeview, openMenuLi)
|
this.collapse(openTreeview, openMenuLi)
|
||||||
}
|
}
|
||||||
|
|
||||||
treeviewMenu.slideDown(this._config.animationSpeed, () => {
|
treeviewMenu.stop().slideDown(this._config.animationSpeed, () => {
|
||||||
parentLi.addClass(ClassName.OPEN)
|
parentLi.addClass(ClassName.OPEN)
|
||||||
$(this._element).trigger(expandedEvent)
|
$(this._element).trigger(expandedEvent)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (this._config.expandSidebar) {
|
||||||
|
this._expandSidebar()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
collapse(treeviewMenu, parentLi) {
|
collapse(treeviewMenu, parentLi) {
|
||||||
const collapsedEvent = $.Event(Event.COLLAPSED)
|
const collapsedEvent = $.Event(Event.COLLAPSED)
|
||||||
|
|
||||||
treeviewMenu.slideUp(this._config.animationSpeed, () => {
|
treeviewMenu.stop().slideUp(this._config.animationSpeed, () => {
|
||||||
parentLi.removeClass(ClassName.OPEN)
|
parentLi.removeClass(ClassName.OPEN)
|
||||||
$(this._element).trigger(collapsedEvent)
|
$(this._element).trigger(collapsedEvent)
|
||||||
treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()
|
treeviewMenu.find(`${Selector.OPEN} > ${Selector.TREEVIEW_MENU}`).slideUp()
|
||||||
@@ -87,13 +94,23 @@ const Treeview = (($) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
toggle(event) {
|
toggle(event) {
|
||||||
|
|
||||||
const $relativeTarget = $(event.currentTarget)
|
const $relativeTarget = $(event.currentTarget)
|
||||||
const treeviewMenu = $relativeTarget.next()
|
const $parent = $relativeTarget.parent()
|
||||||
|
|
||||||
|
let treeviewMenu = $parent.find('> ' + Selector.TREEVIEW_MENU)
|
||||||
|
|
||||||
if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
|
if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!$parent.is(Selector.LI)) {
|
||||||
|
treeviewMenu = $parent.parent().find('> ' + Selector.TREEVIEW_MENU)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!treeviewMenu.is(Selector.TREEVIEW_MENU)) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
const parentLi = $relativeTarget.parents(Selector.LI).first()
|
const parentLi = $relativeTarget.parents(Selector.LI).first()
|
||||||
@@ -114,15 +131,21 @@ const Treeview = (($) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_expandSidebar() {
|
||||||
|
if ($('body').hasClass(ClassName.SIDEBAR_COLLAPSED)) {
|
||||||
|
$(this._config.sidebarButtonSelector).PushMenu('expand')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Static
|
// Static
|
||||||
|
|
||||||
static _jQueryInterface(config) {
|
static _jQueryInterface(config) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
let data = $(this).data(DATA_KEY)
|
let data = $(this).data(DATA_KEY)
|
||||||
const _config = $.extend({}, Default, $(this).data())
|
const _options = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
if (!data) {
|
if (!data) {
|
||||||
data = new Treeview($(this), _config)
|
data = new Treeview($(this), _options)
|
||||||
$(this).data(DATA_KEY, data)
|
$(this).data(DATA_KEY, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,161 +0,0 @@
|
|||||||
/**
|
|
||||||
* --------------------------------------------
|
|
||||||
* AdminLTE Widget.js
|
|
||||||
* License MIT
|
|
||||||
* --------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
const Widget = (($) => {
|
|
||||||
/**
|
|
||||||
* Constants
|
|
||||||
* ====================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
const NAME = 'Widget'
|
|
||||||
const DATA_KEY = 'lte.widget'
|
|
||||||
const EVENT_KEY = `.${DATA_KEY}`
|
|
||||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
|
||||||
|
|
||||||
const Event = {
|
|
||||||
EXPANDED : `expanded${EVENT_KEY}`,
|
|
||||||
COLLAPSED: `collapsed${EVENT_KEY}`,
|
|
||||||
REMOVED : `removed${EVENT_KEY}`
|
|
||||||
}
|
|
||||||
|
|
||||||
const Selector = {
|
|
||||||
DATA_REMOVE : '[data-widget="remove"]',
|
|
||||||
DATA_COLLAPSE: '[data-widget="collapse"]',
|
|
||||||
CARD : '.card',
|
|
||||||
CARD_HEADER : '.card-header',
|
|
||||||
CARD_BODY : '.card-body',
|
|
||||||
CARD_FOOTER : '.card-footer',
|
|
||||||
COLLAPSED : '.collapsed-card'
|
|
||||||
}
|
|
||||||
|
|
||||||
const ClassName = {
|
|
||||||
COLLAPSED: 'collapsed-card'
|
|
||||||
}
|
|
||||||
|
|
||||||
const Default = {
|
|
||||||
animationSpeed : 'normal',
|
|
||||||
collapseTrigger: Selector.DATA_COLLAPSE,
|
|
||||||
removeTrigger : Selector.DATA_REMOVE
|
|
||||||
}
|
|
||||||
|
|
||||||
class Widget {
|
|
||||||
constructor(element, settings) {
|
|
||||||
this._element = element
|
|
||||||
this._parent = element.parents(Selector.CARD).first()
|
|
||||||
this._settings = $.extend({}, Default, settings)
|
|
||||||
}
|
|
||||||
|
|
||||||
collapse() {
|
|
||||||
this._parent.children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
|
|
||||||
.slideUp(this._settings.animationSpeed, () => {
|
|
||||||
this._parent.addClass(ClassName.COLLAPSED)
|
|
||||||
})
|
|
||||||
|
|
||||||
const collapsed = $.Event(Event.COLLAPSED)
|
|
||||||
|
|
||||||
this._element.trigger(collapsed, this._parent)
|
|
||||||
}
|
|
||||||
|
|
||||||
expand() {
|
|
||||||
this._parent.children(`${Selector.CARD_BODY}, ${Selector.CARD_FOOTER}`)
|
|
||||||
.slideDown(this._settings.animationSpeed, () => {
|
|
||||||
this._parent.removeClass(ClassName.COLLAPSED)
|
|
||||||
})
|
|
||||||
|
|
||||||
const expanded = $.Event(Event.EXPANDED)
|
|
||||||
|
|
||||||
this._element.trigger(expanded, this._parent)
|
|
||||||
}
|
|
||||||
|
|
||||||
remove() {
|
|
||||||
this._parent.slideUp()
|
|
||||||
|
|
||||||
const removed = $.Event(Event.REMOVED)
|
|
||||||
|
|
||||||
this._element.trigger(removed, this._parent)
|
|
||||||
}
|
|
||||||
|
|
||||||
toggle() {
|
|
||||||
if (this._parent.hasClass(ClassName.COLLAPSED)) {
|
|
||||||
this.expand()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
this.collapse()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Private
|
|
||||||
|
|
||||||
_init(card) {
|
|
||||||
this._parent = card
|
|
||||||
|
|
||||||
$(this).find(this._settings.collapseTrigger).click(() => {
|
|
||||||
this.toggle()
|
|
||||||
})
|
|
||||||
|
|
||||||
$(this).find(this._settings.removeTrigger).click(() => {
|
|
||||||
this.remove()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Static
|
|
||||||
|
|
||||||
static _jQueryInterface(config) {
|
|
||||||
return this.each(function () {
|
|
||||||
let data = $(this).data(DATA_KEY)
|
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
data = new Widget($(this), data)
|
|
||||||
$(this).data(DATA_KEY, typeof config === 'string' ? data : config)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof config === 'string' && config.match(/remove|toggle/)) {
|
|
||||||
data[config]()
|
|
||||||
} else if (typeof config === 'object') {
|
|
||||||
data._init($(this))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Data API
|
|
||||||
* ====================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).on('click', Selector.DATA_COLLAPSE, function (event) {
|
|
||||||
if (event) {
|
|
||||||
event.preventDefault()
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget._jQueryInterface.call($(this), 'toggle')
|
|
||||||
})
|
|
||||||
|
|
||||||
$(document).on('click', Selector.DATA_REMOVE, function (event) {
|
|
||||||
if (event) {
|
|
||||||
event.preventDefault()
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget._jQueryInterface.call($(this), 'remove')
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* jQuery API
|
|
||||||
* ====================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
$.fn[NAME] = Widget._jQueryInterface
|
|
||||||
$.fn[NAME].Constructor = Widget
|
|
||||||
$.fn[NAME].noConflict = function () {
|
|
||||||
$.fn[NAME] = JQUERY_NO_CONFLICT
|
|
||||||
return Widget._jQueryInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
return Widget
|
|
||||||
})(jQuery)
|
|
||||||
|
|
||||||
export default Widget
|
|
||||||
46
build/npm/DocsPlugins.js
Normal file
46
build/npm/DocsPlugins.js
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
const Plugins = [
|
||||||
|
// AdminLTE Dist
|
||||||
|
{
|
||||||
|
from: 'dist/css/',
|
||||||
|
to : 'docs/assets/css/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'dist/js/',
|
||||||
|
to : 'docs/assets/js/'
|
||||||
|
},
|
||||||
|
// jQuery
|
||||||
|
{
|
||||||
|
from: 'node_modules/jquery/dist/',
|
||||||
|
to : 'docs/assets/plugins/jquery/'
|
||||||
|
},
|
||||||
|
// Popper
|
||||||
|
{
|
||||||
|
from: 'node_modules/popper.js/dist/',
|
||||||
|
to : 'docs/assets/plugins/popper/'
|
||||||
|
},
|
||||||
|
// Bootstrap
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap/dist/js/',
|
||||||
|
to : 'docs/assets/plugins/bootstrap/js/'
|
||||||
|
},
|
||||||
|
// Font Awesome
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fortawesome/fontawesome-free/css/',
|
||||||
|
to : 'docs/assets/plugins/fontawesome-free/css/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fortawesome/fontawesome-free/webfonts/',
|
||||||
|
to : 'docs/assets/plugins/fontawesome-free/webfonts/'
|
||||||
|
},
|
||||||
|
// overlayScrollbars
|
||||||
|
{
|
||||||
|
from: 'node_modules/overlayscrollbars/js/',
|
||||||
|
to : 'docs/assets/plugins/overlayScrollbars/js/'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/overlayscrollbars/css/',
|
||||||
|
to : 'docs/assets/plugins/overlayScrollbars/css/'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
module.exports = Plugins
|
||||||
43
build/npm/DocsPublish.js
Normal file
43
build/npm/DocsPublish.js
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
const Plugins = require('./DocsPlugins')
|
||||||
|
const fse = require('fs-extra')
|
||||||
|
|
||||||
|
class Publish {
|
||||||
|
constructor() {
|
||||||
|
this.options = {
|
||||||
|
verbose: false
|
||||||
|
}
|
||||||
|
|
||||||
|
this.getArguments()
|
||||||
|
}
|
||||||
|
|
||||||
|
getArguments() {
|
||||||
|
if (process.argv.length > 2) {
|
||||||
|
let arg = process.argv[2]
|
||||||
|
switch (arg) {
|
||||||
|
case '-v':
|
||||||
|
case '--verbose':
|
||||||
|
this.options.verbose = true
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
throw new Error(`Unknown option ${arg}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
run() {
|
||||||
|
// Publish files
|
||||||
|
Plugins.forEach((module) => {
|
||||||
|
try {
|
||||||
|
fse.copySync(module.from, module.to)
|
||||||
|
|
||||||
|
if (this.options.verbose) {
|
||||||
|
console.log(`Copied ${module.from} to ${module.to}`)
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.error(`Error: ${err}`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(new Publish()).run()
|
||||||
@@ -11,41 +11,389 @@ const Plugins = [
|
|||||||
},
|
},
|
||||||
// Bootstrap
|
// Bootstrap
|
||||||
{
|
{
|
||||||
from: 'node_modules/bootstrap/dist',
|
from: 'node_modules/bootstrap/dist/js',
|
||||||
to : 'plugins/bootstrap'
|
to : 'plugins/bootstrap/js'
|
||||||
},
|
},
|
||||||
// Font Awesome
|
// Font Awesome
|
||||||
{
|
{
|
||||||
from: 'node_modules/font-awesome/css',
|
from: 'node_modules/@fortawesome/fontawesome-free/css',
|
||||||
to : 'plugins/font-awesome/css'
|
to : 'plugins/fontawesome-free/css'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
from: 'node_modules/font-awesome/fonts',
|
from: 'node_modules/@fortawesome/fontawesome-free/webfonts',
|
||||||
to : 'plugins/font-awesome/fonts'
|
to : 'plugins/fontawesome-free/webfonts'
|
||||||
},
|
},
|
||||||
// Chart.js 2
|
// overlayScrollbars
|
||||||
|
{
|
||||||
|
from: 'node_modules/overlayscrollbars/js',
|
||||||
|
to : 'plugins/overlayScrollbars/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/overlayscrollbars/css',
|
||||||
|
to : 'plugins/overlayScrollbars/css'
|
||||||
|
},
|
||||||
|
// Chart.js
|
||||||
{
|
{
|
||||||
from: 'node_modules/chart.js/dist/',
|
from: 'node_modules/chart.js/dist/',
|
||||||
to : 'plugins/chart.js'
|
to : 'plugins/chart.js'
|
||||||
},
|
},
|
||||||
// CKEditor
|
// jQuery UI
|
||||||
{
|
{
|
||||||
from: 'node_modules/@ckeditor/ckeditor5-build-classic/build/',
|
from: 'node_modules/jquery-ui-dist/',
|
||||||
to : 'plugins/ckeditor'
|
to : 'plugins/jquery-ui'
|
||||||
|
},
|
||||||
|
// Flot
|
||||||
|
{
|
||||||
|
from: 'node_modules/flot/dist/es5/',
|
||||||
|
to : 'plugins/flot'
|
||||||
|
},
|
||||||
|
// Summernote
|
||||||
|
{
|
||||||
|
from: 'node_modules/summernote/dist/',
|
||||||
|
to : 'plugins/summernote'
|
||||||
|
},
|
||||||
|
// Bootstrap Slider
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap-slider/dist/',
|
||||||
|
to : 'plugins/bootstrap-slider'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap-slider/dist/css',
|
||||||
|
to : 'plugins/bootstrap-slider/css'
|
||||||
|
},
|
||||||
|
// Bootstrap Colorpicker
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap-colorpicker/dist/js',
|
||||||
|
to : 'plugins/bootstrap-colorpicker/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap-colorpicker/dist/css',
|
||||||
|
to : 'plugins/bootstrap-colorpicker/css'
|
||||||
|
},
|
||||||
|
// Tempusdominus Bootstrap 4
|
||||||
|
{
|
||||||
|
from: 'node_modules/tempusdominus-bootstrap-4/build/js',
|
||||||
|
to : 'plugins/tempusdominus-bootstrap-4/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/tempusdominus-bootstrap-4/build/css',
|
||||||
|
to : 'plugins/tempusdominus-bootstrap-4/css'
|
||||||
|
},
|
||||||
|
// Moment
|
||||||
|
{
|
||||||
|
from: 'node_modules/moment/min',
|
||||||
|
to : 'plugins/moment'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/moment/locale',
|
||||||
|
to : 'plugins/moment/locale'
|
||||||
|
},
|
||||||
|
// FastClick
|
||||||
|
{
|
||||||
|
from: 'node_modules/fastclick/lib',
|
||||||
|
to : 'plugins/fastclick'
|
||||||
|
},
|
||||||
|
// Date Range Picker
|
||||||
|
{
|
||||||
|
from: 'node_modules/daterangepicker/',
|
||||||
|
to : 'plugins/daterangepicker'
|
||||||
},
|
},
|
||||||
// DataTables
|
// DataTables
|
||||||
|
{
|
||||||
|
from: 'node_modules/pdfmake/build',
|
||||||
|
to: 'plugins/pdfmake'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/jszip/dist',
|
||||||
|
to: 'plugins/jszip'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
from: 'node_modules/datatables.net/js',
|
from: 'node_modules/datatables.net/js',
|
||||||
to: 'plugins/datatables'
|
to: 'plugins/datatables'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
from: 'node_modules/datatables.net-bs4/js',
|
from: 'node_modules/datatables.net-bs4/js',
|
||||||
to: 'plugins/datatables'
|
to: 'plugins/datatables-bs4/js'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
from: 'node_modules/datatables.net-bs4/css',
|
from: 'node_modules/datatables.net-bs4/css',
|
||||||
to: 'plugins/datatables'
|
to: 'plugins/datatables-bs4/css'
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-autofill/js',
|
||||||
|
to: 'plugins/datatables-autofill/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-autofill-bs4/js',
|
||||||
|
to: 'plugins/datatables-autofill/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-autofill-bs4/css',
|
||||||
|
to: 'plugins/datatables-autofill/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-buttons/js',
|
||||||
|
to: 'plugins/datatables-buttons/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-buttons-bs4/js',
|
||||||
|
to: 'plugins/datatables-buttons/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-buttons-bs4/css',
|
||||||
|
to: 'plugins/datatables-buttons/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-colreorder/js',
|
||||||
|
to: 'plugins/datatables-colreorder/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-colreorder-bs4/js',
|
||||||
|
to: 'plugins/datatables-colreorder/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-colreorder-bs4/css',
|
||||||
|
to: 'plugins/datatables-colreorder/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-fixedcolumns/js',
|
||||||
|
to: 'plugins/datatables-fixedcolumns/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-fixedcolumns-bs4/js',
|
||||||
|
to: 'plugins/datatables-fixedcolumns/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-fixedcolumns-bs4/css',
|
||||||
|
to: 'plugins/datatables-fixedcolumns/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-fixedheader/js',
|
||||||
|
to: 'plugins/datatables-fixedheader/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-fixedheader-bs4/js',
|
||||||
|
to: 'plugins/datatables-fixedheader/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-fixedheader-bs4/css',
|
||||||
|
to: 'plugins/datatables-fixedheader/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-keytable/js',
|
||||||
|
to: 'plugins/datatables-keytable/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-keytable-bs4/js',
|
||||||
|
to: 'plugins/datatables-keytable/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-keytable-bs4/css',
|
||||||
|
to: 'plugins/datatables-keytable/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-responsive/js',
|
||||||
|
to: 'plugins/datatables-responsive/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-responsive-bs4/js',
|
||||||
|
to: 'plugins/datatables-responsive/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-responsive-bs4/css',
|
||||||
|
to: 'plugins/datatables-responsive/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-rowgroup/js',
|
||||||
|
to: 'plugins/datatables-rowgroup/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-rowgroup-bs4/js',
|
||||||
|
to: 'plugins/datatables-rowgroup/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-rowgroup-bs4/css',
|
||||||
|
to: 'plugins/datatables-rowgroup/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-rowreorder/js',
|
||||||
|
to: 'plugins/datatables-rowreorder/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-rowreorder-bs4/js',
|
||||||
|
to: 'plugins/datatables-rowreorder/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-rowreorder-bs4/css',
|
||||||
|
to: 'plugins/datatables-rowreorder/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-scroller/js',
|
||||||
|
to: 'plugins/datatables-scroller/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-scroller-bs4/js',
|
||||||
|
to: 'plugins/datatables-scroller/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-scroller-bs4/css',
|
||||||
|
to: 'plugins/datatables-scroller/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-select/js',
|
||||||
|
to: 'plugins/datatables-select/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-select-bs4/js',
|
||||||
|
to: 'plugins/datatables-select/js'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/datatables.net-select-bs4/css',
|
||||||
|
to: 'plugins/datatables-select/css'
|
||||||
|
},
|
||||||
|
|
||||||
|
// Fullcalendar
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fullcalendar/core/',
|
||||||
|
to : 'plugins/fullcalendar'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fullcalendar/bootstrap/',
|
||||||
|
to : 'plugins/fullcalendar-bootstrap'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fullcalendar/daygrid/',
|
||||||
|
to : 'plugins/fullcalendar-daygrid'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fullcalendar/timegrid/',
|
||||||
|
to : 'plugins/fullcalendar-timegrid'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@fullcalendar/interaction/',
|
||||||
|
to : 'plugins/fullcalendar-interaction'
|
||||||
|
},
|
||||||
|
// icheck bootstrap
|
||||||
|
{
|
||||||
|
from: 'node_modules/icheck-bootstrap/',
|
||||||
|
to : 'plugins/icheck-bootstrap'
|
||||||
|
},
|
||||||
|
// inputmask
|
||||||
|
{
|
||||||
|
from: 'node_modules/inputmask/dist/',
|
||||||
|
to : 'plugins/inputmask'
|
||||||
|
},
|
||||||
|
// ion-rangeslider
|
||||||
|
{
|
||||||
|
from: 'node_modules/ion-rangeslider/',
|
||||||
|
to : 'plugins/ion-rangeslider'
|
||||||
|
},
|
||||||
|
// JQVMap (jqvmap-novulnerability)
|
||||||
|
{
|
||||||
|
from: 'node_modules/jqvmap-novulnerability/dist/',
|
||||||
|
to : 'plugins/jqvmap'
|
||||||
|
},
|
||||||
|
// jQuery Mapael
|
||||||
|
{
|
||||||
|
from: 'node_modules/jquery-mapael/js/',
|
||||||
|
to : 'plugins/jquery-mapael'
|
||||||
|
},
|
||||||
|
// Raphael
|
||||||
|
{
|
||||||
|
from: 'node_modules/raphael/',
|
||||||
|
to : 'plugins/raphael'
|
||||||
|
},
|
||||||
|
// jQuery Mousewheel
|
||||||
|
{
|
||||||
|
from: 'node_modules/jquery-mousewheel/',
|
||||||
|
to : 'plugins/jquery-mousewheel'
|
||||||
|
},
|
||||||
|
// jQuery Knob
|
||||||
|
{
|
||||||
|
from: 'node_modules/jquery-knob-chif/dist/',
|
||||||
|
to : 'plugins/jquery-knob'
|
||||||
|
},
|
||||||
|
// pace-progress
|
||||||
|
{
|
||||||
|
from: 'node_modules/@lgaitan/pace-progress/dist/',
|
||||||
|
to : 'plugins/pace-progress'
|
||||||
|
},
|
||||||
|
// Select2
|
||||||
|
{
|
||||||
|
from: 'node_modules/select2/dist/',
|
||||||
|
to : 'plugins/select2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@ttskch/select2-bootstrap4-theme/dist/',
|
||||||
|
to : 'plugins/select2-bootstrap4-theme'
|
||||||
|
},
|
||||||
|
// Sparklines
|
||||||
|
{
|
||||||
|
from: 'node_modules/sparklines/source/',
|
||||||
|
to : 'plugins/sparklines'
|
||||||
|
},
|
||||||
|
// SweetAlert2
|
||||||
|
{
|
||||||
|
from: 'node_modules/sweetalert2/dist/',
|
||||||
|
to : 'plugins/sweetalert2'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/@sweetalert2/theme-bootstrap-4/',
|
||||||
|
to : 'plugins/sweetalert2-theme-bootstrap-4'
|
||||||
|
},
|
||||||
|
// Toastr
|
||||||
|
{
|
||||||
|
from: 'node_modules/toastr/build/',
|
||||||
|
to : 'plugins/toastr'
|
||||||
|
},
|
||||||
|
// jsGrid
|
||||||
|
{
|
||||||
|
from: 'node_modules/jsgrid/dist',
|
||||||
|
to: 'plugins/jsgrid'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/jsgrid/demos/',
|
||||||
|
to: 'plugins/jsgrid/demos'
|
||||||
|
},
|
||||||
|
// flag-icon-css
|
||||||
|
{
|
||||||
|
from: 'node_modules/flag-icon-css/css',
|
||||||
|
to: 'plugins/flag-icon-css/css'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
from: 'node_modules/flag-icon-css/flags',
|
||||||
|
to: 'plugins/flag-icon-css/flags'
|
||||||
|
},
|
||||||
|
// bootstrap4-duallistbox
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap4-duallistbox/dist',
|
||||||
|
to: 'plugins/bootstrap4-duallistbox/'
|
||||||
|
},
|
||||||
|
// filterizr
|
||||||
|
{
|
||||||
|
from: 'node_modules/filterizr/dist',
|
||||||
|
to: 'plugins/filterizr/'
|
||||||
|
},
|
||||||
|
// ekko-lightbox
|
||||||
|
{
|
||||||
|
from: 'node_modules/ekko-lightbox/dist',
|
||||||
|
to: 'plugins/ekko-lightbox/'
|
||||||
|
},
|
||||||
|
// bootstrap-switch
|
||||||
|
{
|
||||||
|
from: 'node_modules/bootstrap-switch/dist',
|
||||||
|
to: 'plugins/bootstrap-switch/'
|
||||||
|
},
|
||||||
|
// jQuery Validate
|
||||||
|
{
|
||||||
|
from: 'node_modules/jquery-validation/dist/',
|
||||||
|
to : 'plugins/jquery-validation'
|
||||||
|
},
|
||||||
|
// bs-custom-file-input
|
||||||
|
{
|
||||||
|
from: 'node_modules/bs-custom-file-input/dist/',
|
||||||
|
to : 'plugins/bs-custom-file-input'
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
module.exports = Plugins
|
module.exports = Plugins
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
const Plugins = require('./Plugins')
|
const Plugins = require('./Plugins')
|
||||||
const ncp = require('ncp').ncp
|
const fse = require('fs-extra')
|
||||||
|
|
||||||
class Publish {
|
class Publish {
|
||||||
constructor() {
|
constructor() {
|
||||||
@@ -27,13 +27,19 @@ class Publish {
|
|||||||
run() {
|
run() {
|
||||||
// Publish files
|
// Publish files
|
||||||
Plugins.forEach((module) => {
|
Plugins.forEach((module) => {
|
||||||
ncp(module.from, module.to, error => {
|
try {
|
||||||
if (error) {
|
if (fse.existsSync(module.from)) {
|
||||||
console.error(`Error: ${error}`)
|
fse.copySync(module.from, module.to)
|
||||||
} else if (this.options.verbose) {
|
} else {
|
||||||
|
fse.copySync(module.from.replace('node_modules/', '../'), module.to)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.options.verbose) {
|
||||||
console.log(`Copied ${module.from} to ${module.to}`)
|
console.log(`Copied ${module.from} to ${module.to}`)
|
||||||
}
|
}
|
||||||
})
|
} catch (err) {
|
||||||
|
console.error(`Error: ${err}`)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
20
build/scss/AdminLTE-components.scss
Normal file
20
build/scss/AdminLTE-components.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
* AdminLTE v 3.0.3
|
||||||
|
* Only Components
|
||||||
|
* Author: Colorlib
|
||||||
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
|
*/
|
||||||
|
// Bootstrap
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import '~bootstrap/scss/functions';
|
||||||
|
@import 'bootstrap-variables';
|
||||||
|
@import '~bootstrap/scss/mixins';
|
||||||
|
// @import '~bootstrap/scss/bootstrap';
|
||||||
|
|
||||||
|
// Variables and Mixins
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
|
||||||
|
@import 'parts/components';
|
||||||
20
build/scss/AdminLTE-core.scss
Normal file
20
build/scss/AdminLTE-core.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
* AdminLTE v 3.0.3
|
||||||
|
* Only Core
|
||||||
|
* Author: Colorlib
|
||||||
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
|
*/
|
||||||
|
// Bootstrap
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import '~bootstrap/scss/functions';
|
||||||
|
@import 'bootstrap-variables';
|
||||||
|
@import '~bootstrap/scss/bootstrap';
|
||||||
|
|
||||||
|
// Variables and Mixins
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
|
||||||
|
@import 'parts/core';
|
||||||
|
@import 'parts/miscellaneous';
|
||||||
20
build/scss/AdminLTE-extra-components.scss
Normal file
20
build/scss/AdminLTE-extra-components.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
* AdminLTE v 3.0.3
|
||||||
|
* Only Extra Components
|
||||||
|
* Author: Colorlib
|
||||||
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
|
*/
|
||||||
|
// Bootstrap
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import '~bootstrap/scss/functions';
|
||||||
|
@import 'bootstrap-variables';
|
||||||
|
@import '~bootstrap/scss/mixins';
|
||||||
|
// @import '~bootstrap/scss/bootstrap';
|
||||||
|
|
||||||
|
// Variables and Mixins
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
|
||||||
|
@import 'parts/extra-components';
|
||||||
20
build/scss/AdminLTE-pages.scss
Normal file
20
build/scss/AdminLTE-pages.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
* AdminLTE v 3.0.3
|
||||||
|
* Only Pages
|
||||||
|
* Author: Colorlib
|
||||||
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
|
*/
|
||||||
|
// Bootstrap
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import '~bootstrap/scss/functions';
|
||||||
|
@import 'bootstrap-variables';
|
||||||
|
@import '~bootstrap/scss/mixins';
|
||||||
|
@import '~bootstrap/scss/close';
|
||||||
|
|
||||||
|
// Variables and Mixins
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
|
||||||
|
@import 'parts/pages';
|
||||||
20
build/scss/AdminLTE-plugins.scss
Normal file
20
build/scss/AdminLTE-plugins.scss
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*!
|
||||||
|
* AdminLTE v 3.0.3
|
||||||
|
* Only Plugins
|
||||||
|
* Author: Colorlib
|
||||||
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
|
*/
|
||||||
|
// Bootstrap
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import '~bootstrap/scss/functions';
|
||||||
|
@import 'bootstrap-variables';
|
||||||
|
@import '~bootstrap/scss/mixins';
|
||||||
|
// @import '~bootstrap/scss/bootstrap';
|
||||||
|
|
||||||
|
// Variables and Mixins
|
||||||
|
// ---------------------------------------------------
|
||||||
|
@import 'variables';
|
||||||
|
@import 'mixins';
|
||||||
|
|
||||||
|
@import 'parts/plugins';
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/*!
|
/*!
|
||||||
* AdminLTE v3.0.0-alpha
|
* AdminLTE v 3.0.3
|
||||||
* Author: Abdullah Almsaeed
|
* Author: Colorlib
|
||||||
* Website: AdminLTE.io <http://adminlte.io>
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
*/
|
*/
|
||||||
//
|
//
|
||||||
@@ -13,54 +13,15 @@
|
|||||||
// NOTE: be sure to keep the license notice in the generated css.
|
// NOTE: be sure to keep the license notice in the generated css.
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// VARIABLES AND MIXINS
|
// Variables and Mixins
|
||||||
// ---------------------------------------------------
|
// ---------------------------------------------------
|
||||||
@import "bootstrap-variables";
|
@import 'bootstrap-variables';
|
||||||
@import "variables";
|
@import 'variables';
|
||||||
@import "mixins";
|
@import 'mixins';
|
||||||
// Core
|
|
||||||
// ---------------------------------------------------
|
@import 'parts/core';
|
||||||
@import "layout";
|
@import 'parts/components';
|
||||||
// COMPONENTS
|
@import 'parts/extra-components';
|
||||||
// ---------------------------------------------------
|
@import 'parts/pages';
|
||||||
@import "main-header";
|
@import 'parts/plugins';
|
||||||
@import "brand";
|
@import 'parts/miscellaneous';
|
||||||
@import "main-sidebar";
|
|
||||||
@import "sidebar-mini";
|
|
||||||
@import "control-sidebar";
|
|
||||||
@import "dropdown";
|
|
||||||
@import "forms";
|
|
||||||
@import "progress-bars";
|
|
||||||
@import "small-box";
|
|
||||||
@import "cards";
|
|
||||||
@import "info-box";
|
|
||||||
@import "timeline";
|
|
||||||
@import "buttons";
|
|
||||||
@import "callout";
|
|
||||||
@import "alerts";
|
|
||||||
@import "navs";
|
|
||||||
@import "products";
|
|
||||||
@import "table";
|
|
||||||
@import "labels";
|
|
||||||
@import "direct-chat";
|
|
||||||
@import "users-list";
|
|
||||||
@import "carousel";
|
|
||||||
@import "social-widgets";
|
|
||||||
// PAGES
|
|
||||||
// ---------------------------------------------------
|
|
||||||
@import "mailbox";
|
|
||||||
@import "lockscreen";
|
|
||||||
@import "login_and_register";
|
|
||||||
@import "404_500_errors";
|
|
||||||
@import "invoice";
|
|
||||||
@import "profile";
|
|
||||||
// Plugins
|
|
||||||
// ---------------------------------------------------
|
|
||||||
@import "fullcalendar";
|
|
||||||
@import "select2";
|
|
||||||
// Miscellaneous
|
|
||||||
// ---------------------------------------------------
|
|
||||||
@import "miscellaneous";
|
|
||||||
@import "print";
|
|
||||||
@import "text";
|
|
||||||
@import "elevation";
|
|
||||||
|
|||||||
@@ -1,61 +1,24 @@
|
|||||||
/*!
|
/*!
|
||||||
* AdminLTE v3.0.0-alpha
|
* AdminLTE v 3.0.3
|
||||||
* Author: Abdullah Almsaeed
|
* Author: Colorlib
|
||||||
* Website: AdminLTE.io <http://adminlte.io>
|
* Website: AdminLTE.io <http://adminlte.io>
|
||||||
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
* License: Open source - MIT <http://opensource.org/licenses/MIT>
|
||||||
*/
|
*/
|
||||||
// Bootstrap
|
// Bootstrap
|
||||||
// ---------------------------------------------------
|
// ---------------------------------------------------
|
||||||
@import "../../node_modules/bootstrap/scss/functions";
|
@import '~bootstrap/scss/functions';
|
||||||
@import "bootstrap-variables";
|
@import 'bootstrap-variables';
|
||||||
@import "../../node_modules/bootstrap/scss/bootstrap";
|
@import '~bootstrap/scss/bootstrap';
|
||||||
// VARIABLES AND MIXINS
|
|
||||||
|
// Variables and Mixins
|
||||||
// ---------------------------------------------------
|
// ---------------------------------------------------
|
||||||
@import "variables";
|
@import 'variables';
|
||||||
@import "mixins";
|
@import 'mixins';
|
||||||
// Core
|
|
||||||
// ---------------------------------------------------
|
@import 'parts/core';
|
||||||
@import "layout";
|
@import 'parts/components';
|
||||||
// COMPONENTS
|
@import 'parts/extra-components';
|
||||||
// ---------------------------------------------------
|
@import 'parts/pages';
|
||||||
@import "main-header";
|
@import 'parts/plugins';
|
||||||
@import "brand";
|
@import 'parts/miscellaneous';
|
||||||
@import "main-sidebar";
|
|
||||||
@import "sidebar-mini";
|
|
||||||
@import "control-sidebar";
|
|
||||||
@import "dropdown";
|
|
||||||
@import "forms";
|
|
||||||
@import "progress-bars";
|
|
||||||
@import "small-box";
|
|
||||||
@import "cards";
|
|
||||||
@import "info-box";
|
|
||||||
@import "timeline";
|
|
||||||
@import "buttons";
|
|
||||||
@import "callout";
|
|
||||||
@import "alerts";
|
|
||||||
@import "navs";
|
|
||||||
@import "products";
|
|
||||||
@import "table";
|
|
||||||
@import "labels";
|
|
||||||
@import "direct-chat";
|
|
||||||
@import "users-list";
|
|
||||||
@import "carousel";
|
|
||||||
@import "social-widgets";
|
|
||||||
// PAGES
|
|
||||||
// ---------------------------------------------------
|
|
||||||
@import "mailbox";
|
|
||||||
@import "lockscreen";
|
|
||||||
@import "login_and_register";
|
|
||||||
@import "404_500_errors";
|
|
||||||
@import "invoice";
|
|
||||||
@import "profile";
|
|
||||||
// Plugins
|
|
||||||
// ---------------------------------------------------
|
|
||||||
@import "fullcalendar";
|
|
||||||
@import "select2";
|
|
||||||
// Miscellaneous
|
|
||||||
// ---------------------------------------------------
|
|
||||||
@import "miscellaneous";
|
|
||||||
@import "print";
|
|
||||||
@import "text";
|
|
||||||
@import "elevation";
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
/*
|
//
|
||||||
* Component: alert
|
// Component: Alert
|
||||||
* ----------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.alert {
|
.alert {
|
||||||
.icon {
|
.icon {
|
||||||
@@ -9,8 +8,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.close {
|
.close {
|
||||||
color: #000;
|
color: $black;
|
||||||
opacity: .2;
|
opacity: .2;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
opacity: .5;
|
opacity: .5;
|
||||||
}
|
}
|
||||||
@@ -23,23 +23,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Alert Variants
|
//Alert Variants
|
||||||
.alert-success {
|
@each $color, $value in $theme-colors {
|
||||||
@extend .bg-success;
|
.alert-#{$color} {
|
||||||
border-color: darken(theme-color("success"), 5%);
|
color: color-yiq($value);
|
||||||
}
|
background: $value;
|
||||||
|
border-color: darken($value, 5%);
|
||||||
|
}
|
||||||
|
|
||||||
.alert-danger,
|
.alert-default-#{$color} {
|
||||||
.alert-error {
|
@include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
|
||||||
@extend .bg-danger;
|
}
|
||||||
border-color: darken(theme-color("danger"), 5%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.alert-warning {
|
|
||||||
@extend .bg-warning;
|
|
||||||
border-color: darken(theme-color("warning"), 5%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.alert-info {
|
|
||||||
@extend .bg-info;
|
|
||||||
border-color: darken(theme-color("info"), 5%);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,15 +98,19 @@ $yiq-text-light: $white !default;
|
|||||||
//
|
//
|
||||||
// Quickly modify global styling by enabling or disabling optional features.
|
// Quickly modify global styling by enabling or disabling optional features.
|
||||||
|
|
||||||
$enable-caret: true !default;
|
$enable-caret: true !default;
|
||||||
$enable-rounded: true !default;
|
$enable-rounded: true !default;
|
||||||
$enable-shadows: true !default;
|
$enable-shadows: true !default;
|
||||||
$enable-gradients: false !default;
|
$enable-gradients: false !default;
|
||||||
$enable-transitions: true !default;
|
$enable-transitions: true !default;
|
||||||
$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
|
$enable-prefers-reduced-motion-media-query: true !default;
|
||||||
$enable-grid-classes: true !default;
|
$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
|
||||||
$enable-print-styles: true !default;
|
$enable-grid-classes: true !default;
|
||||||
|
$enable-pointer-cursor-for-buttons: true !default;
|
||||||
|
$enable-print-styles: true !default;
|
||||||
|
$enable-responsive-font-sizes: false !default;
|
||||||
|
$enable-validation-icons: true !default;
|
||||||
|
$enable-deprecation-messages: true !default;
|
||||||
|
|
||||||
// Spacing
|
// Spacing
|
||||||
//
|
//
|
||||||
@@ -314,7 +318,7 @@ $table-head-color: $gray-700 !default;
|
|||||||
$table-dark-bg: $gray-900 !default;
|
$table-dark-bg: $gray-900 !default;
|
||||||
$table-dark-accent-bg: rgba($white, .05) !default;
|
$table-dark-accent-bg: rgba($white, .05) !default;
|
||||||
$table-dark-hover-bg: rgba($white, .075) !default;
|
$table-dark-hover-bg: rgba($white, .075) !default;
|
||||||
$table-dark-border-color: lighten($gray-900, 7.5%) !default;
|
$table-dark-border-color: lighten($gray-900, 10%) !default;
|
||||||
$table-dark-color: $body-bg !default;
|
$table-dark-color: $body-bg !default;
|
||||||
|
|
||||||
|
|
||||||
@@ -360,11 +364,11 @@ $btn-line-height-lg: $input-btn-line-height-lg !default;
|
|||||||
$btn-border-width: $input-btn-border-width !default;
|
$btn-border-width: $input-btn-border-width !default;
|
||||||
|
|
||||||
$btn-font-weight: $font-weight-normal !default;
|
$btn-font-weight: $font-weight-normal !default;
|
||||||
$btn-box-shadow: 0 1px 1px rgba($black, .075) !default;
|
$btn-box-shadow: none !default;
|
||||||
$btn-focus-width: $input-btn-focus-width !default;
|
$btn-focus-width: 0 !default;
|
||||||
$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
|
$btn-focus-box-shadow: none !default;
|
||||||
$btn-disabled-opacity: .65 !default;
|
$btn-disabled-opacity: .65 !default;
|
||||||
$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
|
$btn-active-box-shadow: none !default;
|
||||||
|
|
||||||
$btn-link-disabled-color: $gray-600 !default;
|
$btn-link-disabled-color: $gray-600 !default;
|
||||||
|
|
||||||
@@ -407,14 +411,17 @@ $input-border-radius-sm: $border-radius-sm !default;
|
|||||||
$input-focus-bg: $input-bg !default;
|
$input-focus-bg: $input-bg !default;
|
||||||
$input-focus-border-color: lighten($component-active-bg, 25%) !default;
|
$input-focus-border-color: lighten($component-active-bg, 25%) !default;
|
||||||
$input-focus-color: $input-color !default;
|
$input-focus-color: $input-color !default;
|
||||||
$input-focus-width: $input-btn-focus-width !default;
|
$input-focus-width: 0 !default;
|
||||||
$input-focus-box-shadow: $input-btn-focus-box-shadow !default;
|
$input-focus-box-shadow: none !default;
|
||||||
|
|
||||||
$input-placeholder-color: $gray-600 !default;
|
$input-placeholder-color: lighten($gray-600, 15%) !default;
|
||||||
|
|
||||||
$input-height-border: $input-border-width * 2 !default;
|
$input-height-border: $input-border-width * 2 !default;
|
||||||
|
|
||||||
$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
|
$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
|
||||||
|
$input-height-inner-half: calc(#{$input-line-height * .5em} + #{$input-padding-y}) !default;
|
||||||
|
$input-height-inner-quarter: calc(#{$input-line-height * .25em} + #{$input-padding-y / 2}) !default;
|
||||||
|
|
||||||
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
|
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
|
||||||
|
|
||||||
$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
|
$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
|
||||||
@@ -440,7 +447,7 @@ $input-group-addon-color: $input-color !default;
|
|||||||
$input-group-addon-bg: $gray-200 !default;
|
$input-group-addon-bg: $gray-200 !default;
|
||||||
$input-group-addon-border-color: $input-border-color !default;
|
$input-group-addon-border-color: $input-border-color !default;
|
||||||
|
|
||||||
$custom-control-gutter: 1.5rem !default;
|
$custom-control-gutter: .5rem !default;
|
||||||
$custom-control-spacer-x: 1rem !default;
|
$custom-control-spacer-x: 1rem !default;
|
||||||
|
|
||||||
$custom-control-indicator-size: 1rem !default;
|
$custom-control-indicator-size: 1rem !default;
|
||||||
@@ -490,7 +497,7 @@ $custom-select-border-color: $input-border-color !default;
|
|||||||
$custom-select-border-radius: $border-radius !default;
|
$custom-select-border-radius: $border-radius !default;
|
||||||
|
|
||||||
$custom-select-focus-border-color: $input-focus-border-color !default;
|
$custom-select-focus-border-color: $input-focus-border-color !default;
|
||||||
$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;
|
$custom-select-focus-box-shadow: none !default;
|
||||||
|
|
||||||
$custom-select-font-size-sm: 75% !default;
|
$custom-select-font-size-sm: 75% !default;
|
||||||
$custom-select-height-sm: $input-height-sm !default;
|
$custom-select-height-sm: $input-height-sm !default;
|
||||||
@@ -500,7 +507,7 @@ $custom-select-height-lg: $input-height-lg !default;
|
|||||||
|
|
||||||
$custom-file-height: $input-height !default;
|
$custom-file-height: $input-height !default;
|
||||||
$custom-file-focus-border-color: $input-focus-border-color !default;
|
$custom-file-focus-border-color: $input-focus-border-color !default;
|
||||||
$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;
|
$custom-file-focus-box-shadow: $custom-select-focus-box-shadow !default;
|
||||||
|
|
||||||
$custom-file-padding-y: $input-btn-padding-y !default;
|
$custom-file-padding-y: $input-btn-padding-y !default;
|
||||||
$custom-file-padding-x: $input-btn-padding-x !default;
|
$custom-file-padding-x: $input-btn-padding-x !default;
|
||||||
@@ -510,13 +517,15 @@ $custom-file-bg: $input-bg !default;
|
|||||||
$custom-file-border-width: $input-btn-border-width !default;
|
$custom-file-border-width: $input-btn-border-width !default;
|
||||||
$custom-file-border-color: $input-border-color !default;
|
$custom-file-border-color: $input-border-color !default;
|
||||||
$custom-file-border-radius: $input-border-radius !default;
|
$custom-file-border-radius: $input-border-radius !default;
|
||||||
$custom-file-box-shadow: $input-box-shadow !default;
|
$custom-file-box-shadow: $custom-select-focus-box-shadow !default;
|
||||||
$custom-file-button-color: $custom-file-color !default;
|
$custom-file-button-color: $custom-file-color !default;
|
||||||
$custom-file-button-bg: $input-group-addon-bg !default;
|
$custom-file-button-bg: $input-group-addon-bg !default;
|
||||||
$custom-file-text: (
|
$custom-file-text: (
|
||||||
en: "Browse"
|
en: "Browse"
|
||||||
) !default;
|
) !default;
|
||||||
|
|
||||||
|
$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
|
||||||
|
|
||||||
|
|
||||||
// Form validation
|
// Form validation
|
||||||
$form-feedback-margin-top: $form-text-margin-top !default;
|
$form-feedback-margin-top: $form-text-margin-top !default;
|
||||||
@@ -690,6 +699,13 @@ $tooltip-arrow-width: .8rem !default;
|
|||||||
$tooltip-arrow-height: .4rem !default;
|
$tooltip-arrow-height: .4rem !default;
|
||||||
$tooltip-arrow-color: $tooltip-bg !default;
|
$tooltip-arrow-color: $tooltip-bg !default;
|
||||||
|
|
||||||
|
// Form tooltips must come after regular tooltips
|
||||||
|
$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;
|
||||||
|
$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;
|
||||||
|
$form-feedback-tooltip-font-size: $tooltip-font-size !default;
|
||||||
|
$form-feedback-tooltip-line-height: $line-height-base !default;
|
||||||
|
$form-feedback-tooltip-opacity: $tooltip-opacity !default;
|
||||||
|
$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;
|
||||||
|
|
||||||
// Popovers
|
// Popovers
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,14 @@
|
|||||||
|
//
|
||||||
|
// Component: Brand
|
||||||
|
//
|
||||||
|
|
||||||
.brand-link {
|
.brand-link {
|
||||||
$brand-link-padding-y: $navbar-brand-padding-y + $navbar-padding-y;
|
$brand-link-padding-y: $navbar-brand-padding-y + $navbar-padding-y;
|
||||||
padding: $brand-link-padding-y $sidebar-padding-x;
|
|
||||||
font-size: $navbar-brand-font-size;
|
|
||||||
display: block;
|
display: block;
|
||||||
|
font-size: $navbar-brand-font-size;
|
||||||
line-height: $line-height-lg;
|
line-height: $line-height-lg;
|
||||||
|
padding: $brand-link-padding-y $sidebar-padding-x;
|
||||||
|
transition: width $transition-speed $transition-fn;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@@ -11,23 +16,61 @@
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
[class*="sidebar-dark"] & {
|
.text-sm & {
|
||||||
color: rgba(255,255,255,.8);
|
font-size: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*='sidebar-dark'] & {
|
||||||
border-bottom: 1px solid lighten($dark, 10%);
|
border-bottom: 1px solid lighten($dark, 10%);
|
||||||
|
color: rgba($white, .8);
|
||||||
}
|
}
|
||||||
|
|
||||||
[class*="sidebar-light"] & {
|
[class*='sidebar-light'] & {
|
||||||
color: rgba(0,0,0,.8);
|
|
||||||
border-bottom: 1px solid $gray-300;
|
border-bottom: 1px solid $gray-300;
|
||||||
|
color: rgba($black, .8);
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-image {
|
||||||
|
float: left;
|
||||||
|
line-height: .8;
|
||||||
|
margin-left: .8rem;
|
||||||
|
margin-right: .5rem;
|
||||||
|
margin-top: -3px;
|
||||||
|
max-height: 33px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-image-xs {
|
||||||
|
float: left;
|
||||||
|
line-height: .8;
|
||||||
|
margin-top: -.1rem;
|
||||||
|
max-height: 33px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-image-xl {
|
||||||
|
line-height: .8;
|
||||||
|
max-height: 40px;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.text-sm,
|
||||||
|
.text-sm & {
|
||||||
|
.brand-image {
|
||||||
|
height: 29px;
|
||||||
|
margin-bottom: -.25rem;
|
||||||
|
margin-left: .95rem;
|
||||||
|
margin-top: -.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-image-xs {
|
||||||
|
margin-top: -.2rem;
|
||||||
|
max-height: 29px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-image-xl {
|
||||||
|
margin-top: -.225rem;
|
||||||
|
max-height: 38px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.brand-image {
|
|
||||||
float:left;
|
|
||||||
line-height: .8;
|
|
||||||
max-height: 34px;
|
|
||||||
width: auto;
|
|
||||||
margin-left: .8rem;
|
|
||||||
margin-right: .5rem;
|
|
||||||
margin-top: -3px;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,87 +1,108 @@
|
|||||||
/*
|
//
|
||||||
* Component: Button
|
// Component: Button
|
||||||
* -----------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.btn {
|
.btn {
|
||||||
|
&.disabled,
|
||||||
|
&:disabled {
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
// Flat buttons
|
// Flat buttons
|
||||||
&.btn-flat {
|
&.btn-flat {
|
||||||
@include border-radius(0);
|
@include border-radius(0);
|
||||||
box-shadow: none;
|
|
||||||
border-width: 1px;
|
border-width: 1px;
|
||||||
|
box-shadow: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
// input file btn
|
// input file btn
|
||||||
&.btn-file {
|
&.btn-file {
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
> input[type='file'] {
|
> input[type='file'] {
|
||||||
position: absolute;
|
background: $white;
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
min-width: 100%;
|
|
||||||
min-height: 100%;
|
|
||||||
font-size: 100px;
|
|
||||||
text-align: right;
|
|
||||||
opacity: 0;
|
|
||||||
outline: none;
|
|
||||||
background: white;
|
|
||||||
cursor: inherit;
|
cursor: inherit;
|
||||||
display: block;
|
display: block;
|
||||||
|
font-size: 100px;
|
||||||
|
min-height: 100%;
|
||||||
|
min-width: 100%;
|
||||||
|
opacity: 0;
|
||||||
|
outline: none;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
text-align: right;
|
||||||
|
top: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
font-size: $font-size-sm !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Button color variations
|
// Button color variations
|
||||||
.btn-default {
|
.btn-default {
|
||||||
background-color: #f4f4f4;
|
background-color: $button-default-background-color;
|
||||||
color: #444;
|
border-color: $button-default-border-color;
|
||||||
border-color: #ddd;
|
color: $button-default-color;
|
||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&:active,
|
&:active,
|
||||||
&.hover {
|
&.hover {
|
||||||
background-color: darken(#f4f4f4, 5%);
|
background-color: darken($button-default-background-color, 5%);
|
||||||
|
color: darken($button-default-color, 10%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Application buttons
|
// Application buttons
|
||||||
.btn-app {
|
.btn-app {
|
||||||
@include border-radius(3px);
|
@include border-radius(3px);
|
||||||
position: relative;
|
background-color: $button-default-background-color;
|
||||||
padding: 15px 5px;
|
border: 1px solid $button-default-border-color;
|
||||||
|
color: $gray-600;
|
||||||
|
font-size: 12px;
|
||||||
|
height: 60px;
|
||||||
margin: 0 0 10px 10px;
|
margin: 0 0 10px 10px;
|
||||||
min-width: 80px;
|
min-width: 80px;
|
||||||
height: 60px;
|
padding: 15px 5px;
|
||||||
|
position: relative;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
color: #666;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
background-color: #f4f4f4;
|
|
||||||
font-size: 12px;
|
|
||||||
// Icons within the btn
|
// Icons within the btn
|
||||||
> .fa,
|
> .fa,
|
||||||
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
> .glyphicon,
|
> .glyphicon,
|
||||||
> .ion {
|
> .ion {
|
||||||
font-size: 20px;
|
|
||||||
display: block;
|
display: block;
|
||||||
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: #f4f4f4;
|
background: $button-default-background-color;
|
||||||
color: #444;
|
border-color: darken($button-default-border-color, 20%);
|
||||||
border-color: #aaa;
|
color: $button-default-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active,
|
&:active,
|
||||||
&:focus {
|
&:focus {
|
||||||
@include box-shadow(inset 0 3px 5px rgba(0, 0, 0, 0.125));
|
@include box-shadow(inset 0 3px 5px rgba($black, 0.125));
|
||||||
}
|
}
|
||||||
|
|
||||||
// The badge
|
// The badge
|
||||||
> .badge {
|
> .badge {
|
||||||
position: absolute;
|
|
||||||
top: -3px;
|
|
||||||
right: -10px;
|
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
position: absolute;
|
||||||
|
right: -10px;
|
||||||
|
top: -3px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Extra Button Size
|
||||||
|
|
||||||
|
.btn-xs {
|
||||||
|
@include button-size($button-padding-y-xs, $button-padding-x-xs, $button-font-size-xs, $button-line-height-xs, $button-border-radius-xs);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
/*
|
//
|
||||||
* Component: Callout
|
// Component: Callout
|
||||||
* ------------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
// Base styles (regardless of theme)
|
// Base styles (regardless of theme)
|
||||||
.callout {
|
.callout {
|
||||||
@@ -10,21 +9,22 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
@if $enable-shadows {
|
@if $enable-shadows {
|
||||||
@extend .elevation-1;
|
box-shadow: map-get($elevations, 1);
|
||||||
} @else {
|
} @else {
|
||||||
border: 1px solid $gray-300;
|
border: 1px solid $gray-300;
|
||||||
}
|
}
|
||||||
|
|
||||||
@extend .mb-3;
|
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
padding: .5rem 1rem .5rem .5rem;
|
border-left: 5px solid $gray-200;
|
||||||
border-left: 5px solid #eee;
|
margin-bottom: map-get($spacers, 3);
|
||||||
|
padding: 1rem;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: $white;
|
color: $gray-700;
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: #eee;
|
color: $gray-200;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,15 +34,18 @@
|
|||||||
|
|
||||||
// Themes for different contexts
|
// Themes for different contexts
|
||||||
&.callout-danger {
|
&.callout-danger {
|
||||||
border-left-color: darken(theme-color("danger"), 10%);
|
border-left-color: darken(theme-color('danger'), 10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.callout-warning {
|
&.callout-warning {
|
||||||
border-left-color: darken(theme-color("warning"), 10%);
|
border-left-color: darken(theme-color('warning'), 10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.callout-info {
|
&.callout-info {
|
||||||
border-left-color: darken(theme-color("info"), 10%);
|
border-left-color: darken(theme-color('info'), 10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&.callout-success {
|
&.callout-success {
|
||||||
border-left-color: darken(theme-color("success"), 10%);
|
border-left-color: darken(theme-color('success'), 10%);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,55 @@
|
|||||||
/*
|
//
|
||||||
* Component: Box
|
// Component: Cards
|
||||||
* --------------
|
//
|
||||||
*/
|
|
||||||
|
// Color variants
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include cards-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include cards-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
@extend .mb-3;
|
|
||||||
@include box-shadow($card-shadow);
|
@include box-shadow($card-shadow);
|
||||||
|
margin-bottom: map-get($spacers, 3);
|
||||||
|
|
||||||
&.bg-dark {
|
&.bg-dark {
|
||||||
|
.card-header {
|
||||||
|
border-color: $card-dark-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
&,
|
&,
|
||||||
.card-body {
|
.card-body {
|
||||||
color: $white;
|
color: $white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.maximized-card {
|
||||||
|
height: 100% !important;
|
||||||
|
left: 0;
|
||||||
|
max-height: 100% !important;
|
||||||
|
max-width: 100% !important;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
width: 100% !important;
|
||||||
|
z-index: 9999;
|
||||||
|
|
||||||
|
&.was-collapsed .card-body {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-widget='collapse'] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-header,
|
||||||
|
.card-footer {
|
||||||
|
@include border-radius(0 !important);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// collapsed mode
|
// collapsed mode
|
||||||
&.collapsed-card {
|
&.collapsed-card {
|
||||||
.card-body,
|
.card-body,
|
||||||
@@ -26,8 +62,9 @@
|
|||||||
> li {
|
> li {
|
||||||
border-bottom: 1px solid $card-border-color;
|
border-bottom: 1px solid $card-border-color;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
&:last-of-type {
|
&:last-of-type {
|
||||||
border-bottom: none;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -47,84 +84,178 @@
|
|||||||
.border-left {
|
.border-left {
|
||||||
border-left: 1px solid $card-border-color;
|
border-left: 1px solid $card-border-color;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.card,
|
&.card-tabs {
|
||||||
.overlay-wrapper {
|
&:not(.card-outline) {
|
||||||
// Box overlay for LOADING STATE effect
|
& > .card-header {
|
||||||
> .overlay,
|
border-bottom: 0;
|
||||||
> .loading-img {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.overlay {
|
.nav-item {
|
||||||
z-index: 50;
|
&:first-child .nav-link {
|
||||||
background: rgba(255, 255, 255, 0.7);
|
margin-left: -1px;
|
||||||
@include border-radius($border-radius);
|
}
|
||||||
> .fa {
|
}
|
||||||
position: absolute;
|
}
|
||||||
top: 50%;
|
}
|
||||||
left: 50%;
|
|
||||||
margin-left: -15px;
|
&.card-outline {
|
||||||
margin-top: -15px;
|
.nav-item {
|
||||||
color: #000;
|
border-bottom: 0;
|
||||||
font-size: 30px;
|
|
||||||
|
&:first-child .nav-link {
|
||||||
|
border-left: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-tools {
|
||||||
|
margin: .3rem .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.expanding-card).collapsed-card {
|
||||||
|
.card-header {
|
||||||
|
border-bottom: 0;
|
||||||
|
|
||||||
|
.nav-tabs {
|
||||||
|
border-bottom: 0;
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.expanding-card {
|
||||||
|
.card-header {
|
||||||
|
.nav-tabs {
|
||||||
|
.nav-item {
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay.dark {
|
&.card-outline-tabs {
|
||||||
background: rgba(0, 0, 0, 0.5);
|
border-top: 0;
|
||||||
|
|
||||||
|
.card-header {
|
||||||
|
.nav-item {
|
||||||
|
&:first-child .nav-link {
|
||||||
|
border-left: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
border-top: 3px solid transparent;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
border-top: 3px solid $nav-tabs-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
&:hover {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-tools {
|
||||||
|
margin: .5rem .5rem .3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(.expanding-card).collapsed-card .card-header {
|
||||||
|
border-bottom: 0;
|
||||||
|
|
||||||
|
.nav-tabs {
|
||||||
|
border-bottom: 0;
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.expanding-card {
|
||||||
|
.card-header {
|
||||||
|
.nav-tabs {
|
||||||
|
.nav-item {
|
||||||
|
margin-bottom: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maximized Card Body Scroll fix
|
||||||
|
html.maximized-card {
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add clearfix to header, body and footer
|
// Add clearfix to header, body and footer
|
||||||
.card-header,
|
.card-header,
|
||||||
.card-body,
|
.card-body,
|
||||||
.card-footer {
|
.card-footer {
|
||||||
@include clearfix();
|
@include clearfix;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Box header
|
// Box header
|
||||||
.card-header {
|
.card-header {
|
||||||
position: relative;
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border-bottom: 1px solid $card-border-color;
|
border-bottom: 1px solid $card-border-color;
|
||||||
|
padding: (($card-spacer-y / 2) * 2) $card-spacer-x;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
@if $enable-rounded {
|
@if $enable-rounded {
|
||||||
@include border-top-radius($border-radius);
|
@include border-top-radius($border-radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
.collapsed-card & {
|
.collapsed-card & {
|
||||||
border-bottom: none;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
> .card-tools {
|
> .card-tools {
|
||||||
position: absolute;
|
float: right;
|
||||||
right: 1rem;
|
margin-right: -$card-spacer-x / 2;
|
||||||
top: .5rem;
|
|
||||||
|
|
||||||
[data-toggle="tooltip"] {
|
.input-group,
|
||||||
|
.nav,
|
||||||
|
.pagination {
|
||||||
|
margin-bottom: -$card-spacer-y / 2.5;
|
||||||
|
margin-top: -$card-spacer-y / 2.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
[data-toggle='tooltip'] {
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-title {
|
.card-title {
|
||||||
|
float: left;
|
||||||
font-size: $card-title-font-size;
|
font-size: $card-title-font-size;
|
||||||
font-weight: $card-title-font-weight;
|
font-weight: $card-title-font-weight;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card-text {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Box Tools Buttons
|
// Box Tools Buttons
|
||||||
.btn-tool {
|
.btn-tool {
|
||||||
padding: .25rem .5rem;
|
|
||||||
font-size: $font-size-sm;
|
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: $gray-500;
|
color: $gray-500;
|
||||||
|
font-size: $font-size-sm;
|
||||||
|
margin: -(($card-spacer-y / 2) * 2) 0;
|
||||||
|
padding: .25rem .5rem;
|
||||||
|
|
||||||
.btn-group.show &,
|
.btn-group.show &,
|
||||||
&:hover {
|
&:hover {
|
||||||
@@ -137,15 +268,27 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-sm {
|
||||||
|
.card-title {
|
||||||
|
font-size: $card-title-font-size-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
padding: $card-nav-link-padding-sm-y $card-nav-link-padding-sm-x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Box Body
|
// Box Body
|
||||||
.card-body {
|
.card-body {
|
||||||
// @include border-radius-sides(0, 0, $border-radius, $border-radius);
|
// @include border-radius-sides(0, 0, $border-radius, $border-radius);
|
||||||
.no-header & {
|
// .no-header & {
|
||||||
// @include border-top-radius($border-radius);
|
// @include border-top-radius($border-radius);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// Tables within the box body
|
// Tables within the box body
|
||||||
> .table {
|
> .table {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|
||||||
> thead > tr > th,
|
> thead > tr > th,
|
||||||
> thead > tr > td {
|
> thead > tr > td {
|
||||||
border-top-width: 0;
|
border-top-width: 0;
|
||||||
@@ -167,8 +310,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.chart-legend {
|
.chart-legend {
|
||||||
@extend .list-unstyled;
|
@include list-unstyled;
|
||||||
margin: 10px 0;
|
margin: 10px 0;
|
||||||
|
|
||||||
> li {
|
> li {
|
||||||
@media (max-width: map-get($grid-breakpoints, sm)) {
|
@media (max-width: map-get($grid-breakpoints, sm)) {
|
||||||
float: left;
|
float: left;
|
||||||
@@ -179,34 +323,42 @@
|
|||||||
|
|
||||||
// Comment Box
|
// Comment Box
|
||||||
.card-comments {
|
.card-comments {
|
||||||
background: #f7f7f7;
|
background: $gray-100;
|
||||||
|
|
||||||
.card-comment {
|
.card-comment {
|
||||||
@include clearfix();
|
@include clearfix;
|
||||||
|
border-bottom: 1px solid $gray-200;
|
||||||
padding: 8px 0;
|
padding: 8px 0;
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
&:last-of-type {
|
&:last-of-type {
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:first-of-type {
|
&:first-of-type {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
@extend .img-sm;
|
height: $card-img-size;
|
||||||
|
width: $card-img-size;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.comment-text {
|
.comment-text {
|
||||||
|
color: lighten($gray-700, 20%);
|
||||||
margin-left: 40px;
|
margin-left: 40px;
|
||||||
color: #555;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.username {
|
.username {
|
||||||
color: #444;
|
color: $gray-700;
|
||||||
display: block;
|
display: block;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-muted {
|
.text-muted {
|
||||||
font-weight: 400;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,18 +367,20 @@
|
|||||||
|
|
||||||
// Widget: TODO LIST
|
// Widget: TODO LIST
|
||||||
.todo-list {
|
.todo-list {
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
// Todo list element
|
// Todo list element
|
||||||
> li {
|
> li {
|
||||||
@include border-radius(2px);
|
@include border-radius(2px);
|
||||||
padding: 10px;
|
background: $gray-100;
|
||||||
background: #f4f4f4;
|
border-left: 2px solid $gray-200;
|
||||||
|
color: $gray-700;
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
border-left: 2px solid #e6e7e8;
|
padding: 10px;
|
||||||
color: #444;
|
|
||||||
&:last-of-type {
|
&:last-of-type {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
@@ -237,65 +391,68 @@
|
|||||||
|
|
||||||
.text {
|
.text {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-left: 5px;
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Time labels
|
// Time labels
|
||||||
.label {
|
.badge {
|
||||||
|
font-size: .7rem;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
font-size: 9px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tools and options box
|
// Tools and options box
|
||||||
.tools {
|
.tools {
|
||||||
|
color: theme-color('danger');
|
||||||
display: none;
|
display: none;
|
||||||
float: right;
|
float: right;
|
||||||
color: theme-color("danger");
|
|
||||||
// icons
|
|
||||||
> .fa, > .glyphicon, > .ion {
|
|
||||||
margin-right: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// icons
|
||||||
|
> .fa,
|
||||||
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
|
> .glyphicon,
|
||||||
|
> .ion {
|
||||||
|
cursor: pointer;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover .tools {
|
&:hover .tools {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.done {
|
&.done {
|
||||||
color: #999;
|
color: darken($gray-500, 25%);
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
text-decoration: line-through;
|
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
|
text-decoration: line-through;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label {
|
.badge {
|
||||||
background: $gray-500 !important;
|
background: $gray-500 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Color varaity
|
// Color variants
|
||||||
.danger {
|
@each $name, $color in $theme-colors {
|
||||||
border-left-color: theme-color("danger");
|
.#{$name} {
|
||||||
|
border-left-color: $color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.warning {
|
|
||||||
border-left-color: theme-color("warning");
|
@each $name, $color in $colors {
|
||||||
}
|
.#{$name} {
|
||||||
.info {
|
border-left-color: $color;
|
||||||
border-left-color: theme-color("info");
|
}
|
||||||
}
|
|
||||||
.success {
|
|
||||||
border-left-color: theme-color("success");
|
|
||||||
}
|
|
||||||
.primary {
|
|
||||||
border-left-color: theme-color("primary");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.handle {
|
.handle {
|
||||||
display: inline-block;
|
|
||||||
cursor: move;
|
cursor: move;
|
||||||
|
display: inline-block;
|
||||||
margin: 0 5px;
|
margin: 0 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -307,32 +464,11 @@
|
|||||||
max-width: 200px;
|
max-width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@each $name, $color in $theme-colors {
|
// Nav Tabs override
|
||||||
.card-#{$name} {
|
.card-default {
|
||||||
&:not(.card-outline) {
|
.nav-item {
|
||||||
.card-header {
|
&:first-child .nav-link {
|
||||||
background-color: $color;
|
border-left: 0;
|
||||||
border-bottom: 0;
|
|
||||||
&,
|
|
||||||
a {
|
|
||||||
color: color-yiq($color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.card-outline {
|
|
||||||
border-top: 3px solid $color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-#{$name},
|
|
||||||
.bg-#{$name}-gradient,
|
|
||||||
.card-#{$name}:not(.card-outline) {
|
|
||||||
.btn-tool {
|
|
||||||
color: rgba(color-yiq($color), 0.8);
|
|
||||||
&:hover {
|
|
||||||
color: color-yiq($color);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,18 +1,24 @@
|
|||||||
/*
|
//
|
||||||
* Component: Carousel
|
// Component: Carousel
|
||||||
* -------------------
|
//
|
||||||
*/
|
|
||||||
.carousel-control {
|
.carousel-control {
|
||||||
&.left,
|
&.left,
|
||||||
&.right {
|
&.right {
|
||||||
background-image: none;
|
background-image: none;
|
||||||
}
|
}
|
||||||
> .fa {
|
|
||||||
|
> .fa,
|
||||||
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
|
> .glyphicon,
|
||||||
|
> .ion {
|
||||||
|
display: inline-block;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
|
margin-top: -20px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
display: inline-block;
|
|
||||||
margin-top: -20px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
91
build/scss/_colors.scss
Normal file
91
build/scss/_colors.scss
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
//
|
||||||
|
// Misc: Colors
|
||||||
|
//
|
||||||
|
|
||||||
|
// Background colors (theme colors)
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include background-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Background colors (colors)
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include background-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-gray {
|
||||||
|
background-color: $gray-500;
|
||||||
|
color: color-yiq($gray-500);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-gray-light {
|
||||||
|
background-color: lighten($gray-200, 3%);
|
||||||
|
color: color-yiq(lighten($gray-200, 3%)) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-black {
|
||||||
|
background-color: $black;
|
||||||
|
color: color-yiq($black) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-white {
|
||||||
|
background-color: $white;
|
||||||
|
color: color-yiq($white) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gradient Background colors (theme colors)
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include background-gradient-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gradient Background colors (colors)
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include background-gradient-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Backgrund Color Disabled
|
||||||
|
[class^='bg-'].disabled {
|
||||||
|
opacity: .65;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Text muted hover
|
||||||
|
a.text-muted:hover {
|
||||||
|
color: theme-color(primary) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Link Styles
|
||||||
|
.link-muted {
|
||||||
|
color: darken($gray-500, 30%);
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: darken($gray-500, 40%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.link-black {
|
||||||
|
color: $gray-600;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
color: lighten($gray-500, 20%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Accent colors (theme colors)
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include accent-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Accent colors (colors)
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include accent-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Accent button override fix
|
||||||
|
[class*="accent-"] {
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
a.btn-#{$name} {
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,51 +1,73 @@
|
|||||||
/*
|
//
|
||||||
* Component: Control sidebar. By default, this is the right sidebar.
|
// Component: Control Sidebar
|
||||||
*/
|
//
|
||||||
|
|
||||||
|
html.control-sidebar-animate {
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.control-sidebar {
|
.control-sidebar {
|
||||||
|
bottom: $main-footer-height;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: $main-header-height;
|
top: $main-header-height;
|
||||||
z-index: 830;
|
z-index: $zindex-control-sidebar;
|
||||||
|
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
width: $control-sidebar-width;
|
bottom: $main-footer-height;
|
||||||
|
display: none;
|
||||||
right: -$control-sidebar-width;
|
right: -$control-sidebar-width;
|
||||||
bottom: 0;
|
width: $control-sidebar-width;
|
||||||
@include transition(right $transition-speed $transition-fn);
|
@include transition(right $transition-speed $transition-fn, display $transition-speed $transition-fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:before {
|
&::before {
|
||||||
top: 0;
|
content: '';
|
||||||
display: block;
|
display: block;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
content: " ";
|
top: 0;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Control sidebar open state
|
body.text-sm {
|
||||||
.control-sidebar-open {
|
.control-sidebar {
|
||||||
@include media-breakpoint-up(md) {
|
bottom: $main-footer-height-sm;
|
||||||
.control-sidebar {
|
top: $main-header-height-sm;
|
||||||
&,
|
}
|
||||||
&:before {
|
}
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
.main-header.text-sm ~ .control-sidebar {
|
||||||
|
top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-footer.text-sm ~ .control-sidebar {
|
||||||
|
bottom: $main-footer-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-sidebar-push-slide {
|
||||||
.content-wrapper,
|
.content-wrapper,
|
||||||
.main-footer {
|
.main-footer {
|
||||||
margin-right: $control-sidebar-width;
|
@include transition(margin-right $transition-speed $transition-fn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include media-breakpoint-down(md) {
|
// Control sidebar open state
|
||||||
.control-sidebar {
|
.control-sidebar-open {
|
||||||
&,
|
.control-sidebar {
|
||||||
&:before {
|
display: block;
|
||||||
right: 0;
|
|
||||||
}
|
&,
|
||||||
|
&::before {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.control-sidebar-push,
|
||||||
|
&.control-sidebar-push-slide {
|
||||||
|
.content-wrapper,
|
||||||
|
.main-footer {
|
||||||
|
margin-right: $control-sidebar-width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -53,9 +75,20 @@
|
|||||||
// Control sidebar slide over content state
|
// Control sidebar slide over content state
|
||||||
.control-sidebar-slide-open {
|
.control-sidebar-slide-open {
|
||||||
.control-sidebar {
|
.control-sidebar {
|
||||||
|
display: block;
|
||||||
|
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
right: 0;
|
right: 0;
|
||||||
|
@include transition(right $transition-speed $transition-fn, display $transition-speed $transition-fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.control-sidebar-push,
|
||||||
|
&.control-sidebar-push-slide {
|
||||||
|
.content-wrapper,
|
||||||
|
.main-footer {
|
||||||
|
margin-right: $control-sidebar-width;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,8 +102,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Background
|
// Background
|
||||||
&,
|
& {
|
||||||
&:before {
|
|
||||||
background: $sidebar-dark-bg;
|
background: $sidebar-dark-bg;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,8 +123,8 @@
|
|||||||
|
|
||||||
// Tabs
|
// Tabs
|
||||||
.nav-tabs {
|
.nav-tabs {
|
||||||
border-bottom: 0;
|
|
||||||
background-color: $sidebar-dark-hover-bg;
|
background-color: $sidebar-dark-hover-bg;
|
||||||
|
border-bottom: 0;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
|
|
||||||
.nav-item {
|
.nav-item {
|
||||||
@@ -100,10 +132,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.nav-link {
|
.nav-link {
|
||||||
position: relative;
|
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
text-align: center;
|
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
&,
|
&,
|
||||||
&:hover,
|
&:hover,
|
||||||
@@ -117,8 +149,8 @@
|
|||||||
&:active,
|
&:active,
|
||||||
&:focus,
|
&:focus,
|
||||||
&.active {
|
&.active {
|
||||||
border-left-color: transparent;
|
|
||||||
border-bottom-color: transparent;
|
border-bottom-color: transparent;
|
||||||
|
border-left-color: transparent;
|
||||||
border-top-color: transparent;
|
border-top-color: transparent;
|
||||||
color: $sidebar-dark-hover-color;
|
color: $sidebar-dark-hover-color;
|
||||||
}
|
}
|
||||||
@@ -139,9 +171,8 @@
|
|||||||
color: lighten($sidebar-light-color, 10%);
|
color: lighten($sidebar-light-color, 10%);
|
||||||
|
|
||||||
// Background
|
// Background
|
||||||
&,
|
& {
|
||||||
&:before {
|
|
||||||
background: $sidebar-light-bg;
|
background: $sidebar-light-bg;
|
||||||
border-left: 1px solid $gray-500;
|
border-left: $main-header-bottom-border;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,25 +1,39 @@
|
|||||||
/*
|
//
|
||||||
* Component: Direct Chat
|
// Component: Direct Chat
|
||||||
* ----------------------
|
//
|
||||||
*/
|
|
||||||
.direct-chat {
|
.direct-chat {
|
||||||
.card-body {
|
.card-body {
|
||||||
position: relative;
|
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.chat-pane-open {
|
&.chat-pane-open {
|
||||||
.direct-chat-contacts {
|
.direct-chat-contacts {
|
||||||
@include translate(0, 0);
|
@include translate(0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
&.timestamp-light {
|
||||||
|
.direct-chat-timestamp {
|
||||||
|
color: lighten(color-yiq($yiq-text-light), 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.timestamp-dark {
|
||||||
|
.direct-chat-timestamp {
|
||||||
|
color: darken(color-yiq($yiq-text-dark), 20%);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-messages {
|
.direct-chat-messages {
|
||||||
@include translate(0, 0);
|
@include translate(0, 0);
|
||||||
padding: 10px;
|
|
||||||
height: 250px;
|
height: 250px;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-msg,
|
.direct-chat-msg,
|
||||||
@@ -28,7 +42,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-msg {
|
.direct-chat-msg {
|
||||||
@include clearfix();
|
@include clearfix;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,44 +56,47 @@
|
|||||||
@include border-radius($border-radius-lg);
|
@include border-radius($border-radius-lg);
|
||||||
}
|
}
|
||||||
|
|
||||||
position: relative;
|
|
||||||
padding: 5px 10px;
|
|
||||||
background: $direct-chat-default-msg-bg;
|
background: $direct-chat-default-msg-bg;
|
||||||
border: 1px solid $direct-chat-default-msg-border-color;
|
border: 1px solid $direct-chat-default-msg-border-color;
|
||||||
margin: 5px 0 0 50px;
|
|
||||||
color: $direct-chat-default-font-color;
|
color: $direct-chat-default-font-color;
|
||||||
|
margin: 5px 0 0 50px;
|
||||||
|
padding: 5px 10px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
//Create the arrow
|
//Create the arrow
|
||||||
&:after,
|
&::after,
|
||||||
&:before {
|
&::before {
|
||||||
position: absolute;
|
|
||||||
right: 100%;
|
|
||||||
top: 15px;
|
|
||||||
border: solid transparent;
|
border: solid transparent;
|
||||||
border-right-color: $direct-chat-default-msg-border-color;
|
border-right-color: $direct-chat-default-msg-border-color;
|
||||||
content: ' ';
|
content: ' ';
|
||||||
height: 0;
|
height: 0;
|
||||||
width: 0;
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
right: 100%;
|
||||||
|
top: 15px;
|
||||||
|
width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&::after {
|
||||||
border-width: 5px;
|
border-width: 5px;
|
||||||
margin-top: -5px;
|
margin-top: -5px;
|
||||||
}
|
}
|
||||||
&:before {
|
|
||||||
|
&::before {
|
||||||
border-width: 6px;
|
border-width: 6px;
|
||||||
margin-top: -6px;
|
margin-top: -6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right & {
|
.right & {
|
||||||
margin-right: 50px;
|
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
&:after,
|
margin-right: 50px;
|
||||||
&:before {
|
|
||||||
right: auto;
|
&::after,
|
||||||
left: 100%;
|
&::before {
|
||||||
border-right-color: transparent;
|
|
||||||
border-left-color: $direct-chat-default-msg-border-color;
|
border-left-color: $direct-chat-default-msg-border-color;
|
||||||
|
border-right-color: transparent;
|
||||||
|
left: 100%;
|
||||||
|
right: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -87,17 +104,18 @@
|
|||||||
.direct-chat-img {
|
.direct-chat-img {
|
||||||
@include border-radius(50%);
|
@include border-radius(50%);
|
||||||
float: left;
|
float: left;
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
height: 40px;
|
||||||
|
width: 40px;
|
||||||
|
|
||||||
.right & {
|
.right & {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-info {
|
.direct-chat-infos {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 2px;
|
|
||||||
font-size: $font-size-sm;
|
font-size: $font-size-sm;
|
||||||
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-name {
|
.direct-chat-name {
|
||||||
@@ -105,7 +123,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-timestamp {
|
.direct-chat-timestamp {
|
||||||
color: #999;
|
color: darken($gray-500, 25%);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Direct chat contacts pane
|
//Direct chat contacts pane
|
||||||
@@ -117,39 +135,57 @@
|
|||||||
|
|
||||||
.direct-chat-contacts {
|
.direct-chat-contacts {
|
||||||
@include translate(101%, 0);
|
@include translate(101%, 0);
|
||||||
|
background: $dark;
|
||||||
|
bottom: 0;
|
||||||
|
color: $white;
|
||||||
|
height: 250px;
|
||||||
|
overflow: auto;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
bottom: 0;
|
|
||||||
height: 250px;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
background: #222d32;
|
}
|
||||||
color: $white;
|
|
||||||
overflow: auto;
|
.direct-chat-contacts-light {
|
||||||
|
background: $light;
|
||||||
|
|
||||||
|
.contacts-list-name {
|
||||||
|
color: $gray-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contacts-list-date {
|
||||||
|
color: $gray-600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contacts-list-msg {
|
||||||
|
color: darken($gray-600, 10%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Contacts list -- for displaying contacts in direct chat contacts pane
|
//Contacts list -- for displaying contacts in direct chat contacts pane
|
||||||
.contacts-list {
|
.contacts-list {
|
||||||
@extend .list-unstyled;
|
@include list-unstyled;
|
||||||
|
|
||||||
> li {
|
> li {
|
||||||
@include clearfix();
|
@include clearfix;
|
||||||
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
|
border-bottom: 1px solid rgba($black, 0.2);
|
||||||
padding: 10px;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
&:last-of-type {
|
&:last-of-type {
|
||||||
border-bottom: none;
|
border-bottom: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.contacts-list-img {
|
.contacts-list-img {
|
||||||
@include border-radius(50%);
|
@include border-radius(50%);
|
||||||
width: 40px;
|
|
||||||
float: left;
|
float: left;
|
||||||
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contacts-list-info {
|
.contacts-list-info {
|
||||||
margin-left: 45px;
|
|
||||||
color: $white;
|
color: $white;
|
||||||
|
margin-left: 45px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contacts-list-name,
|
.contacts-list-name,
|
||||||
@@ -166,31 +202,23 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.contacts-list-date {
|
.contacts-list-date {
|
||||||
color: #aaa;
|
color: $gray-400;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
.contacts-list-msg {
|
.contacts-list-msg {
|
||||||
color: #999;
|
color: darken($gray-400, 10%);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Direct Chat Variants
|
// Color variants
|
||||||
.direct-chat-danger {
|
@each $name, $color in $theme-colors {
|
||||||
@include direct-chat-variant(theme-color("danger"));
|
.direct-chat-#{$name} {
|
||||||
|
@include direct-chat-variant($color);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.direct-chat-primary {
|
@each $name, $color in $colors {
|
||||||
@include direct-chat-variant(theme-color("primary"));
|
.direct-chat-#{$name} {
|
||||||
}
|
@include direct-chat-variant($color);
|
||||||
|
}
|
||||||
.direct-chat-warning {
|
|
||||||
@include direct-chat-variant(theme-color("warning"));
|
|
||||||
}
|
|
||||||
|
|
||||||
.direct-chat-info {
|
|
||||||
@include direct-chat-variant(theme-color("info"));
|
|
||||||
}
|
|
||||||
|
|
||||||
.direct-chat-success {
|
|
||||||
@include direct-chat-variant(theme-color("success"));
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
/*
|
//
|
||||||
* Component: Dropdown menus
|
// Component: Dropdown
|
||||||
* -------------------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
// General Dropdown Rules
|
// General Dropdown Rules
|
||||||
//.dropdown-item {
|
//.dropdown-item {
|
||||||
@@ -13,42 +12,114 @@
|
|||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
||||||
|
.text-sm {
|
||||||
|
.dropdown-menu {
|
||||||
|
font-size: $font-size-sm !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-toggle::after {
|
||||||
|
vertical-align: .2rem
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.dropdown-item-title {
|
.dropdown-item-title {
|
||||||
font-size: $font-size-base;
|
font-size: $font-size-base;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dropdown-icon {
|
||||||
|
&::after {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Dropdown Sizes
|
// Dropdown Sizes
|
||||||
.dropdown-menu-lg {
|
.dropdown-menu-lg {
|
||||||
min-width: 280px;
|
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
|
min-width: 280px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
.dropdown-divider {
|
.dropdown-divider {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-item {
|
.dropdown-item {
|
||||||
padding: $dropdown-padding-y $dropdown-item-padding-x;
|
padding: $dropdown-padding-y $dropdown-item-padding-x;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
white-space: normal;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dropdown Submenu
|
||||||
|
.dropdown-submenu {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
& > a:after {
|
||||||
|
@include caret-right;
|
||||||
|
float: right;
|
||||||
|
margin-left: .5rem;
|
||||||
|
margin-top: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > .dropdown-menu {
|
||||||
|
left: 100%;
|
||||||
|
margin-left: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dropdown Hover
|
||||||
|
.dropdown-hover {
|
||||||
|
&:hover,
|
||||||
|
&.nav-item.dropdown:hover,
|
||||||
|
.dropdown-submenu:hover,
|
||||||
|
&.dropdown-submenu:hover {
|
||||||
|
> .dropdown-menu {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Dropdown Sizes
|
||||||
|
.dropdown-menu-xl {
|
||||||
|
max-width: 420px;
|
||||||
|
min-width: 360px;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.dropdown-divider {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item {
|
||||||
|
padding: $dropdown-padding-y $dropdown-item-padding-x;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0;
|
||||||
|
white-space: normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Dropdown header and footer
|
// Dropdown header and footer
|
||||||
.dropdown-footer,
|
.dropdown-footer,
|
||||||
.dropdown-header {
|
.dropdown-header {
|
||||||
text-align: center;
|
|
||||||
display: block;
|
display: block;
|
||||||
padding: .5rem $dropdown-item-padding-x;
|
|
||||||
font-size: $font-size-sm;
|
font-size: $font-size-sm;
|
||||||
|
padding: .5rem $dropdown-item-padding-x;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add fade animation to dropdown menus by appending
|
// Add fade animation to dropdown menus by appending
|
||||||
the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)*/
|
// the class .animated-dropdown-menu to the .dropdown-menu ul (or ol)
|
||||||
.open:not(.dropup) > .animated-dropdown-menu {
|
.open:not(.dropup) > .animated-dropdown-menu {
|
||||||
backface-visibility: visible !important;
|
|
||||||
@include animation(flipInX .7s both);
|
@include animation(flipInX .7s both);
|
||||||
|
backface-visibility: visible !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes flipInX {
|
@keyframes flipInX {
|
||||||
@@ -77,33 +148,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes flipInX {
|
// Fix dropdown menu in navbars
|
||||||
0% {
|
|
||||||
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
|
|
||||||
-webkit-transition-timing-function: ease-in;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
40% {
|
|
||||||
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
|
|
||||||
-webkit-transition-timing-function: ease-in;
|
|
||||||
}
|
|
||||||
|
|
||||||
60% {
|
|
||||||
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
80% {
|
|
||||||
-webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
-webkit-transform: perspective(400px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fix dropdown menu in navbars */
|
|
||||||
.navbar-custom-menu > .navbar-nav {
|
.navbar-custom-menu > .navbar-nav {
|
||||||
> li {
|
> li {
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -130,3 +175,98 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// User Menu
|
||||||
|
.navbar-nav > .user-menu {
|
||||||
|
> .nav-link:after {
|
||||||
|
content:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .dropdown-menu {
|
||||||
|
@include border-top-radius(0);
|
||||||
|
padding: 0;
|
||||||
|
width: 280px;
|
||||||
|
|
||||||
|
&,
|
||||||
|
> .user-body {
|
||||||
|
@include border-bottom-radius(4px);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Header menu
|
||||||
|
> li.user-header {
|
||||||
|
height: 175px;
|
||||||
|
padding: 10px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
// User image
|
||||||
|
> img {
|
||||||
|
z-index: 5;
|
||||||
|
height: 90px;
|
||||||
|
width: 90px;
|
||||||
|
border: 3px solid;
|
||||||
|
border-color: transparent;
|
||||||
|
border-color: rgba(255, 255, 255, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
> p {
|
||||||
|
z-index: 5;
|
||||||
|
font-size: 17px;
|
||||||
|
//text-shadow: 2px 2px 3px #333333;
|
||||||
|
margin-top: 10px;
|
||||||
|
|
||||||
|
> small {
|
||||||
|
display: block;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menu Body
|
||||||
|
> .user-body {
|
||||||
|
@include clearfix;
|
||||||
|
border-bottom: 1px solid $gray-700;
|
||||||
|
border-top: 1px solid $gray-300;
|
||||||
|
padding: 15px;
|
||||||
|
|
||||||
|
a {
|
||||||
|
@include media-breakpoint-up(sm) {
|
||||||
|
background: $white !important;
|
||||||
|
color: $gray-700 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Menu Footer
|
||||||
|
> .user-footer {
|
||||||
|
@include clearfix;
|
||||||
|
background-color: $gray-100;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
.btn-default {
|
||||||
|
color: $gray-600;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@include media-breakpoint-up(sm) {
|
||||||
|
background-color: $gray-100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-image {
|
||||||
|
@include media-breakpoint-up(sm) {
|
||||||
|
float: none;
|
||||||
|
line-height: 10px;
|
||||||
|
margin-right: .4rem;
|
||||||
|
margin-top: -8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
border-radius: 50%;
|
||||||
|
float: left;
|
||||||
|
height: $sidebar-user-image-width;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-top: -2px;
|
||||||
|
width: $sidebar-user-image-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
|
//
|
||||||
|
// Component: Elevation
|
||||||
|
//
|
||||||
|
|
||||||
.elevation-0 {
|
.elevation-0 {
|
||||||
box-shadow: none;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.elevation-1 {
|
// Background colors (colors)
|
||||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
@each $name, $value in $elevations {
|
||||||
}
|
.elevation-#{$name} {
|
||||||
|
box-shadow: $value !important;
|
||||||
.elevation-2 {
|
}
|
||||||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
|
|
||||||
}
|
|
||||||
|
|
||||||
.elevation-3 {
|
|
||||||
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
|
|
||||||
}
|
|
||||||
|
|
||||||
.elevation-4 {
|
|
||||||
box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
|
|
||||||
}
|
|
||||||
|
|
||||||
.elevation-5 {
|
|
||||||
box-shadow: 0 19px 38px rgba(0, 0, 0, 0.30), 0 15px 12px rgba(0, 0, 0, 0.22);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,53 +1,277 @@
|
|||||||
/*
|
//
|
||||||
* Component: Form
|
// Component: Forms
|
||||||
* ---------------
|
//
|
||||||
*/
|
|
||||||
.form-group {
|
.form-group {
|
||||||
&.has-icon {
|
&.has-icon {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.form-control {
|
.form-control {
|
||||||
padding-right: 35px;
|
padding-right: 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-icon {
|
.form-icon {
|
||||||
|
background-color: transparent;
|
||||||
|
border: 0;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
font-size: 1rem;
|
||||||
|
// margin-top: -3px;
|
||||||
|
padding: $input-btn-padding-y $input-btn-padding-x;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 3px;
|
right: 3px;
|
||||||
top: 0;
|
top: 0;
|
||||||
padding: $input-btn-padding-y $input-btn-padding-x;
|
|
||||||
// margin-top: -3px;
|
|
||||||
border: 0;
|
|
||||||
background-color: transparent;
|
|
||||||
font-size: 1rem;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* button groups */
|
// Button groups
|
||||||
.btn-group-vertical {
|
.btn-group-vertical {
|
||||||
.btn {
|
.btn {
|
||||||
&.btn-flat:first-of-type, &.btn-flat:last-of-type {
|
&.btn-flat:first-of-type,
|
||||||
|
&.btn-flat:last-of-type {
|
||||||
@include border-radius(0);
|
@include border-radius(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Support Font Awesome icons in form-control */
|
// Support icons in form-control
|
||||||
.form-control-feedback.fa {
|
.form-control-feedback {
|
||||||
line-height: $input-height;
|
&.fa,
|
||||||
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
line-height: $input-height;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-lg + .form-control-feedback.fa,
|
.input-lg + .form-control-feedback,
|
||||||
.input-group-lg + .form-control-feedback.fa,
|
.input-group-lg + .form-control-feedback {
|
||||||
.form-group-lg .form-control + .form-control-feedback.fa {
|
&.fa,
|
||||||
line-height: $input-height-lg;
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
line-height: $input-height-lg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-sm + .form-control-feedback.fa,
|
.form-group-lg {
|
||||||
.input-group-sm + .form-control-feedback.fa,
|
.form-control + .form-control-feedback {
|
||||||
.form-group-sm .form-control + .form-control-feedback.fa {
|
&.fa,
|
||||||
line-height: $input-height-sm;
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
line-height: $input-height-lg;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
label:not(.form-check-label, .custom-file-label) {
|
.input-sm + .form-control-feedback,
|
||||||
|
.input-group-sm + .form-control-feedback {
|
||||||
|
&.fa,
|
||||||
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
line-height: $input-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-group-sm {
|
||||||
|
.form-control + .form-control-feedback {
|
||||||
|
&.fa,
|
||||||
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
line-height: $input-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
label:not(.form-check-label):not(.custom-file-label) {
|
||||||
font-weight: $font-weight-bold;
|
font-weight: $font-weight-bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.warning-feedback {
|
||||||
|
@include font-size($form-feedback-font-size);
|
||||||
|
color: theme-color('warning');
|
||||||
|
display: none;
|
||||||
|
margin-top: $form-feedback-margin-top;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warning-tooltip {
|
||||||
|
@include border-radius($form-feedback-tooltip-border-radius);
|
||||||
|
@include font-size($form-feedback-tooltip-font-size);
|
||||||
|
background-color: rgba(theme-color('warning'), $form-feedback-tooltip-opacity);
|
||||||
|
color: color-yiq(theme-color('warning'));
|
||||||
|
display: none;
|
||||||
|
line-height: $form-feedback-tooltip-line-height;
|
||||||
|
margin-top: .1rem;
|
||||||
|
max-width: 100%; // Contain to parent when possible
|
||||||
|
padding: $form-feedback-tooltip-padding-y $form-feedback-tooltip-padding-x;
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
z-index: 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control {
|
||||||
|
&.is-warning {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
|
||||||
|
@if $enable-validation-icons {
|
||||||
|
// padding-right: $input-height-inner;
|
||||||
|
// background-image: none;
|
||||||
|
// background-repeat: no-repeat;
|
||||||
|
// background-position: center right $input-height-inner-quarter;
|
||||||
|
// background-size: $input-height-inner-half $input-height-inner-half;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
~ .warning-feedback,
|
||||||
|
~ .warning-tooltip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// stylelint-disable-next-line selector-no-qualifying-type
|
||||||
|
textarea.form-control {
|
||||||
|
&.is-warning {
|
||||||
|
@if $enable-validation-icons {
|
||||||
|
padding-right: $input-height-inner;
|
||||||
|
background-position: top $input-height-inner-quarter right $input-height-inner-quarter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-select {
|
||||||
|
&.is-warning {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
|
||||||
|
@if $enable-validation-icons {
|
||||||
|
// padding-right: $custom-select-feedback-icon-padding-right;
|
||||||
|
// background: $custom-select-background, none $custom-select-bg no-repeat $custom-select-feedback-icon-position / $custom-select-feedback-icon-size;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
~ .warning-feedback,
|
||||||
|
~ .warning-tooltip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.form-control-file {
|
||||||
|
&.is-warning {
|
||||||
|
~ .warning-feedback,
|
||||||
|
~ .warning-tooltip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-check-input {
|
||||||
|
&.is-warning {
|
||||||
|
~ .form-check-label {
|
||||||
|
color: theme-color('warning');
|
||||||
|
}
|
||||||
|
|
||||||
|
~ .warning-feedback,
|
||||||
|
~ .warning-tooltip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-control-input.is-warning {
|
||||||
|
~ .custom-control-label {
|
||||||
|
color: theme-color('warning');
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
~ .warning-feedback,
|
||||||
|
~ .warning-tooltip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:checked {
|
||||||
|
~ .custom-control-label::before {
|
||||||
|
@include gradient-bg(lighten(theme-color('warning'), 10%));
|
||||||
|
border-color: lighten(theme-color('warning'), 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
~ .custom-control-label::before {
|
||||||
|
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:checked) ~ .custom-control-label::before {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// custom file
|
||||||
|
.custom-file-input {
|
||||||
|
&.is-warning {
|
||||||
|
~ .custom-file-label {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
}
|
||||||
|
|
||||||
|
~ .warning-feedback,
|
||||||
|
~ .warning-tooltip {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
~ .custom-file-label {
|
||||||
|
border-color: theme-color('warning');
|
||||||
|
box-shadow: 0 0 0 $input-focus-width rgba(theme-color('warning'), .25);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// custom switch color variations
|
||||||
|
.custom-switch {
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include custom-switch-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include custom-switch-variant($name, $color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// custom range color variations
|
||||||
|
.custom-range {
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include custom-range-variant($name, $color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include custom-range-variant($name, $color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
* Plugin: Full Calendar
|
|
||||||
* ---------------------
|
|
||||||
*/
|
|
||||||
//Fullcalendar buttons
|
|
||||||
.fc-button {
|
|
||||||
background: #f4f4f4;
|
|
||||||
background-image: none;
|
|
||||||
color: #444;
|
|
||||||
border-color: #ddd;
|
|
||||||
border-bottom-color: #ddd;
|
|
||||||
&:hover,
|
|
||||||
&:active,
|
|
||||||
&.hover {
|
|
||||||
background-color: #e9e9e9;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calendar title
|
|
||||||
.fc-header-title h2 {
|
|
||||||
font-size: 15px;
|
|
||||||
line-height: 1.6em;
|
|
||||||
color: #666;
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-right {
|
|
||||||
padding-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-header-left {
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calendar table header cells
|
|
||||||
.fc-widget-header {
|
|
||||||
background: #fafafa;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-grid {
|
|
||||||
width: 100%;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-widget-header:first-of-type,
|
|
||||||
.fc-widget-content:first-of-type {
|
|
||||||
border-left: 0;
|
|
||||||
border-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-widget-header:last-of-type,
|
|
||||||
.fc-widget-content:last-of-type {
|
|
||||||
border-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-toolbar {
|
|
||||||
padding: 1rem;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-day-number {
|
|
||||||
font-size: 20px;
|
|
||||||
font-weight: 300;
|
|
||||||
padding-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fc-color-picker {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
> li {
|
|
||||||
float: left;
|
|
||||||
font-size: 30px;
|
|
||||||
margin-right: 5px;
|
|
||||||
line-height: 30px;
|
|
||||||
.fa {
|
|
||||||
transition: transform linear .3s;
|
|
||||||
&:hover {
|
|
||||||
@include rotate(30deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#add-new-event {
|
|
||||||
transition: all linear .3s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.external-event {
|
|
||||||
@include box-shadow($card-shadow);
|
|
||||||
|
|
||||||
padding: 5px 10px;
|
|
||||||
font-weight: bold;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
border-radius: $border-radius;
|
|
||||||
cursor: move;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
@include box-shadow(inset 0 0 90px rgba(0, 0, 0, 0.2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,79 +1,140 @@
|
|||||||
/*
|
//
|
||||||
* Component: Info Box
|
// Component: Info Box
|
||||||
* -------------------
|
//
|
||||||
*/
|
|
||||||
.info-box {
|
.info-box {
|
||||||
@extend .d-flex;
|
|
||||||
@extend .mb-3;
|
|
||||||
@include box-shadow($card-shadow);
|
@include box-shadow($card-shadow);
|
||||||
@include border-radius($border-radius);
|
@include border-radius($border-radius);
|
||||||
|
|
||||||
padding: .5rem;
|
|
||||||
min-height: 80px;
|
|
||||||
background: $white;
|
background: $white;
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: map-get($spacers, 3);
|
||||||
|
min-height: 80px;
|
||||||
|
padding: .5rem;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
.progress {
|
.progress {
|
||||||
background-color: rgba(0, 0, 0, 0.125);
|
background-color: rgba($black, .125);
|
||||||
margin: 5px 0;
|
|
||||||
height: 2px;
|
height: 2px;
|
||||||
|
margin: 5px 0;
|
||||||
|
|
||||||
.progress-bar {
|
.progress-bar {
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.info-box-icon {
|
.info-box-icon {
|
||||||
@extend .d-flex;
|
@if $enable-rounded {
|
||||||
@extend .align-items-center;
|
border-radius: $border-radius;
|
||||||
@extend .justify-content-center;
|
}
|
||||||
|
|
||||||
@if $enable-rounded {
|
align-items: center;
|
||||||
border-radius: $border-radius;
|
display: flex;
|
||||||
|
font-size: 1.875rem;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
width: 70px;
|
||||||
|
|
||||||
|
> img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
display: block;
|
.info-box-content {
|
||||||
width: 70px;
|
flex: 1;
|
||||||
text-align: center;
|
padding: 5px 10px;
|
||||||
font-size: 30px;
|
|
||||||
|
|
||||||
> img {
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
.info-box-content {
|
.info-box-number {
|
||||||
padding: 5px 10px;
|
display: block;
|
||||||
flex: 1;
|
font-weight: $font-weight-bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-box-number {
|
.progress-description,
|
||||||
display: block;
|
.info-box-text {
|
||||||
font-weight: $font-weight-bold;
|
display: block;
|
||||||
}
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
.progress-description,
|
@each $name, $color in $theme-colors {
|
||||||
.info-box-text {
|
.info-box {
|
||||||
display: block;
|
.bg-#{$name},
|
||||||
white-space: nowrap;
|
.bg-gradient-#{$name} {
|
||||||
overflow: hidden;
|
color: color-yiq($color);
|
||||||
text-overflow: ellipsis;
|
|
||||||
}
|
|
||||||
|
|
||||||
@each $name, $color in $theme-colors {
|
.progress-bar {
|
||||||
.info-box.bg-#{$name},
|
background-color: color-yiq($color);
|
||||||
.info-box.bg-#{$name}-gradient {
|
}
|
||||||
color: color-yiq($color);
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.progress-bar {
|
.info-box-more {
|
||||||
background-color: color-yiq($color);
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress-description {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
.col-xl-2 &,
|
||||||
|
.col-lg-2 &,
|
||||||
|
.col-md-2 & {
|
||||||
|
.progress-description {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-3 &,
|
||||||
|
.col-lg-3 &,
|
||||||
|
.col-md-3 & {
|
||||||
|
.progress-description {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(lg) {
|
||||||
|
.col-xl-2 &,
|
||||||
|
.col-lg-2 &,
|
||||||
|
.col-md-2 & {
|
||||||
|
.progress-description {
|
||||||
|
@include font-size(.75rem);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-3 &,
|
||||||
|
.col-lg-3 &,
|
||||||
|
.col-md-3 & {
|
||||||
|
.progress-description {
|
||||||
|
@include font-size(.75rem);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(xl) {
|
||||||
|
.col-xl-2 &,
|
||||||
|
.col-lg-2 &,
|
||||||
|
.col-md-2 & {
|
||||||
|
.progress-description {
|
||||||
|
@include font-size(1rem);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-3 &,
|
||||||
|
.col-lg-3 &,
|
||||||
|
.col-md-3 & {
|
||||||
|
.progress-description {
|
||||||
|
@include font-size(1rem);
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-box-more {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.progress-description {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* Component: Label
|
|
||||||
* ----------------
|
|
||||||
*/
|
|
||||||
.label-default {
|
|
||||||
background-color: $gray-500;
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-danger {
|
|
||||||
@extend .bg-danger;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-info {
|
|
||||||
@extend .bg-info;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-warning {
|
|
||||||
@extend .bg-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-primary {
|
|
||||||
@extend .bg-primary;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-success {
|
|
||||||
@extend .bg-success;
|
|
||||||
}
|
|
||||||
@@ -1,46 +1,483 @@
|
|||||||
/*
|
//
|
||||||
* Core: General Layout Style
|
// Core: Layout
|
||||||
* -------------------------
|
//
|
||||||
*/
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
html,
|
html,
|
||||||
body,
|
body,
|
||||||
.wrapper {
|
.wrapper {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
overflow-x: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
.wrapper {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
& .content-wrapper {
|
||||||
|
min-height: calc(100vh - #{$main-header-height} - #{$main-footer-height});
|
||||||
|
}
|
||||||
|
|
||||||
.layout-boxed & {
|
.layout-boxed & {
|
||||||
@include box-shadow(0 0 10px rgba(0, 0, 0, .3));
|
@include box-shadow(0 0 10 rgba($black, .3));
|
||||||
|
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
max-width: $boxed-layout-max-width;
|
max-width: $boxed-layout-max-width;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& .main-sidebar {
|
||||||
|
left: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports not (-webkit-touch-callout: none) {
|
||||||
|
.layout-fixed & .sidebar {
|
||||||
|
height: calc(100vh - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));
|
||||||
|
}
|
||||||
|
.layout-fixed.text-sm & .sidebar {
|
||||||
|
height: calc(100vh - (#{$main-header-height-sm-inner} + #{$main-header-bottom-border-width}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-fixed.layout-fixed & {
|
||||||
|
.control-sidebar {
|
||||||
|
top: $main-header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header.text-sm ~ .control-sidebar {
|
||||||
|
top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-link.text-sm ~ .sidebar {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-fixed.layout-fixed.text-sm & {
|
||||||
|
.control-sidebar {
|
||||||
|
top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-fixed.sidebar-mini.sidebar-collapse &,
|
||||||
|
.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse & {
|
||||||
|
.brand-link {
|
||||||
|
height: $main-header-height;
|
||||||
|
width: $sidebar-mini-width;
|
||||||
|
|
||||||
|
&.text-sm {
|
||||||
|
height: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-fixed.sidebar-mini.sidebar-collapse.text-sm &,
|
||||||
|
.layout-navbar-fixed.sidebar-mini-md.sidebar-collapse.text-sm & {
|
||||||
|
.brand-link {
|
||||||
|
height: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.layout-fixed).layout-navbar-fixed & {
|
||||||
|
.main-sidebar {
|
||||||
|
margin-top: calc(#{$main-header-height} / -1);
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.layout-fixed).layout-navbar-fixed.text-sm & {
|
||||||
|
.main-sidebar {
|
||||||
|
margin-top: calc(#{$main-header-height-sm} / -1);
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-fixed & {
|
||||||
|
.control-sidebar {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.anchor {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-sidebar:hover {
|
||||||
|
.brand-link {
|
||||||
|
transition: width $transition-speed $transition-fn;
|
||||||
|
width: $sidebar-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-link {
|
||||||
|
overflow: hidden;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
transition: width $transition-speed $transition-fn;
|
||||||
|
width: $sidebar-width;
|
||||||
|
z-index: $zindex-main-header + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar variants brand-link fix
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
.sidebar-dark-#{$name} .brand-link:not([class*="navbar"]) {
|
||||||
|
background-color: $sidebar-dark-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-light-#{$name} .brand-link:not([class*="navbar"]) {
|
||||||
|
background-color: $sidebar-light-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-wrapper {
|
||||||
|
margin-top: $main-header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header.text-sm ~ .content-wrapper {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header {
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: $zindex-main-header - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-fixed.text-sm & {
|
||||||
|
.content-wrapper {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-not-fixed & {
|
||||||
|
.brand-link {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar,
|
||||||
|
.content-wrapper {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-navbar-not-fixed.layout-fixed & {
|
||||||
|
.sidebar {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||||
|
@include media-breakpoint-up($breakpoint) {
|
||||||
|
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||||
|
|
||||||
|
.layout#{$infix}-navbar-fixed.layout-fixed & {
|
||||||
|
.control-sidebar {
|
||||||
|
top: $main-header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-sm & .main-header ~ .control-sidebar,
|
||||||
|
.main-header.text-sm ~ .control-sidebar {
|
||||||
|
top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-sm & .brand-link ~ .sidebar,
|
||||||
|
.brand-link.text-sm ~ .sidebar {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-navbar-fixed.layout-fixed.text-sm & {
|
||||||
|
.control-sidebar {
|
||||||
|
top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-navbar-fixed & {
|
||||||
|
.control-sidebar {
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.anchor {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
top: calc((#{$main-header-height-inner} + #{$main-header-bottom-border-width} + (#{$main-header-link-padding-y} * 2)) / -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.sidebar-collapse {
|
||||||
|
.brand-link {
|
||||||
|
height: $main-header-height;
|
||||||
|
transition: width $transition-speed $transition-fn;
|
||||||
|
width: $sidebar-mini-width;
|
||||||
|
|
||||||
|
.text-sm &,
|
||||||
|
&.text-sm {
|
||||||
|
height: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-sidebar:hover {
|
||||||
|
.brand-link {
|
||||||
|
transition: width $transition-speed $transition-fn;
|
||||||
|
width: $sidebar-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-link {
|
||||||
|
overflow: hidden;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
transition: width $transition-speed $transition-fn;
|
||||||
|
width: $sidebar-width;
|
||||||
|
z-index: $zindex-main-header + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar variants brand-link fix
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
.sidebar-dark-#{$name} .brand-link:not([class*="navbar"]) {
|
||||||
|
background-color: $sidebar-dark-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-light-#{$name} .brand-link:not([class*="navbar"]) {
|
||||||
|
background-color: $sidebar-light-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-wrapper {
|
||||||
|
margin-top: $main-header-height;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-sm & .main-header ~ .content-wrapper,
|
||||||
|
.main-header.text-sm ~ .content-wrapper {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header {
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: $zindex-main-sidebar - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-navbar-fixed.text-sm & {
|
||||||
|
.content-wrapper {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.layout-fixed).layout#{$infix}-navbar-fixed & {
|
||||||
|
.main-sidebar {
|
||||||
|
margin-top: calc(#{$main-header-height} / -1);
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body:not(.layout-fixed).layout#{$infix}-navbar-fixed.text-sm & {
|
||||||
|
.main-sidebar {
|
||||||
|
margin-top: calc(#{$main-header-height-sm} / -1);
|
||||||
|
|
||||||
|
.sidebar {
|
||||||
|
margin-top: $main-header-height-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-navbar-not-fixed & {
|
||||||
|
.brand-link {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar,
|
||||||
|
.content-wrapper {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-header {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-navbar-not-fixed.layout-fixed & {
|
||||||
|
.sidebar {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-footer-fixed & {
|
||||||
|
.control-sidebar {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-footer-fixed & {
|
||||||
|
.main-footer {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
z-index: $zindex-main-footer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-footer-not-fixed & {
|
||||||
|
.main-footer {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-wrapper {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $breakpoint in map-keys($grid-breakpoints) {
|
||||||
|
@include media-breakpoint-up($breakpoint) {
|
||||||
|
$infix: breakpoint-infix($breakpoint, $grid-breakpoints);
|
||||||
|
.layout#{$infix}-footer-fixed & {
|
||||||
|
.control-sidebar {
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-footer-fixed & {
|
||||||
|
.main-footer {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
z-index: $zindex-main-footer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-wrapper {
|
||||||
|
padding-bottom: $main-footer-height;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout#{$infix}-footer-not-fixed & {
|
||||||
|
.main-footer {
|
||||||
|
position: static;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-top-nav & {
|
||||||
|
margin-left: 0;
|
||||||
|
|
||||||
|
.main-header {
|
||||||
|
.brand-image {
|
||||||
|
margin-top: -.5rem;
|
||||||
|
margin-right: .2rem;
|
||||||
|
height: 33px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& .main-sidebar {
|
||||||
|
bottom: inherit;
|
||||||
|
height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .content-wrapper,
|
||||||
|
& .main-header,
|
||||||
|
& .main-footer {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-wrapper,
|
|
||||||
.main-footer,
|
|
||||||
.main-header {
|
|
||||||
@include media-breakpoint-up(md) {
|
|
||||||
@include transition(margin-left $transition-speed $transition-fn);
|
|
||||||
|
|
||||||
margin-left: $sidebar-width;
|
body.sidebar-collapse:not(.sidebar-mini-md):not(.sidebar-mini) {
|
||||||
z-index: 3000;
|
.content-wrapper,
|
||||||
|
.main-footer,
|
||||||
.sidebar-collapse & {
|
.main-header {
|
||||||
|
&,
|
||||||
|
&::before {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@include media-breakpoint-down(md) {
|
body:not(.sidebar-mini-md) {
|
||||||
&,
|
.content-wrapper,
|
||||||
&:before {
|
.main-footer,
|
||||||
margin-left: 0;
|
.main-header {
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
@include transition(margin-left $transition-speed $transition-fn);
|
||||||
|
|
||||||
|
margin-left: $sidebar-width;
|
||||||
|
|
||||||
|
.sidebar-collapse & {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
&,
|
||||||
|
&::before {
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini-md {
|
||||||
|
.content-wrapper,
|
||||||
|
.main-footer,
|
||||||
|
.main-header {
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
@include transition(margin-left $transition-speed $transition-fn);
|
||||||
|
|
||||||
|
margin-left: $sidebar-width;
|
||||||
|
|
||||||
|
.sidebar-collapse & {
|
||||||
|
margin-left: $sidebar-mini-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(md) {
|
||||||
|
&,
|
||||||
|
&::before {
|
||||||
|
margin-left: $sidebar-mini-width;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -54,67 +491,141 @@ body,
|
|||||||
}
|
}
|
||||||
|
|
||||||
.main-sidebar {
|
.main-sidebar {
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
bottom: 0;
|
|
||||||
|
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
$local-sidebar-transition: margin-left $transition-speed $transition-fn, width $transition-speed $transition-fn;
|
$local-sidebar-transition: margin-left $transition-speed $transition-fn, width $transition-speed $transition-fn;
|
||||||
@include transition($local-sidebar-transition);
|
@include transition($local-sidebar-transition);
|
||||||
width: $sidebar-width;
|
width: $sidebar-width;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-collapse & {
|
.sidebar-collapse:not(.sidebar-mini):not(.sidebar-mini-md) & {
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
margin-left: -$sidebar-width;
|
box-shadow: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@include media-breakpoint-down(md) {
|
.sidebar-collapse & {
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
box-shadow: none!important;
|
margin-left: -$sidebar-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-sidebar.nav-child-indent .nav-treeview {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(sm) {
|
||||||
|
&,
|
||||||
|
&::before {
|
||||||
|
box-shadow: none !important;
|
||||||
margin-left: -$sidebar-width;
|
margin-left: -$sidebar-width;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-open & {
|
.sidebar-open & {
|
||||||
&,
|
&,
|
||||||
&:before {
|
&::before {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:not(.layout-fixed) {
|
||||||
|
.main-sidebar {
|
||||||
|
height: inherit;
|
||||||
|
min-height: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.layout-fixed {
|
||||||
|
.brand-link {
|
||||||
|
width: $sidebar-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.main-sidebar {
|
||||||
|
bottom: 0;
|
||||||
|
float: none;
|
||||||
|
height: 100vh;
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.control-sidebar {
|
||||||
|
bottom: 0;
|
||||||
|
float: none;
|
||||||
|
height: 100vh;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
|
||||||
|
.control-sidebar-content {
|
||||||
|
height: calc(100vh - #{$main-header-height});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@supports (-webkit-touch-callout: none) {
|
||||||
|
.layout-fixed {
|
||||||
|
.main-sidebar {
|
||||||
|
height: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.main-footer {
|
.main-footer {
|
||||||
padding: $main-footer-padding;
|
|
||||||
color: #555;
|
|
||||||
border-top: $main-footer-border-top;
|
|
||||||
background: $main-footer-bg;
|
background: $main-footer-bg;
|
||||||
|
border-top: $main-footer-border-top;
|
||||||
|
color: lighten($gray-700, 25%);
|
||||||
|
padding: $main-footer-padding;
|
||||||
|
|
||||||
|
.text-sm &,
|
||||||
|
&.text-sm {
|
||||||
|
padding: $main-footer-padding-sm;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content-header {
|
.content-header {
|
||||||
padding: 15px $content-padding-x;
|
padding: 15px $content-padding-x;
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
padding: 10px $content-padding-x;
|
||||||
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.breadcrumb {
|
.breadcrumb {
|
||||||
margin-bottom: 0;
|
|
||||||
padding: 0;
|
|
||||||
background: transparent;
|
background: transparent;
|
||||||
line-height: 1.8rem;
|
line-height: 1.8rem;
|
||||||
|
margin-bottom: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
line-height: 1.5rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.hold-transition {
|
.hold-transition {
|
||||||
.content-wrapper,
|
.content-wrapper,
|
||||||
.main-header,
|
.main-header,
|
||||||
|
.main-sidebar,
|
||||||
|
.main-sidebar *,
|
||||||
|
.control-sidebar,
|
||||||
|
.control-sidebar *,
|
||||||
.main-footer {
|
.main-footer {
|
||||||
transition: none!important;
|
transition: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,73 +0,0 @@
|
|||||||
/*
|
|
||||||
* Page: Lock Screen
|
|
||||||
* -----------------
|
|
||||||
*/
|
|
||||||
/* ADD THIS CLASS TO THE <BODY> TAG */
|
|
||||||
.lockscreen {
|
|
||||||
background: $gray-200;
|
|
||||||
}
|
|
||||||
|
|
||||||
.lockscreen-logo {
|
|
||||||
font-size: 35px;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 25px;
|
|
||||||
font-weight: 300;
|
|
||||||
a {
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.lockscreen-wrapper {
|
|
||||||
max-width: 400px;
|
|
||||||
margin: 0 auto;
|
|
||||||
margin-top: 10%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* User name [optional] */
|
|
||||||
.lockscreen .lockscreen-name {
|
|
||||||
text-align: center;
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Will contain the image and the sign in form */
|
|
||||||
.lockscreen-item {
|
|
||||||
@include border-radius(4px);
|
|
||||||
padding: 0;
|
|
||||||
background: $white;
|
|
||||||
position: relative;
|
|
||||||
margin: 10px auto 30px auto;
|
|
||||||
width: 290px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* User image */
|
|
||||||
.lockscreen-image {
|
|
||||||
@include border-radius(50%);
|
|
||||||
position: absolute;
|
|
||||||
left: -10px;
|
|
||||||
top: -25px;
|
|
||||||
background: $white;
|
|
||||||
padding: 5px;
|
|
||||||
z-index: 10;
|
|
||||||
> img {
|
|
||||||
@include border-radius(50%);
|
|
||||||
width: 70px;
|
|
||||||
height: 70px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Contains the password input and the login button */
|
|
||||||
.lockscreen-credentials {
|
|
||||||
margin-left: 70px;
|
|
||||||
.form-control {
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
.btn {
|
|
||||||
background-color: $white;
|
|
||||||
border: 0;
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.lockscreen-footer {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* Page: Login & Register
|
|
||||||
* ----------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
.login-logo,
|
|
||||||
.register-logo {
|
|
||||||
font-size: 35px;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 25px;
|
|
||||||
font-weight: 300;
|
|
||||||
a {
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-page,
|
|
||||||
.register-page {
|
|
||||||
background: $gray-200;
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-box,
|
|
||||||
.register-box {
|
|
||||||
width: 360px;
|
|
||||||
margin: 7% auto;
|
|
||||||
@media (max-width: map-get($grid-breakpoints, sm)) {
|
|
||||||
width: 90%;
|
|
||||||
margin-top: 20px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-box-body,
|
|
||||||
.register-box-body {
|
|
||||||
background: $white;
|
|
||||||
padding: 20px;
|
|
||||||
border-top: 0;
|
|
||||||
color: #666;
|
|
||||||
.form-control-feedback {
|
|
||||||
color: #777;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.login-box-msg,
|
|
||||||
.register-box-msg {
|
|
||||||
margin: 0;
|
|
||||||
text-align: center;
|
|
||||||
padding: 0 20px 20px 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.social-auth-links {
|
|
||||||
margin: 10px 0;
|
|
||||||
}
|
|
||||||
@@ -1,31 +1,52 @@
|
|||||||
/*
|
//
|
||||||
* Component: Main Header
|
// Component: Main Header
|
||||||
* ----------------------
|
//
|
||||||
*/
|
|
||||||
.main-header {
|
.main-header {
|
||||||
|
border-bottom: $main-header-bottom-border;
|
||||||
z-index: $zindex-main-header;
|
z-index: $zindex-main-header;
|
||||||
|
|
||||||
.navbar-nav .nav-item {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-link {
|
.nav-link {
|
||||||
position: relative;
|
|
||||||
height: $nav-link-height;
|
height: $nav-link-height;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-nav[class*="-right"] {
|
.text-sm &,
|
||||||
.dropdown-menu {
|
&.text-sm {
|
||||||
margin-top: -3px;
|
.nav-link {
|
||||||
right: 0;
|
height: $nav-link-sm-height;
|
||||||
left: auto;
|
padding: $nav-link-sm-padding-y $nav-link-padding-x;
|
||||||
@media (max-width: breakpoint-max(xs)) {
|
|
||||||
left: 0;
|
> .fa,
|
||||||
right: auto;
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
|
> .glyphicon,
|
||||||
|
> .ion {
|
||||||
|
font-size: $font-size-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-nav {
|
||||||
|
.nav-item {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&[class*='-right'] {
|
||||||
|
.dropdown-menu {
|
||||||
|
left: auto;
|
||||||
|
margin-top: -3px;
|
||||||
|
right: 0;
|
||||||
|
|
||||||
|
@media (max-width: breakpoint-max(xs)) {
|
||||||
|
left: 0;
|
||||||
|
right: auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add this class to images within a nav-link
|
// Add this class to images within a nav-link
|
||||||
@@ -36,21 +57,22 @@
|
|||||||
|
|
||||||
// Navbar badge
|
// Navbar badge
|
||||||
.navbar-badge {
|
.navbar-badge {
|
||||||
position: absolute;
|
|
||||||
top: 9px;
|
|
||||||
right: 5px;
|
|
||||||
font-size: .6rem;
|
font-size: .6rem;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
padding: 2px 4px;
|
padding: 2px 4px;
|
||||||
|
position: absolute;
|
||||||
|
right: 5px;
|
||||||
|
top: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-navbar {
|
.btn-navbar {
|
||||||
border-left-width: 0;
|
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
|
border-left-width: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-control-navbar {
|
.form-control-navbar {
|
||||||
border-right-width: 0;
|
border-right-width: 0;
|
||||||
|
|
||||||
& + .input-group-append {
|
& + .input-group-append {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
@@ -69,29 +91,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.form-control-navbar {
|
.form-control-navbar {
|
||||||
&::placeholder,
|
&::placeholder {
|
||||||
|
color: $main-header-dark-placeholder-color;
|
||||||
|
}
|
||||||
|
|
||||||
+ .input-group-append > .btn-navbar {
|
+ .input-group-append > .btn-navbar {
|
||||||
color: $main-header-dark-placeholder-color;
|
color: $main-header-dark-placeholder-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Support FF and IE
|
|
||||||
:-moz-placeholder {
|
|
||||||
color: $main-header-dark-placeholder-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-moz-placeholder {
|
|
||||||
color: $main-header-dark-placeholder-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
:-ms-input-placeholder {
|
|
||||||
color: $main-header-dark-placeholder-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
&,
|
&,
|
||||||
& + .input-group-append .btn-navbar {
|
& + .input-group-append .btn-navbar {
|
||||||
border: $main-header-dark-form-control-focused-border !important;
|
|
||||||
background-color: $main-header-dark-form-control-focused-bg;
|
background-color: $main-header-dark-form-control-focused-bg;
|
||||||
|
border: $main-header-dark-form-control-focused-border !important;
|
||||||
color: $main-header-dark-form-control-focused-color;
|
color: $main-header-dark-form-control-focused-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -106,29 +118,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.form-control-navbar {
|
.form-control-navbar {
|
||||||
&::placeholder,
|
&::placeholder {
|
||||||
|
color: $main-header-light-placeholder-color;
|
||||||
|
}
|
||||||
|
|
||||||
+ .input-group-append > .btn-navbar {
|
+ .input-group-append > .btn-navbar {
|
||||||
color: $main-header-light-placeholder-color;
|
color: $main-header-light-placeholder-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Support FF and IE
|
|
||||||
:-moz-placeholder {
|
|
||||||
color: $main-header-light-placeholder-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-moz-placeholder {
|
|
||||||
color: $main-header-light-placeholder-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
:-ms-input-placeholder {
|
|
||||||
color: $main-header-light-placeholder-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
&,
|
&,
|
||||||
& + .input-group-append .btn-navbar {
|
& + .input-group-append .btn-navbar {
|
||||||
border: $main-header-light-form-control-focused-border !important;
|
|
||||||
background-color: $main-header-light-form-control-focused-bg;
|
background-color: $main-header-light-form-control-focused-bg;
|
||||||
|
border: $main-header-light-form-control-focused-border !important;
|
||||||
color: $main-header-light-form-control-focused-color;
|
color: $main-header-light-form-control-focused-color;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,32 +1,40 @@
|
|||||||
/**
|
//
|
||||||
* Component: Sidebar
|
// Component: Main Sidebar
|
||||||
* ------------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.main-sidebar {
|
.main-sidebar {
|
||||||
z-index: $zindex-main-sidebar;
|
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
overflow-y: hidden;
|
overflow-y: hidden;
|
||||||
|
z-index: $zindex-main-sidebar;
|
||||||
|
|
||||||
|
// Remove Firefox Focusring
|
||||||
|
a {
|
||||||
|
&:-moz-focusring {
|
||||||
|
border: 0;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar {
|
||||||
|
height: calc(100% - (#{$main-header-height-inner} + #{$main-header-bottom-border-width}));
|
||||||
|
overflow-y: auto;
|
||||||
padding-bottom: $sidebar-padding-y;
|
padding-bottom: $sidebar-padding-y;
|
||||||
padding-top: $sidebar-padding-y;
|
|
||||||
padding-left: $sidebar-padding-x;
|
padding-left: $sidebar-padding-x;
|
||||||
padding-right: $sidebar-padding-x;
|
padding-right: $sidebar-padding-x;
|
||||||
overflow-y: auto;
|
padding-top: $sidebar-padding-y;
|
||||||
height: calc(100% - 4rem);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sidebar user panel
|
// Sidebar user panel
|
||||||
.user-panel {
|
.user-panel {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
[class*="sidebar-dark"] & {
|
[class*='sidebar-dark'] & {
|
||||||
border-bottom: 1px solid lighten($dark, 12%);
|
border-bottom: 1px solid lighten($dark, 12%);
|
||||||
}
|
}
|
||||||
|
|
||||||
[class*="sidebar-light"] & {
|
[class*='sidebar-light'] & {
|
||||||
border-bottom: 1px solid $gray-300;
|
border-bottom: 1px solid $gray-300;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,13 +45,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.image {
|
.image {
|
||||||
padding-left: $nav-link-padding-x - .2;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
padding-left: $nav-link-padding-x - .2;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: $sidebar-user-image-width;
|
|
||||||
height: auto;
|
height: auto;
|
||||||
|
width: $sidebar-user-image-width;
|
||||||
}
|
}
|
||||||
|
|
||||||
.info {
|
.info {
|
||||||
@@ -62,17 +70,28 @@
|
|||||||
// All levels
|
// All levels
|
||||||
.nav-item {
|
.nav-item {
|
||||||
> .nav-link {
|
> .nav-link {
|
||||||
margin-bottom: 0.2rem;
|
margin-bottom: .2rem;
|
||||||
|
|
||||||
.right {
|
.right {
|
||||||
@include transition(transform $transition-fn $transition-speed);
|
@include transition(transform $transition-fn $transition-speed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.nav-link > .right,
|
||||||
.nav-link > p > .right {
|
.nav-link > p > .right {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 1rem;
|
right: 1rem;
|
||||||
top: 12px;
|
top: .7rem;
|
||||||
|
|
||||||
|
i,
|
||||||
|
span {
|
||||||
|
margin-left: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:nth-child(2) {
|
||||||
|
right: 2.2rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-open {
|
.menu-open {
|
||||||
@@ -81,7 +100,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
> .nav-link {
|
> .nav-link {
|
||||||
.right {
|
i.right {
|
||||||
@include rotate(-90deg);
|
@include rotate(-90deg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -92,10 +111,20 @@
|
|||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|
||||||
.nav-icon {
|
.nav-icon {
|
||||||
text-align: center;
|
margin-left: .05rem;
|
||||||
width: $sidebar-nav-icon-width;
|
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
margin-right: .2rem;
|
margin-right: .2rem;
|
||||||
|
text-align: center;
|
||||||
|
width: $sidebar-nav-icon-width;
|
||||||
|
|
||||||
|
&.fa,
|
||||||
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.float-right {
|
.float-right {
|
||||||
@@ -118,12 +147,37 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.nav-child-indent {
|
||||||
|
.nav-treeview {
|
||||||
|
transition: padding $transition-speed $transition-fn;
|
||||||
|
padding-left: 1rem;
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
padding-left: .5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-legacy {
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: 2rem;
|
||||||
|
margin-left: -1rem;
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
padding-left: 1rem;
|
||||||
|
margin-left: -.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.nav-header {
|
.nav-header {
|
||||||
font-size: .9rem;
|
font-size: .9rem;
|
||||||
padding: $nav-link-padding-y;
|
padding: $nav-link-padding-y;
|
||||||
|
|
||||||
&:not(:first-of-type) {
|
&:not(:first-of-type) {
|
||||||
padding: 1.7rem 1rem .5rem 1rem;
|
padding: 1.7rem 1rem .5rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,31 +188,724 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#sidebar-overlay {
|
#sidebar-overlay {
|
||||||
position: fixed;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
display: none;
|
|
||||||
background-color: rgba(0, 0, 0, 0.1);
|
|
||||||
z-index: $zindex-main-sidebar - 1;
|
|
||||||
|
|
||||||
@include media-breakpoint-down(md) {
|
@include media-breakpoint-down(md) {
|
||||||
.sidebar-open & {
|
.sidebar-open & {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
background-color: rgba($black, 0.1);
|
||||||
|
bottom: 0;
|
||||||
|
display: none;
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: $zindex-main-sidebar - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*='sidebar-light-'] {
|
||||||
|
// Sidebar background color
|
||||||
|
background-color: $sidebar-light-bg;
|
||||||
|
|
||||||
|
// User Panel (resides in the sidebar)
|
||||||
|
.user-panel {
|
||||||
|
a:hover {
|
||||||
|
color: $sidebar-light-hover-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
background: $sidebar-light-hover-bg;
|
||||||
|
color: $sidebar-light-color;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus,
|
||||||
|
&:active {
|
||||||
|
background: darken($sidebar-light-hover-bg, 3%);
|
||||||
|
color: $sidebar-light-hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu {
|
||||||
|
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
|
||||||
|
border-color: darken($sidebar-light-hover-bg, 5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item {
|
||||||
|
color: $body-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar Menu. First level links
|
||||||
|
.nav-sidebar > .nav-item {
|
||||||
|
// links
|
||||||
|
> .nav-link {
|
||||||
|
// border-left: 3px solid transparent;
|
||||||
|
&:active,
|
||||||
|
&:focus {
|
||||||
|
color: $sidebar-light-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hover and active states
|
||||||
|
&.menu-open > .nav-link,
|
||||||
|
&:hover > .nav-link {
|
||||||
|
background-color: $sidebar-light-hover-bg;
|
||||||
|
color: $sidebar-light-hover-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link.active {
|
||||||
|
color: $sidebar-light-active-color;
|
||||||
|
|
||||||
|
@if $enable-shadows {
|
||||||
|
box-shadow: map-get($elevations, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// First Level Submenu
|
||||||
|
> .nav-treeview {
|
||||||
|
background: $sidebar-light-submenu-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Section Heading
|
||||||
|
.nav-header {
|
||||||
|
background: inherit;
|
||||||
|
color: darken($sidebar-light-color, 5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// All links within the sidebar menu
|
||||||
|
.sidebar {
|
||||||
|
a {
|
||||||
|
color: $sidebar-light-color;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// All submenus
|
||||||
|
.nav-treeview {
|
||||||
|
> .nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
color: $sidebar-light-submenu-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link.active {
|
||||||
|
&,
|
||||||
|
&:hover {
|
||||||
|
background-color: $sidebar-light-submenu-active-bg;
|
||||||
|
color: $sidebar-light-submenu-active-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link:hover {
|
||||||
|
background-color: $sidebar-light-submenu-hover-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flat style
|
||||||
|
.nav-flat {
|
||||||
|
.nav-item {
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-treeview {
|
||||||
|
border-color: $sidebar-light-submenu-active-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
&,
|
||||||
|
&.active {
|
||||||
|
border-color: $sidebar-light-submenu-active-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*='sidebar-dark-'] {
|
||||||
|
// Sidebar background color
|
||||||
|
background-color: $sidebar-dark-bg;
|
||||||
|
|
||||||
|
// User Panel (resides in the sidebar)
|
||||||
|
.user-panel {
|
||||||
|
a:hover {
|
||||||
|
color: $sidebar-dark-hover-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.status {
|
||||||
|
background: $sidebar-dark-hover-bg;
|
||||||
|
color: $sidebar-dark-color;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus,
|
||||||
|
&:active {
|
||||||
|
background: darken($sidebar-dark-hover-bg, 3%);
|
||||||
|
color: $sidebar-dark-hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu {
|
||||||
|
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
|
||||||
|
border-color: darken($sidebar-dark-hover-bg, 5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item {
|
||||||
|
color: $body-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar Menu. First level links
|
||||||
|
.nav-sidebar > .nav-item {
|
||||||
|
// links
|
||||||
|
> .nav-link {
|
||||||
|
// border-left: 3px solid transparent;
|
||||||
|
&:active {
|
||||||
|
color: $sidebar-dark-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hover and active states
|
||||||
|
&.menu-open > .nav-link,
|
||||||
|
&:hover > .nav-link,
|
||||||
|
& > .nav-link:focus {
|
||||||
|
background-color: $sidebar-dark-hover-bg;
|
||||||
|
color: $sidebar-dark-hover-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link.active {
|
||||||
|
color: $sidebar-dark-hover-color;
|
||||||
|
|
||||||
|
@if $enable-shadows {
|
||||||
|
box-shadow: map-get($elevations, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// First Level Submenu
|
||||||
|
> .nav-treeview {
|
||||||
|
background: $sidebar-dark-submenu-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Section Heading
|
||||||
|
.nav-header {
|
||||||
|
background: inherit; //darken($sidebar-dark-bg, 3%);
|
||||||
|
color: lighten($sidebar-dark-color, 5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
// All links within the sidebar menu
|
||||||
|
.sidebar {
|
||||||
|
a {
|
||||||
|
color: $sidebar-dark-color;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// All submenus
|
||||||
|
.nav-treeview {
|
||||||
|
> .nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
color: $sidebar-dark-submenu-color;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
background-color: $sidebar-dark-submenu-hover-bg;
|
||||||
|
color: $sidebar-dark-submenu-hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link.active {
|
||||||
|
&,
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
background-color: $sidebar-dark-submenu-active-bg;
|
||||||
|
color: $sidebar-dark-submenu-active-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flat Style
|
||||||
|
.nav-flat {
|
||||||
|
.nav-item {
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-treeview {
|
||||||
|
border-color: $sidebar-dark-submenu-active-bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
&,
|
||||||
|
&.active {
|
||||||
|
border-color: $sidebar-dark-submenu-active-bg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sidebar variants
|
// Sidebar variants
|
||||||
@each $name, $color in $theme-colors {
|
@each $name, $color in $theme-colors {
|
||||||
.sidebar-dark-#{$name} {
|
.sidebar-dark-#{$name},
|
||||||
@include skin-dark-sidebar($color)
|
.sidebar-light-#{$name} {
|
||||||
|
@include sidebar-color($color)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
.sidebar-dark-#{$name},
|
||||||
|
.sidebar-light-#{$name} {
|
||||||
|
@include sidebar-color($color)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini .main-sidebar:not(.sidebar-no-expand),
|
||||||
|
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand),
|
||||||
|
.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover,
|
||||||
|
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover,
|
||||||
|
.sidebar-mini .main-sidebar.sidebar-focused,
|
||||||
|
.sidebar-mini-md .main-sidebar.sidebar-focused {
|
||||||
|
.nav-compact.nav-sidebar.nav-child-indent:not(.nav-flat) .nav-treeview {
|
||||||
|
padding-left: 1rem;
|
||||||
|
margin-left: -.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nav Flat
|
||||||
|
.nav-flat {
|
||||||
|
margin: (-$sidebar-padding-x/2) (-$sidebar-padding-x) 0;
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
border-radius: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
> .nav-icon {
|
||||||
|
margin-left: .55rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-light-#{$name} {
|
&:not(.nav-child-indent) {
|
||||||
@include skin-light-sidebar($color)
|
.nav-treeview {
|
||||||
|
.nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
> .nav-icon {
|
||||||
|
margin-left: .4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-child-indent {
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: 0;
|
||||||
|
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
border-left: .2rem solid;
|
||||||
|
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 1.15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 1.45rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 2.05rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse &.nav-child-indent {
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .55rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
padding-left: calc(#{$nav-link-padding-x} - .2rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .35rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: -.15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: -.35rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini .main-sidebar:not(.sidebar-no-expand):hover &,
|
||||||
|
.sidebar-mini-md .main-sidebar:not(.sidebar-no-expand):hover &,
|
||||||
|
.sidebar-mini .main-sidebar.sidebar-focused &,
|
||||||
|
.sidebar-mini-md .main-sidebar.sidebar-focused & {
|
||||||
|
&.nav-compact.nav-sidebar .nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-sidebar.nav-child-indent .nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 1.15rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 1.45rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: 2.05rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-icon {
|
||||||
|
@include transition(margin-left $transition-fn $transition-speed);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: -.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-sidebar > .nav-item {
|
||||||
|
.nav-treeview,
|
||||||
|
> .nav-treeview {
|
||||||
|
background: rgba($white, .05);
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
border-left: .2rem solid;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-legacy {
|
||||||
|
margin: (-$sidebar-padding-x/2) (-$sidebar-padding-x) 0;
|
||||||
|
|
||||||
|
&.nav-sidebar .nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
border-radius: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
|
||||||
|
> .nav-icon {
|
||||||
|
margin-left: .55rem;
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
margin-left: .75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-sidebar > .nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
&.active {
|
||||||
|
background: inherit;
|
||||||
|
border-left: 3px solid transparent;
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
> .nav-icon {
|
||||||
|
margin-left: calc(.55rem - 3px);
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
margin-left: calc(.75rem - 3px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-sm &.nav-sidebar.nav-flat .nav-treeview {
|
||||||
|
.nav-item {
|
||||||
|
> .nav-link {
|
||||||
|
> .nav-icon {
|
||||||
|
margin-left: calc(.75rem - 3px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini &,
|
||||||
|
.sidebar-mini-md & {
|
||||||
|
> .nav-item .nav-link {
|
||||||
|
.nav-icon {
|
||||||
|
@include transition(margin-left $transition-fn $transition-speed);
|
||||||
|
margin-left: .75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
|
||||||
|
.sidebar-mini.sidebar-collapse .main-sidebar:hover &.nav-child-indent,
|
||||||
|
.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &.nav-child-indent,
|
||||||
|
.sidebar-mini-md.sidebar-collapse .main-sidebar:hover &.nav-child-indent {
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: 1rem;
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: 2rem;
|
||||||
|
margin-left: -1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
|
||||||
|
.sidebar-mini.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent,
|
||||||
|
.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar.sidebar-focused &.nav-child-indent,
|
||||||
|
.sidebar-mini-md.sidebar-collapse.text-sm .main-sidebar:hover &.nav-child-indent {
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: .5rem;
|
||||||
|
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: 1rem;
|
||||||
|
margin-left: -.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini.sidebar-collapse &,
|
||||||
|
.sidebar-mini-md.sidebar-collapse & {
|
||||||
|
> .nav-item > .nav-link {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .55rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
> .nav-icon{
|
||||||
|
margin-left: .36rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-child-indent {
|
||||||
|
.nav-treeview {
|
||||||
|
.nav-treeview {
|
||||||
|
padding-left: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.sidebar-mini.sidebar-collapse.text-sm &,
|
||||||
|
.sidebar-mini-md.sidebar-collapse.text-sm & {
|
||||||
|
> .nav-item > .nav-link {
|
||||||
|
.nav-icon {
|
||||||
|
margin-left: .75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
> .nav-icon{
|
||||||
|
margin-left: calc(.75rem - 3px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*='sidebar-dark'] & {
|
||||||
|
&.nav-sidebar > .nav-item {
|
||||||
|
.nav-treeview,
|
||||||
|
> .nav-treeview {
|
||||||
|
background: rgba($white, .05);
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link.active {
|
||||||
|
color: $sidebar-dark-active-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview > .nav-item > .nav-link {
|
||||||
|
&.active,
|
||||||
|
&:focus,
|
||||||
|
&:hover {
|
||||||
|
background: none;
|
||||||
|
color: $sidebar-dark-active-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*='sidebar-light'] & {
|
||||||
|
&.nav-sidebar > .nav-item {
|
||||||
|
.nav-treeview,
|
||||||
|
> .nav-treeview {
|
||||||
|
background: rgba($black, .05);
|
||||||
|
}
|
||||||
|
|
||||||
|
> .nav-link.active {
|
||||||
|
color: $sidebar-light-active-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-treeview > .nav-item > .nav-link {
|
||||||
|
&.active,
|
||||||
|
&:focus,
|
||||||
|
&:hover {
|
||||||
|
background: none;
|
||||||
|
color: $sidebar-light-active-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.nav-collapse-hide-child {
|
||||||
|
.menu-open > .nav-treeview {
|
||||||
|
max-height: min-content;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse & {
|
||||||
|
.menu-open > .nav-treeview {
|
||||||
|
max-height: 0;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini.sidebar-collapse .main-sidebar.sidebar-focused &,
|
||||||
|
.sidebar-mini.sidebar-collapse .main-sidebar:hover &,
|
||||||
|
.sidebar-mini-md.sidebar-collapse .main-sidebar.sidebar-focused &,
|
||||||
|
.sidebar-mini-md.sidebar-collapse .main-sidebar:hover & {
|
||||||
|
.menu-open > .nav-treeview {
|
||||||
|
max-height: min-content;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nav Compact
|
||||||
|
.nav-compact {
|
||||||
|
.nav-link,
|
||||||
|
.nav-header {
|
||||||
|
padding-top: ($nav-link-padding-y / 2);
|
||||||
|
padding-bottom: ($nav-link-padding-y / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-header:not(:first-of-type) {
|
||||||
|
padding-top: ($nav-link-padding-y * 1.5);
|
||||||
|
padding-bottom: ($nav-link-padding-y / 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link > .right,
|
||||||
|
.nav-link > p > .right {
|
||||||
|
top: .465rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-sm & {
|
||||||
|
.nav-link > .right,
|
||||||
|
.nav-link > p > .right {
|
||||||
|
top: .7rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar Form Control
|
||||||
|
[class*='sidebar-dark'] {
|
||||||
|
.form-control-sidebar,
|
||||||
|
.btn-sidebar {
|
||||||
|
background: lighten($sidebar-dark-bg, 5%);
|
||||||
|
border: 1px solid lighten($sidebar-dark-bg, 15%);
|
||||||
|
color: lighten(color-yiq(lighten($sidebar-dark-bg, 5%)), 15%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control-sidebar:focus,
|
||||||
|
.btn-sidebar:focus {
|
||||||
|
border: 1px solid lighten($sidebar-dark-bg, 30%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-sidebar:hover {
|
||||||
|
background: lighten($sidebar-dark-bg, 7.5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-sidebar:focus {
|
||||||
|
background: lighten($sidebar-dark-bg, 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*='sidebar-light'] {
|
||||||
|
.form-control-sidebar,
|
||||||
|
.btn-sidebar {
|
||||||
|
background: darken($sidebar-light-bg, 5%);
|
||||||
|
border: 1px solid darken($sidebar-light-bg, 15%);
|
||||||
|
color: color-yiq(darken($sidebar-light-bg, 5%));
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control-sidebar:focus,
|
||||||
|
.btn-sidebar:focus {
|
||||||
|
border: 1px solid darken($sidebar-light-bg, 30%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-sidebar:hover {
|
||||||
|
background: darken($sidebar-light-bg, 7.5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-sidebar:focus {
|
||||||
|
background: darken($sidebar-light-bg, 10%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
/*
|
//
|
||||||
* General: Miscellaneous
|
// Misc: Miscellaneous
|
||||||
* ----------------------
|
//
|
||||||
*/
|
|
||||||
a.text-muted:hover {
|
|
||||||
color: theme-color(primary) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-transparent {
|
.border-transparent {
|
||||||
border-color: transparent !important;
|
border-color: transparent !important;
|
||||||
@@ -15,185 +11,104 @@ a.text-muted:hover {
|
|||||||
display: block;
|
display: block;
|
||||||
margin: 10px 0;
|
margin: 10px 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
&.margin-bottom {
|
&.margin-bottom {
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
> .description-header {
|
> .description-header {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
font-weight: 600;
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
> .description-text {
|
> .description-text {
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Background colors
|
// Description Block Extension
|
||||||
@each $name, $color in $theme-colors {
|
|
||||||
.bg-#{$name} {
|
|
||||||
&,
|
|
||||||
a {
|
|
||||||
color: color-yiq($color) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-gray {
|
|
||||||
color: #000;
|
|
||||||
background-color: $gray-500;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-gray-light {
|
|
||||||
background-color: lighten($gray-200, 3%);
|
|
||||||
color: color-yiq(lighten($gray-200, 3%)) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-black {
|
|
||||||
background-color: $black;
|
|
||||||
color: color-yiq($black) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-white {
|
|
||||||
background-color: $white;
|
|
||||||
color: color-yiq($white) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Disabled!
|
|
||||||
[class^="bg-"].disabled {
|
|
||||||
opacity: .65;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link-muted {
|
|
||||||
color: darken($gray-500, 30%);
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
color: darken($gray-500, 40%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.link-black {
|
|
||||||
color: #666;
|
|
||||||
&:hover,
|
|
||||||
&:focus {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide elements by display none only
|
|
||||||
.hide {
|
|
||||||
display: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove borders
|
|
||||||
.no-border {
|
|
||||||
border: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove box shadow
|
|
||||||
.no-shadow {
|
|
||||||
box-shadow: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Unstyled List
|
|
||||||
.list-unstyled {
|
|
||||||
list-style: none;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.list-group-unbordered {
|
|
||||||
> .list-group-item {
|
|
||||||
border-left: 0;
|
|
||||||
border-right: 0;
|
|
||||||
border-radius: 0;
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove border radius
|
|
||||||
.flat {
|
|
||||||
@include border-radius(0 !important);
|
|
||||||
}
|
|
||||||
|
|
||||||
// _fix for sparkline tooltip
|
|
||||||
.jqstooltip {
|
|
||||||
padding: 5px !important;
|
|
||||||
width: auto !important;
|
|
||||||
height: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gradient Background colors
|
|
||||||
@each $name, $color in $theme-colors {
|
|
||||||
.bg-#{$name}-gradient {
|
|
||||||
@include gradient($color, $color, lighten($color, 10%));
|
|
||||||
color: color-yiq($color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Description Block Extension
|
|
||||||
.description-block {
|
|
||||||
.description-icon {
|
.description-icon {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// List utility classes
|
// List utility classes
|
||||||
|
.list-group-unbordered {
|
||||||
|
> .list-group-item {
|
||||||
|
border-left: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
border-right: 0;
|
||||||
|
padding-left: 0;
|
||||||
|
padding-right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.list-header {
|
.list-header {
|
||||||
|
color: $gray-600;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
padding: 10px 4px;
|
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #666;
|
padding: 10px 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-seperator {
|
.list-seperator {
|
||||||
height: 1px;
|
|
||||||
background: $card-border-color;
|
background: $card-border-color;
|
||||||
margin: 15px 0 9px 0;
|
height: 1px;
|
||||||
|
margin: 15px 0 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-link {
|
.list-link {
|
||||||
> a {
|
> a {
|
||||||
|
color: $gray-600;
|
||||||
padding: 4px;
|
padding: 4px;
|
||||||
color: #777;
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: #222;
|
color: $gray-900;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// User block
|
// User block
|
||||||
.user-block {
|
.user-block {
|
||||||
@include clearfix();
|
float: left;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
|
||||||
float: left;
|
float: left;
|
||||||
|
height: 40px;
|
||||||
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.username,
|
.username,
|
||||||
.description,
|
.description,
|
||||||
.comment {
|
.comment {
|
||||||
display: block;
|
display: block;
|
||||||
margin-left: 50px;
|
margin-left: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.username {
|
.username {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
|
margin-top: -1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.description {
|
.description {
|
||||||
color: #999;
|
color: $gray-600;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
margin-top: -3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.user-block-sm {
|
&.user-block-sm {
|
||||||
img {
|
img {
|
||||||
@extend .img-sm;
|
width: $img-size-sm;
|
||||||
|
height: $img-size-sm;
|
||||||
}
|
}
|
||||||
|
|
||||||
.username,
|
.username,
|
||||||
.description,
|
.description,
|
||||||
.comment {
|
.comment {
|
||||||
margin-left: 40px;
|
margin-left: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.username {
|
.username {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
@@ -208,26 +123,29 @@ a.text-muted:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.img-sm {
|
.img-sm {
|
||||||
width: 30px !important;
|
height: $img-size-sm;
|
||||||
height: 30px !important;
|
width: $img-size-sm;
|
||||||
|
|
||||||
+ .img-push {
|
+ .img-push {
|
||||||
margin-left: 40px;
|
margin-left: $img-size-sm + $img-size-push;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.img-md {
|
.img-md {
|
||||||
width: 60px;
|
width: $img-size-md;
|
||||||
height: 60px;
|
height: $img-size-md;
|
||||||
|
|
||||||
+ .img-push {
|
+ .img-push {
|
||||||
margin-left: 70px;
|
margin-left: $img-size-md + $img-size-push;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.img-lg {
|
.img-lg {
|
||||||
width: 100px;
|
width: $img-size-lg;
|
||||||
height: 100px;
|
height: $img-size-lg;
|
||||||
|
|
||||||
+ .img-push {
|
+ .img-push {
|
||||||
margin-left: 110px;
|
margin-left: $img-size-lg + $img-size-push;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,74 +197,283 @@ a.text-muted:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.size-32 {
|
.size-32 {
|
||||||
width: 32px;
|
|
||||||
height: 32px;
|
height: 32px;
|
||||||
line-height: 32px;
|
line-height: 32px;
|
||||||
|
width: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.size-40 {
|
.size-40 {
|
||||||
width: 40px;
|
|
||||||
height: 40px;
|
height: 40px;
|
||||||
line-height: 40px;
|
line-height: 40px;
|
||||||
|
width: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.size-50 {
|
.size-50 {
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
height: 50px;
|
||||||
line-height: 50px;
|
line-height: 50px;
|
||||||
|
width: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// General attachemnt block
|
// General attachemnt block
|
||||||
.attachment-block {
|
.attachment-block {
|
||||||
|
background: $gray-100;
|
||||||
border: 1px solid $card-border-color;
|
border: 1px solid $card-border-color;
|
||||||
padding: 5px;
|
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
background: #f7f7f7;
|
padding: 5px;
|
||||||
|
|
||||||
.attachment-img {
|
.attachment-img {
|
||||||
max-width: 100px;
|
|
||||||
max-height: 100px;
|
|
||||||
height: auto;
|
|
||||||
float: left;
|
float: left;
|
||||||
|
height: auto;
|
||||||
|
max-height: 100px;
|
||||||
|
max-width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.attachment-pushed {
|
.attachment-pushed {
|
||||||
margin-left: 110px;
|
margin-left: 110px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.attachment-heading {
|
.attachment-heading {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.attachment-text {
|
.attachment-text {
|
||||||
color: #555;
|
color: $gray-700;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.connectedSortable {
|
// Overlays for Card, InfoBox & SmallBox
|
||||||
min-height: 100px;
|
.card,
|
||||||
|
.overlay-wrapper,
|
||||||
|
.info-box,
|
||||||
|
.small-box {
|
||||||
|
// Box overlay for LOADING STATE effect
|
||||||
|
> .overlay,
|
||||||
|
> .loading-img {
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.overlay {
|
||||||
|
@include border-radius($border-radius);
|
||||||
|
align-items: center;
|
||||||
|
background: rgba($white, 0.7);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
z-index: 50;
|
||||||
|
|
||||||
|
> .fa,
|
||||||
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
|
> .glyphicon,
|
||||||
|
> .ion {
|
||||||
|
color: $gray-800;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.dark {
|
||||||
|
background: rgba($black, 0.5);
|
||||||
|
|
||||||
|
> .fa,
|
||||||
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
|
> .glyphicon,
|
||||||
|
> .ion {
|
||||||
|
color: $gray-400;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ui-helper-hidden-accessible {
|
.tab-pane {
|
||||||
border: 0;
|
// Box overlay for LOADING STATE effect on Tab Panels
|
||||||
clip: rect(0 0 0 0);
|
> .overlay-wrapper {
|
||||||
height: 1px;
|
position: relative;
|
||||||
margin: -1px;
|
> .overlay {
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
flex-direction: column;
|
||||||
|
margin-top: -$card-spacer-x;
|
||||||
|
margin-left: -$card-spacer-x;
|
||||||
|
height: calc(100% + 2 * #{$card-spacer-x});
|
||||||
|
width: calc(100% + 2 * #{$card-spacer-x});
|
||||||
|
|
||||||
|
&.dark {
|
||||||
|
color: $white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ribbon
|
||||||
|
.ribbon-wrapper {
|
||||||
|
height: $ribbon-wrapper-size;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding: 0;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 1px;
|
right: -2px;
|
||||||
|
top: -2px;
|
||||||
|
width: $ribbon-wrapper-size;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
&.ribbon-lg {
|
||||||
|
height: $ribbon-lg-wrapper-size;
|
||||||
|
width: $ribbon-lg-wrapper-size;
|
||||||
|
|
||||||
|
.ribbon {
|
||||||
|
right: $ribbon-lg-right;
|
||||||
|
top: $ribbon-lg-top;
|
||||||
|
width: $ribbon-lg-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.ribbon-xl {
|
||||||
|
height: $ribbon-xl-wrapper-size;
|
||||||
|
width: $ribbon-xl-wrapper-size;
|
||||||
|
|
||||||
|
.ribbon {
|
||||||
|
right: $ribbon-xl-right;
|
||||||
|
top: $ribbon-xl-top;
|
||||||
|
width: $ribbon-xl-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ribbon {
|
||||||
|
box-shadow: 0 0 $ribbon-border-size rgba($black, .3);
|
||||||
|
font-size: $ribbon-font-size;
|
||||||
|
line-height: $ribbon-line-height;
|
||||||
|
padding: $ribbon-padding;
|
||||||
|
position: relative;
|
||||||
|
right: $ribbon-right;
|
||||||
|
text-align: center;
|
||||||
|
text-shadow: 0 -1px 0 rgba($black, .4);
|
||||||
|
text-transform: uppercase;
|
||||||
|
top: $ribbon-top;
|
||||||
|
transform: rotate(45deg);
|
||||||
|
width: $ribbon-width;
|
||||||
|
|
||||||
|
&::before,
|
||||||
|
&::after {
|
||||||
|
border-left: $ribbon-border-size solid transparent;
|
||||||
|
border-right: $ribbon-border-size solid transparent;
|
||||||
|
border-top: $ribbon-border-size solid #9e9e9e;
|
||||||
|
bottom: -$ribbon-border-size;
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sort-highlight {
|
// Scroll To Top
|
||||||
background: #f4f4f4;
|
.back-to-top {
|
||||||
border: 1px dashed #ddd;
|
bottom: 1.25rem;
|
||||||
margin-bottom: 10px;
|
position: fixed;
|
||||||
|
right: 1.25rem;
|
||||||
|
z-index: $zindex-control-sidebar + 1;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Charts
|
// Pre
|
||||||
.chart {
|
pre {
|
||||||
position: relative;
|
padding: .75rem;
|
||||||
overflow: hidden;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.flex-1 {
|
// Blockquotes styles
|
||||||
flex: 1;
|
blockquote {
|
||||||
|
background: $white;
|
||||||
|
border-left: .7rem solid $primary;
|
||||||
|
margin: 1.5em .7rem;
|
||||||
|
padding: 0.5em .7rem;
|
||||||
|
|
||||||
|
.box & {
|
||||||
|
background: $gray-200;
|
||||||
|
}
|
||||||
|
|
||||||
|
p:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
color: $primary;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $color, $value in $theme-colors {
|
||||||
|
&.quote-#{$color} {
|
||||||
|
border-color: $value;
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
color: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $color, $value in $colors {
|
||||||
|
&.quote-#{$color} {
|
||||||
|
border-color: $value;
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
color: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Tab Custom Content
|
||||||
|
|
||||||
|
.tab-custom-content {
|
||||||
|
border-top: $nav-tabs-border-width solid $nav-tabs-border-color;
|
||||||
|
margin-top: .5rem;
|
||||||
|
padding-top: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav + .tab-custom-content {
|
||||||
|
border-top: none;
|
||||||
|
border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
padding-bottom: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Badge BTN Style
|
||||||
|
.badge-btn {
|
||||||
|
border-radius: $button-border-radius-xs;
|
||||||
|
font-size: $button-font-size-xs;
|
||||||
|
font-weight: 400;
|
||||||
|
padding: $button-padding-y-xs*2 $button-padding-x-xs*2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.badge-btn.badge-pill {
|
||||||
|
padding: .375rem .6rem;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,306 +1,13 @@
|
|||||||
// AdminLTE mixins
|
//
|
||||||
// ===============
|
// General: Mixins
|
||||||
|
//
|
||||||
|
|
||||||
// Changes the color and the hovering properties of the navbar
|
@import 'mixins/cards';
|
||||||
@mixin navbar-variant($color, $font-color: rgba(255, 255, 255, 0.8), $hover-color: #f6f6f6, $hover-bg: rgba(0, 0, 0, 0.1)) {
|
@import 'mixins/sidebar';
|
||||||
background-color: $color;
|
@import 'mixins/navbar';
|
||||||
// Navbar links
|
@import 'mixins/accent';
|
||||||
.nav > li > a {
|
@import 'mixins/custom-forms';
|
||||||
color: $font-color;
|
@import 'mixins/backgrounds';
|
||||||
}
|
@import 'mixins/direct-chat';
|
||||||
|
@import 'mixins/toasts';
|
||||||
.nav > li > a:hover,
|
@import 'mixins/miscellaneous';
|
||||||
.nav > li > a:active,
|
|
||||||
.nav > li > a:focus,
|
|
||||||
.nav .open > a,
|
|
||||||
.nav .open > a:hover,
|
|
||||||
.nav .open > a:focus,
|
|
||||||
.nav > .active > a {
|
|
||||||
background: $hover-bg;
|
|
||||||
color: $hover-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add color to the sidebar toggle button
|
|
||||||
.sidebar-toggle {
|
|
||||||
color: $font-color;
|
|
||||||
&:hover {
|
|
||||||
color: $hover-color;
|
|
||||||
background: $hover-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Logo color variation
|
|
||||||
@mixin logo-variant($bg-color, $color: #fff, $border-bottom-color: transparent, $border-bottom-width: 0) {
|
|
||||||
background-color: $bg-color;
|
|
||||||
color: $color;
|
|
||||||
border-bottom: $border-bottom-width solid $border-bottom-color;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: darken($bg-color, 1%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Box solid color variantion creator
|
|
||||||
@mixin box-solid-variant($color, $text-color: #fff) {
|
|
||||||
border: 1px solid $color;
|
|
||||||
> .card-header {
|
|
||||||
color: $text-color;
|
|
||||||
background: $color;
|
|
||||||
background-color: $color;
|
|
||||||
a,
|
|
||||||
.btn {
|
|
||||||
color: $text-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Direct Chat Variant
|
|
||||||
@mixin direct-chat-variant($bg-color, $color: #fff) {
|
|
||||||
.right > .direct-chat-text {
|
|
||||||
background: $bg-color;
|
|
||||||
border-color: $bg-color;
|
|
||||||
color: color-yiq($bg-color);
|
|
||||||
&:after,
|
|
||||||
&:before {
|
|
||||||
border-left-color: $bg-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin translate($x, $y) {
|
|
||||||
-webkit-transform: translate($x, $y);
|
|
||||||
-ms-transform: translate($x, $y); // IE9 only
|
|
||||||
transform: translate($x, $y);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Different radius each side
|
|
||||||
@mixin border-radius-sides($top-left, $top-right, $bottom-left, $bottom-right) {
|
|
||||||
border-radius: $top-left $top-right $bottom-left $bottom-right;
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin calc($property, $expression) {
|
|
||||||
#{$property}: -webkit-calc(#{$expression});
|
|
||||||
#{$property}: calc(#{$expression});
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin rotate($value) {
|
|
||||||
-ms-transform: rotate($value);
|
|
||||||
transform: rotate($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin animation($animation) {
|
|
||||||
animation: $animation;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gradient background
|
|
||||||
@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {
|
|
||||||
background: $color;
|
|
||||||
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, $start), color-stop(1, $stop));
|
|
||||||
background: -ms-linear-gradient(bottom, $start, $stop);
|
|
||||||
background: -moz-linear-gradient(center bottom, $start 0%, $stop 100%);
|
|
||||||
background: -o-linear-gradient($stop, $start);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Skins Mixins
|
|
||||||
|
|
||||||
// Dark Sidebar Mixin
|
|
||||||
@mixin skin-dark-sidebar($link-hover-border-color) {
|
|
||||||
// Sidebar background color
|
|
||||||
background-color: $sidebar-dark-bg;
|
|
||||||
|
|
||||||
// User Panel (resides in the sidebar)
|
|
||||||
.user-panel {
|
|
||||||
a:hover {
|
|
||||||
color: $sidebar-dark-hover-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status {
|
|
||||||
color: $sidebar-dark-color;
|
|
||||||
background: $sidebar-dark-hover-bg;
|
|
||||||
&:hover,
|
|
||||||
&:focus,
|
|
||||||
&:active {
|
|
||||||
color: $sidebar-dark-hover-color;
|
|
||||||
background: darken($sidebar-dark-hover-bg, 3%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
border-color: darken($sidebar-dark-hover-bg, 5%);
|
|
||||||
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-item {
|
|
||||||
color: $body-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sidebar Menu. First level links
|
|
||||||
.nav-sidebar > .nav-item {
|
|
||||||
// links
|
|
||||||
> .nav-link {
|
|
||||||
// border-left: 3px solid transparent;
|
|
||||||
&:active,
|
|
||||||
&:focus {
|
|
||||||
color: $sidebar-dark-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hover and active states
|
|
||||||
&.menu-open > .nav-link,
|
|
||||||
&:hover > .nav-link {
|
|
||||||
color: $sidebar-dark-hover-color;
|
|
||||||
background-color: $sidebar-dark-hover-bg;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .nav-link.active {
|
|
||||||
color: $sidebar-dark-hover-color;
|
|
||||||
background-color: $link-hover-border-color;
|
|
||||||
@if $enable-shadows {
|
|
||||||
@extend .elevation-1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// First Level Submenu
|
|
||||||
> .nav-treeview {
|
|
||||||
background: $sidebar-dark-submenu-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Section Heading
|
|
||||||
.nav-header {
|
|
||||||
color: lighten($sidebar-dark-color, 5%);
|
|
||||||
background: inherit; //darken($sidebar-dark-bg, 3%);
|
|
||||||
}
|
|
||||||
|
|
||||||
// All links within the sidebar menu
|
|
||||||
.sidebar a {
|
|
||||||
color: $sidebar-dark-color;
|
|
||||||
&:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// All submenus
|
|
||||||
.nav-treeview {
|
|
||||||
> .nav-item {
|
|
||||||
> .nav-link {
|
|
||||||
color: $sidebar-dark-submenu-color;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: $sidebar-dark-submenu-hover-color;
|
|
||||||
background-color: $sidebar-dark-submenu-hover-bg
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .nav-link.active {
|
|
||||||
&,
|
|
||||||
&:hover {
|
|
||||||
color: $sidebar-dark-submenu-active-color;
|
|
||||||
background-color: $sidebar-dark-submenu-active-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Light Sidebar Mixin
|
|
||||||
@mixin skin-light-sidebar($link-hover-border-color) {
|
|
||||||
// Sidebar background color
|
|
||||||
background-color: $sidebar-light-bg;
|
|
||||||
|
|
||||||
// User Panel (resides in the sidebar)
|
|
||||||
.user-panel {
|
|
||||||
a:hover {
|
|
||||||
color: $sidebar-light-hover-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
.status {
|
|
||||||
color: $sidebar-light-color;
|
|
||||||
background: $sidebar-light-hover-bg;
|
|
||||||
&:hover,
|
|
||||||
&:focus,
|
|
||||||
&:active {
|
|
||||||
color: $sidebar-light-hover-color;
|
|
||||||
background: darken($sidebar-light-hover-bg, 3%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-menu {
|
|
||||||
border-color: darken($sidebar-light-hover-bg, 5%);
|
|
||||||
@include box-shadow(0 2px 4px rgba(0, 0, 0, .4));
|
|
||||||
}
|
|
||||||
|
|
||||||
.dropdown-item {
|
|
||||||
color: $body-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sidebar Menu. First level links
|
|
||||||
.nav-sidebar > .nav-item {
|
|
||||||
// links
|
|
||||||
> .nav-link {
|
|
||||||
// border-left: 3px solid transparent;
|
|
||||||
&:active,
|
|
||||||
&:focus {
|
|
||||||
color: $sidebar-light-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hover and active states
|
|
||||||
&.menu-open > .nav-link,
|
|
||||||
&:hover > .nav-link {
|
|
||||||
color: $sidebar-light-hover-color;
|
|
||||||
background-color: $sidebar-light-hover-bg;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .nav-link.active {
|
|
||||||
color: $sidebar-light-active-color;
|
|
||||||
background-color: $link-hover-border-color;
|
|
||||||
@if $enable-shadows {
|
|
||||||
@extend .elevation-1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// First Level Submenu
|
|
||||||
> .nav-treeview {
|
|
||||||
background: $sidebar-light-submenu-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Section Heading
|
|
||||||
.nav-header {
|
|
||||||
color: darken($sidebar-light-color, 5%);
|
|
||||||
background: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
// All links within the sidebar menu
|
|
||||||
.sidebar a {
|
|
||||||
color: $sidebar-light-color;
|
|
||||||
&:hover {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// All submenus
|
|
||||||
.nav-treeview {
|
|
||||||
> .nav-item {
|
|
||||||
> .nav-link {
|
|
||||||
color: $sidebar-light-submenu-color;
|
|
||||||
}
|
|
||||||
|
|
||||||
> .nav-link.active {
|
|
||||||
&,
|
|
||||||
&:hover {
|
|
||||||
color: $sidebar-light-submenu-active-color;
|
|
||||||
background-color: $sidebar-light-submenu-active-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
> .nav-link:hover {
|
|
||||||
background-color: $sidebar-light-submenu-hover-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
40
build/scss/_modals.scss
Normal file
40
build/scss/_modals.scss
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
//
|
||||||
|
// Component: Modals
|
||||||
|
//
|
||||||
|
|
||||||
|
// Overlay
|
||||||
|
.modal-dialog {
|
||||||
|
.overlay {
|
||||||
|
background-color: $black;
|
||||||
|
display: block;
|
||||||
|
height: 100%;
|
||||||
|
left: 0;
|
||||||
|
opacity: .7;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 100%;
|
||||||
|
z-index: ($zindex-modal + 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// BG Color Variations Fixes
|
||||||
|
.modal-content {
|
||||||
|
&.bg-warning {
|
||||||
|
.modal-header,
|
||||||
|
.modal-footer {
|
||||||
|
border-color: $gray-800;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bg-primary,
|
||||||
|
&.bg-secondary,
|
||||||
|
&.bg-info,
|
||||||
|
&.bg-danger,
|
||||||
|
&.bg-success, {
|
||||||
|
.close {
|
||||||
|
color: $white;
|
||||||
|
text-shadow: 0 1px 0 #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,13 +1,100 @@
|
|||||||
/*
|
//
|
||||||
* Component: Nav
|
// Component: Nav
|
||||||
* --------------
|
//
|
||||||
*/
|
|
||||||
.nav-pills {
|
.nav-pills {
|
||||||
.nav-link {
|
.nav-link {
|
||||||
color: $gray-600;
|
color: $gray-600;
|
||||||
|
|
||||||
&:not(.active):hover {
|
&:not(.active):hover {
|
||||||
color: theme-color("primary")
|
color: theme-color('primary');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-item {
|
||||||
|
&.dropdown.show {
|
||||||
|
.nav-link:hover {
|
||||||
|
color: $dropdown-link-active-color;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Vertical Tabs
|
||||||
|
.nav-tabs.flex-column {
|
||||||
|
border-bottom: 0;
|
||||||
|
border-right: $nav-tabs-border-width solid $nav-tabs-border-color;
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
border-bottom-left-radius: $nav-tabs-border-radius;
|
||||||
|
border-top-right-radius: 0;
|
||||||
|
margin-right: -$nav-tabs-border-width;
|
||||||
|
|
||||||
|
@include hover-focus {
|
||||||
|
border-color: $gray-200 transparent $gray-200 $gray-200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link.active,
|
||||||
|
.nav-item.show .nav-link {
|
||||||
|
border-color: $gray-300 transparent $gray-300 $gray-300;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.nav-tabs-right {
|
||||||
|
border-left: $nav-tabs-border-width solid $nav-tabs-border-color;
|
||||||
|
border-right: 0;
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: $nav-tabs-border-radius;
|
||||||
|
border-top-left-radius: 0;
|
||||||
|
border-top-right-radius: $nav-tabs-border-radius;
|
||||||
|
margin-left: -$nav-tabs-border-width;
|
||||||
|
|
||||||
|
@include hover-focus {
|
||||||
|
border-color: $gray-200 $gray-200 $gray-200 transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-link.active,
|
||||||
|
.nav-item.show .nav-link {
|
||||||
|
border-color: $gray-300 $gray-300 $gray-300 transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-no-expand {
|
||||||
|
flex-direction: row;
|
||||||
|
|
||||||
|
.nav-link {
|
||||||
|
padding-left: $navbar-nav-link-padding-x;
|
||||||
|
padding-right: $navbar-nav-link-padding-x;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-menu {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Color variants
|
||||||
|
@each $color, $value in $theme-colors {
|
||||||
|
@if $color == dark or $color == light {
|
||||||
|
.navbar-#{$color} {
|
||||||
|
background-color: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $color, $value in $theme-colors {
|
||||||
|
@if $color != dark and $color != light {
|
||||||
|
.navbar-#{$color} {
|
||||||
|
background-color: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $color, $value in $colors {
|
||||||
|
.navbar-#{$color} {
|
||||||
|
background-color: $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
//
|
||||||
* Misc: print
|
// Misc: Print
|
||||||
* -----------
|
//
|
||||||
*/
|
|
||||||
@media print {
|
@media print {
|
||||||
//Add to elements that you do not want to show when printing
|
//Add to elements that you do not want to show when printing
|
||||||
.no-print {
|
.no-print {
|
||||||
@@ -18,9 +18,9 @@
|
|||||||
//This is the only element that should appear, so let's remove the margins
|
//This is the only element that should appear, so let's remove the margins
|
||||||
.content-wrapper,
|
.content-wrapper,
|
||||||
.main-footer {
|
.main-footer {
|
||||||
|
@include translate(0, 0);
|
||||||
margin-left: 0 !important;
|
margin-left: 0 !important;
|
||||||
min-height: 0 !important;
|
min-height: 0 !important;
|
||||||
@include translate(0, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.layout-fixed .content-wrapper {
|
.layout-fixed .content-wrapper {
|
||||||
@@ -29,10 +29,10 @@
|
|||||||
|
|
||||||
//Invoice printing
|
//Invoice printing
|
||||||
.invoice {
|
.invoice {
|
||||||
width: 100%;
|
|
||||||
border: 0;
|
border: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.invoice-col {
|
.invoice-col {
|
||||||
@@ -43,6 +43,7 @@
|
|||||||
//Make sure table content displays properly
|
//Make sure table content displays properly
|
||||||
.table-responsive {
|
.table-responsive {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
|
||||||
> .table tr th,
|
> .table tr th,
|
||||||
> .table tr td {
|
> .table tr td {
|
||||||
white-space: normal !important;
|
white-space: normal !important;
|
||||||
|
|||||||
@@ -1,44 +1,53 @@
|
|||||||
/*
|
//
|
||||||
* Component: Products List
|
// Component: Products
|
||||||
* ------------------------
|
//
|
||||||
*/
|
|
||||||
.products-list {
|
.products-list {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
> .item {
|
> .item {
|
||||||
|
@include clearfix;
|
||||||
|
|
||||||
@if $enable-rounded {
|
@if $enable-rounded {
|
||||||
@include border-radius($border-radius);
|
@include border-radius($border-radius);
|
||||||
}
|
}
|
||||||
@include clearfix();
|
|
||||||
padding: 10px 0;
|
|
||||||
background: $white;
|
background: $white;
|
||||||
|
padding: 10px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-img {
|
.product-img {
|
||||||
float: left;
|
float: left;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
height: 50px;
|
||||||
|
width: 50px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-info {
|
.product-info {
|
||||||
margin-left: 60px;
|
margin-left: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-title {
|
.product-title {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-description {
|
.product-description {
|
||||||
display: block;
|
|
||||||
color: $gray-600;
|
color: $gray-600;
|
||||||
|
display: block;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-list-in-card > .item {
|
.product-list-in-card > .item {
|
||||||
@include border-radius(0);
|
@include border-radius(0);
|
||||||
border-bottom: 1px solid $card-border-color;
|
border-bottom: 1px solid $card-border-color;
|
||||||
|
|
||||||
&:last-of-type {
|
&:last-of-type {
|
||||||
border-bottom-width: 0;
|
border-bottom-width: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,46 @@
|
|||||||
/*
|
//
|
||||||
* Component: Progress Bar
|
// Component: Progress Bar
|
||||||
* -----------------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
//General CSS
|
//General CSS
|
||||||
.progress {
|
.progress {
|
||||||
@include box-shadow(none);
|
@include box-shadow(none);
|
||||||
@include border-radius($progress-bar-border-radius);
|
@include border-radius($progress-bar-border-radius);
|
||||||
|
|
||||||
|
// Vertical bars
|
||||||
|
&.vertical {
|
||||||
|
display: inline-block;
|
||||||
|
height: 200px;
|
||||||
|
margin-right: 10px;
|
||||||
|
position: relative;
|
||||||
|
width: 30px;
|
||||||
|
|
||||||
|
> .progress-bar {
|
||||||
|
bottom: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Sizes
|
||||||
|
&.sm,
|
||||||
|
&.progress-sm {
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.xs,
|
||||||
|
&.progress-xs {
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.xxs,
|
||||||
|
&.progress-xxs {
|
||||||
|
width: 3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.progress-group {
|
.progress-group {
|
||||||
@extend .mb-2;
|
margin-bottom: map-get($spacers, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// size variation
|
// size variation
|
||||||
@@ -26,38 +56,11 @@
|
|||||||
height: 3px;
|
height: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vertical bars
|
|
||||||
.progress.vertical {
|
|
||||||
position: relative;
|
|
||||||
width: 30px;
|
|
||||||
height: 200px;
|
|
||||||
display: inline-block;
|
|
||||||
margin-right: 10px;
|
|
||||||
> .progress-bar {
|
|
||||||
width: 100%;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Sizes
|
|
||||||
&.sm,
|
|
||||||
&.progress-sm {
|
|
||||||
width: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.xs,
|
|
||||||
&.progress-xs {
|
|
||||||
width: 10px;
|
|
||||||
}
|
|
||||||
&.xxs,
|
|
||||||
&.progress-xxs {
|
|
||||||
width: 3px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Remove margins from progress bars when put in a table
|
// Remove margins from progress bars when put in a table
|
||||||
.table {
|
.table {
|
||||||
tr > td .progress {
|
tr > td {
|
||||||
margin: 0;
|
.progress {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,117 +0,0 @@
|
|||||||
/*
|
|
||||||
* Plugin: Select2
|
|
||||||
* ---------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
//Signle select
|
|
||||||
.select2-container--default,
|
|
||||||
.select2-selection {
|
|
||||||
&.select2-container--focus,
|
|
||||||
&:focus,
|
|
||||||
&:active {
|
|
||||||
outline: none;
|
|
||||||
}
|
|
||||||
.select2-selection--single {
|
|
||||||
border: 1px solid $gray-x-light;
|
|
||||||
//border-radius: $input-radius;
|
|
||||||
padding: 6px 12px;
|
|
||||||
height: 34px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default.select2-container--open {
|
|
||||||
border-color: theme-color("primary");
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-dropdown {
|
|
||||||
border: 1px solid $gray-x-light;
|
|
||||||
//border-radius: $input-radius;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
|
||||||
background-color: theme-color("primary");
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-results__option {
|
|
||||||
padding: 6px 12px;
|
|
||||||
user-select: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container .select2-selection--single .select2-selection__rendered {
|
|
||||||
padding-left: 0;
|
|
||||||
padding-right: 0;
|
|
||||||
height: auto;
|
|
||||||
margin-top: -4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
|
|
||||||
padding-right: 6px;
|
|
||||||
padding-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
|
||||||
height: 28px;
|
|
||||||
right: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-dropdown,
|
|
||||||
.select2-search--inline {
|
|
||||||
.select2-search__field {
|
|
||||||
border: 1px solid $gray-x-light;
|
|
||||||
&:focus {
|
|
||||||
outline: none;
|
|
||||||
border: 1px solid theme-color("primary");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-results__option[aria-disabled=true] {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-results__option[aria-selected=true] {
|
|
||||||
background-color: #ddd;
|
|
||||||
&,
|
|
||||||
&:hover {
|
|
||||||
color: #444;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Multiple select
|
|
||||||
.select2-container--default {
|
|
||||||
.select2-selection--multiple {
|
|
||||||
border: 1px solid $gray-x-light;
|
|
||||||
//border-radius: $input-radius;
|
|
||||||
&:focus {
|
|
||||||
border-color: theme-color("primary");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&.select2-container--focus .select2-selection--multiple {
|
|
||||||
border-color: $gray-x-light;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
|
||||||
background-color: theme-color("primary");
|
|
||||||
border-color: darken(theme-color("primary"), 5%);
|
|
||||||
padding: 1px 10px;
|
|
||||||
color: $white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
|
||||||
margin-right: 5px;
|
|
||||||
color: rgba(255, 255, 255, 0.7);
|
|
||||||
&:hover {
|
|
||||||
color: $white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.select2-container .select2-selection--single .select2-selection__rendered {
|
|
||||||
padding-right: 10px;
|
|
||||||
}
|
|
||||||
@@ -1,104 +1,122 @@
|
|||||||
/*
|
//
|
||||||
* Component: Sidebar Mini
|
// Component: Sidebar Mini
|
||||||
*/
|
//
|
||||||
|
|
||||||
|
// Logo style
|
||||||
|
.logo-xs,
|
||||||
|
.logo-xl {
|
||||||
|
opacity: 1;
|
||||||
|
position: absolute;
|
||||||
|
visibility: visible;
|
||||||
|
|
||||||
|
&.brand-image-xs {
|
||||||
|
left: 18px;
|
||||||
|
top: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.brand-image-xl {
|
||||||
|
left: 12px;
|
||||||
|
top: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-xs {
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
|
||||||
|
&.brand-image-xl {
|
||||||
|
left: 16px;
|
||||||
|
top: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-link {
|
||||||
|
&.logo-switch {
|
||||||
|
&::before {
|
||||||
|
content: '\00a0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add sidebar-mini class to the body tag to activate this feature
|
// Add sidebar-mini class to the body tag to activate this feature
|
||||||
.sidebar-mini {
|
.sidebar-mini {
|
||||||
// Sidebar mini should work only on large devices
|
|
||||||
@include media-breakpoint-up(lg) {
|
@include media-breakpoint-up(lg) {
|
||||||
// A fix for text overflow while transitioning from sidebar mini to full sidebar
|
@include sidebar-mini-breakpoint;
|
||||||
.nav-sidebar,
|
}
|
||||||
.nav-sidebar > .nav-header,
|
}
|
||||||
.nav-sidebar .nav-link {
|
@include media-breakpoint-down(md) {
|
||||||
white-space: nowrap;
|
.sidebar-mini.sidebar-collapse .main-sidebar {
|
||||||
overflow: hidden;
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-mini-md {
|
||||||
|
@include media-breakpoint-up(md) {
|
||||||
|
@include sidebar-mini-breakpoint;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@include media-breakpoint-down(sm) {
|
||||||
|
.sidebar-mini-md.sidebar-collapse .main-sidebar {
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-collapse {
|
||||||
|
.main-sidebar.sidebar-focused,
|
||||||
|
.main-sidebar:hover {
|
||||||
|
.nav-header {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar-no-expand.main-sidebar.sidebar-focused,
|
||||||
|
.sidebar-no-expand.main-sidebar:hover {
|
||||||
|
width: $sidebar-mini-width;
|
||||||
|
|
||||||
|
.nav-header {
|
||||||
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
// When the sidebar is collapsed...
|
.brand-link {
|
||||||
&.sidebar-collapse {
|
width: $sidebar-mini-width !important;
|
||||||
.d-hidden-mini {
|
}
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Apply the new margins to the main content and footer
|
.user-panel .image {
|
||||||
.content-wrapper,
|
float: none !important;
|
||||||
.main-footer,
|
}
|
||||||
.main-header {
|
|
||||||
margin-left: $sidebar-mini-width !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the sidebar headers
|
.logo-xs {
|
||||||
.nav-sidebar .nav-header {
|
opacity: 1;
|
||||||
display: none;
|
visibility: visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar .user-panel > .info,
|
.logo-xl {
|
||||||
.nav-sidebar .nav-link p,
|
opacity: 0;
|
||||||
.brand-text {
|
visibility: hidden;
|
||||||
opacity: 0;
|
}
|
||||||
margin-left: -10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Modify the sidebar to shrink instead of disappearing
|
.nav-sidebar.nav-child-indent .nav-treeview {
|
||||||
.main-sidebar {
|
padding-left: 0;
|
||||||
&,
|
}
|
||||||
&:before {
|
|
||||||
// Don't go away! Just shrink
|
|
||||||
margin-left: 0;
|
|
||||||
width: $sidebar-mini-width;
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-panel {
|
.brand-text,
|
||||||
.image {
|
.user-panel > .info,
|
||||||
float: none;
|
.nav-sidebar .nav-link p {
|
||||||
}
|
margin-left: -10px;
|
||||||
}
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
.nav-sidebar > .nav-item .nav-icon {
|
||||||
width: $sidebar-width;
|
margin-right: 0;
|
||||||
.user-panel {
|
|
||||||
text-align: left;
|
|
||||||
.image {
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.user-panel > .info,
|
|
||||||
.nav-sidebar .nav-link p,
|
|
||||||
.brand-text {
|
|
||||||
opacity: 1;
|
|
||||||
margin-left: 0;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.brand-image {
|
|
||||||
margin-right: .5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make the sidebar links, menus, labels, badges
|
|
||||||
// and angle icons disappear
|
|
||||||
.sidebar-form,
|
|
||||||
.user-panel > .info {
|
|
||||||
display: block !important;
|
|
||||||
-webkit-transform: translateZ(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-sidebar > .nav-item > .nav-link > span {
|
|
||||||
display: inline-block !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make an element visible only when sidebar mini is active
|
|
||||||
.visible-sidebar-mini {
|
|
||||||
display: block !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-sidebar {
|
.nav-sidebar {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
}
|
}
|
||||||
@@ -112,16 +130,19 @@
|
|||||||
|
|
||||||
.nav-sidebar .nav-item > .nav-link {
|
.nav-sidebar .nav-item > .nav-link {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
> .float-right {
|
> .float-right {
|
||||||
|
margin-top: -7px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
margin-top: -7px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar .nav-link p,
|
.sidebar .nav-link p,
|
||||||
.main-sidebar .brand-text,
|
.main-sidebar .brand-text,
|
||||||
|
.main-sidebar .logo-xs,
|
||||||
|
.main-sidebar .logo-xl,
|
||||||
.sidebar .user-panel .info {
|
.sidebar .user-panel .info {
|
||||||
@include transition(margin-left $transition-speed linear, opacity .5s ease)
|
@include transition(margin-left $transition-speed linear, opacity $transition-speed ease, visibility $transition-speed ease)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
/*
|
//
|
||||||
* Component: Small Box
|
// Component: Small Box
|
||||||
* --------------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.small-box {
|
.small-box {
|
||||||
@include border-radius($border-radius);
|
@include border-radius($border-radius);
|
||||||
@include box-shadow($card-shadow);
|
@include box-shadow($card-shadow);
|
||||||
@extend .mb-3;
|
|
||||||
|
|
||||||
position: relative;
|
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
// content wrapper
|
// content wrapper
|
||||||
> .inner {
|
> .inner {
|
||||||
@@ -18,61 +16,122 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
> .small-box-footer {
|
> .small-box-footer {
|
||||||
|
background: rgba($black, 0.1);
|
||||||
|
color: rgba($white, 0.8);
|
||||||
|
display: block;
|
||||||
|
padding: 3px 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 3px 0;
|
|
||||||
color: $white;
|
|
||||||
color: rgba(255, 255, 255, 0.8);
|
|
||||||
display: block;
|
|
||||||
z-index: 10;
|
|
||||||
background: rgba(0, 0, 0, 0.1);
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
background: rgba($black, 0.15);
|
||||||
color: $white;
|
color: $white;
|
||||||
background: rgba(0, 0, 0, 0.15);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 38px;
|
@include font-size(2.2rem);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
margin: 0 0 10px 0;
|
margin: 0 0 10px 0;
|
||||||
white-space: nowrap;
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(lg) {
|
||||||
|
.col-xl-2 &,
|
||||||
|
.col-lg-2 &,
|
||||||
|
.col-md-2 & {
|
||||||
|
h3 {
|
||||||
|
@include font-size(1.6rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-3 &,
|
||||||
|
.col-lg-3 &,
|
||||||
|
.col-md-3 & {
|
||||||
|
h3 {
|
||||||
|
@include font-size(1.6rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-up(xl) {
|
||||||
|
.col-xl-2 &,
|
||||||
|
.col-lg-2 &,
|
||||||
|
.col-md-2 & {
|
||||||
|
h3 {
|
||||||
|
@include font-size(2.2rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-xl-3 &,
|
||||||
|
.col-lg-3 &,
|
||||||
|
.col-md-3 & {
|
||||||
|
h3 {
|
||||||
|
@include font-size(2.2rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
font-size: 15px;
|
font-size: 1rem;
|
||||||
|
|
||||||
> small {
|
> small {
|
||||||
|
color: $gray-100;
|
||||||
display: block;
|
display: block;
|
||||||
color: #f9f9f9;
|
font-size: 0.9rem;
|
||||||
font-size: 13px;
|
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h3, p {
|
h3,
|
||||||
|
p {
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
// the icon
|
// the icon
|
||||||
.icon {
|
.icon {
|
||||||
transition: all $transition-speed linear;
|
color: rgba($black, 0.15);
|
||||||
position: absolute;
|
|
||||||
top: -10px;
|
|
||||||
right: 10px;
|
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
font-size: 90px;
|
|
||||||
color: rgba(0, 0, 0, 0.15);
|
> i {
|
||||||
|
font-size: 90px;
|
||||||
|
position: absolute;
|
||||||
|
right: 15px;
|
||||||
|
top: 15px;
|
||||||
|
transition: all $transition-speed linear;
|
||||||
|
|
||||||
|
&.fa,
|
||||||
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
font-size: 70px;
|
||||||
|
top: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Small box hover state
|
// Small box hover state
|
||||||
&:hover {
|
&:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
||||||
// Animate icons on small box hover
|
// Animate icons on small box hover
|
||||||
.icon {
|
.icon > i {
|
||||||
font-size: 95px;
|
font-size: 95px;
|
||||||
|
|
||||||
|
&.fa,
|
||||||
|
&.fas,
|
||||||
|
&.far,
|
||||||
|
&.fab,
|
||||||
|
&.glyphicon,
|
||||||
|
&.ion {
|
||||||
|
font-size: 75px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -81,9 +140,11 @@
|
|||||||
// No need for icons on very small devices
|
// No need for icons on very small devices
|
||||||
.small-box {
|
.small-box {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
|
||||||
.icon {
|
.icon {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,81 +1,93 @@
|
|||||||
/*
|
//
|
||||||
* Component: Social Widgets
|
// Component: Social Widgets
|
||||||
* -------------------------
|
//
|
||||||
*/
|
|
||||||
//General widget style
|
//General widget style
|
||||||
.card-widget {
|
.card-widget {
|
||||||
border: none;
|
border: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
//User Widget Style 1
|
//User Widget Style 1
|
||||||
.widget-user {
|
.widget-user {
|
||||||
|
|
||||||
//User name container
|
//User name container
|
||||||
.widget-user-header {
|
.widget-user-header {
|
||||||
padding: 1rem;
|
|
||||||
height: 120px;
|
|
||||||
@if $enable-rounded {
|
@if $enable-rounded {
|
||||||
@include border-top-radius($border-radius);
|
@include border-top-radius($border-radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
height: 135px;
|
||||||
|
padding: 1rem;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
//User name
|
//User name
|
||||||
.widget-user-username {
|
.widget-user-username {
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
|
margin-bottom: 0;
|
||||||
|
margin-top: 0;
|
||||||
|
text-shadow: 0 1px 1px rgba($black, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
//User single line description
|
//User single line description
|
||||||
.widget-user-desc {
|
.widget-user-desc {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//User image container
|
//User image container
|
||||||
.widget-user-image {
|
.widget-user-image {
|
||||||
position: absolute;
|
|
||||||
top: 65px;
|
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -45px;
|
margin-left: -45px;
|
||||||
|
position: absolute;
|
||||||
|
top: 80px;
|
||||||
|
|
||||||
> img {
|
> img {
|
||||||
width: 90px;
|
|
||||||
height: auto;
|
|
||||||
border: 3px solid $white;
|
border: 3px solid $white;
|
||||||
|
height: auto;
|
||||||
|
width: 90px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-footer {
|
.card-footer {
|
||||||
padding-top: 40px;
|
padding-top: 50px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//User Widget Style 2
|
//User Widget Style 2
|
||||||
.widget-user-2 {
|
.widget-user-2 {
|
||||||
|
|
||||||
//User name container
|
//User name container
|
||||||
.widget-user-header {
|
.widget-user-header {
|
||||||
padding: 1rem;
|
|
||||||
@include border-top-radius($border-radius);
|
@include border-top-radius($border-radius);
|
||||||
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
//User name
|
//User name
|
||||||
.widget-user-username {
|
.widget-user-username {
|
||||||
margin-top: 5px;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
//User single line description
|
//User single line description
|
||||||
.widget-user-desc {
|
.widget-user-desc {
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.widget-user-username,
|
.widget-user-username,
|
||||||
.widget-user-desc {
|
.widget-user-desc {
|
||||||
margin-left: 75px;
|
margin-left: 75px;
|
||||||
}
|
}
|
||||||
|
|
||||||
//User image container
|
//User image container
|
||||||
.widget-user-image {
|
.widget-user-image {
|
||||||
> img {
|
> img {
|
||||||
width: 65px;
|
|
||||||
height: auto;
|
|
||||||
float: left;
|
float: left;
|
||||||
|
height: auto;
|
||||||
|
width: 65px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,42 +1,74 @@
|
|||||||
/*
|
//
|
||||||
* Component: Table
|
// Component: Table
|
||||||
* ----------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.table.no-border {
|
.table {
|
||||||
&,
|
&:not(.table-dark) {
|
||||||
td,
|
color: inherit;
|
||||||
th {
|
|
||||||
border: 0;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// .text-center in tables
|
// fixed table head
|
||||||
.table.text-center {
|
&.table-head-fixed {
|
||||||
&, td, th {
|
thead tr:nth-child(1) th {
|
||||||
text-align: center;
|
background-color: $white;
|
||||||
}
|
border-bottom: 0;
|
||||||
}
|
box-shadow: inset 0 1px 0 $table-border-color,
|
||||||
|
inset 0 -1px 0 $table-border-color;
|
||||||
.table-valign-middle {
|
position: sticky;
|
||||||
thead > tr > th,
|
top: 0;
|
||||||
thead > tr > td,
|
z-index: 10;
|
||||||
tbody > tr > th,
|
|
||||||
tbody > tr > td {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.card-body.p-0 .table {
|
|
||||||
thead > tr > th,
|
|
||||||
thead > tr > td,
|
|
||||||
tbody > tr > th,
|
|
||||||
tbody > tr > td {
|
|
||||||
&:first-of-type {
|
|
||||||
@extend .pl-4;
|
|
||||||
}
|
}
|
||||||
&:last-of-type {
|
|
||||||
@extend .pr-4;
|
&.table-dark {
|
||||||
|
thead tr {
|
||||||
|
&:nth-child(1) th {
|
||||||
|
background-color: $table-dark-bg;
|
||||||
|
box-shadow: inset 0 1px 0 $table-dark-border-color,
|
||||||
|
inset 0 -1px 0 $table-dark-border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// no border
|
||||||
|
&.no-border {
|
||||||
|
&,
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// .text-center in tables
|
||||||
|
&.text-center {
|
||||||
|
&,
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.table-valign-middle {
|
||||||
|
thead > tr > th,
|
||||||
|
thead > tr > td,
|
||||||
|
tbody > tr > th,
|
||||||
|
tbody > tr > td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-body.p-0 & {
|
||||||
|
thead > tr > th,
|
||||||
|
thead > tr > td,
|
||||||
|
tbody > tr > th,
|
||||||
|
tbody > tr > td {
|
||||||
|
&:first-of-type {
|
||||||
|
padding-left: map-get($spacers, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:last-of-type {
|
||||||
|
padding-right: map-get($spacers, 4);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,21 +1,37 @@
|
|||||||
|
//
|
||||||
|
// Component: Text
|
||||||
|
//
|
||||||
|
|
||||||
|
// text modification
|
||||||
.text-bold {
|
.text-bold {
|
||||||
&, &.table td, &.table th {
|
&, &.table td, &.table th {
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-sm {
|
.text-xs {
|
||||||
font-size: $font-size-sm;
|
font-size: $font-size-xs !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-xs {
|
.text-sm {
|
||||||
font-size: $font-size-base;
|
font-size: $font-size-sm !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-md {
|
||||||
|
font-size: $font-size-base !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-lg {
|
.text-lg {
|
||||||
font-size: $font-size-lg;
|
font-size: $font-size-lg !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-xl {
|
.text-xl {
|
||||||
font-size: $font-size-xl;
|
font-size: $font-size-xl !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// text color variations
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
.text-#{$name} {
|
||||||
|
color: #{$color};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,108 +1,126 @@
|
|||||||
/*
|
//
|
||||||
* Component: Timeline
|
// Component: Timeline
|
||||||
* -------------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.timeline {
|
.timeline {
|
||||||
position: relative;
|
margin: 0 0 45px;
|
||||||
margin: 0 0 30px 0;
|
|
||||||
padding: 0;
|
padding: 0;
|
||||||
list-style: none;
|
position: relative;
|
||||||
|
|
||||||
// The line
|
// The line
|
||||||
&:before {
|
&::before {
|
||||||
content: '';
|
@include border-radius($border-radius);
|
||||||
position: absolute;
|
background: $gray-300;
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 4px;
|
content: '';
|
||||||
background: #ddd;
|
|
||||||
left: 31px;
|
left: 31px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@include border-radius($border-radius);
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
width: 4px;
|
||||||
}
|
}
|
||||||
|
// Element
|
||||||
|
> div {
|
||||||
|
&::before,
|
||||||
|
&::after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
> li {
|
|
||||||
position: relative;
|
|
||||||
margin-right: 10px;
|
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
@include clearfix();
|
margin-right: 10px;
|
||||||
|
position: relative;
|
||||||
// The content
|
// The content
|
||||||
> .timeline-item {
|
> .timeline-item {
|
||||||
@include box-shadow($card-shadow);
|
@include box-shadow($card-shadow);
|
||||||
@include border-radius($border-radius);
|
@include border-radius($border-radius);
|
||||||
margin-top: 0;
|
|
||||||
background: $white;
|
background: $white;
|
||||||
color: #444;
|
color: $gray-700;
|
||||||
margin-left: 60px;
|
margin-left: 60px;
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
|
margin-top: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
// The time and header
|
// The time and header
|
||||||
> .time {
|
> .time {
|
||||||
color: #999;
|
color: #999;
|
||||||
float: right;
|
float: right;
|
||||||
padding: 10px;
|
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
|
||||||
> .timeline-header {
|
|
||||||
margin: 0;
|
|
||||||
color: #555;
|
|
||||||
border-bottom: 1px solid $card-border-color;
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
}
|
||||||
|
// Header
|
||||||
|
> .timeline-header {
|
||||||
|
border-bottom: 1px solid $card-border-color;
|
||||||
|
color: $gray-700;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
// Link in header
|
||||||
> a {
|
> a {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Item body and footer
|
// Item body and footer
|
||||||
> .timeline-body, > .timeline-footer {
|
> .timeline-body,
|
||||||
|
> .timeline-footer {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
> .timeline-body {
|
||||||
|
> img {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
> dl, ol, ul {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// The icons
|
> .timeline-footer {
|
||||||
|
> a {
|
||||||
|
color: $white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// The icons at line
|
||||||
> .fa,
|
> .fa,
|
||||||
|
> .fas,
|
||||||
|
> .far,
|
||||||
|
> .fab,
|
||||||
> .glyphicon,
|
> .glyphicon,
|
||||||
> .ion {
|
> .ion {
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
font-size: 15px;
|
|
||||||
line-height: 30px;
|
|
||||||
position: absolute;
|
|
||||||
background: $gray-500;
|
background: $gray-500;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
text-align: center;
|
font-size: 15px;
|
||||||
|
height: 30px;
|
||||||
left: 18px;
|
left: 18px;
|
||||||
|
line-height: 30px;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
width: 30px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Time label
|
// Time label
|
||||||
> .time-label {
|
> .time-label {
|
||||||
> span {
|
> span {
|
||||||
|
@include border-radius(4px);
|
||||||
|
background-color: $white;
|
||||||
|
display: inline-block;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
display: inline-block;
|
|
||||||
background-color: $white;
|
|
||||||
|
|
||||||
@include border-radius(4px);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.timeline-inverse {
|
.timeline-inverse {
|
||||||
> li {
|
> div {
|
||||||
> .timeline-item {
|
> .timeline-item {
|
||||||
background: $gray-100;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
@include box-shadow(none);
|
@include box-shadow(none);
|
||||||
|
background: $gray-100;
|
||||||
|
border: 1px solid $gray-300;
|
||||||
|
|
||||||
> .timeline-header {
|
> .timeline-header {
|
||||||
border-bottom-color: #ddd;
|
border-bottom-color: $gray-300;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
56
build/scss/_toasts.scss
Normal file
56
build/scss/_toasts.scss
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
//
|
||||||
|
// Component: Toasts
|
||||||
|
//
|
||||||
|
|
||||||
|
.toasts-top-right {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: $zindex-toasts;
|
||||||
|
|
||||||
|
&.fixed {
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toasts-top-left {
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
z-index: $zindex-toasts;
|
||||||
|
|
||||||
|
&.fixed {
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toasts-bottom-right {
|
||||||
|
bottom: 0;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
z-index: $zindex-toasts;
|
||||||
|
|
||||||
|
&.fixed {
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toasts-bottom-left {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
position: absolute;
|
||||||
|
z-index: $zindex-toasts;
|
||||||
|
|
||||||
|
&.fixed {
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toast {
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
@include toast-variant($name, $color);
|
||||||
|
}
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
@include toast-variant($name, $color);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,19 +1,22 @@
|
|||||||
/*
|
//
|
||||||
* Component: Users List
|
// Component: Users List
|
||||||
* ---------------------
|
//
|
||||||
*/
|
|
||||||
.users-list {
|
.users-list {
|
||||||
@extend .list-unstyled;
|
@include list-unstyled;
|
||||||
|
|
||||||
> li {
|
> li {
|
||||||
width: 25%;
|
|
||||||
float: left;
|
float: left;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
width: 25%;
|
||||||
|
|
||||||
img {
|
img {
|
||||||
@include border-radius(50%);
|
@include border-radius(50%);
|
||||||
max-width: 100%;
|
|
||||||
height: auto;
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
> a:hover {
|
> a:hover {
|
||||||
&,
|
&,
|
||||||
.users-list-name {
|
.users-list-name {
|
||||||
@@ -29,14 +32,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.users-list-name {
|
.users-list-name {
|
||||||
|
color: $gray-700;
|
||||||
font-size: $font-size-sm;
|
font-size: $font-size-sm;
|
||||||
color: #444;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
white-space: nowrap;
|
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.users-list-date {
|
.users-list-date {
|
||||||
color: #999;
|
color: darken($gray-500, 20%);
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,31 @@
|
|||||||
// AdminLTE 3 Variables.less
|
//
|
||||||
// =========================
|
// Core: Variables
|
||||||
|
//
|
||||||
|
|
||||||
// COLORS
|
// COLORS
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
$blue: #0073b7 !default;
|
$blue: #0073b7 !default;
|
||||||
$navy: #001F3F !default;
|
$lightblue: #3c8dbc !default;
|
||||||
$teal: #39CCCC !default;
|
$navy: #001f3f !default;
|
||||||
$olive: #3D9970 !default;
|
$teal: #39cccc !default;
|
||||||
$lime: #01FF70 !default;
|
$olive: #3d9970 !default;
|
||||||
$orange: #FF851B !default;
|
$lime: #01ff70 !default;
|
||||||
$fuchsia: #F012BE !default;
|
$orange: #ff851b !default;
|
||||||
|
$fuchsia: #f012be !default;
|
||||||
$purple: #605ca8 !default;
|
$purple: #605ca8 !default;
|
||||||
$maroon: #D81B60 !default;
|
$maroon: #d81b60 !default;
|
||||||
$black: #111 !default;
|
$black: #111 !default;
|
||||||
$gray-x-light: #d2d6de !default;
|
$gray-x-light: #d2d6de !default;
|
||||||
|
|
||||||
|
$colors: map-merge((
|
||||||
|
'lightblue': $lightblue,
|
||||||
|
'navy': $navy,
|
||||||
|
'olive': $olive,
|
||||||
|
'lime': $lime,
|
||||||
|
'fuchsia': $fuchsia,
|
||||||
|
'maroon': $maroon,
|
||||||
|
), $colors);
|
||||||
|
|
||||||
// LAYOUT
|
// LAYOUT
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
|
|
||||||
@@ -38,13 +49,29 @@ $main-bg: #f4f6f9 !default;
|
|||||||
$content-padding-y: 0 !default;
|
$content-padding-y: 0 !default;
|
||||||
$content-padding-x: $navbar-padding-x !default;
|
$content-padding-x: $navbar-padding-x !default;
|
||||||
|
|
||||||
|
// IMAGE SIZES
|
||||||
|
// --------------------------------------------------------
|
||||||
|
$img-size-sm: 1.875rem !default;
|
||||||
|
$img-size-md: 3.75rem !default;
|
||||||
|
$img-size-lg: 6.25rem !default;
|
||||||
|
$img-size-push: .625rem !default;
|
||||||
|
|
||||||
// MAIN HEADER
|
// MAIN HEADER
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
|
$main-header-bottom-border-width: $border-width !default;
|
||||||
|
$main-header-bottom-border-color: $gray-300 !default;
|
||||||
|
$main-header-bottom-border: $main-header-bottom-border-width solid $main-header-bottom-border-color !default;
|
||||||
$main-header-link-padding-y: $navbar-padding-y !default;
|
$main-header-link-padding-y: $navbar-padding-y !default;
|
||||||
$main-header-link-padding-x: $navbar-padding-x !default;
|
$main-header-link-padding-x: $navbar-padding-x !default;
|
||||||
$main-header-brand-padding-y: $navbar-brand-padding-y !default;
|
$main-header-brand-padding-y: $navbar-brand-padding-y !default;
|
||||||
$main-header-brand-padding-x: $navbar-padding-x !default;
|
$main-header-brand-padding-x: $navbar-padding-x !default;
|
||||||
$main-header-height: (($font-size-root * $line-height-base) + ($main-header-link-padding-y * 2)) !default;
|
$main-header-height-inner: ($nav-link-height + ($main-header-link-padding-y * 2)) !default;
|
||||||
|
$main-header-height: calc(#{$main-header-height-inner} + #{$main-header-bottom-border-width}) !default;
|
||||||
|
$nav-link-sm-padding-y: .35rem !default;
|
||||||
|
$nav-link-sm-height: ($font-size-sm * $line-height-sm + $nav-link-sm-padding-y * 1.785) !default;
|
||||||
|
$main-header-height-sm-inner: ($nav-link-sm-height + ($main-header-link-padding-y * 2)) !default;
|
||||||
|
$main-header-height-sm: calc(#{$main-header-height-sm-inner} + #{$main-header-bottom-border-width}) !default;
|
||||||
|
|
||||||
|
|
||||||
// Main header skins
|
// Main header skins
|
||||||
$main-header-dark-form-control-bg: hsla(100, 100%, 100%, 0.2) !default;
|
$main-header-dark-form-control-bg: hsla(100, 100%, 100%, 0.2) !default;
|
||||||
@@ -63,12 +90,16 @@ $main-header-light-placeholder-color: hsla(0, 0%, 0%, 0.6) !default;
|
|||||||
|
|
||||||
// MAIN FOOTER
|
// MAIN FOOTER
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
$main-footer-padding: 15px !default;
|
$main-footer-padding: 1rem !default;
|
||||||
|
$main-footer-padding-sm: $main-footer-padding * .812 !default;
|
||||||
$main-footer-border-top-width: 1px !default;
|
$main-footer-border-top-width: 1px !default;
|
||||||
$main-footer-border-top-color: $gray-300 !default;
|
$main-footer-border-top-color: $gray-300 !default;
|
||||||
$main-footer-border-top: $main-footer-border-top-width solid $main-footer-border-top-color !default;
|
$main-footer-border-top: $main-footer-border-top-width solid $main-footer-border-top-color !default;
|
||||||
$main-footer-height: 30px; //(($font-size-root * $line-height-base) + ($main-footer-padding * 2)) + $main-footer-border-top-width !default;
|
$main-footer-height-inner: (($font-size-root * $line-height-base) + ($main-footer-padding * 2)) !default;
|
||||||
$main-footer-bg: $white;
|
$main-footer-height: calc(#{$main-footer-height-inner} + #{$main-footer-border-top-width}) !default;
|
||||||
|
$main-footer-height-sm-inner: (($font-size-sm * $line-height-base) + ($main-footer-padding-sm * 2)) !default;
|
||||||
|
$main-footer-height-sm: calc(#{$main-footer-height-sm-inner} + #{$main-footer-border-top-width}) !default;
|
||||||
|
$main-footer-bg: $white !default;
|
||||||
|
|
||||||
// SIDEBAR SKINS
|
// SIDEBAR SKINS
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
@@ -89,10 +120,10 @@ $sidebar-dark-header-color: $white !default;
|
|||||||
|
|
||||||
// Light sidebar
|
// Light sidebar
|
||||||
$sidebar-light-bg: $white !default;
|
$sidebar-light-bg: $white !default;
|
||||||
$sidebar-light-hover-bg: lighten(#f0f0f1, 1.5%) !default;
|
$sidebar-light-hover-bg: rgba($black, .1) !default;
|
||||||
$sidebar-light-color: $gray-800 !default;
|
$sidebar-light-color: $gray-800 !default;
|
||||||
$sidebar-light-hover-color: $gray-900 !default;
|
$sidebar-light-hover-color: $gray-900 !default;
|
||||||
$sidebar-light-active-color: $white !default;
|
$sidebar-light-active-color: $black !default;
|
||||||
$sidebar-light-submenu-bg: transparent !default;
|
$sidebar-light-submenu-bg: transparent !default;
|
||||||
$sidebar-light-submenu-color: #777 !default;
|
$sidebar-light-submenu-color: #777 !default;
|
||||||
$sidebar-light-submenu-hover-color: #000 !default;
|
$sidebar-light-submenu-hover-color: #000 !default;
|
||||||
@@ -104,8 +135,8 @@ $sidebar-light-header-color: $gray-800 !default;
|
|||||||
// SIDEBAR MINI
|
// SIDEBAR MINI
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
$sidebar-mini-width: ($nav-link-padding-x + $sidebar-padding-x + .8rem) * 2 !default;
|
$sidebar-mini-width: ($nav-link-padding-x + $sidebar-padding-x + .8rem) * 2 !default;
|
||||||
$sidebar-nav-icon-width: $sidebar-mini-width - (($sidebar-padding-x + $nav-link-padding-x) * 2);
|
$sidebar-nav-icon-width: $sidebar-mini-width - (($sidebar-padding-x + $nav-link-padding-x) * 2) !default;
|
||||||
$sidebar-user-image-width: $sidebar-nav-icon-width + ($nav-link-padding-x / 2);
|
$sidebar-user-image-width: $sidebar-nav-icon-width + ($nav-link-padding-x / 2) !default;
|
||||||
|
|
||||||
// CONTROL SIDEBAR
|
// CONTROL SIDEBAR
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
@@ -113,10 +144,15 @@ $control-sidebar-width: $sidebar-width !default;
|
|||||||
|
|
||||||
// Cards
|
// Cards
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
$card-border-color: #f4f4f4 !default;
|
$card-border-color: $gray-100 !default;
|
||||||
|
$card-dark-border-color: lighten($gray-900, 10%) !default;
|
||||||
$card-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2) !default;
|
$card-shadow: 0 0 1px rgba(0, 0, 0, .125), 0 1px 3px rgba(0, 0, 0, .2) !default;
|
||||||
$card-title-font-size: $font-size-lg;
|
$card-title-font-size: 1.1rem !default;
|
||||||
$card-title-font-weight: $font-weight-normal;
|
$card-title-font-size-sm: 1rem !default;
|
||||||
|
$card-title-font-weight: $font-weight-normal !default;
|
||||||
|
$card-nav-link-padding-sm-y: .4rem !default;
|
||||||
|
$card-nav-link-padding-sm-x: .8rem !default;
|
||||||
|
$card-img-size: $img-size-sm !default;
|
||||||
|
|
||||||
// PROGRESS BARS
|
// PROGRESS BARS
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
@@ -137,9 +173,12 @@ $attachment-border-radius: 3px !default;
|
|||||||
|
|
||||||
// Z-INDEX
|
// Z-INDEX
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
$zindex-main-header: 1000 !default;
|
$zindex-main-header: $zindex-fixed + 4 !default;
|
||||||
$zindex-main-sidebar: 1100 !default;
|
$zindex-main-sidebar: $zindex-fixed + 8 !default;
|
||||||
|
$zindex-main-footer: $zindex-fixed + 2 !default;
|
||||||
|
$zindex-control-sidebar: $zindex-fixed + 1 !default;
|
||||||
$zindex-sidebar-mini-links: 010 !default;
|
$zindex-sidebar-mini-links: 010 !default;
|
||||||
|
$zindex-toasts: $zindex-main-sidebar + 2 !default;
|
||||||
|
|
||||||
// TRANSITIONS SETTINGS
|
// TRANSITIONS SETTINGS
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
@@ -150,4 +189,49 @@ $transition-fn: ease-in-out !default;
|
|||||||
|
|
||||||
// TEXT
|
// TEXT
|
||||||
// --------------------------------------------------------
|
// --------------------------------------------------------
|
||||||
$font-size-xl: ($font-size-base * 2);
|
$font-size-xs: ($font-size-base * .75) !default;
|
||||||
|
$font-size-xl: ($font-size-base * 2) !default;
|
||||||
|
|
||||||
|
|
||||||
|
// BUTTON
|
||||||
|
// --------------------------------------------------------
|
||||||
|
$button-default-background-color: $gray-100 !default;
|
||||||
|
$button-default-color: #444 !default;
|
||||||
|
$button-default-border-color: #ddd !default;
|
||||||
|
|
||||||
|
$button-padding-y-xs: .125rem !default;
|
||||||
|
$button-padding-x-xs: .25rem !default;
|
||||||
|
$button-line-height-xs: $line-height-sm !default;
|
||||||
|
$button-font-size-xs: ($font-size-base * .75) !default;
|
||||||
|
$button-border-radius-xs: .15rem !default;
|
||||||
|
|
||||||
|
|
||||||
|
// ELEVATION
|
||||||
|
// --------------------------------------------------------
|
||||||
|
$elevations: ();
|
||||||
|
$elevations: map-merge((
|
||||||
|
1: unquote('0 1px 3px ' + rgba($black, 0.12) + ', 0 1px 2px ' + rgba($black, 0.24)),
|
||||||
|
2: unquote('0 3px 6px ' + rgba($black, 0.16) + ', 0 3px 6px ' + rgba($black, 0.23)),
|
||||||
|
3: unquote('0 10px 20px ' + rgba($black, 0.19) + ', 0 6px 6px ' + rgba($black, 0.23)),
|
||||||
|
4: unquote('0 14px 28px ' + rgba($black, 0.25) + ', 0 10px 10px ' + rgba($black, 0.22)),
|
||||||
|
5: unquote('0 19px 38px ' + rgba($black, 0.30) + ', 0 15px 12px ' + rgba($black, 0.22)),
|
||||||
|
), $elevations);
|
||||||
|
|
||||||
|
// RIBBON
|
||||||
|
// --------------------------------------------------------
|
||||||
|
$ribbon-border-size: 3px !default;
|
||||||
|
$ribbon-line-height: 100% !default;
|
||||||
|
$ribbon-padding: .375rem 0 !default;
|
||||||
|
$ribbon-font-size: .8rem !default;
|
||||||
|
$ribbon-width: 90px !default;
|
||||||
|
$ribbon-wrapper-size: 70px !default;
|
||||||
|
$ribbon-top: 10px !default;
|
||||||
|
$ribbon-right: -2px !default;
|
||||||
|
$ribbon-lg-wrapper-size: 120px !default;
|
||||||
|
$ribbon-lg-width: 160px !default;
|
||||||
|
$ribbon-lg-top: 26px !default;
|
||||||
|
$ribbon-lg-right: 0px !default;
|
||||||
|
$ribbon-xl-wrapper-size: 180px !default;
|
||||||
|
$ribbon-xl-width: 240px !default;
|
||||||
|
$ribbon-xl-top: 47px !default;
|
||||||
|
$ribbon-xl-right: 4px !default;
|
||||||
|
|||||||
86
build/scss/mixins/_accent.scss
Normal file
86
build/scss/mixins/_accent.scss
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Accent
|
||||||
|
//
|
||||||
|
|
||||||
|
// Accent Variant
|
||||||
|
@mixin accent-variant($name, $color) {
|
||||||
|
.accent-#{$name} {
|
||||||
|
$link-color: $color;
|
||||||
|
$link-hover-color: darken($color, 15%);
|
||||||
|
$pagination-active-bg: $color;
|
||||||
|
$pagination-active-border-color: $color;
|
||||||
|
|
||||||
|
.btn-link,
|
||||||
|
a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {
|
||||||
|
color: $link-color;
|
||||||
|
|
||||||
|
@include hover {
|
||||||
|
color: $link-hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.dropdown-item {
|
||||||
|
&:active,
|
||||||
|
&.active {
|
||||||
|
background: $color;
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.custom-control-input:checked ~ .custom-control-label {
|
||||||
|
&::before {
|
||||||
|
background: $color;
|
||||||
|
border-color: darken($color, 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
$newColor: color-yiq($color);
|
||||||
|
background-image: str-replace($custom-checkbox-indicator-icon-checked, str-replace(#{$custom-control-indicator-checked-color}, '#', '%23'), str-replace(#{$newColor}, '#', '%23'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control:focus:not(.is-invalid):not(.is-warning):not(.is-valid),
|
||||||
|
.custom-select:focus,
|
||||||
|
.custom-control-input:focus:not(:checked) ~ .custom-control-label::before,
|
||||||
|
.custom-file-input:focus ~ .custom-file-label {
|
||||||
|
border-color: lighten($color, 25%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-item {
|
||||||
|
&.active .page-link {
|
||||||
|
background-color: $pagination-active-bg;
|
||||||
|
border-color: $pagination-active-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.disabled .page-link {
|
||||||
|
background-color: $pagination-disabled-bg;
|
||||||
|
border-color: $pagination-disabled-border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*="sidebar-dark-"] {
|
||||||
|
.sidebar {
|
||||||
|
a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {
|
||||||
|
color: $sidebar-dark-color;
|
||||||
|
|
||||||
|
@include hover {
|
||||||
|
color: $sidebar-dark-hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*="sidebar-light-"] {
|
||||||
|
.sidebar {
|
||||||
|
a:not(.dropdown-item):not(.btn-app):not(.nav-link):not(.brand-link) {
|
||||||
|
color: $sidebar-light-color;
|
||||||
|
|
||||||
|
@include hover {
|
||||||
|
color: $sidebar-light-hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
64
build/scss/mixins/_backgrounds.scss
Normal file
64
build/scss/mixins/_backgrounds.scss
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Backgrounds
|
||||||
|
//
|
||||||
|
|
||||||
|
// Background Variant
|
||||||
|
@mixin background-variant($name, $color) {
|
||||||
|
.bg-#{$name} {
|
||||||
|
background-color: #{$color} !important;
|
||||||
|
|
||||||
|
&,
|
||||||
|
> a {
|
||||||
|
color: color-yiq($color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.btn {
|
||||||
|
&:hover {
|
||||||
|
border-color: darken($color, 10%);
|
||||||
|
color: darken(color-yiq($color), 7.5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:disabled):not(.disabled):active,
|
||||||
|
&:not(:disabled):not(.disabled).active,
|
||||||
|
&:active,
|
||||||
|
&.active {
|
||||||
|
background-color: darken($color, 10%) !important;
|
||||||
|
border-color: darken($color, 12.5%);
|
||||||
|
color: color-yiq(darken($color, 10%));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Background Gradient Variant
|
||||||
|
@mixin background-gradient-variant($name, $color) {
|
||||||
|
.bg-gradient-#{$name} {
|
||||||
|
@include bg-gradient-variant('&', $color);
|
||||||
|
color: color-yiq($color);
|
||||||
|
|
||||||
|
&.btn {
|
||||||
|
&.disabled,
|
||||||
|
&:disabled,
|
||||||
|
&:not(:disabled):not(.disabled):active,
|
||||||
|
&:not(:disabled):not(.disabled).active,
|
||||||
|
.show > &.dropdown-toggle {
|
||||||
|
background-image: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@include bg-gradient-variant('&', darken($color, 7.5%));
|
||||||
|
border-color: darken($color, 10%);
|
||||||
|
color: darken(color-yiq($color), 7.5%);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:not(:disabled):not(.disabled):active,
|
||||||
|
&:not(:disabled):not(.disabled).active,
|
||||||
|
&:active,
|
||||||
|
&.active {
|
||||||
|
@include bg-gradient-variant('&', darken($color, 10%));
|
||||||
|
border-color: darken($color, 12.5%);
|
||||||
|
color: color-yiq(darken($color, 10%));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
82
build/scss/mixins/_cards.scss
Normal file
82
build/scss/mixins/_cards.scss
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Cards Variant
|
||||||
|
//
|
||||||
|
|
||||||
|
@mixin cards-variant($name, $color) {
|
||||||
|
.card-#{$name} {
|
||||||
|
&:not(.card-outline) {
|
||||||
|
> .card-header {
|
||||||
|
background-color: $color;
|
||||||
|
|
||||||
|
&,
|
||||||
|
a {
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
|
||||||
|
a.active {
|
||||||
|
color: color-yiq($white);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.card-outline {
|
||||||
|
border-top: 3px solid $color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.card-outline-tabs {
|
||||||
|
> .card-header {
|
||||||
|
a {
|
||||||
|
&:hover {
|
||||||
|
border-top: 3px solid $nav-tabs-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
border-top: 3px solid $color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg-#{$name},
|
||||||
|
.bg-gradient-#{$name},
|
||||||
|
.card-#{$name}:not(.card-outline) {
|
||||||
|
.btn-tool {
|
||||||
|
color: rgba(color-yiq($color), 0.8);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card.bg-#{$name},
|
||||||
|
.card.bg-gradient-#{$name} {
|
||||||
|
.bootstrap-datetimepicker-widget {
|
||||||
|
.table td,
|
||||||
|
.table th {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table thead tr:first-child th:hover,
|
||||||
|
table td.day:hover,
|
||||||
|
table td.hour:hover,
|
||||||
|
table td.minute:hover,
|
||||||
|
table td.second:hover {
|
||||||
|
background: darken($color, 8%);
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
|
||||||
|
table td.today::before {
|
||||||
|
border-bottom-color: color-yiq($color);
|
||||||
|
}
|
||||||
|
|
||||||
|
table td.active,
|
||||||
|
table td.active:hover {
|
||||||
|
background: lighten($color, 10%);
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
81
build/scss/mixins/_custom-forms.scss
Normal file
81
build/scss/mixins/_custom-forms.scss
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Custom Forms
|
||||||
|
//
|
||||||
|
|
||||||
|
// Custom Switch Variant
|
||||||
|
@mixin custom-switch-variant($name, $color) {
|
||||||
|
&.custom-switch-off-#{$name} {
|
||||||
|
& .custom-control-input ~ .custom-control-label::before {
|
||||||
|
background: #{$color};
|
||||||
|
border-color: darken($color, 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
& .custom-control-input:focus ~ .custom-control-label::before {
|
||||||
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
& .custom-control-input ~ .custom-control-label::after {
|
||||||
|
background: darken($color, 25%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.custom-switch-on-#{$name} {
|
||||||
|
& .custom-control-input:checked ~ .custom-control-label::before {
|
||||||
|
background: #{$color};
|
||||||
|
border-color: darken($color, 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
& .custom-control-input:checked:focus ~ .custom-control-label::before {
|
||||||
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
& .custom-control-input:checked ~ .custom-control-label::after {
|
||||||
|
background: lighten($color, 30%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Custom Range Variant
|
||||||
|
@mixin custom-range-variant($name, $color) {
|
||||||
|
&.custom-range-#{$name} {
|
||||||
|
&:focus {
|
||||||
|
outline: none;
|
||||||
|
|
||||||
|
&::-webkit-slider-thumb {
|
||||||
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-moz-range-thumb {
|
||||||
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-ms-thumb {
|
||||||
|
box-shadow: 0 0 0 1px $body-bg, 0 0 0 2px rgba($color, .25);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-webkit-slider-thumb {
|
||||||
|
background-color: $color;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: lighten($color, 35%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-moz-range-thumb {
|
||||||
|
background-color: $color;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: lighten($color, 35%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&::-ms-thumb {
|
||||||
|
background-color: $color;
|
||||||
|
|
||||||
|
&:active {
|
||||||
|
background-color: lighten($color, 35%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
build/scss/mixins/_direct-chat.scss
Normal file
17
build/scss/mixins/_direct-chat.scss
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Direct Chat
|
||||||
|
//
|
||||||
|
|
||||||
|
// Direct Chat Variant
|
||||||
|
@mixin direct-chat-variant($bg-color, $color: #fff) {
|
||||||
|
.right > .direct-chat-text {
|
||||||
|
background: $bg-color;
|
||||||
|
border-color: $bg-color;
|
||||||
|
color: color-yiq($bg-color);
|
||||||
|
|
||||||
|
&::after,
|
||||||
|
&::before {
|
||||||
|
border-left-color: $bg-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
35
build/scss/mixins/_miscellaneous.scss
Normal file
35
build/scss/mixins/_miscellaneous.scss
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Miscellaneous
|
||||||
|
//
|
||||||
|
|
||||||
|
// ETC
|
||||||
|
@mixin translate($x, $y) {
|
||||||
|
transform: translate($x, $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Different radius each side
|
||||||
|
@mixin border-radius-sides($top-left, $top-right, $bottom-left, $bottom-right) {
|
||||||
|
border-radius: $top-left $top-right $bottom-left $bottom-right;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin calc($property, $expression) {
|
||||||
|
#{$property}: calc(#{$expression});
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin rotate($value) {
|
||||||
|
transform: rotate($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin animation($animation) {
|
||||||
|
animation: $animation;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Gradient background
|
||||||
|
@mixin gradient($color: #F5F5F5, $start: #EEE, $stop: #FFF) {
|
||||||
|
background: $color;
|
||||||
|
background: -webkit-gradient(linear, left bottom, left top, color-stop(0, $start), color-stop(1, $stop));
|
||||||
|
background: -ms-linear-gradient(bottom, $start, $stop);
|
||||||
|
background: -moz-linear-gradient(center bottom, $start 0%, $stop 100%);
|
||||||
|
background: -o-linear-gradient($stop, $start);
|
||||||
|
}
|
||||||
|
|
||||||
34
build/scss/mixins/_navbar.scss
Normal file
34
build/scss/mixins/_navbar.scss
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Navbar
|
||||||
|
//
|
||||||
|
|
||||||
|
// Navbar Variant
|
||||||
|
@mixin navbar-variant($color, $font-color: rgba(255, 255, 255, 0.8), $hover-color: #f6f6f6, $hover-bg: rgba(0, 0, 0, 0.1)) {
|
||||||
|
background-color: $color;
|
||||||
|
|
||||||
|
.nav > li > a {
|
||||||
|
color: $font-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav > li > a:hover,
|
||||||
|
.nav > li > a:active,
|
||||||
|
.nav > li > a:focus,
|
||||||
|
.nav .open > a,
|
||||||
|
.nav .open > a:hover,
|
||||||
|
.nav .open > a:focus,
|
||||||
|
.nav > .active > a {
|
||||||
|
background: $hover-bg;
|
||||||
|
color: $hover-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add color to the sidebar toggle button
|
||||||
|
.sidebar-toggle {
|
||||||
|
color: $font-color;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:focus {
|
||||||
|
background: $hover-bg;
|
||||||
|
color: $hover-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
155
build/scss/mixins/_sidebar.scss
Normal file
155
build/scss/mixins/_sidebar.scss
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Sidebar
|
||||||
|
//
|
||||||
|
|
||||||
|
// Sidebar Color
|
||||||
|
@mixin sidebar-color($color) {
|
||||||
|
.nav-sidebar > .nav-item {
|
||||||
|
& > .nav-link.active {
|
||||||
|
background-color: $color;
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-sidebar.nav-legacy > .nav-item {
|
||||||
|
& > .nav-link.active {
|
||||||
|
border-color: $color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sidebar Mini Breakpoints
|
||||||
|
@mixin sidebar-mini-breakpoint() {
|
||||||
|
// A fix for text overflow while transitioning from sidebar mini to full sidebar
|
||||||
|
.nav-sidebar,
|
||||||
|
.nav-sidebar > .nav-header,
|
||||||
|
.nav-sidebar .nav-link {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
// When the sidebar is collapsed...
|
||||||
|
&.sidebar-collapse {
|
||||||
|
.d-hidden-mini {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Apply the new margins to the main content and footer
|
||||||
|
.content-wrapper,
|
||||||
|
.main-footer,
|
||||||
|
.main-header {
|
||||||
|
margin-left: $sidebar-mini-width !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make the sidebar headers
|
||||||
|
.nav-sidebar .nav-header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-sidebar .nav-link p {
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sidebar .user-panel > .info,
|
||||||
|
.nav-sidebar .nav-link p,
|
||||||
|
.brand-text {
|
||||||
|
margin-left: -10px;
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-xl {
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-xs {
|
||||||
|
display: inline-block;
|
||||||
|
opacity: 1;
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Modify the sidebar to shrink instead of disappearing
|
||||||
|
.main-sidebar {
|
||||||
|
overflow-x: hidden;
|
||||||
|
|
||||||
|
&,
|
||||||
|
&::before {
|
||||||
|
// Don't go away! Just shrink
|
||||||
|
margin-left: 0;
|
||||||
|
width: $sidebar-mini-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-panel {
|
||||||
|
.image {
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&.sidebar-focused {
|
||||||
|
width: $sidebar-width;
|
||||||
|
|
||||||
|
.brand-link {
|
||||||
|
width: $sidebar-width;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-panel {
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
.image {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-panel > .info,
|
||||||
|
.nav-sidebar .nav-link p,
|
||||||
|
.brand-text,
|
||||||
|
.logo-xl {
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 0;
|
||||||
|
opacity: 1;
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo-xs {
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-image {
|
||||||
|
margin-right: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make the sidebar links, menus, labels, badges
|
||||||
|
// and angle icons disappear
|
||||||
|
.sidebar-form,
|
||||||
|
.user-panel > .info {
|
||||||
|
display: block !important;
|
||||||
|
-webkit-transform: translateZ(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
.nav-sidebar > .nav-item > .nav-link > span {
|
||||||
|
display: inline-block !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make an element visible only when sidebar mini is active
|
||||||
|
.visible-sidebar-mini {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.layout-fixed {
|
||||||
|
.main-sidebar:hover {
|
||||||
|
.brand-link {
|
||||||
|
width: $sidebar-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.brand-link {
|
||||||
|
width: $sidebar-mini-width;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
23
build/scss/mixins/_toasts.scss
Normal file
23
build/scss/mixins/_toasts.scss
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
//
|
||||||
|
// Mixins: Toasts
|
||||||
|
//
|
||||||
|
|
||||||
|
// Toast Variant
|
||||||
|
@mixin toast-variant($name, $color) {
|
||||||
|
&.bg-#{$name} {
|
||||||
|
background: rgba($color, .9) !important;
|
||||||
|
@if (color-yiq($color) == $yiq-text-light) {
|
||||||
|
|
||||||
|
.close {
|
||||||
|
color: color-yiq($color);
|
||||||
|
text-shadow: 0 1px 0 #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toast-header {
|
||||||
|
background: rgba($color, .85);
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,36 +1,43 @@
|
|||||||
/*
|
//
|
||||||
* Page: 400 and 500 error pages
|
// Pages: 400 and 500 error pages
|
||||||
* ------------------------------
|
//
|
||||||
*/
|
|
||||||
.error-page {
|
.error-page {
|
||||||
|
margin: 20px auto 0;
|
||||||
width: 600px;
|
width: 600px;
|
||||||
margin: 20px auto 0 auto;
|
|
||||||
@include media-breakpoint-down(sm) {
|
@include media-breakpoint-down(sm) {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
//For the error number e.g: 404
|
//For the error number e.g: 404
|
||||||
> .headline {
|
> .headline {
|
||||||
float: left;
|
float: left;
|
||||||
font-size: 100px;
|
font-size: 100px;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
|
||||||
@include media-breakpoint-down(sm) {
|
@include media-breakpoint-down(sm) {
|
||||||
float: none;
|
float: none;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//For the message
|
//For the message
|
||||||
> .error-content {
|
> .error-content {
|
||||||
|
display: block;
|
||||||
margin-left: 190px;
|
margin-left: 190px;
|
||||||
|
|
||||||
@include media-breakpoint-down(sm) {
|
@include media-breakpoint-down(sm) {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
> h3 {
|
> h3 {
|
||||||
font-weight: 300;
|
|
||||||
font-size: 25px;
|
font-size: 25px;
|
||||||
|
font-weight: 300;
|
||||||
|
|
||||||
@include media-breakpoint-down(sm) {
|
@include media-breakpoint-down(sm) {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
display: block;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
45
build/scss/pages/_e-commerce.scss
Normal file
45
build/scss/pages/_e-commerce.scss
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
//
|
||||||
|
// Pages: E-commerce
|
||||||
|
//
|
||||||
|
|
||||||
|
// product image
|
||||||
|
.product-image {
|
||||||
|
@include img-fluid;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
// product image thumbnails list
|
||||||
|
.product-image-thumbs {
|
||||||
|
align-items: stretch;
|
||||||
|
display: flex;
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// product image thumbnail
|
||||||
|
.product-image-thumb {
|
||||||
|
@include box-shadow($thumbnail-box-shadow);
|
||||||
|
@include border-radius($thumbnail-border-radius);
|
||||||
|
|
||||||
|
background-color: $thumbnail-bg;
|
||||||
|
border: $thumbnail-border-width solid $thumbnail-border-color;
|
||||||
|
display: flex;
|
||||||
|
margin-right: 1rem;
|
||||||
|
max-width: 6.5rem + ($thumbnail-padding * 2);
|
||||||
|
padding: $thumbnail-padding * 2;
|
||||||
|
|
||||||
|
img {
|
||||||
|
@include img-fluid;
|
||||||
|
align-self: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// product share
|
||||||
|
.product-share {
|
||||||
|
a {
|
||||||
|
margin-right: .5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
/*
|
//
|
||||||
* Page: Invoice
|
// Pages: Invoice
|
||||||
* -------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.invoice {
|
.invoice {
|
||||||
position: relative;
|
|
||||||
background: $white;
|
background: $white;
|
||||||
border: 1px solid $card-border-color;
|
border: 1px solid $card-border-color;
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.invoice-title {
|
.invoice-title {
|
||||||
78
build/scss/pages/_lockscreen.scss
Normal file
78
build/scss/pages/_lockscreen.scss
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
//
|
||||||
|
// Pages: Lock Screen
|
||||||
|
//
|
||||||
|
|
||||||
|
// ADD THIS CLASS TO THE <BODY> TAG
|
||||||
|
.lockscreen {
|
||||||
|
background: $gray-200;
|
||||||
|
|
||||||
|
// User name [optional]
|
||||||
|
.lockscreen-name {
|
||||||
|
font-weight: 600;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lockscreen-logo {
|
||||||
|
font-size: 35px;
|
||||||
|
font-weight: 300;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $gray-700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lockscreen-wrapper {
|
||||||
|
margin: 0 auto;
|
||||||
|
margin-top: 10%;
|
||||||
|
max-width: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Will contain the image and the sign in form
|
||||||
|
.lockscreen-item {
|
||||||
|
@include border-radius(4px);
|
||||||
|
background: $white;
|
||||||
|
margin: 10px auto 30px;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
width: 290px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// User image
|
||||||
|
.lockscreen-image {
|
||||||
|
@include border-radius(50%);
|
||||||
|
background: $white;
|
||||||
|
left: -10px;
|
||||||
|
padding: 5px;
|
||||||
|
position: absolute;
|
||||||
|
top: -25px;
|
||||||
|
z-index: 10;
|
||||||
|
|
||||||
|
> img {
|
||||||
|
@include border-radius(50%);
|
||||||
|
height: 70px;
|
||||||
|
width: 70px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contains the password input and the login button
|
||||||
|
.lockscreen-credentials {
|
||||||
|
margin-left: 70px;
|
||||||
|
|
||||||
|
.form-control {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn {
|
||||||
|
background-color: $white;
|
||||||
|
border: 0;
|
||||||
|
padding: 0 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.lockscreen-footer {
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
97
build/scss/pages/_login_and_register.scss
Normal file
97
build/scss/pages/_login_and_register.scss
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
//
|
||||||
|
// Pages: Login & Register
|
||||||
|
//
|
||||||
|
|
||||||
|
.login-logo,
|
||||||
|
.register-logo {
|
||||||
|
font-size: 2.1rem;
|
||||||
|
font-weight: 300;
|
||||||
|
margin-bottom: .9rem;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: $gray-700;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-page,
|
||||||
|
.register-page {
|
||||||
|
align-items: center;
|
||||||
|
background: $gray-200;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100vh;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-box,
|
||||||
|
.register-box {
|
||||||
|
width: 360px;
|
||||||
|
|
||||||
|
@media (max-width: map-get($grid-breakpoints, sm)) {
|
||||||
|
margin-top: .5rem;
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-card-body,
|
||||||
|
.register-card-body {
|
||||||
|
background: $white;
|
||||||
|
border-top: 0;
|
||||||
|
color: #666;
|
||||||
|
padding: 20px;
|
||||||
|
|
||||||
|
.input-group {
|
||||||
|
.form-control {
|
||||||
|
border-right: 0;
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
|
||||||
|
& ~ .input-group-append .input-group-text {
|
||||||
|
border-color: $input-focus-border-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-valid {
|
||||||
|
&:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
& ~ .input-group-append .input-group-text {
|
||||||
|
border-color: $success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.is-invalid {
|
||||||
|
&:focus {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
& ~ .input-group-append .input-group-text {
|
||||||
|
border-color: $danger;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-group-text {
|
||||||
|
background-color: transparent;
|
||||||
|
border-bottom-right-radius: $border-radius;
|
||||||
|
border-left: 0;
|
||||||
|
border-top-right-radius: $border-radius;
|
||||||
|
color: #777;
|
||||||
|
transition: $input-transition;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.login-box-msg,
|
||||||
|
.register-box-msg {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 20px 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-auth-links {
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
//
|
||||||
* Page: Mailbox
|
// Pages: Mailbox
|
||||||
* -------------
|
//
|
||||||
*/
|
|
||||||
.mailbox-messages {
|
.mailbox-messages {
|
||||||
> .table {
|
> .table {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
|
|
||||||
.mailbox-controls {
|
.mailbox-controls {
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
|
|
||||||
&.with-border {
|
&.with-border {
|
||||||
border-bottom: 1px solid $card-border-color;
|
border-bottom: 1px solid $card-border-color;
|
||||||
}
|
}
|
||||||
@@ -18,13 +19,15 @@
|
|||||||
.mailbox-read-info {
|
.mailbox-read-info {
|
||||||
border-bottom: 1px solid $card-border-color;
|
border-bottom: 1px solid $card-border-color;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 5px 0 0 0;
|
padding: 5px 0 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,19 +41,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mailbox-attachments {
|
.mailbox-attachments {
|
||||||
@extend .list-unstyled;
|
@include list-unstyled;
|
||||||
li {
|
li {
|
||||||
float: left;
|
|
||||||
width: 200px;
|
|
||||||
border: 1px solid #eee;
|
border: 1px solid #eee;
|
||||||
|
float: left;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
|
width: 200px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mailbox-attachment-name {
|
.mailbox-attachment-name {
|
||||||
font-weight: bold;
|
|
||||||
color: #666;
|
color: #666;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mailbox-attachment-icon,
|
.mailbox-attachment-icon,
|
||||||
@@ -60,25 +63,33 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.mailbox-attachment-info {
|
.mailbox-attachment-info {
|
||||||
|
background: $gray-100;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background: #f4f4f4;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.mailbox-attachment-size {
|
.mailbox-attachment-size {
|
||||||
color: #999;
|
color: #999;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|
||||||
|
> span {
|
||||||
|
display: inline-block;
|
||||||
|
padding-top: 0.75rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mailbox-attachment-icon {
|
.mailbox-attachment-icon {
|
||||||
text-align: center;
|
|
||||||
font-size: 65px;
|
|
||||||
color: #666;
|
color: #666;
|
||||||
|
font-size: 65px;
|
||||||
|
max-height: 132.5px;
|
||||||
padding: 20px 10px;
|
padding: 20px 10px;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
&.has-img {
|
&.has-img {
|
||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
> img {
|
> img {
|
||||||
max-width: 100%;
|
|
||||||
height: auto;
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,12 @@
|
|||||||
/*
|
//
|
||||||
* Page: Profile
|
// Pages: Profile
|
||||||
* -------------
|
//
|
||||||
*/
|
|
||||||
|
|
||||||
.profile-user-img {
|
.profile-user-img {
|
||||||
margin: 0 auto;
|
|
||||||
width: 100px;
|
|
||||||
padding: 3px;
|
|
||||||
border: 3px solid $gray-500;
|
border: 3px solid $gray-500;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 3px;
|
||||||
|
width: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.profile-username {
|
.profile-username {
|
||||||
@@ -17,15 +16,22 @@
|
|||||||
|
|
||||||
.post {
|
.post {
|
||||||
border-bottom: 1px solid $gray-500;
|
border-bottom: 1px solid $gray-500;
|
||||||
|
color: #666;
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
color: #666;
|
|
||||||
&:last-of-type {
|
&:last-of-type {
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.user-block {
|
.user-block {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
26
build/scss/pages/_projects.scss
Normal file
26
build/scss/pages/_projects.scss
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// Pages: Projects
|
||||||
|
//
|
||||||
|
|
||||||
|
.projects {
|
||||||
|
td {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-inline {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// table avatar
|
||||||
|
img.table-avatar,
|
||||||
|
.table-avatar img {
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline;
|
||||||
|
width: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// project state
|
||||||
|
.project-state {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
14
build/scss/parts/_components.scss
Normal file
14
build/scss/parts/_components.scss
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
//
|
||||||
|
// Part: Components
|
||||||
|
//
|
||||||
|
|
||||||
|
@import '../forms';
|
||||||
|
@import '../progress-bars';
|
||||||
|
@import '../cards';
|
||||||
|
@import '../modals';
|
||||||
|
@import '../toasts';
|
||||||
|
@import '../buttons';
|
||||||
|
@import '../callout';
|
||||||
|
@import '../alerts';
|
||||||
|
@import '../table';
|
||||||
|
@import '../carousel';
|
||||||
12
build/scss/parts/_core.scss
Normal file
12
build/scss/parts/_core.scss
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
//
|
||||||
|
// Part: Core
|
||||||
|
//
|
||||||
|
|
||||||
|
@import '../layout';
|
||||||
|
@import '../main-header';
|
||||||
|
@import '../brand';
|
||||||
|
@import '../main-sidebar';
|
||||||
|
@import '../sidebar-mini';
|
||||||
|
@import '../control-sidebar';
|
||||||
|
@import '../dropdown';
|
||||||
|
@import '../navs';
|
||||||
11
build/scss/parts/_extra-components.scss
Normal file
11
build/scss/parts/_extra-components.scss
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
//
|
||||||
|
// Part: Extra Components
|
||||||
|
//
|
||||||
|
|
||||||
|
@import '../small-box';
|
||||||
|
@import '../info-box';
|
||||||
|
@import '../timeline';
|
||||||
|
@import '../products';
|
||||||
|
@import '../direct-chat';
|
||||||
|
@import '../users-list';
|
||||||
|
@import '../social-widgets';
|
||||||
9
build/scss/parts/_miscellaneous.scss
Normal file
9
build/scss/parts/_miscellaneous.scss
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
//
|
||||||
|
// Part: Miscellaneous
|
||||||
|
//
|
||||||
|
|
||||||
|
@import '../miscellaneous';
|
||||||
|
@import '../print';
|
||||||
|
@import '../text';
|
||||||
|
@import '../elevation';
|
||||||
|
@import '../colors';
|
||||||
12
build/scss/parts/_pages.scss
Normal file
12
build/scss/parts/_pages.scss
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
//
|
||||||
|
// Part: Pages
|
||||||
|
//
|
||||||
|
|
||||||
|
@import '../pages/mailbox';
|
||||||
|
@import '../pages/lockscreen';
|
||||||
|
@import '../pages/login_and_register';
|
||||||
|
@import '../pages/404_500_errors';
|
||||||
|
@import '../pages/invoice';
|
||||||
|
@import '../pages/profile';
|
||||||
|
@import '../pages/e-commerce';
|
||||||
|
@import '../pages/projects';
|
||||||
16
build/scss/parts/_plugins.scss
Normal file
16
build/scss/parts/_plugins.scss
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
//
|
||||||
|
// Part: Plugins
|
||||||
|
//
|
||||||
|
|
||||||
|
@import '../plugins/mixins';
|
||||||
|
@import '../plugins/fullcalendar';
|
||||||
|
@import '../plugins/select2';
|
||||||
|
@import '../plugins/bootstrap-slider';
|
||||||
|
@import '../plugins/icheck-bootstrap';
|
||||||
|
@import '../plugins/mapael';
|
||||||
|
@import '../plugins/jqvmap';
|
||||||
|
@import '../plugins/sweetalert2';
|
||||||
|
@import '../plugins/toastr';
|
||||||
|
@import '../plugins/pace';
|
||||||
|
@import '../plugins/bootstrap-switch';
|
||||||
|
@import '../plugins/miscellaneous';
|
||||||
35
build/scss/plugins/_bootstrap-slider.scss
Normal file
35
build/scss/plugins/_bootstrap-slider.scss
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
//
|
||||||
|
// Plugin: Bootstrap Slider
|
||||||
|
//
|
||||||
|
|
||||||
|
// Tooltip fix
|
||||||
|
.slider .tooltip.in {
|
||||||
|
opacity: $tooltip-opacity;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Style override
|
||||||
|
.slider {
|
||||||
|
&.slider-vertical {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
&.slider-horizontal {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Colors
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
.slider-#{$name} .slider {
|
||||||
|
.slider-selection {
|
||||||
|
background: $color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
.slider-#{$name} .slider {
|
||||||
|
.slider-selection {
|
||||||
|
background: $color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
175
build/scss/plugins/_bootstrap-switch.scss
Normal file
175
build/scss/plugins/_bootstrap-switch.scss
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
/**
|
||||||
|
* bootstrap-switch - Turn checkboxes and radio buttons into toggle switches.
|
||||||
|
*
|
||||||
|
* @version v3.4 (MODDED)
|
||||||
|
* @homepage https://bttstrp.github.io/bootstrap-switch
|
||||||
|
* @author Mattia Larentis <mattia@larentis.eu> (http://larentis.eu)
|
||||||
|
* @license MIT
|
||||||
|
*/
|
||||||
|
|
||||||
|
$bootstrap-switch-border-radius: $btn-border-radius;
|
||||||
|
$bootstrap-switch-handle-border-radius: .1rem;
|
||||||
|
|
||||||
|
.bootstrap-switch {
|
||||||
|
border: $input-border-width solid $input-border-color;
|
||||||
|
border-radius: $bootstrap-switch-border-radius;
|
||||||
|
cursor: pointer;
|
||||||
|
direction: ltr;
|
||||||
|
display: inline-block;
|
||||||
|
line-height: .5rem;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
text-align: left;
|
||||||
|
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
||||||
|
user-select: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
z-index: 0;
|
||||||
|
|
||||||
|
.bootstrap-switch-container {
|
||||||
|
border-radius: $bootstrap-switch-border-radius;
|
||||||
|
display: inline-block;
|
||||||
|
top: 0;
|
||||||
|
transform: translate3d(0, 0, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
&:focus-within {
|
||||||
|
box-shadow: $input-btn-focus-box-shadow;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-switch-handle-on,
|
||||||
|
.bootstrap-switch-handle-off,
|
||||||
|
.bootstrap-switch-label {
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
display: table-cell;
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.2rem;
|
||||||
|
padding: .25rem .5rem;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-switch-handle-on,
|
||||||
|
.bootstrap-switch-handle-off {
|
||||||
|
text-align: center;
|
||||||
|
z-index: 1;
|
||||||
|
|
||||||
|
&.bootstrap-switch-default {
|
||||||
|
background: $gray-200;
|
||||||
|
color: color-yiq($gray-200);
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
&.bootstrap-switch-#{$name} {
|
||||||
|
background: $color;
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
&.bootstrap-switch-#{$name} {
|
||||||
|
background: $color;
|
||||||
|
color: color-yiq($color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-switch-handle-on {
|
||||||
|
border-bottom-left-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
border-top-left-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-switch-handle-off {
|
||||||
|
border-bottom-right-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
border-top-right-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type='radio'],
|
||||||
|
input[type='checkbox'] {
|
||||||
|
filter: alpha(opacity=0);
|
||||||
|
left: 0;
|
||||||
|
margin: 0;
|
||||||
|
opacity: 0;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
z-index: -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-mini {
|
||||||
|
.bootstrap-switch-handle-on,
|
||||||
|
.bootstrap-switch-handle-off,
|
||||||
|
.bootstrap-switch-label {
|
||||||
|
font-size: .875rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: .1rem .3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-small {
|
||||||
|
.bootstrap-switch-handle-on,
|
||||||
|
.bootstrap-switch-handle-off,
|
||||||
|
.bootstrap-switch-label {
|
||||||
|
font-size: .875rem;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: .2rem .4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-large {
|
||||||
|
.bootstrap-switch-handle-on,
|
||||||
|
.bootstrap-switch-handle-off,
|
||||||
|
.bootstrap-switch-label {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
line-height: 1.3333333rem;
|
||||||
|
padding: .3rem .5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-disabled,
|
||||||
|
&.bootstrap-switch-readonly,
|
||||||
|
&.bootstrap-switch-indeterminate {
|
||||||
|
cursor: default;
|
||||||
|
|
||||||
|
.bootstrap-switch-handle-on,
|
||||||
|
.bootstrap-switch-handle-off,
|
||||||
|
.bootstrap-switch-label {
|
||||||
|
cursor: default;
|
||||||
|
filter: alpha(opacity=50);
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-animate .bootstrap-switch-container {
|
||||||
|
transition: margin-left .5s;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-inverse {
|
||||||
|
.bootstrap-switch-handle-on {
|
||||||
|
border-radius: 0 $bootstrap-switch-handle-border-radius $bootstrap-switch-handle-border-radius 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bootstrap-switch-handle-off {
|
||||||
|
border-radius: $bootstrap-switch-handle-border-radius 0 0 $bootstrap-switch-handle-border-radius;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// &.bootstrap-switch-focused {
|
||||||
|
// border-color: $input-btn-focus-color;
|
||||||
|
// box-shadow: $input-btn-focus-box-shadow;
|
||||||
|
// outline: 0;
|
||||||
|
// }
|
||||||
|
|
||||||
|
&.bootstrap-switch-on .bootstrap-switch-label,
|
||||||
|
&.bootstrap-switch-inverse.bootstrap-switch-off .bootstrap-switch-label {
|
||||||
|
border-bottom-right-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
border-top-right-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.bootstrap-switch-off .bootstrap-switch-label,
|
||||||
|
&.bootstrap-switch-inverse.bootstrap-switch-on .bootstrap-switch-label {
|
||||||
|
border-bottom-left-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
border-top-left-radius: $bootstrap-switch-handle-border-radius;
|
||||||
|
}
|
||||||
|
}
|
||||||
131
build/scss/plugins/_fullcalendar.scss
Normal file
131
build/scss/plugins/_fullcalendar.scss
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
//
|
||||||
|
// Plugin: Full Calendar
|
||||||
|
//
|
||||||
|
|
||||||
|
// Buttons
|
||||||
|
.fc-button {
|
||||||
|
background: $gray-100;
|
||||||
|
background-image: none;
|
||||||
|
border-bottom-color: #ddd;
|
||||||
|
border-color: #ddd;
|
||||||
|
color: $gray-700;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&:active,
|
||||||
|
&.hover {
|
||||||
|
background-color: #e9e9e9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar title
|
||||||
|
.fc-header-title h2 {
|
||||||
|
color: #666;
|
||||||
|
font-size: 15px;
|
||||||
|
line-height: 1.6em;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-header-right {
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-header-left {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calendar table header cells
|
||||||
|
.fc-widget-header {
|
||||||
|
background: #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-grid {
|
||||||
|
border: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-widget-header:first-of-type,
|
||||||
|
.fc-widget-content:first-of-type {
|
||||||
|
border-left: 0;
|
||||||
|
border-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-widget-header:last-of-type,
|
||||||
|
.fc-widget-content:last-of-type {
|
||||||
|
border-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-toolbar,
|
||||||
|
.fc-toolbar.fc-header-toolbar {
|
||||||
|
margin: 0;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@include media-breakpoint-down(xs) {
|
||||||
|
.fc-toolbar {
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.fc-left {
|
||||||
|
order: 1;
|
||||||
|
margin-bottom: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-center {
|
||||||
|
order: 0;
|
||||||
|
margin-bottom: .375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-right {
|
||||||
|
order: 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-day-number {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 300;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fc-color-picker {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
> li {
|
||||||
|
float: left;
|
||||||
|
font-size: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
margin-right: 5px;
|
||||||
|
|
||||||
|
.fa,
|
||||||
|
.fas,
|
||||||
|
.far,
|
||||||
|
.fab,
|
||||||
|
.glyphicon,
|
||||||
|
.ion {
|
||||||
|
transition: transform linear .3s;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@include rotate(30deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#add-new-event {
|
||||||
|
transition: all linear .3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.external-event {
|
||||||
|
@include box-shadow($card-shadow);
|
||||||
|
|
||||||
|
border-radius: $border-radius;
|
||||||
|
cursor: move;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 4px;
|
||||||
|
padding: 5px 10px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@include box-shadow(inset 0 0 90px rgba(0, 0, 0, 0.2));
|
||||||
|
}
|
||||||
|
}
|
||||||
41
build/scss/plugins/_icheck-bootstrap.scss
Normal file
41
build/scss/plugins/_icheck-bootstrap.scss
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// Plugin: iCheck Bootstrap
|
||||||
|
//
|
||||||
|
|
||||||
|
// iCheck colors (theme colors)
|
||||||
|
@each $name, $color in $theme-colors {
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type="hidden"] + label::before {
|
||||||
|
border-color: #{$color};
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type="hidden"] + label::before {
|
||||||
|
border-color: #{$color};
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheck-#{$name} > input:first-child:checked + label::before,
|
||||||
|
.icheck-#{$name} > input:first-child:checked + input[type="hidden"] + label::before {
|
||||||
|
background-color: #{$color};
|
||||||
|
border-color: #{$color};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// iCheck colors (colors)
|
||||||
|
@each $name, $color in $colors {
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + label::before,
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):hover + input[type="hidden"] + label::before {
|
||||||
|
border-color: #{$color};
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + label::before,
|
||||||
|
.icheck-#{$name} > input:first-child:not(:checked):not(:disabled):focus + input[type="hidden"] + label::before {
|
||||||
|
border-color: #{$color};
|
||||||
|
}
|
||||||
|
|
||||||
|
.icheck-#{$name} > input:first-child:checked + label::before,
|
||||||
|
.icheck-#{$name} > input:first-child:checked + input[type="hidden"] + label::before {
|
||||||
|
background-color: #{$color};
|
||||||
|
border-color: #{$color};
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user