mirror of
https://github.com/vbenjs/vue-vben-admin.git
synced 2025-08-25 16:16:20 +08:00
Compare commits
525 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
596670dc88 | ||
![]() |
680ad0763c | ||
![]() |
7a7dab0c4b | ||
![]() |
59eb828d4d | ||
![]() |
52af1dd0d4 | ||
![]() |
897bed9729 | ||
![]() |
a764a95ae9 | ||
![]() |
535bdddf91 | ||
![]() |
18567e13a6 | ||
![]() |
03b17a8f8b | ||
![]() |
8832a074dc | ||
![]() |
61ce25be1b | ||
![]() |
d9d0071401 | ||
![]() |
f8440175f3 | ||
![]() |
5baaa58581 | ||
![]() |
f707541dda | ||
![]() |
b06a7ab77b | ||
![]() |
1b3058f825 | ||
![]() |
d81db890df | ||
![]() |
c1178027f0 | ||
![]() |
db7254a5e0 | ||
![]() |
dc51e6a8d4 | ||
![]() |
4b46a84c2b | ||
![]() |
87583c8b54 | ||
![]() |
1e63379088 | ||
![]() |
237e65eac9 | ||
![]() |
6350224a1b | ||
![]() |
ae7821e296 | ||
![]() |
a1d956d369 | ||
![]() |
35e1347029 | ||
![]() |
d95815b503 | ||
![]() |
0a3683a186 | ||
![]() |
f5e31febbd | ||
![]() |
6f830703a2 | ||
![]() |
bfb5ebd7b8 | ||
![]() |
012020e51c | ||
![]() |
aeebfc4d3d | ||
![]() |
c16be2c499 | ||
![]() |
0f28e803d0 | ||
![]() |
cad021c34b | ||
![]() |
5ceeefd17d | ||
![]() |
a9bbed1973 | ||
![]() |
0595a72da9 | ||
![]() |
c7c0a7e4c8 | ||
![]() |
05329ce950 | ||
![]() |
7b76945bff | ||
![]() |
540423ecf7 | ||
![]() |
9cf070dd63 | ||
![]() |
41e6d94b3b | ||
![]() |
17e47e074e | ||
![]() |
dafcdd898c | ||
![]() |
5bce6528ba | ||
![]() |
1e61da644f | ||
![]() |
9228282ae2 | ||
![]() |
45a94e41c1 | ||
![]() |
542121129e | ||
![]() |
cf840e3e73 | ||
![]() |
82eb72bbce | ||
![]() |
5f1a6cdc59 | ||
![]() |
02d3dca57e | ||
![]() |
faf5c9fd7e | ||
![]() |
d5d5c4b4bf | ||
![]() |
993e19dcc3 | ||
![]() |
808291b503 | ||
![]() |
d8c38207c0 | ||
![]() |
f4778431de | ||
![]() |
acacb32bb5 | ||
![]() |
186b274faa | ||
![]() |
f1c0e0c52b | ||
![]() |
735028c430 | ||
![]() |
c8c7615569 | ||
![]() |
c3b907656a | ||
![]() |
b96ea0753b | ||
![]() |
6cbac4b7ec | ||
![]() |
81cf441373 | ||
![]() |
48fcd7684c | ||
![]() |
791b323dbd | ||
![]() |
49f39de7b4 | ||
![]() |
8819af083c | ||
![]() |
73654b7862 | ||
![]() |
5fab267a69 | ||
![]() |
5637588fce | ||
![]() |
5a20df45ad | ||
![]() |
d52b0de83e | ||
![]() |
72ac240f28 | ||
![]() |
b5046f07a2 | ||
![]() |
ddf116da14 | ||
![]() |
5005e6e56b | ||
![]() |
3871204d08 | ||
![]() |
b4a3f936cd | ||
![]() |
16c5d327f1 | ||
![]() |
76a5f87c0c | ||
![]() |
49e72a8e76 | ||
![]() |
6f845b53bd | ||
![]() |
d509e897be | ||
![]() |
424b171e0d | ||
![]() |
9de6ac1119 | ||
![]() |
95c16a5d26 | ||
![]() |
cdb10cc4ac | ||
![]() |
749ba5c1da | ||
![]() |
d38ff6670a | ||
![]() |
e5f37885ff | ||
![]() |
d7b84c7874 | ||
![]() |
c99cf5e53f | ||
![]() |
df0f00085c | ||
![]() |
99829c79ab | ||
![]() |
bdae33e34a | ||
![]() |
e9e51b2fdc | ||
![]() |
1bde404121 | ||
![]() |
c7de65ebba | ||
![]() |
829b366cb2 | ||
![]() |
3dbbde2662 | ||
![]() |
f750ff435f | ||
![]() |
f9cda2e8c0 | ||
![]() |
913c22c84f | ||
![]() |
327d71b8fb | ||
![]() |
941ad59759 | ||
![]() |
d0b6c496d6 | ||
![]() |
20d7a25eb8 | ||
![]() |
59d3e8c80f | ||
![]() |
c73694ab8b | ||
![]() |
81a0f478af | ||
![]() |
d97aa92741 | ||
![]() |
480cfb914e | ||
![]() |
0e414ba3c1 | ||
![]() |
61d4efd55a | ||
![]() |
d5f9919b60 | ||
![]() |
aed622bd09 | ||
![]() |
e78af6f228 | ||
![]() |
4ae39c53b4 | ||
![]() |
fa64fc8a62 | ||
![]() |
a2a75a097f | ||
![]() |
a2d8be3ab2 | ||
![]() |
aec230ca19 | ||
![]() |
a6ef771fcc | ||
![]() |
4d8e39857e | ||
![]() |
c4b22a225d | ||
![]() |
60b80c96e8 | ||
![]() |
9298b3c988 | ||
![]() |
8d22231a5f | ||
![]() |
8eba7fb527 | ||
![]() |
c1525252e8 | ||
![]() |
893f3c79e7 | ||
![]() |
e8d6f8851e | ||
![]() |
7dce50cb1f | ||
![]() |
d3d620f4fc | ||
![]() |
ea6834aeec | ||
![]() |
4c89ea7474 | ||
![]() |
0d0708409c | ||
![]() |
b6d5b0796d | ||
![]() |
f6fe1dd62d | ||
![]() |
154ebc3d96 | ||
![]() |
0acc4ab2dd | ||
![]() |
d196340d27 | ||
![]() |
4f20d45f9d | ||
![]() |
e9064631c7 | ||
![]() |
513823bfbd | ||
![]() |
d683b0f1e8 | ||
![]() |
21c771b59c | ||
![]() |
49b66e83ac | ||
![]() |
ab2c7efe69 | ||
![]() |
655b743236 | ||
![]() |
a03d3cc60c | ||
![]() |
bbce002be1 | ||
![]() |
29b2d344ae | ||
![]() |
305630e3fd | ||
![]() |
3f6920f7a9 | ||
![]() |
fa828fd972 | ||
![]() |
bd2039accb | ||
![]() |
3b2c40bec8 | ||
![]() |
1c1755cf5b | ||
![]() |
639520ad5d | ||
![]() |
c7c95dd2af | ||
![]() |
6dbbdbac76 | ||
![]() |
b7c7c46853 | ||
![]() |
33cd8fe653 | ||
![]() |
c6b766d8ea | ||
![]() |
a222ec8553 | ||
![]() |
8e410fc640 | ||
![]() |
de12babd31 | ||
![]() |
b387681c00 | ||
![]() |
2c5351f9f4 | ||
![]() |
40008bc235 | ||
![]() |
00fca0fe6c | ||
![]() |
34a80542de | ||
![]() |
c5f2577f51 | ||
![]() |
7c1ffa3d23 | ||
![]() |
7b9cd09ad8 | ||
![]() |
55e9d9fc29 | ||
![]() |
84d9300e52 | ||
![]() |
df8cd86051 | ||
![]() |
448a4c2809 | ||
![]() |
f62f378f42 | ||
![]() |
6d5f9aa699 | ||
![]() |
21f7a854fe | ||
![]() |
8e4f486fcf | ||
![]() |
5212ea79b4 | ||
![]() |
cda0f9c10a | ||
![]() |
efce482b32 | ||
![]() |
bcad95d32a | ||
![]() |
125a7d1483 | ||
![]() |
966571bdcb | ||
![]() |
aee613034f | ||
![]() |
d677729acb | ||
![]() |
d81481c521 | ||
![]() |
19d8e01e11 | ||
![]() |
50f94bfee4 | ||
![]() |
ee384b1fa7 | ||
![]() |
4fd2051bc0 | ||
![]() |
a96cb2509c | ||
![]() |
8b6e07b768 | ||
![]() |
50207ad702 | ||
![]() |
4805ca2626 | ||
![]() |
437692869a | ||
![]() |
495b1da385 | ||
![]() |
fe2bcfc6f7 | ||
![]() |
808012b544 | ||
![]() |
40e3cb043c | ||
![]() |
6c4f947386 | ||
![]() |
fb6c76db53 | ||
![]() |
46899aa3cd | ||
![]() |
41854121f3 | ||
![]() |
b69dcd79d7 | ||
![]() |
4da3d2c534 | ||
![]() |
d62d0ca08c | ||
![]() |
808328dc7e | ||
![]() |
5d554f184f | ||
![]() |
f732b56904 | ||
![]() |
9e2aa20daa | ||
![]() |
1a429dd4d1 | ||
![]() |
d73d43ed91 | ||
![]() |
8a3f47d6b8 | ||
![]() |
eca8907a11 | ||
![]() |
e1123a2ccb | ||
![]() |
bbddf30e96 | ||
![]() |
5ddccf6ba2 | ||
![]() |
644dbe315b | ||
![]() |
aebad61b3d | ||
![]() |
b1cb863502 | ||
![]() |
132c7fb944 | ||
![]() |
9f5085c9f9 | ||
![]() |
9f4d1719ca | ||
![]() |
035f55af97 | ||
![]() |
9e5e630987 | ||
![]() |
70dcd60beb | ||
![]() |
3ed2339a6d | ||
![]() |
6edca1c19c | ||
![]() |
1ae636296d | ||
![]() |
b218f10e25 | ||
![]() |
834fa7eb9c | ||
![]() |
566280422d | ||
![]() |
3a16f2b80a | ||
![]() |
83c9cd7742 | ||
![]() |
ba2bebb406 | ||
![]() |
7e2ca79ece | ||
![]() |
8eaf575626 | ||
![]() |
d018363ddc | ||
![]() |
2066f66971 | ||
![]() |
93006c7dc7 | ||
![]() |
4f0d45f1df | ||
![]() |
905e5b714b | ||
![]() |
6ef62ba6ea | ||
![]() |
afa0eae829 | ||
![]() |
5465f058ce | ||
![]() |
d5b768929e | ||
![]() |
785732f438 | ||
![]() |
94a826d028 | ||
![]() |
6d626d5f00 | ||
![]() |
cd4b5e14c2 | ||
![]() |
765064a190 | ||
![]() |
bbf178f64b | ||
![]() |
8e3f84c3b7 | ||
![]() |
e3569b81b1 | ||
![]() |
7519a00ada | ||
![]() |
d8ff30d9ec | ||
![]() |
3ef5087be6 | ||
![]() |
2d3d04f547 | ||
![]() |
bb0d2e1c71 | ||
![]() |
5eee0ceb6e | ||
![]() |
9b2d41ea44 | ||
![]() |
3bb6d11ed1 | ||
![]() |
d7d6039876 | ||
![]() |
bc82d1a397 | ||
![]() |
f455fb97f9 | ||
![]() |
0e440f0793 | ||
![]() |
0112d6b313 | ||
![]() |
e4c3d0918a | ||
![]() |
c26dd03416 | ||
![]() |
336be680d3 | ||
![]() |
adff788de5 | ||
![]() |
d34467d3f4 | ||
![]() |
ec3d51d69b | ||
![]() |
4c16ffa383 | ||
![]() |
56d8af147e | ||
![]() |
a7c8c67c83 | ||
![]() |
ae3f8329c2 | ||
![]() |
2b76b88481 | ||
![]() |
9d19546272 | ||
![]() |
78191d6658 | ||
![]() |
a579b8456a | ||
![]() |
43e4c21950 | ||
![]() |
9cd293c283 | ||
![]() |
2f8b2183ec | ||
![]() |
1ff13bf459 | ||
![]() |
5724bc5b3b | ||
![]() |
bf365e26e5 | ||
![]() |
e80280fb81 | ||
![]() |
f4c9703ab9 | ||
![]() |
9e208411a2 | ||
![]() |
5a3861b9cf | ||
![]() |
7c41c8673c | ||
![]() |
5fae2b02ea | ||
![]() |
3ff70bb56f | ||
![]() |
6afee415a3 | ||
![]() |
8b2e0f665f | ||
![]() |
6a8820597f | ||
![]() |
b7ea68e6f8 | ||
![]() |
ccae5cd924 | ||
![]() |
cb35341b8f | ||
![]() |
16ecf71850 | ||
![]() |
ca717602a6 | ||
![]() |
6b7f688eaf | ||
![]() |
7f6f8eefe9 | ||
![]() |
e2ddf43699 | ||
![]() |
090c76ba20 | ||
![]() |
f0ae146ca0 | ||
![]() |
c639e493a5 | ||
![]() |
7e2668f667 | ||
![]() |
e689ee5fa6 | ||
![]() |
f4af231172 | ||
![]() |
38f5072695 | ||
![]() |
b92b8a3c6a | ||
![]() |
4f0c6fbcc7 | ||
![]() |
8c2491fcb6 | ||
![]() |
85b92a9add | ||
![]() |
bd83eccdc5 | ||
![]() |
94b2222c08 | ||
![]() |
502cc2701b | ||
![]() |
4a035478ca | ||
![]() |
5e36a8b575 | ||
![]() |
e1b30a5075 | ||
![]() |
0649011eba | ||
![]() |
a812685084 | ||
![]() |
c04e8943bc | ||
![]() |
e1bc33f5c5 | ||
![]() |
2576735ade | ||
![]() |
a863ad46b4 | ||
![]() |
7db37eedcc | ||
![]() |
6b47a8b930 | ||
![]() |
2cdf2c28c4 | ||
![]() |
c9089c3243 | ||
![]() |
6dd7d0f928 | ||
![]() |
021c6364fa | ||
![]() |
3c441a05da | ||
![]() |
26adbc92be | ||
![]() |
9a21b8b6a4 | ||
![]() |
663d13a67f | ||
![]() |
7e43d88f9c | ||
![]() |
51a9f6b3da | ||
![]() |
c77f7e62ab | ||
![]() |
640a2c1798 | ||
![]() |
37c5741601 | ||
![]() |
967b28c4c0 | ||
![]() |
2037293aa3 | ||
![]() |
215d8bab38 | ||
![]() |
700306bb45 | ||
![]() |
ee1c349858 | ||
![]() |
780a8a67b8 | ||
![]() |
96a49ba116 | ||
![]() |
af6d58eb26 | ||
![]() |
d2a1e1f0db | ||
![]() |
6b996229e1 | ||
![]() |
67a7a76b73 | ||
![]() |
64b6313b4e | ||
![]() |
1e669870cc | ||
![]() |
edc7525103 | ||
![]() |
5b8eb4a49a | ||
![]() |
f05cc6d34e | ||
![]() |
8b5cbca35a | ||
![]() |
3576d0b512 | ||
![]() |
f7499cdb0d | ||
![]() |
ee4829c15d | ||
![]() |
c030567b38 | ||
![]() |
6d6e0a1bfe | ||
![]() |
b54b794264 | ||
![]() |
8a14069e71 | ||
![]() |
b9b470f4df | ||
![]() |
1e4a250da1 | ||
![]() |
2e11ea677b | ||
![]() |
39d629a029 | ||
![]() |
37f6660c57 | ||
![]() |
2f99892d96 | ||
![]() |
bb67692cfd | ||
![]() |
0b66360cc9 | ||
![]() |
6bb19fb2d4 | ||
![]() |
782cbc0a0b | ||
![]() |
979058ad95 | ||
![]() |
3b3a7462f6 | ||
![]() |
411eef844c | ||
![]() |
b25ceb4201 | ||
![]() |
a98835e18b | ||
![]() |
5b4a41ced4 | ||
![]() |
e090689ef5 | ||
![]() |
2658e15dad | ||
![]() |
237f41da68 | ||
![]() |
5c57a1dda1 | ||
![]() |
c2635f35c0 | ||
![]() |
24a3f90dc3 | ||
![]() |
159d900df3 | ||
![]() |
8ad127c293 | ||
![]() |
8fb03961f5 | ||
![]() |
fedd9caefb | ||
![]() |
5bf90eea62 | ||
![]() |
16ef13477c | ||
![]() |
d836d4b251 | ||
![]() |
e2cc5af937 | ||
![]() |
908116ddc4 | ||
![]() |
391da9ec28 | ||
![]() |
b2a1951fd0 | ||
![]() |
c3096e26ff | ||
![]() |
1d7608ee40 | ||
![]() |
7c16c2fa9e | ||
![]() |
3520fd9465 | ||
![]() |
f866e46535 | ||
![]() |
23568b31fd | ||
![]() |
f0b93b50e7 | ||
![]() |
67962f1dee | ||
![]() |
8360b1d688 | ||
![]() |
b67cf22dfc | ||
![]() |
f55ad2f90a | ||
![]() |
da2d88a984 | ||
![]() |
50915c9754 | ||
![]() |
82c3186309 | ||
![]() |
3c4de9b0be | ||
![]() |
e49072c313 | ||
![]() |
6883b21bef | ||
![]() |
8771d8af21 | ||
![]() |
2543d040b1 | ||
![]() |
e12c588c0a | ||
![]() |
3732016062 | ||
![]() |
9cf673618a | ||
![]() |
a405de8d20 | ||
![]() |
7a6c87f8c1 | ||
![]() |
68ceb2871f | ||
![]() |
a9462f0d4d | ||
![]() |
a89eeef6f3 | ||
![]() |
fab7a6c58d | ||
![]() |
e15737b9d1 | ||
![]() |
f818bb9a10 | ||
![]() |
257aaa328a | ||
![]() |
ed422b7c56 | ||
![]() |
a759e44c6e | ||
![]() |
6095cb54af | ||
![]() |
2c6aa8528d | ||
![]() |
0fe42a06c1 | ||
![]() |
9aa1be821b | ||
![]() |
5b2fbfb6ce | ||
![]() |
53867a8461 | ||
![]() |
1418dc6a59 | ||
![]() |
970d4049fd | ||
![]() |
fcff2cb191 | ||
![]() |
e8fe6a929b | ||
![]() |
9e3adaa30c | ||
![]() |
7d8b8db256 | ||
![]() |
7156e47c18 | ||
![]() |
b7ce74abd6 | ||
![]() |
371af18d0f | ||
![]() |
43a45b7c99 | ||
![]() |
e0dc5cf2f2 | ||
![]() |
d5d4c4b413 | ||
![]() |
491f1fcfff | ||
![]() |
551fe50a44 | ||
![]() |
745fcfc014 | ||
![]() |
9c2a2a0c00 | ||
![]() |
b93f20f0df | ||
![]() |
8f76ef4e70 | ||
![]() |
e696089660 | ||
![]() |
80b47c84cd | ||
![]() |
83a3460356 | ||
![]() |
ce93e46faf | ||
![]() |
ee5fb223b6 | ||
![]() |
381e3a969f | ||
![]() |
553467df56 | ||
![]() |
4628d94415 | ||
![]() |
cd8e924d46 | ||
![]() |
9a1ba74920 | ||
![]() |
f79cae63d9 | ||
![]() |
8b62fa0cb0 | ||
![]() |
b6bb81630d | ||
![]() |
72b42d7b35 | ||
![]() |
d67bd496e8 | ||
![]() |
e5b2cc1e98 | ||
![]() |
7b4fcd2eca | ||
![]() |
c625462e98 | ||
![]() |
b6cea4a950 | ||
![]() |
b476e1c84c | ||
![]() |
3b8ca420c7 | ||
![]() |
37669d067c | ||
![]() |
c8e84dc14e | ||
![]() |
15567e478c | ||
![]() |
f6cef1088d | ||
![]() |
f57eb944ed | ||
![]() |
11d3f395ca | ||
![]() |
a821d9a3a2 | ||
![]() |
7c2f851692 | ||
![]() |
37508ca411 | ||
![]() |
ec7bef792b | ||
![]() |
efb27aff0a | ||
![]() |
fcee7d4eb7 | ||
![]() |
a84586e2f4 | ||
![]() |
bba7768759 | ||
![]() |
8a9ca498d7 | ||
![]() |
5ffac40935 | ||
![]() |
601368921f | ||
![]() |
500900abe1 | ||
![]() |
c41fa75265 | ||
![]() |
5cc9488bd6 | ||
![]() |
5eac9b23d6 | ||
![]() |
66fc1b7845 | ||
![]() |
c6f9b0da7e | ||
![]() |
8ccf778fb7 | ||
![]() |
7e564c2984 | ||
![]() |
a09a0eedd2 | ||
![]() |
be3a3ed699 | ||
![]() |
562189dfb0 |
@@ -6,8 +6,9 @@ end_of_line=lf
|
||||
insert_final_newline=true
|
||||
indent_style=space
|
||||
indent_size=2
|
||||
max_line_length = 100
|
||||
|
||||
[*.yml]
|
||||
[*.{yml,yaml,json}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
|
2
.env
2
.env
@@ -5,4 +5,4 @@ VITE_PORT = 3100
|
||||
VITE_GLOB_APP_TITLE = Vben Admin
|
||||
|
||||
# spa shortname
|
||||
VITE_GLOB_APP_SHORT_NAME = vue_vben_admin_2x
|
||||
VITE_GLOB_APP_SHORT_NAME = vue_vben_admin
|
||||
|
@@ -1,5 +1,3 @@
|
||||
VITE_PORT = 3100
|
||||
|
||||
# Whether to open mock
|
||||
VITE_USE_MOCK = true
|
||||
|
||||
@@ -7,14 +5,15 @@ VITE_USE_MOCK = true
|
||||
VITE_PUBLIC_PATH = /
|
||||
|
||||
# Cross-domain proxy, you can configure multiple
|
||||
VITE_PROXY=[["/api","http://localhost:3000"],["/upload","http://localhost:3001/upload"]]
|
||||
# Please note that no line breaks
|
||||
VITE_PROXY = [["/basic-api","http://localhost:3000"],["/upload","http://localhost:3300/upload"]]
|
||||
# VITE_PROXY=[["/api","https://vvbin.cn/test"]]
|
||||
|
||||
# Delete console
|
||||
VITE_DROP_CONSOLE = false
|
||||
|
||||
# Basic interface address SPA
|
||||
VITE_GLOB_API_URL=/api
|
||||
VITE_GLOB_API_URL=/basic-api
|
||||
|
||||
# File upload address, optional
|
||||
VITE_GLOB_UPLOAD_URL=/upload
|
||||
|
@@ -7,13 +7,16 @@ VITE_PUBLIC_PATH = /
|
||||
# Delete console
|
||||
VITE_DROP_CONSOLE = true
|
||||
|
||||
# Whether to enable gizp or brotli compression
|
||||
# Whether to enable gzip or brotli compression
|
||||
# Optional: gzip | brotli | none
|
||||
# If you need multiple forms, you can use `,` to separate
|
||||
VITE_BUILD_COMPRESS = 'none'
|
||||
|
||||
# Whether to delete origin files when using compress, default false
|
||||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
|
||||
|
||||
# Basic interface address SPA
|
||||
VITE_GLOB_API_URL=/api
|
||||
VITE_GLOB_API_URL=/basic-api
|
||||
|
||||
# File upload address, optional
|
||||
# It can be forwarded by nginx or write the actual address directly
|
||||
|
36
.env.test
Normal file
36
.env.test
Normal file
@@ -0,0 +1,36 @@
|
||||
NODE_ENV=production
|
||||
# Whether to open mock
|
||||
VITE_USE_MOCK = true
|
||||
|
||||
# public path
|
||||
VITE_PUBLIC_PATH = /
|
||||
|
||||
# Delete console
|
||||
VITE_DROP_CONSOLE = true
|
||||
|
||||
# Whether to enable gzip or brotli compression
|
||||
# Optional: gzip | brotli | none
|
||||
# If you need multiple forms, you can use `,` to separate
|
||||
VITE_BUILD_COMPRESS = 'none'
|
||||
|
||||
# Whether to delete origin files when using compress, default false
|
||||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
|
||||
|
||||
# Basic interface address SPA
|
||||
VITE_GLOB_API_URL=/basic-api
|
||||
|
||||
# File upload address, optional
|
||||
# It can be forwarded by nginx or write the actual address directly
|
||||
VITE_GLOB_UPLOAD_URL=/upload
|
||||
|
||||
# Interface prefix
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
|
||||
# Whether to enable image compression
|
||||
VITE_USE_IMAGEMIN= true
|
||||
|
||||
# use pwa
|
||||
VITE_USE_PWA = false
|
||||
|
||||
# Is it compatible with older browsers
|
||||
VITE_LEGACY = false
|
27
.eslintrc.js
27
.eslintrc.js
@@ -1,19 +1,28 @@
|
||||
module.exports = {
|
||||
// @ts-check
|
||||
const { defineConfig } = require('eslint-define-config');
|
||||
module.exports = defineConfig({
|
||||
root: true,
|
||||
env: {
|
||||
browser: true,
|
||||
node: true,
|
||||
es6: true,
|
||||
},
|
||||
parser: 'vue-eslint-parser',
|
||||
parserOptions: {
|
||||
parser: '@typescript-eslint/parser',
|
||||
ecmaVersion: 2020,
|
||||
sourceType: 'module',
|
||||
jsxPragma: 'React',
|
||||
ecmaFeatures: {
|
||||
jsx: true,
|
||||
},
|
||||
},
|
||||
|
||||
extends: [
|
||||
'plugin:vue/vue3-recommended',
|
||||
'plugin:@typescript-eslint/recommended',
|
||||
'prettier/@typescript-eslint',
|
||||
'prettier',
|
||||
'plugin:prettier/recommended',
|
||||
'plugin:jest/recommended',
|
||||
],
|
||||
rules: {
|
||||
'@typescript-eslint/ban-ts-ignore': 'off',
|
||||
@@ -31,15 +40,15 @@ module.exports = {
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
argsIgnorePattern: '^h$',
|
||||
varsIgnorePattern: '^h$',
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
'no-unused-vars': [
|
||||
'error',
|
||||
{
|
||||
argsIgnorePattern: '^h$',
|
||||
varsIgnorePattern: '^h$',
|
||||
argsIgnorePattern: '^_',
|
||||
varsIgnorePattern: '^_',
|
||||
},
|
||||
],
|
||||
'space-before-function-paren': 'off',
|
||||
@@ -51,8 +60,8 @@ module.exports = {
|
||||
'vue/multiline-html-element-content-newline': 'off',
|
||||
'vue/singleline-html-element-content-newline': 'off',
|
||||
'vue/attribute-hyphenation': 'off',
|
||||
// 'vue/html-self-closing': 'off',
|
||||
'vue/require-default-prop': 'off',
|
||||
'vue/script-setup-uses-vars': 'off',
|
||||
'vue/html-self-closing': [
|
||||
'error',
|
||||
{
|
||||
@@ -66,4 +75,4 @@ module.exports = {
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
});
|
||||
|
38
.github/ISSUE_TEMPLATE/1-bug.md
vendored
38
.github/ISSUE_TEMPLATE/1-bug.md
vendored
@@ -1,39 +1,39 @@
|
||||
---
|
||||
name: 🐛 Bug report
|
||||
about: Create a report to help us improve
|
||||
labels: 🔍 status/open, 🐛 type/bug
|
||||
title: ''
|
||||
labels: 'bug: pending triage'
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
<!--
|
||||
抱歉,您遇到了一个错误。感谢您抽出宝贵的时间进行举报!
|
||||
|
||||
请尽可能填写以下模板。
|
||||
|
||||
Ouch, sorry you’ve run into a bug. Thank for taking the time to report it!
|
||||
|
||||
Please fill in as much of the template below as you’re able.
|
||||
|
||||
P.S. have you seen our support and contributing docs?
|
||||
https://github.com/get-alex/.github/blob/master/support.md
|
||||
https://github.com/get-alex/.github/blob/master/contributing.md
|
||||
-->
|
||||
|
||||
### Subject of the issue
|
||||
**⚠️ IMPORTANT ⚠️ Please check the following list before proceeding. If you ignore this issue template, your issue will be directly closed.**
|
||||
|
||||
Describe your issue here.
|
||||
- [ ] Read [the docs](https://anncwb.github.io/vue-vben-admin-doc/).
|
||||
- [ ] Make sure the code is up to date. (Some bugs have been fixed in the latest code)
|
||||
- [ ] This is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/anncwb/vue-vben-admin/discussions) or join our [Discord](https://discord.gg/8GuAdwDhj6) Chat Server.
|
||||
|
||||
### Your environment
|
||||
### Describe the bug
|
||||
|
||||
- **OS**: <!-- Name and version of operating system -->
|
||||
- **Packages**: <!-- Names and version of required packages -->
|
||||
- **Env**: <!-- Version of node, npm, yarn, or names and versions of browser -->
|
||||
A clear and concise description of what the bug is..
|
||||
|
||||
### Steps to reproduce
|
||||
### Reproduction
|
||||
|
||||
Tell us how to reproduce this issue. Please provide a working and simplified example.
|
||||
Please describe the steps of the problem in detail to ensure that we can restore the correct problem
|
||||
|
||||
🎉 BONUS POINTS for creating a [minimal reproduction](https://stackoverflow.com/help/mcve) and uploading it to GitHub. This will get you the fastest support. 🎉
|
||||
## System Info
|
||||
|
||||
### Expected behaviour
|
||||
|
||||
What should happen?
|
||||
|
||||
### Actual behaviour
|
||||
|
||||
What happens instead?
|
||||
- Operating System:
|
||||
- Node version:
|
||||
- Package manager (npm/yarn/pnpm) and version:
|
||||
|
8
.github/ISSUE_TEMPLATE/2-feature.md
vendored
8
.github/ISSUE_TEMPLATE/2-feature.md
vendored
@@ -1,12 +1,16 @@
|
||||
---
|
||||
name: 🚀 Feature request
|
||||
about: Suggest an idea for this project
|
||||
labels: 🔍 status/open, 🦋 type/enhancement
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
<!--
|
||||
Thank you for suggesting an idea to make this project better!
|
||||
感谢您提出使这个项目更好的想法!
|
||||
请尽可能填写以下模板。
|
||||
|
||||
Thank you for suggesting an idea to make this project better!
|
||||
Please fill in as much of the template below as you’re able.
|
||||
|
||||
-->
|
||||
|
15
.github/ISSUE_TEMPLATE/3-help.md
vendored
15
.github/ISSUE_TEMPLATE/3-help.md
vendored
@@ -1,15 +0,0 @@
|
||||
---
|
||||
name: Question 🤔
|
||||
about: Usage question or discussion about alex.
|
||||
labels: 🔍 status/open, 🙋 type/question
|
||||
---
|
||||
|
||||
<!--
|
||||
To make it easier for us to help you, please include as much useful information
|
||||
as possible.
|
||||
|
||||
Before opening a new issue, please search existing issues:
|
||||
https://github.com/search?q=org%3Aget-alex&type=Issues
|
||||
|
||||
|
||||
-->
|
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Discord Chat
|
||||
url: https://discord.gg/8GuAdwDhj6
|
||||
about: Ask questions and discuss with other Vben users in real time.
|
||||
- name: Questions & Discussions
|
||||
url: https://github.com/anncwb/vue-vben-admin/discussions
|
||||
about: Use GitHub discussions for message-board style questions and discussions.
|
BIN
.github/res/imgs/logo.png
vendored
BIN
.github/res/imgs/logo.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 1.9 KiB |
BIN
.github/res/imgs/preview1.png
vendored
BIN
.github/res/imgs/preview1.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 389 KiB |
BIN
.github/res/imgs/preview2.png
vendored
BIN
.github/res/imgs/preview2.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 548 KiB |
BIN
.github/res/imgs/preview3.png
vendored
BIN
.github/res/imgs/preview3.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 512 KiB |
BIN
.github/res/imgs/qq.jpeg
vendored
BIN
.github/res/imgs/qq.jpeg
vendored
Binary file not shown.
Before Width: | Height: | Size: 102 KiB |
108
.github/workflows/deploy.yml
vendored
108
.github/workflows/deploy.yml
vendored
@@ -6,17 +6,113 @@ on:
|
||||
- main
|
||||
|
||||
jobs:
|
||||
build-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
# push-to-ftp:
|
||||
# if: "contains(github.event.head_commit.message, '[deploy]')"
|
||||
# runs-on: ubuntu-latest
|
||||
# steps:
|
||||
# - name: Checkout
|
||||
# uses: actions/checkout@v2
|
||||
|
||||
# - name: Sed Config Base
|
||||
# shell: bash
|
||||
# run: |
|
||||
# sed -i 's#VITE_PUBLIC_PATH\s*=.*#VITE_PUBLIC_PATH = /next/#g' ./.env.production
|
||||
# sed -i "s#VITE_BUILD_COMPRESS\s*=.*#VITE_BUILD_COMPRESS = 'gzip'#g" ./.env.production
|
||||
# cat ./.env.production
|
||||
|
||||
# - name: use Node.js 14
|
||||
# uses: actions/setup-node@v2.1.2
|
||||
# with:
|
||||
# node-version: '14.x'
|
||||
|
||||
# - name: Get yarn cache
|
||||
# id: yarn-cache
|
||||
# run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
|
||||
# - name: Cache dependencies
|
||||
# uses: actions/cache@v2
|
||||
# with:
|
||||
# path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
# key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
# restore-keys: |
|
||||
# ${{ runner.os }}-yarn-
|
||||
|
||||
# - name: Build
|
||||
# run: |
|
||||
# yarn install
|
||||
# yarn run build
|
||||
|
||||
# - name: Deploy
|
||||
# uses: SamKirkland/FTP-Deploy-Action@2.0.0
|
||||
# env:
|
||||
# FTP_SERVER: ${{ secrets.FTP_SERVER }}
|
||||
# FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
|
||||
# FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
|
||||
# METHOD: sftp
|
||||
# PORT: ${{ secrets.FTP_PORT }}
|
||||
# LOCAL_DIR: dist
|
||||
# REMOTE_DIR: /srv/www/vben-admin
|
||||
# ARGS: --delete --verbose --parallel=80
|
||||
|
||||
push-to-gh-pages:
|
||||
if: "contains(github.event.head_commit.message, '[release]')"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- run: npm install
|
||||
- run: npm run build
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Sed Config Base
|
||||
shell: bash
|
||||
run: |
|
||||
sed -i 's#VITE_PUBLIC_PATH\s*=.*#VITE_PUBLIC_PATH = /vue-vben-admin/#g' ./.env.production
|
||||
sed -i "s#VITE_BUILD_COMPRESS\s*=.*#VITE_BUILD_COMPRESS = 'gzip'#g" ./.env.production
|
||||
cat ./.env.production
|
||||
|
||||
- name: use Node.js 14
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '14.x'
|
||||
|
||||
- name: Get yarn cache
|
||||
id: yarn-cache
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Set SSH Environment
|
||||
env:
|
||||
DOCS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
|
||||
run: |
|
||||
mkdir -p ~/.ssh/
|
||||
echo "$ACTIONS_DEPLOY_KEY" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
ssh-keyscan github.com > ~/.ssh/known_hosts
|
||||
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
|
||||
git config --local user.email "vbenadmin@163.com"
|
||||
git config --local user.name "vbenAdmin"
|
||||
|
||||
- name: Delete gh-pages branch
|
||||
run: |
|
||||
git push origin --delete gh-pages
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
yarn install
|
||||
yarn run build
|
||||
touch dist/.nojekyll
|
||||
cp dist/index.html dist/404.html
|
||||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v2.5.0
|
||||
env:
|
||||
ACTIONS_DEPLOY_KEY: ${{secrets.ACTIONS_DEPLOY_KEY}}
|
||||
PUBLISH_BRANCH: gh-pages
|
||||
PUBLISH_DIR: dist
|
||||
PUBLISH_DIR: ./dist
|
||||
with:
|
||||
forceOrphan: true
|
||||
|
56
.github/workflows/ftp-schedule.yml
vendored
Normal file
56
.github/workflows/ftp-schedule.yml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
name: schedule-push-to-ftp
|
||||
|
||||
# Timed deployment project
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: '0 20 * * *'
|
||||
|
||||
jobs:
|
||||
schedule-push-to-ftp:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Sed Config Base
|
||||
shell: bash
|
||||
run: |
|
||||
sed -i 's#VITE_PUBLIC_PATH\s*=.*#VITE_PUBLIC_PATH = /next/#g' ./.env.production
|
||||
sed -i "s#VITE_BUILD_COMPRESS\s*=.*#VITE_BUILD_COMPRESS = 'gzip'#g" ./.env.production
|
||||
sed -i "s#VITE_DROP_CONSOLE\s*=.*#VITE_DROP_CONSOLE = true#g" ./.env.production
|
||||
cat ./.env.production
|
||||
|
||||
- name: use Node.js 15
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: '15.x'
|
||||
|
||||
- name: Get yarn cache
|
||||
id: yarn-cache
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
yarn install
|
||||
yarn run build
|
||||
|
||||
- name: Deploy
|
||||
uses: SamKirkland/FTP-Deploy-Action@2.0.0
|
||||
env:
|
||||
FTP_SERVER: ${{ secrets.FTP_SERVER }}
|
||||
FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
|
||||
FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
|
||||
METHOD: sftp
|
||||
PORT: ${{ secrets.FTP_PORT }}
|
||||
LOCAL_DIR: dist
|
||||
REMOTE_DIR: /srv/www/vben-admin
|
||||
ARGS: --delete --verbose --parallel=80
|
17
.github/workflows/issue-close-require.yml
vendored
Normal file
17
.github/workflows/issue-close-require.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: Issue Close Require
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
close-issues:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: need reproduction
|
||||
uses: actions-cool/issues-helper@v2.1.1
|
||||
with:
|
||||
actions: 'close-issues'
|
||||
token: ${{ secrets.OPER_TOKEN }}
|
||||
labels: 'need reproduction'
|
||||
inactive-day: 3
|
29
.github/workflows/issue-labeled.yml
vendored
Normal file
29
.github/workflows/issue-labeled.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: Issue Labeled
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [labeled]
|
||||
|
||||
jobs:
|
||||
reply-labeled:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: remove pending
|
||||
if: github.event.label.name == 'enhancement' || github.event.label.name == 'bug'
|
||||
uses: actions-cool/issues-helper@v2.1.1
|
||||
with:
|
||||
actions: 'remove-labels'
|
||||
token: ${{ secrets.OPER_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
labels: 'bug: pending triage'
|
||||
|
||||
- name: need reproduction
|
||||
if: github.event.label.name == 'need reproduction'
|
||||
uses: actions-cool/issues-helper@v2.1.1
|
||||
with:
|
||||
actions: 'create-comment, remove-labels'
|
||||
token: ${{ secrets.OPER_TOKEN }}
|
||||
issue-number: ${{ github.event.issue.number }}
|
||||
body: |
|
||||
Hello @${{ github.event.issue.user.login }}. Please provide the complete reproduction steps and code. Issues labeled by `need reproduction` will be closed if no activities in 3 days.
|
||||
labels: 'bug: pending triage'
|
19
.github/workflows/release.yml
vendored
19
.github/workflows/release.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Release
|
||||
name: Create Release
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -6,10 +6,19 @@ on:
|
||||
- v*
|
||||
|
||||
jobs:
|
||||
release:
|
||||
build:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: npx conventional-github-releaser -p angular
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Create Release for Tag
|
||||
id: release_tag
|
||||
uses: yyx990803/release-tag@master
|
||||
env:
|
||||
CONVENTIONAL_GITHUB_RELEASER_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
GITHUB_TOKEN: ${{ secrets.OPER_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
body: |
|
||||
Please refer to [CHANGELOG.md](https://github.com/anncwb/vue-vben-admin/blob/main/CHANGELOG.md) for details.
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -4,12 +4,14 @@ dist
|
||||
.npmrc
|
||||
.cache
|
||||
|
||||
test/upload-server/static
|
||||
tests/server/static
|
||||
tests/server/static/upload
|
||||
|
||||
.local
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
.eslintcache
|
||||
|
||||
# Log files
|
||||
npm-debug.log*
|
||||
|
6
.gitpod.yml
Normal file
6
.gitpod.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
ports:
|
||||
- port: 3344
|
||||
onOpen: open-preview
|
||||
tasks:
|
||||
- init: yarn
|
||||
command: yarn dev
|
1
.husky/.gitignore
vendored
1
.husky/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
_
|
@@ -2,7 +2,7 @@ module.exports = {
|
||||
'*.{js,jsx,ts,tsx}': ['eslint --fix', 'prettier --write'],
|
||||
'{!(package)*.json,*.code-snippets,.!(browserslist)*rc}': ['prettier --write--parser json'],
|
||||
'package.json': ['prettier --write'],
|
||||
'*.vue': ['prettier --write', 'stylelint --fix'],
|
||||
'*.{scss,less,styl,css,html}': ['stylelint --fix', 'prettier --write'],
|
||||
'*.vue': ['eslint --fix', 'prettier --write', 'stylelint --fix'],
|
||||
'*.{scss,less,styl,html}': ['stylelint --fix', 'prettier --write'],
|
||||
'*.md': ['prettier --write'],
|
||||
};
|
||||
|
@@ -4,10 +4,6 @@
|
||||
|
||||
[ -n "$CI" ] && exit 0
|
||||
|
||||
# Check the file name
|
||||
# ! ls-lint cannot be used normally in mac pro of M1 system.
|
||||
npm run lint:ls-lint
|
||||
|
||||
# Format and submit code according to lintstagedrc.js configuration
|
||||
npm run lint:lint-staged
|
||||
|
||||
|
23
.ls-lint.yml
23
.ls-lint.yml
@@ -1,23 +0,0 @@
|
||||
ls:
|
||||
src/*:
|
||||
.js: kebab-case | PascalCase
|
||||
.vue: PascalCase | regex:^index
|
||||
.ts: camelCase | PascalCase
|
||||
.tsx: camelCase | PascalCase
|
||||
.d.ts: kebab-case
|
||||
.mock.ts: kebab-case
|
||||
.data.ts: camelCase | kebab-case
|
||||
.test-d.ts: kebab-case
|
||||
.less: kebab-case | PascalCase
|
||||
.spec.ts: camelCase | PascalCase
|
||||
|
||||
ignore:
|
||||
- node_modules
|
||||
- .git
|
||||
- .circleci
|
||||
- .github
|
||||
- .vscode
|
||||
- .idea
|
||||
- dist
|
||||
- .local
|
||||
- .husky
|
@@ -1,2 +1,3 @@
|
||||
/dist/*
|
||||
/public/*
|
||||
public/*
|
||||
|
3
.vscode/extensions.json
vendored
3
.vscode/extensions.json
vendored
@@ -5,10 +5,9 @@
|
||||
"stylelint.vscode-stylelint",
|
||||
"esbenp.prettier-vscode",
|
||||
"mrmlnc.vscode-less",
|
||||
"antfu.i18n-ally",
|
||||
"lokalise.i18n-ally",
|
||||
"antfu.iconify",
|
||||
"mikestead.dotenv",
|
||||
"bradlc.vscode-tailwindcss",
|
||||
"heybourn.headwind"
|
||||
]
|
||||
}
|
||||
|
5
.vscode/i18n-ally-reviews.yml
vendored
5
.vscode/i18n-ally-reviews.yml
vendored
@@ -1,5 +0,0 @@
|
||||
# Review comments generated by i18n-ally. Please commit this file.
|
||||
|
||||
reviews:
|
||||
sys.login.autoLogin:
|
||||
description: '1'
|
141
.vscode/settings.json
vendored
141
.vscode/settings.json
vendored
@@ -1,57 +1,23 @@
|
||||
{
|
||||
"typescript.tsdk": "./node_modules/typescript/lib",
|
||||
"typescript.enablePromptUseWorkspaceTsdk": true,
|
||||
"volar.tsPlugin": true,
|
||||
"volar.tsPluginStatus": false,
|
||||
//===========================================
|
||||
//============= Editor ======================
|
||||
//===========================================
|
||||
"explorer.openEditors.visible": 0,
|
||||
"editor.minimap.renderCharacters": false,
|
||||
"editor.minimap.maxColumn": 300,
|
||||
"editor.minimap.showSlider": "always",
|
||||
"editor.smoothScrolling": true,
|
||||
"editor.cursorBlinking": "phase",
|
||||
"editor.cursorSmoothCaretAnimation": true,
|
||||
"editor.detectIndentation": false,
|
||||
"editor.tabSize": 2,
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"diffEditor.ignoreTrimWhitespace": false,
|
||||
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
|
||||
"editor.formatOnPaste": true,
|
||||
"editor.formatOnSave": true,
|
||||
"editor.suggestSelection": "first",
|
||||
"editor.trimAutoWhitespace": true,
|
||||
"editor.quickSuggestions": {
|
||||
"other": true,
|
||||
"comments": true,
|
||||
"strings": true
|
||||
},
|
||||
//===========================================
|
||||
//============= Other =======================
|
||||
//===========================================
|
||||
"breadcrumbs.enabled": true,
|
||||
"open-in-browser.default": "chrome",
|
||||
//===========================================
|
||||
//============= emmet =======================
|
||||
//===========================================
|
||||
"emmet.triggerExpansionOnTab": true,
|
||||
"emmet.showAbbreviationSuggestions": true,
|
||||
"emmet.showExpandedAbbreviation": "always",
|
||||
"emmet.syntaxProfiles": {
|
||||
"vue-html": "html",
|
||||
"vue": "html",
|
||||
"javascript": "javascriptreact",
|
||||
"xml": {
|
||||
"attr_quotes": "single"
|
||||
}
|
||||
},
|
||||
"emmet.includeLanguages": {
|
||||
"jsx-sublime-babel-tags": "javascriptreact"
|
||||
},
|
||||
//===========================================
|
||||
//============= files =======================
|
||||
//===========================================
|
||||
"files.trimTrailingWhitespace": true,
|
||||
"files.insertFinalNewline": true,
|
||||
"files.trimFinalNewlines": true,
|
||||
"files.eol": "\n",
|
||||
"search.exclude": {
|
||||
"**/node_modules": true,
|
||||
@@ -74,12 +40,16 @@
|
||||
"CHANGELOG.md": true,
|
||||
"examples": true,
|
||||
"res": true,
|
||||
"screenshots": true
|
||||
"screenshots": true,
|
||||
"yarn-error.log": true,
|
||||
"**/.yarn": true
|
||||
},
|
||||
"files.exclude": {
|
||||
"**/.cache": true,
|
||||
"**/.editorconfig": true,
|
||||
"**/.eslintcache": true,
|
||||
"**/bower_components": true,
|
||||
"**/.idea": true,
|
||||
"**/yarn.lock": true,
|
||||
"**/tmp": true,
|
||||
"**/.git": true,
|
||||
"**/.svn": true,
|
||||
@@ -88,7 +58,6 @@
|
||||
"**/.DS_Store": true
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
// 文件监视排除
|
||||
"**/.git/objects/**": true,
|
||||
"**/.git/subtree-cache/**": true,
|
||||
"**/.vscode/**": true,
|
||||
@@ -98,62 +67,10 @@
|
||||
"**/dist/**": true,
|
||||
"**/yarn.lock": true
|
||||
},
|
||||
"files.associations": {
|
||||
"*.vue": "vue",
|
||||
"*.wxss": "css"
|
||||
},
|
||||
"stylelint.enable": true,
|
||||
"stylelint.packageManager": "yarn",
|
||||
"css.validate": true,
|
||||
"less.validate": true,
|
||||
"scss.validate": true,
|
||||
// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
|
||||
// ===========================================
|
||||
// ================ Eslint ===================
|
||||
// ===========================================
|
||||
// "eslint.enable": true,
|
||||
"eslint.alwaysShowStatus": true,
|
||||
"eslint.options": {
|
||||
// 配置
|
||||
"plugins": ["html", "vue", "javascript", "jsx", "typescript"],
|
||||
"extensions": [".js", ".jsx", ".ts", ".tsx", ".vue"]
|
||||
},
|
||||
"eslint.validate": [
|
||||
"javascript",
|
||||
"typescript",
|
||||
"reacttypescript",
|
||||
"reactjavascript",
|
||||
"html",
|
||||
"vue"
|
||||
],
|
||||
// "eslint.autoFixOnSave": true,
|
||||
// ===========================================
|
||||
// ================ Vetur ====================
|
||||
// ===========================================
|
||||
"vetur.experimental.templateInterpolationService": true,
|
||||
"vetur.format.options.tabSize": 2,
|
||||
"vetur.format.defaultFormatter.html": "js-beautify-html",
|
||||
"vetur.format.defaultFormatter.scss": "prettier",
|
||||
"vetur.format.defaultFormatter.css": "prettier",
|
||||
"vetur.format.defaultFormatter.ts": "prettier-tslint",
|
||||
"vetur.format.defaultFormatter.js": "prettier",
|
||||
"vetur.languageFeatures.codeActions": false,
|
||||
"vetur.format.defaultFormatterOptions": {
|
||||
"js-beautify-html": {
|
||||
"wrap_attributes": "force-expand-multiline"
|
||||
},
|
||||
"prettier": {
|
||||
"eslintIntegration": true,
|
||||
"arrowParens": "always",
|
||||
"semi": false,
|
||||
"singleQuote": true
|
||||
}
|
||||
},
|
||||
"javascript.updateImportsOnFileMove.enabled": "never",
|
||||
"liveServer.settings.donotShowInfoMsg": true,
|
||||
"terminal.integrated.rendererType": "dom",
|
||||
"telemetry.enableCrashReporter": false,
|
||||
"telemetry.enableTelemetry": false,
|
||||
"workbench.settings.enableNaturalLanguageSearch": false,
|
||||
"path-intellisense.mappings": {
|
||||
"/@/": "${workspaceRoot}/src"
|
||||
@@ -188,12 +105,48 @@
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": true
|
||||
},
|
||||
"[vue]": {
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll.eslint": false
|
||||
}
|
||||
},
|
||||
"i18n-ally.localesPaths": ["src/locales/lang"],
|
||||
"i18n-ally.keystyle": "nested",
|
||||
"i18n-ally.sortKeys": true,
|
||||
"i18n-ally.namespace": true,
|
||||
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
|
||||
"i18n-ally.enabledParsers": ["ts"],
|
||||
"i18n-ally.sourceLanguage": "zh",
|
||||
"i18n-ally.enabledFrameworks": ["vue", "react"]
|
||||
"i18n-ally.sourceLanguage": "en",
|
||||
"i18n-ally.enabledFrameworks": ["vue", "react"],
|
||||
"cSpell.words": [
|
||||
"vben",
|
||||
"windi",
|
||||
"browserslist",
|
||||
"tailwindcss",
|
||||
"esnext",
|
||||
"antv",
|
||||
"tinymce",
|
||||
"qrcode",
|
||||
"sider",
|
||||
"pinia",
|
||||
"sider",
|
||||
"nprogress",
|
||||
"INTLIFY",
|
||||
"stylelint",
|
||||
"esno",
|
||||
"vitejs",
|
||||
"sortablejs",
|
||||
"mockjs",
|
||||
"codemirror",
|
||||
"iconify",
|
||||
"commitlint",
|
||||
"vditor",
|
||||
"echarts",
|
||||
"cropperjs",
|
||||
"logicflow",
|
||||
"vueuse",
|
||||
"zxcvbn",
|
||||
"lintstagedrc",
|
||||
"brotli"
|
||||
]
|
||||
}
|
||||
|
@@ -1,3 +1,422 @@
|
||||
## 2.6.1(2021-07-19)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **NoticeList** Add pagination, auto omit for overlength, title click event, title strikethrough, etc.
|
||||
- **MixSider** Optimize the style of the bottom collapse button in the Mix menu layout to be consistent with the style of other menu layouts
|
||||
- **ApiTreeSelect** Extend `TreeSelect` component of `antdv` to support remote data source, similar to `ApiSelect`.
|
||||
- **BasicTable** New `ApiTreeSelect` editing component
|
||||
- Different backend home pages can be specified for different users.
|
||||
- Add `homePath` field (optional) to the user information returned by the `getUserInfo` interface to customize the home page path for the current user
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **BasicTable**
|
||||
- Fix scrollbar style issue (removed scroll style patch)
|
||||
- Fix the alignment problem of cells with expanded icons in tree tables
|
||||
- Add `headerTop` slot.
|
||||
- Fix the color display of the operation column button in disabled state.
|
||||
- Repair the problem that the values of editable cells cannot be updated by modifying `dataSource` directly.
|
||||
- Repair the problem of data replay when using `ApiSelect` to edit components.
|
||||
- Repair the problem that editing components may report `onXXX` type error in some scenarios.
|
||||
- **TableAction**
|
||||
- Create Tooltip component only if `action.tooltip` exists.
|
||||
- Fix the problem that the content of the round button inside the component is not centered
|
||||
- **AppSearch** Fix the problem that the hidden menu may be searched.
|
||||
- **BasicUpload** Repair the problem of error when handling non-`array` values.
|
||||
- **Form** Repair the `suffix` slot style problem of `FormItem`.
|
||||
- **Menu**
|
||||
- Repair the hovering trigger logic of the left mixed menu
|
||||
- Repair the problem that the top bar menu is wrong when displaying menu items that need to be hidden.
|
||||
- Fix the left mixed menu in hover trigger mode will jump to route directly when there is no submenu and it is activated
|
||||
- **Breadcrumb** Repair the problem that the menu with redirection cannot be jumped when clicked
|
||||
- **Markdown** fixes an initialization exception and an issue where value was not set dynamically correctly
|
||||
- **Modal** Make sure props are passed correctly
|
||||
- **MultipleTab** fixes an issue that could accidentally create login route tabs
|
||||
- **BasicTree** Fix the problem that the search function may cause `checkedKeys` to be lost
|
||||
- **CodeEditor** Fix the problem that value does not support v-model usage.
|
||||
- **CountdownInput** Fix the problem that `input` slot is not supported.
|
||||
- **ApiSelect** Fix the problem that the `options-change` event parameter is not the standard `options` data used by `select
|
||||
- **Other**
|
||||
- Fix the problem that the configuration of default menu collapse does not work
|
||||
- Repair the problem that `safari` browser reports an error and the website cannot be opened.
|
||||
- Repair the problem that eslint keeps error due to endOfLine after pulling the code on window.
|
||||
- Fix `Vue Router warn` caused by dynamic routing
|
||||
|
||||
### 🎫 Chores
|
||||
|
||||
- Add test environment test command
|
||||
|
||||
## 2.6.0(2021-07-04)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **Axios** New `withToken` configuration to control whether the request carries a token or not
|
||||
- **BasicUpload**
|
||||
- New `preview-delete` event triggered when deleting a file in preview `Modal`.
|
||||
- `value` supports `v-model` usage
|
||||
- **Route configuration**
|
||||
- Add `ignoreRoute` to generate menu only in `ROUTE_MAPPING` or `BACK` permission mode
|
||||
- Add `hidePathForChildren` configuration to ignore this level `path` when generating menus for child items
|
||||
- **TableAction** Add `tooltip` configuration to add tooltip hint for button
|
||||
- **CropperAvatar**
|
||||
- Added `value` to set the current avatar
|
||||
- Added `onChange` to accept avatar cropping and upload success event
|
||||
- New `btnText`, `btnProps` for customizing the text and properties of the upload button
|
||||
- Add tooltips to the action buttons in `Modal` for cropping
|
||||
- **Modal** Add tooltip for action button in top right corner
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Modal**
|
||||
- Fix the problem that the mask cannot be closed by clicking on it.
|
||||
- Fix `setModalProps` does not support setting `defaultFullscreen`.
|
||||
- **Table**
|
||||
- Fix the problem that `editComponentProps` doesn't support `onChange`.
|
||||
- Fix the problem that `selection-change` event is not triggered when `clickToRowSelect` is enabled.
|
||||
- Fix the problem that global configuration `fetchSetting` may be accidentally modified by local configuration.
|
||||
- Fix the problem that the parameter of `handleSearchInfoFn` contains redundant blank keys.
|
||||
- Repair the problem that when rowSelection.onChange is provided for table, the selected items of table cannot be changed manually.
|
||||
- Fix the problem that the scrollbar continues to be displayed even when it is not needed to be displayed.
|
||||
- **Icon** Repair the problem that SvgIcon is missing some styles.
|
||||
- **Menu**
|
||||
- Repair the problem that single-level menu refreshing will not be activated in route mapping mode.
|
||||
- Repair the problem that the collapse customization at the bottom of the side menu is invalid.
|
||||
- **Form** Repair the type definition of `submitButtonOptions` and `resetButtonOptions`.
|
||||
- **PopConfirmButton** Remove the redundant `title` on `Button`.
|
||||
- **Axios** Fix the problem that `params` and `data` data cannot be submitted at the same time when non-`GET` requests are made
|
||||
- **Other**
|
||||
- Repair the problem that the lock screen function can skip the lock state by refreshing the page or copying the URL to open a new browser tab
|
||||
- Repair the problem that `Token` won't be synchronized when multiple windows open pages at the same time.
|
||||
- Repair the problem that `hasPermission` does not work in `ROLE` permission mode.
|
||||
- **Table** Repair the problem that the parameter of `handleSearchInfoFn` contains extra blank keys.
|
||||
- **Tailwindcss** Remove console warning
|
||||
|
||||
## 2.5.2(2021-06-27)
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- **Icon** Remove the global registration of Icon components to prevent hot update issues under certain circumstances
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **Menu** Added `permissionMode=PermissionModeEnum.ROUTE_MAPPING` mode
|
||||
- The project is changed to this mode by default, and the original menu file is deleted
|
||||
- If you have written the menu before, you can change to `PermissionModeEnum.ROLE` mode
|
||||
|
||||
## 2.5.1(2021-06-26)
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- Upgrade `vue` and `ant-design-vue` versions to solve compatibility issues
|
||||
- **Tree** Performance optimization
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Table** Fix page jitter problem
|
||||
- **Upload** Make sure to carry custom parameters
|
||||
- **Dropdown** Fix the icon display problem of popConfirm
|
||||
- **Table** Fix the problem that the editing event of the tree table is abnormal
|
||||
- **Table** Fix the problem that when the table data is empty, the value returned by getDataSource is not the data source used by the table
|
||||
|
||||
## 2.5.0(2021-06-20)
|
||||
|
||||
## (Breaking changes) Breaking changes
|
||||
|
||||
- Change the project `windicss` to `tailwindcss` to solve the memory overflow problem
|
||||
- There are currently incompatible areas of the project
|
||||
- The wording of `!xl:m-4` needs to be changed to `xl:!m-4`, note that only `!` is incompatible. If you don’t use it, you don’t need to change it.
|
||||
- The new features of `windicss` itself need to be adjusted, for example, `Attribute` mode is not compatible
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Remove `useExpose` and use `expose` provided by the component itself instead
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- **Locale** merge multi-language files to reduce the number of files
|
||||
- **Utils** Mitt default export is changed from `Class` to `Function`
|
||||
- **Axios** `isTransformRequestResult` is renamed to `isTransformResponse`
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **CropperImage** `Cropper` Avatar cropping adds circular cropping function
|
||||
- **CropperAvatar** Added avatar upload component
|
||||
- **Drawer** `useDrawer` added `closeDrawer` function
|
||||
- **Preview** Added `createImgPreview` picture preview function
|
||||
- **Setup** New guide page example
|
||||
- **Tests** Add jest test suite, Vue component single test is not currently supported
|
||||
- **Axios** Added `authenticationScheme` configuration to specify the authentication scheme
|
||||
- **Setting** Added `sessionTimeoutProcessing` project configuration item, used to configure how to deal with session timeout
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Modal** fix full screen height calculation error
|
||||
- **Modal** Fix the problem that the shutdown event is triggered multiple times
|
||||
- **PageWrapper** fix the height calculation problem
|
||||
- **FlowChart** Repair drag and drop menu missing
|
||||
- Fixed Iframe routing error in background mode
|
||||
- **PageWrapper** Fix the height calculation problem when footer and global footer are opened at the same time
|
||||
- **Menu** Fix the jitter problem of menu folding animation
|
||||
- **Store** fixed type error after pinia version upgrade
|
||||
|
||||
## 2.4.2(2021-06-10)
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- `CountTo` component refactoring
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- `radioButtonGroup` supports `boolean` value
|
||||
- `useModalInner` added `redoModalHeight` to reset the height of `Modal` inside Modal
|
||||
- `useECharts` added `getInstance` to obtain instances of `echart`
|
||||
- `TableAction` added `stopButtonPropagation` to prevent the action button click event from bubbling
|
||||
- `BasicTable` in the row edit mode, you can get or set the value of other editing components in the column
|
||||
- The `ApiSelect` component will automatically re-fetch the data after the `params` is changed
|
||||
- `TableImg` component improvement
|
||||
- `BasicTable` added `columns-change` event to monitor the user to change the sorting, display, and fixed status of columns
|
||||
- `Tinymce` supports dynamic modification readonly
|
||||
- `BasicTable` added `updateTableDataRecord` method to update the specified row data
|
||||
- `useModal` added `closeModal` method to close `Modal`
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fix the problem that `redoModalHeight` cannot reduce the height
|
||||
- Fix the problem that the schema data of `BasicForm` does not take effect
|
||||
- Fix the problem that multiple tags may cause `KeepAlive` to fail
|
||||
- Fix the problem that the default `axios` interceptor cannot handle custom code
|
||||
- Fix the height issue of the lock screen pop-up window
|
||||
- Fixed the problem that the half-selected state of the `Column Display` checkbox of `BaiscTable` was incorrectly displayed
|
||||
- Fixed the problem that the preview list of the `BasicUpload` component could not be displayed in some cases
|
||||
- Fix the problem that the `options` setting of ` RadioButtonGroup``disabled ` does not take effect
|
||||
- Fix the problem that the button for uploading pictures in the read-only mode of the `Tinymce` component is still available
|
||||
- Fix the stuttering problem of `BasicForm` under certain circumstances
|
||||
- Fix the problem that "directory" routing does not work
|
||||
|
||||
## 2.4.1(2021-06-01)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- Add `DatePicker` and `TimePicker` components to editable tables
|
||||
- Added `defaultExpandLevel` configuration to `Tree` component
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
-Menu search default focus
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fix known issues of `CodeEditor`
|
||||
- Fix the issue of `i18n` console warning
|
||||
- Fix the problem that the editable table `align` configuration does not take effect
|
||||
- Ensure that `axios` only processes `Object` parameters
|
||||
- Fix the failure of the `defaultExpandAll` configuration of the `Tree` component
|
||||
- Fix the problem of missing dividing line in `TableAction`
|
||||
- Fix the known issues of the table
|
||||
- Fix that the lang attribute of HTML will not be set when reloading due to the first loading or changing the language
|
||||
|
||||
## 2.4.0 (2021-05-25)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
-New graphical editor example -New code editor (including Json editor) -Added `JsonPreview`Json data viewing component -The fields of the data column and actionColumn of the table can be controlled according to the authority and business. -Added an example of a permission control table (AuthColumn.vue) -Added user login expiration example
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
-Consolidate some language files to reduce the number of files
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
-Fix the flashing white screen when the dark theme refreshes -Fix the problem that other functions are invalid when the tab is closed -Fix known issues in the form -Fix the automatic lock screen failure
|
||||
|
||||
## 2.3.0 (2021-04-10)
|
||||
|
||||
## (Breaking changes) Breaking changes
|
||||
|
||||
- Use `pinia` to replace `vuex`, `vuex-module-decorators`.
|
||||
|
||||
-Impact, if you used vuex-module-decorators yourself before, you need to transform it to pinia.
|
||||
|
||||
- the reason: -pinia is basically similar to vuex5api and is easy to understand. -Subsequent switching to vuex5 has a very low cost and can also be used as a third-party state management library
|
||||
|
||||
- Remove `useKeyPress` and use `vueuse`-`onKeyStroke` instead
|
||||
- Remove `useDebounceFn` and use `vueuse`-`useDebounceFn` instead
|
||||
- Remove `useThrottle` and use `vueuse`-`useThrottleFn` instead
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- Tabs support persistent storage
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Remove `useElResize`
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Login page style fix
|
||||
- Fix the known problems of the menu
|
||||
- Fix the problem of theme style switching
|
||||
|
||||
## 2.2.0 (2021-04-06)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- Added `headerTitle` slot
|
||||
- New printing example
|
||||
- Added about interface
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Remove useFullScreen function
|
||||
- tinymce changed from Cdn to npm (the package size is too large)
|
||||
- Dashboard refactoring
|
||||
- Remove ApexCharts and examples
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Make sure the breadcrumbs are displayed correctly
|
||||
- Fixed the issue of tinymce upload button disappearing in full screen mode
|
||||
- Make sure that the title changes normally after logging in again
|
||||
- Ensure that the background mode login is normal
|
||||
- Fix TableAction click event issue
|
||||
|
||||
## 2.1.1 (2021-03-26)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- Added hideChildrenInMenu configuration for routing. Used to hide submenu
|
||||
- Built-in expand/collapse all functions in the tree form
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Refactor the routing multi-layer mode to solve the problem of multiple implementations of nested keepalives
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Ensure that the CountDownInput component is reset to the empty value
|
||||
- Fix the display problem on the small screen in split mode
|
||||
- Fix table height calculation problem
|
||||
- Fix the problem that components cannot be obtained by background routing
|
||||
- Fix Modal component loadingTip configuration does not take effect
|
||||
- Fix the background permission command does not take effect
|
||||
- Make sure the progress bar is closed properly
|
||||
- Fix the problem of invalid table check column configuration
|
||||
- Ensure that the first level menu can be hidden
|
||||
- Ensure that the hidden fields of the form are verified properly
|
||||
|
||||
### 🎫 Chores
|
||||
|
||||
- Remove ls-lint
|
||||
|
||||
### 🎫 Chores
|
||||
|
||||
- 移除 ls-lint
|
||||
|
||||
## 2.1.0 (2021-03-15)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- Added svg mode to icon selector
|
||||
- Added time component
|
||||
- Added AutoNavi/Baidu/Google Map example
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Refactor the project to solve the hot update problem caused by circular dependencies
|
||||
- Remove vueHelper/useClickoutside, use @vueuse/core instead
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Ensure that the value of `table action` is updated correctly
|
||||
- Fix the animation of page switching cannot be closed
|
||||
- Fix `PageWrapper`title not showing
|
||||
- Fix the known issues of the table
|
||||
- Fix the problem that the BasicTree component can't customize the title
|
||||
- Fix the button style problem after theme switching
|
||||
|
||||
## 2.0.3 (2021-03-07)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- `BasicTree` added `clickRowToExpand`, used to click tree node to expand
|
||||
- Added SvgIcon plugin and examples
|
||||
- Add the department tree on the left side of the account management interface·
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- Pagination parameters are no longer carried when the table is closed
|
||||
- The login page monitors the carriage return event to log in
|
||||
- When the adaptive size of the table is set, the height is filled according to the screen.
|
||||
- Tree scroll bar optimization
|
||||
- Optimize the loading speed of local development
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fix known issues with `Description`
|
||||
- Fix known issues with `BasicForm`
|
||||
- Fix the logic problem of show attribute of ActionItem under `BasicTree`
|
||||
- Fix the style error of the tree component demo example
|
||||
- Repair account management to add new but not cleared old data
|
||||
- The form component should allow the setFieldsValue method to be null or undefined
|
||||
- Ensure that the single-level breadcrumbs jump correctly
|
||||
- Ensure that the Form component does not verify hidden form items
|
||||
|
||||
## 2.0.2 (2021-03-04)
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Refactored multi-language modules to support lazy loading and remote loading
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- axios supports form-data format request
|
||||
- Added icon selector component (support local and online methods)
|
||||
- Added WebSocket examples and service scripts
|
||||
- Added the `renderIcon` property to the Tree component to control the display of level icons
|
||||
- Tree->actionItem added show attribute, used to dynamically control button display
|
||||
- New toolbar/title/search function for Tree
|
||||
- Added department management/password modification/account management/role management/menu management sample interface
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- Optimized login interface animation
|
||||
- Fix the problem of excessively large github warehouse.
|
||||
- Hide table full screen button by default
|
||||
- `crypto-es` is changed to `crypto-js` to reduce the package size
|
||||
- `types` directory moved to the root directory, compatible with other directory global types
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fix the warning problem of verification code component
|
||||
- Fix the table cannot get the selected row correctly
|
||||
- Fixed modal height calculation error in full screen state
|
||||
- Fix some table style issues
|
||||
- Fix the invalidation of the tree form `indentSize` setting
|
||||
|
||||
## 2.0.1 (2021-02-21)
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- Refactored login page, new registration page/reset password page/mobile phone login/QR code login
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- Added the `settingButtonPosition` configuration item for configuring the position of the `settings` button
|
||||
- `modal` can switch the full screen by double-clicking the head
|
||||
- Added `CountDownInput` component
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- Optimize the editable center style and the width of the drop-down box is too short
|
||||
- The `edit-change` event listener when the table is added and edited
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- Fix image preview style error
|
||||
- Fix icon style problem
|
||||
- Fix the drop-down echo problem of editable table
|
||||
|
||||
## 2.0.0 (2021-02-18)
|
||||
|
||||
## Breaking changes
|
||||
|
1267
CHANGELOG.md
Normal file
1267
CHANGELOG.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,409 @@
|
||||
## Wip
|
||||
## 2.6.1(2021-07-19)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **NoticeList** 添加分页、超长自动省略、标题点击事件、标题删除线等功能
|
||||
- **MixSider** 优化 Mix 菜单布局时 底部折叠按钮 的样式,与其它菜单布局时的风格保持一致
|
||||
- **ApiTreeSelect** 扩展`antdv`的`TreeSelect`组件,支持远程数据源,用法类似`ApiSelect`
|
||||
- **BasicTable** 新增`ApiTreeSelect`编辑组件
|
||||
- 可以为不同的用户指定不同的后台首页:
|
||||
- 在`getUserInfo`接口返回的用户信息中增加`homePath`字段(可选)即可为当前用户定制首页路径
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **BasicTable**
|
||||
- 修复滚动条样式问题(移除了滚动样式补丁)
|
||||
- 修复树形表格的带有展开图标的单元格的内容对齐问题
|
||||
- 新增`headerTop`插槽
|
||||
- 修复操作列的按钮在 disabled 状态下的颜色显示
|
||||
- 修复可编辑单元格的值不能直接通过修改`dataSource`来更新显示的问题
|
||||
- 修复使用`ApiSelect`编辑组件时的数据回显问题
|
||||
- 修复在部分场景下编辑组件可能会报`onXXX`类型错误的问题
|
||||
- **TableAction**
|
||||
- 仅在 `action.tooltip`存在的情况下 才创建 Tooltip 组件
|
||||
- 修复组件内的圆形按钮内容没有居中的问题
|
||||
- **AppSearch** 修复可能会搜索隐藏菜单的问题
|
||||
- **BasicUpload** 修复处理非`array`值时报错的问题
|
||||
- **Form** 修复`FormItem`的`suffix`插槽样式问题
|
||||
- **Menu**
|
||||
- 修复左侧混合菜单的悬停触发逻辑
|
||||
- 修复顶栏菜单在显示包含需要隐藏的菜单项目时出错的问题
|
||||
- 修复悬停触发模式下左侧混合菜单会在没有子菜单且被激活时直接跳转路由
|
||||
- **Breadcrumb** 修复带有重定向的菜单点击无法跳转的问题
|
||||
- **Markdown** 修复初始化异常以及不能正确地动态设置 value 的问题
|
||||
- **Modal** 确保 props 正确被传递
|
||||
- **MultipleTab** 修复可能会意外创建登录路由标签的问题
|
||||
- **BasicTree** 修复搜索功能可能导致`checkedKeys`丢失的问题
|
||||
- **CodeEditor** 修复 value 不支持 v-model 用法的问题
|
||||
- **CountdownInput** 修复不支持`input`插槽的问题
|
||||
- **ApiSelect** 修复`options-change`事件参数不是`select`所使用的标准`options`数据的问题
|
||||
- **其它**
|
||||
- 修复菜单默认折叠的配置不起作用的问题
|
||||
- 修复`safari`浏览器报错导致网站打不开
|
||||
- 修复在 window 上,拉取代码后 eslint 因 endOfLine 而保错问题
|
||||
- 修复因动态路由而产生的 `Vue Router warn`
|
||||
|
||||
### 🎫 Chores
|
||||
|
||||
- 添加 test 环境测试命令
|
||||
|
||||
## 2.6.0(2021-07-04)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **Axios** 新增`withToken`配置,用于控制请求是否携带 token
|
||||
- **BasicUpload**
|
||||
- 新增在预览 `Modal` 中删除文件时触发`preview-delete` 事件
|
||||
- `value` 支持 `v-model` 用法
|
||||
- **Route 配置**
|
||||
- 增加`ignoreRoute`用于在`ROUTE_MAPPING`或`BACK`权限模式下仅生成菜单
|
||||
- 增加`hidePathForChildren`配置,标识为子项目生成菜单时忽略本级`path`
|
||||
- **TableAction** 新增`tooltip`配置,可以为按钮增加 tooltip 提示
|
||||
- **CropperAvatar**
|
||||
- 新增`value`用于设置当前头像
|
||||
- 新增`onChange`用于接受头像剪裁并上传成功事件
|
||||
- 新增`btnText`、`btnProps` 用于自定义上传按钮文案和属性
|
||||
- 为剪裁`Modal`内的操作按钮添加工具提示
|
||||
- **Modal** 为右上角的操作按钮添加工具提示
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Modal**
|
||||
- 修复点击遮罩不能关闭的问题
|
||||
- 修复 `setModalProps` 不支持设置 `defaultFullscreen` 的问题
|
||||
- **Table**
|
||||
- 修复 `editComponentProps` 不支持 `onChange`的问题
|
||||
- 修复启用`clickToRowSelect`时,点击行不会触发`selection-change`事件的问题
|
||||
- 修复全局配置`fetchSetting`可能会被局部配置意外修改的问题
|
||||
- 修复`handleSearchInfoFn`的参数包含多余空白键的问题
|
||||
- 修复为 table 提供 rowSelection.onChange 时,无法手动变更 table 的选中项的问题
|
||||
- 修复滚动条在无需显示的时候仍然持续显示的问题
|
||||
- **Icon** 修复 SvgIcon 缺少部分样式的问题
|
||||
- **Menu**
|
||||
- 修复路由映射模式下,单级菜单刷新不会激活
|
||||
- 修复侧边菜单底部的折叠自定义失效的问题
|
||||
- **Form** 修复`submitButtonOptions`和`resetButtonOptions`的类型定义
|
||||
- **PopConfirmButton** 移除`Button`上多余的`title`
|
||||
- **Axios** 修复非`GET`请求时,无法同时提交`params`和`data`数据的问题
|
||||
- **其它**
|
||||
- 修复锁屏功能可以通过刷新页面或复制 URL 打开新的浏览器标签来跳过锁定状态的问题
|
||||
- 修复多个窗口同时打开页面时,`Token` 不会同步的问题
|
||||
- 修复`ROLE`权限模式下`hasPermission`不工作的问题
|
||||
- **Table** 修复`handleSearchInfoFn`的参数包含多余空白键的问题
|
||||
- **Tailwindcss** 移除控制台警告
|
||||
|
||||
## 2.5.2(2021-06-27)
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- **Icon** 移除 Icon 组件全局注册,防止特定情况下热更新问题
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **Menu** 新增 `permissionMode=PermissionModeEnum.ROUTE_MAPPING`模式
|
||||
- 项目默认改为该模式,删除原有菜单文件
|
||||
- 如果之前已经写好了菜单,可以更改为`PermissionModeEnum.ROLE`模式即可
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Drawer** 修复`visible`状态异常
|
||||
|
||||
## 2.5.1(2021-06-26)
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- 升级`vue`与`ant-design-vue`版本,解决兼容问题
|
||||
- **Tree** 性能优化
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Table** 修复分页抖动问题
|
||||
- **Upload** 确保携带自定义参数
|
||||
- **Dropdown** 修复 popConfirm 的图标显示问题
|
||||
- **Table** 修复树形表格的编辑事件不正常的问题
|
||||
- **Table** 修复当表格数据为空时,getDataSource 返回的值不是表格所使用的数据源的问题
|
||||
|
||||
## 2.5.0(2021-06-20)
|
||||
|
||||
## (破坏性更新) Breaking changes
|
||||
|
||||
- 将项目`windicss`改为`tailwindcss`,解决内存溢出问题
|
||||
- 目前项目不兼容地方有
|
||||
- `!xl:m-4` 之类的写法需要改为`xl:!m-4`,注意只有`!`这个不兼容,没用到则不用改
|
||||
- `windicss`自身新增的特性需要调整,比如`Attribute`模式不兼容
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- 移除`useExpose`,使用组件自身提供的`expose`代替
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- **Locale** 合并多语言文件,减少文件数量
|
||||
- **Utils** Mitt 默认导出由 `Class` 改为 `Function`
|
||||
- **Axios** `isTransformRequestResult`更名为`isTransformResponse`
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- **CropperImage** `Cropper` 头像裁剪新增圆形裁剪功能
|
||||
- **CropperAvatar** 新增头像上传组件
|
||||
- **Drawer** `useDrawer`新增`closeDrawer`函数
|
||||
- **Preview** 新增`createImgPreview`图片预览函数
|
||||
- **Setup** 新增引导页示例
|
||||
- **Tests** 添加 jest 测试套件,暂不支持 Vue 组件单测
|
||||
- **Axios** 新增`authenticationScheme`配置,用于指定认证方案
|
||||
- **Setting** 新增 `sessionTimeoutProcessing` 项目配置项,用于配置会话超时如何处理
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- **Modal** 修复全屏高度计算错误
|
||||
- **Modal** 修复关闭事件触发多次问题
|
||||
- **PageWrapper** 修复高度计算问题
|
||||
- **FlowChart** 修复拖放菜单丢失
|
||||
- 修复后台模式下,Iframe 路由错误
|
||||
- **PageWrapper** 修复 footer 与全局页脚同时开启时的高度计算问题
|
||||
- **Menu** 修复菜单折叠动画抖动问题
|
||||
- **Store**修复 pinia 版本升级之后类型错误
|
||||
|
||||
## 2.4.2(2021-06-10)
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- `CountTo`组件重构
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- `radioButtonGroup` 支持`boolean`值
|
||||
- `useModalInner` 新增 `redoModalHeight`用于在 Modal 内部重设`Modal`高度
|
||||
- `useECharts` 新增`getInstance`用于获取`echart`实例
|
||||
- `TableAction` 新增 `stopButtonPropagation` 阻止操作按钮点击事件冒泡
|
||||
- `BasicTable` 在行编辑模式下,可以获取或设置其它处于列的编辑组件的值
|
||||
- `ApiSelect` 组件在`params`改变后会自动重新`fetch`数据
|
||||
- `TableImg` 组件改进
|
||||
- `BasicTable` 新增 `columns-change` 事件用于监听用户改变列排序、展示、固定状态
|
||||
- `Tinymce`支持动态修改 readonly
|
||||
- `BasicTable`新增`updateTableDataRecord`方法用于更新指定行数据
|
||||
- `useModal`新增`closeModal`方法用于关闭`Modal`
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 修复`redoModalHeight`不能减小高度的问题
|
||||
- 修复 `BasicForm`设置 schemas 数据不生效的问题
|
||||
- 修复多标签可能导致`KeepAlive`失效的问题
|
||||
- 修复默认的`axios`拦截器不能处理自定义 code 的问题
|
||||
- 修复锁屏弹窗的高度问题
|
||||
- 修复`BaiscTable`的`列展示`复选框的半选状态显示不正确的问题
|
||||
- 修复`BasicUpload`组件的预览列表某些情况下不能显示的问题
|
||||
- 修复`RadioButtonGroup`的`options`设置`disabled`不生效的问题
|
||||
- 修复`Tinymce`组件在只读模式下上传图片的按钮仍然可用的问题
|
||||
- 修复`BasicForm`特定情况下的卡顿问题
|
||||
- 修复"目录"路由不起作用的问题
|
||||
|
||||
## 2.4.1(2021-06-01)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 可编辑表格新增`DatePicker`和`TimePicker`组件
|
||||
- `Tree` 组件新增`defaultExpandLevel`配置
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- 菜单搜索默认聚焦
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 修复`CodeEditor`已知问题
|
||||
- 修复`i18n`控制台警告问题
|
||||
- 修复可编辑表格`align`配置不生效问题
|
||||
- 确保`axios`只对`Object`参数进行处理
|
||||
- 修复`Tree`组件 `defaultExpandAll` 配置失效
|
||||
- 修复`TableAction` 分割线丢失问题
|
||||
- 修复表格已知问题
|
||||
- 修复首次加载或改变语言导致重载时,不会设置 HTML 的 lang 属性
|
||||
|
||||
## 2.4.0 (2021-05-25)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 新增图形编辑器示例
|
||||
- 新增代码编辑器(包含 Json 编辑器)
|
||||
- 新增 `JsonPreview`Json 数据查看组件
|
||||
- 表格的数据列(column)和操作列(actionColumn)的字段可以根据权限和业务来控制是否显示
|
||||
- 新增权限控制表格示例(AuthColumn.vue)
|
||||
- 新增用户登录过期示例
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- 合并部分语言文件,减少文件数量
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 修复黑暗主题刷新闪烁的白屏
|
||||
- 修复标签页关闭其他功能失效问题
|
||||
- 修复表单已知问题
|
||||
- 修复自动锁屏失效
|
||||
|
||||
## 2.3.0 (2021-04-10)
|
||||
|
||||
## (破坏性更新) Breaking changes
|
||||
|
||||
- 使用 `pinia` 替换 `vuex`,`vuex-module-decorators`。
|
||||
|
||||
- 影响,之前如果有自己使用 vuex-module-decorators,需要改造为 pinia。
|
||||
- 原因:
|
||||
- pinia 于 vuex5api 基本类似,且简单易懂。
|
||||
- 后续切换 vuex5 成本非常低,也可以当作第三方状态管理库使用
|
||||
|
||||
- 移除 `useKeyPress` 使用`vueuse`-`onKeyStroke`代替
|
||||
- 移除 `useDebounceFn` 使用`vueuse`-`useDebounceFn`代替
|
||||
- 移除 `useThrottle` 使用`vueuse`-`useThrottleFn`代替
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 标签页支持持久化保存
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- 移除 `useElResize`
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 登录页样式修复
|
||||
- 修复菜单已知问题
|
||||
- 修复主题样式切换问题
|
||||
|
||||
## 2.2.0 (2021-04-06)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 新增`headerTitle` slot
|
||||
- 新增打印示例
|
||||
- 新增关于界面
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- 移除 useFullScreen 函数
|
||||
- tinymce 由 Cdn 改为 npm(打包体积偏大)
|
||||
- Dashboard 重构
|
||||
- 移除 ApexCharts 及示例
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 确保面包屑正确的显示图标
|
||||
- 修复 tinymce 上传按钮全屏模式下消失问题
|
||||
- 确保 title 在重新登录后正常改变
|
||||
- 确保后台模式登录正常
|
||||
- 修复 TableAction 点击事件问题
|
||||
|
||||
## 2.1.1 (2021-03-26)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 路由新增 hideChildrenInMenu 配置。用于隐藏子菜单
|
||||
- 树形表格内置展开/折叠全部函数
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- 重构路由多层模式,解决嵌套 keepalive 执行多次问题
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 确保 CountDownInput 组件重置清空值
|
||||
- 修复分割模式下在小屏幕中显示问题
|
||||
- 修复表格高度计算问题
|
||||
- 修复后台路由获取不到组件问题
|
||||
- 修复 Modal 组件 loadingTip 配置不生效
|
||||
- 修复后台权限指令不生效
|
||||
- 确保 progress 进度条正确关闭
|
||||
- 修复表格勾选列配置失效问题
|
||||
- 确保一级菜单可以被隐藏
|
||||
- 确保表单隐藏字段校验正常
|
||||
|
||||
### 🎫 Chores
|
||||
|
||||
- 移除 ls-lint
|
||||
|
||||
## 2.1.0 (2021-03-15)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- 图标选择器新增 svg 模式
|
||||
- 新增时间组件
|
||||
- 新增高德/百度/谷歌地图示例
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- 重构项目以解决循环依赖项导致的热更新问题
|
||||
- 移除 vueHelper/useClickoutside,使用@vueuse/core 代替
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 确保 `table action` 的值被正确更新
|
||||
- 修复页面切换的动画无法关闭
|
||||
- 修复`PageWrapper`title 不显示
|
||||
- 修复表格已知问题
|
||||
- 修复 BasicTree 组件不能自定义 title 问题
|
||||
- 修复主题切换后按钮样式问题
|
||||
|
||||
## 2.0.3 (2021-03-07)
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- `BasicTree` 新增`clickRowToExpand`,用于单击树节点展开
|
||||
- 新增 SvgIcon 插件及示例
|
||||
- 账号管理界面增加左侧部门树·
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- 表格关闭分页时不再携带分页参数
|
||||
- 登录页监听回车事件进行登录
|
||||
- 当表格设置自适应大小时,根据屏幕来铺满了高度.
|
||||
- Tree 滚动条优化
|
||||
- 优化本地开发加载速度
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 修复`Description`已知问题
|
||||
- 修复`BasicForm`已知问题
|
||||
- 修复`BasicTree`下 ActionItem 的 show 属性逻辑问题
|
||||
- 修复树组件 demo 示例样式错误
|
||||
- 修复账号管理新增未清空旧数据
|
||||
- form 组件应允许 setFieldsValue 方法值为 null 或者 undefined
|
||||
- 确保单级面包屑正确跳转
|
||||
- 确保 Form 组件不校验隐藏的表单项
|
||||
|
||||
## 2.0.2 (2021-03-04)
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
- 重构多语言模块,支持懒加载及远程加载
|
||||
|
||||
### ✨ Features
|
||||
|
||||
- axios 支持 form-data 格式请求
|
||||
- 新增图标选择器组件(支持本地和在线方式)
|
||||
- 新增 WebSocket 示例和服务脚本
|
||||
- Tree 组件新增 `renderIcon` 属性用于控制层级图标显示
|
||||
- Tree->actionItem 新增 show 属性,用于动态控制按钮显示
|
||||
- Tree 新增工具栏/title/搜索功能
|
||||
- 新增部门管理/修改密码/账号管理/角色管理/菜单管理示例界面
|
||||
|
||||
### ⚡ Performance Improvements
|
||||
|
||||
- 登录界面动画优化
|
||||
- 修复 github 仓库体积过大问题.
|
||||
- 默认隐藏表格全屏按钮
|
||||
- `crypto-es`改为`crypto-js`,减小打包体积
|
||||
- `types`目录移动到根目录,兼容其他目录全局类型
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- 修复验证码组件警告问题
|
||||
- 修复表格不能正确的获取选中行
|
||||
- 修复全屏状态下 modal 高度计算错误
|
||||
- 修复部分表格样式问题
|
||||
- 修复树形表格 `indentSize`设置失效
|
||||
|
||||
## 2.0.1 (2021-02-21)
|
||||
|
||||
### ✨ Refactor
|
||||
|
||||
|
293
README.md
293
README.md
@@ -1,186 +1,105 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/anncwb/vue-vben-admin" target="_blank">
|
||||
<img alt="VbenAdmin Logo" width="200" src="/anncwb/vue-vben-admin/raw/main/.github/res/imgs/logo.png">
|
||||
</a>
|
||||
</p>
|
||||
<h2 align="center">VUE VBEN ADMIN2.0</h2>
|
||||
<div align="center"> <a href="https://github.com/anncwb/vue-vben-admin"> <img alt="VbenAdmin Logo" width="200" height="200" src="https://anncwb.github.io/anncwb/images/logo.png"> </a> <br> <br>
|
||||
|
||||
[Chinese](./README.zh-CN.md) | **English**
|
||||
[](LICENSE)
|
||||
|
||||
[CHANGELOG](CHANGELOG.en_US.md)
|
||||
<h1>Vue vben admin</h1>
|
||||
</div>
|
||||
|
||||
- [Introduction](#introduction)
|
||||
- [GitHub](#github)
|
||||
- [Thin](#thin)
|
||||
- [Preview](#preview)
|
||||
- [Documentation](#documentation)
|
||||
- [Preinstallation](#preinstallation)
|
||||
- [Environmental requirements](#environmental-requirements)
|
||||
- [UI framework](#ui-framework)
|
||||
- [Icon](#icon)
|
||||
- [Plugin](#plugin)
|
||||
- [Suggested development environment](#suggested-development-environment)
|
||||
- [Install](#install)
|
||||
- [Usage](#usage)
|
||||
- [Development environment](#development-environment)
|
||||
- [Build](#build)
|
||||
- [Format](#format)
|
||||
- [Other](#other)
|
||||
- [Git submit specifications](#git-submit-specifications)
|
||||
- [Code contribution](#code-contribution)
|
||||
- [Finished features](#finished-features)
|
||||
- [Developing features](#developing-features)
|
||||
- [Browser support](#browser-support)
|
||||
- [Plugins](#plugins)
|
||||
**English** | [中文](./README.zh-CN.md)
|
||||
|
||||
## Introduction
|
||||
|
||||
The project is based on the vue3 style background management system implemented by ʻant-design-vue`, `typescript`,`vue3.0`,`vite`,`tsx`,
|
||||
Vue Vben Admin is a free and open source middle and back-end template. Using the latest `vue3`, `vite2`, `TypeScript` and other mainstream technology development, the out-of-the-box middle and back-end front-end solutions can also be used for learning reference.
|
||||
|
||||
## GitHub
|
||||
## Feature
|
||||
|
||||
[vue-vben-admin2.0](https://github.com/anncwb/vue-vben-admin) - `main` branch
|
||||
- **State of The Art Development**:Use front-end front-end technology development such as Vue3/vite2
|
||||
- **TypeScript**: Application-level JavaScript language
|
||||
- **Theming**: Configurable themes
|
||||
- **International**:Built-in complete internationalization program
|
||||
- **Mock Server** Built-in mock data scheme
|
||||
- **Authority** Built-in complete dynamic routing permission generation scheme.
|
||||
- **Component** Multiple commonly used components are encapsulated twice
|
||||
|
||||
### Thin
|
||||
## 预览
|
||||
|
||||
[vue-vben-admin-thin-next](https://github.com/anncwb/vben-admin-thin-next)
|
||||
- [vue-vben-admin](https://vvbin.cn/next/) - Full version Chinese site
|
||||
- [vue-vben-admin-gh-pages](https://anncwb.github.io/vue-vben-admin/) - Full version of the github site
|
||||
- [vben-admin-thin-next](https://vvbin.cn/thin/next/) - Simplified Chinese site
|
||||
- [vben-admin-thin-gh-pages](https://anncwb.github.io/vben-admin-thin-next/) -Simplified github site
|
||||
|
||||
## Preview
|
||||
|
||||
- [2.0 preview](https://vvbin.cn/next/)
|
||||
|
||||
- [2.0 Thin Preview](https://vvbin.cn/thin/next/)
|
||||
|
||||
Account for test: vben/123456
|
||||
Test account: vben/123456
|
||||
|
||||
<p align="center">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="./.github/res/imgs/preview1.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="./.github/res/imgs/preview2.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="./.github/res/imgs/preview3.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview1.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview2.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview3.png">
|
||||
</p>
|
||||
|
||||
### Use Gitpod
|
||||
|
||||
Open the project in Gitpod (free online dev environment for GitHub) and start coding immediately.
|
||||
|
||||
[](https://gitpod.io/#https://github.com/anncwb/vue-vben-admin)
|
||||
|
||||
## Documentation
|
||||
|
||||
The documentation for 2.0 hasn't started yet, it will be provided later.
|
||||
[Document](https://vvbin.cn/doc-next/)
|
||||
|
||||
## Preinstallation
|
||||
## Preparation
|
||||
|
||||
### Environmental requirements
|
||||
- [node](http://nodejs.org/) and [git](https://git-scm.com/) - Project development environment
|
||||
- [Vite](https://vitejs.dev/) - Familiar with vite features
|
||||
- [Vue3](https://v3.vuejs.org/) - Familiar with Vue basic syntax
|
||||
- [TypeScript](https://www.typescriptlang.org/) - Familiar with the basic syntax of `TypeScript`
|
||||
- [Es6+](http://es6.ruanyifeng.com/) - Familiar with es6 basic syntax
|
||||
- [Vue-Router-Next](https://next.router.vuejs.org/) - Familiar with the basic use of vue-router
|
||||
- [Ant-Design-Vue](https://2x.antdv.com/docs/vue/introduce-cn/) - ui basic use
|
||||
- [Mock.js](https://github.com/nuysoft/Mock) - mockjs basic syntax
|
||||
|
||||
- `Node.js`: - Version > `12.0.0` .
|
||||
- `yarn` : - Package management tool.
|
||||
## Install and use
|
||||
|
||||
### UI framework
|
||||
|
||||
- [Tailwind CSS](https://tailwindcss.com/) - 2.0.0-beta.5 has deleted.
|
||||
- [Ant Design Vue 2.0](https://2x.antdv.com/docs/vue/introduce-cn/)
|
||||
|
||||
### Icon
|
||||
|
||||
- [Ant Design Vue Icon Component](https://2x.antdv.com/components/icon-cn/) - Icon which is imported on demand.
|
||||
- [Iconify](https://iconify.design) - Icon can be used [Icônes](https://icones.netlify.app/)
|
||||
- [PurgeIcons](https://github.com/antfu/purge-icons) - Icon which is used by build.
|
||||
|
||||
### Plugin
|
||||
|
||||
- [Vue Router Next](https://github.com/vuejs/vue-router-next)
|
||||
- [Vuex Next](https://github.com/vuejs/vuex)
|
||||
- [vuex-module-decorators](https://github.com/championswimmer/vuex-module-decorators) - vuex modular
|
||||
- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - Mock plugin base on vite
|
||||
- [vue-i18n](https://github.com/intlify/vue-i18n-next) - Internationalization
|
||||
- [lodash-es](https://github.com/lodash/lodash) - JavaScript utility library
|
||||
- [axios](https://github.com/axios/axios) - Http data interaction
|
||||
- [TypeScript](https://www.typescriptlang.org/)
|
||||
|
||||
### Suggested development environment
|
||||
|
||||
- `Git`: - Tool of version management
|
||||
- `Visual Studio Code` - (VSCode): Latest version
|
||||
- [VS Code Extensions](./.vscode/extensions.json)
|
||||
- [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify)
|
||||
- [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) - Tailwind css style association
|
||||
- [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur) - Essential for vue development
|
||||
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - Checking script code
|
||||
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Code formatting
|
||||
- [Stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) - Css formatting
|
||||
|
||||
## Install
|
||||
- Get the project code
|
||||
|
||||
```bash
|
||||
# Make git case sensitive to file names
|
||||
git config core.ignorecase false
|
||||
git clone https://github.com/anncwb/vue-vben-admin.git
|
||||
```
|
||||
|
||||
# Pull code of the project
|
||||
git clone https://github.com/anncwb/vue-vben-admin.git vue-vben-admin-2.0
|
||||
- Installation dependencies
|
||||
|
||||
cd vue-vben-admin-2.0
|
||||
```bash
|
||||
cd vue-vben-admin
|
||||
|
||||
# If you use other package management tool, you can install it by yourself
|
||||
# if you hasn't install yarn, please run: npm install -g yarn
|
||||
yarn install
|
||||
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Development environment
|
||||
- run
|
||||
|
||||
```bash
|
||||
yarn serve
|
||||
```
|
||||
|
||||
### Build
|
||||
- build
|
||||
|
||||
```bash
|
||||
|
||||
yarn build # build
|
||||
|
||||
yarn build:no-cache # build, cache will be removed before build
|
||||
|
||||
yarn report # Generate build package report preview
|
||||
yarn build
|
||||
```
|
||||
|
||||
### Format
|
||||
## Change Log
|
||||
|
||||
```bash
|
||||
yarn lint:stylelint # css formatting
|
||||
[CHANGELOG](./CHANGELOG.zh_CN.md)
|
||||
|
||||
yarn lint:prettier # js/ts code formatting
|
||||
```
|
||||
## Project
|
||||
|
||||
### Other
|
||||
- [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) - full version
|
||||
- [vue-vben-admin-thin-next](https://github.com/anncwb/vben-admin-thin-next) - Simplified version
|
||||
|
||||
```bash
|
||||
yarn reinstall # Remove dependencies and reinstall, supported window
|
||||
## How to contribute
|
||||
|
||||
yarn preview # Build and preview in local
|
||||
You are very welcome to join Or submit a Pull Request。
|
||||
|
||||
yarn log # Generate CHANGELOG
|
||||
|
||||
yarn clean:cache # Delete cache
|
||||
|
||||
yarn clean:lib # Delete node_modules, supported window
|
||||
```
|
||||
|
||||
## Git submit specifications
|
||||
|
||||
- Refer to [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) specifications ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
|
||||
|
||||
- `feat` Add new features
|
||||
- `fix` Fix problem/BUG
|
||||
- `style` Code style related and doesn't affect the running result
|
||||
- `perf` Optimization/performance improvement
|
||||
- `refactor` Refactor
|
||||
- `revert` Undo edit
|
||||
- `test` Test related
|
||||
- `docs` Documentation/notes
|
||||
- `chore` Dependent update/scaffolding configuration modification etc
|
||||
- `workflow` Workflow improvements
|
||||
- `ci` Continuous integration
|
||||
- `types` Update file of type definition
|
||||
- `wip` Developing
|
||||
|
||||
## Code contribution
|
||||
**Pull Request:**
|
||||
|
||||
1. Fork code!
|
||||
2. Create your own branch: `git checkout -b feat/xxxx`
|
||||
@@ -188,73 +107,63 @@ yarn clean:lib # Delete node_modules, supported window
|
||||
4. Push your branch: `git push origin feat/xxxx`
|
||||
5. submit`pull request`
|
||||
|
||||
## Finished features
|
||||
## Git Contribution submission specification
|
||||
|
||||
- [x] Project construction (based on vite))
|
||||
- [x] Login and exit
|
||||
- [x] Menu (can search, drag and drop and menu layout)
|
||||
- [x] Multiple tabs/breadcrumbs
|
||||
- [x] Permission management base on role
|
||||
- [x] Permission management base on background
|
||||
- [x] The separation of routing and menu settings
|
||||
- [x] Collapsible sidebar
|
||||
- [x] Draggable sidebar
|
||||
- [x] Multi-tab mode/global control
|
||||
- [x] Menu search
|
||||
- [x] Page loading
|
||||
- [x] Scroll bar component
|
||||
- [x] Pop-up window expansion (dragable, full screen, adaptive height)
|
||||
- [x] Mock data
|
||||
- [x] hook Package
|
||||
- [x] Form component
|
||||
- [x] Right-click menu
|
||||
- [x] Watermark plugin
|
||||
- [x] Animation component
|
||||
- [x] QR code plugin
|
||||
- [x] Internationalization plugin
|
||||
- [x] Details component
|
||||
- [x] Validation component
|
||||
- [x] Tree component
|
||||
- [x] Picture preview component
|
||||
- [x] Table component
|
||||
- [x] Chart library
|
||||
- [x] Digital animation
|
||||
- [x] First screen loading waiting animation
|
||||
- [x] Extract the production environment profile
|
||||
- [x] Build Gzip
|
||||
- [x] System performance optimization
|
||||
- [x] Data import and export
|
||||
- [x] Global error handling
|
||||
- [x] Rich text component
|
||||
- [x] Upload component
|
||||
- reference [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) specification ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
|
||||
|
||||
## Developing features
|
||||
- `feat` Add new features
|
||||
- `fix` Fix the problem/BUG
|
||||
- `style` The code style is related and does not affect the running result
|
||||
- `perf` Optimization/performance improvement
|
||||
- `refactor` Refactor
|
||||
- `revert` Undo edit
|
||||
- `test` Test related
|
||||
- `docs` Documentation/notes
|
||||
- `chore` Dependency update/scaffolding configuration modification etc.
|
||||
- `workflow` Workflow improvements
|
||||
- `ci` Continuous integration
|
||||
- `types` Type definition file changes
|
||||
- `wip` In development
|
||||
|
||||
- [ ] Theme configuration
|
||||
- [ ] Dark theme
|
||||
- [ ] Build CDN
|
||||
## Related warehouse
|
||||
|
||||
If you have more components/functions/suggestions/bugs/, welcome to submit pr or issue.
|
||||
If these plugins are helpful to you, you can give a star support
|
||||
|
||||
- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - Used for local and development environment data mock
|
||||
- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html) - Used for html template conversion and compression
|
||||
- [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import) - Used for component library style introduction on demand
|
||||
- [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme) - Used for online switching of theme colors and other color-related configurations
|
||||
- [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin) - Used to pack compressed image resources
|
||||
- [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression) - Used to pack input .gz|.brotil files
|
||||
- [vite-plugin-svg-icons](https://github.com/anncwb/vite-plugin-svg-icons) - Used to quickly generate svg sprite
|
||||
|
||||
## Browser support
|
||||
|
||||
It is recommended to use the `Chrome` browser for local development. Development in the Firefox browser is relatively slow.
|
||||
The `Chrome 80+` browser is recommended for local development
|
||||
|
||||
Support modern browsers, Not currently supported ie11,Follow-up consideration support ie11
|
||||
Support modern browsers, not IE
|
||||
|
||||
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
|
||||
| :-: | :-: | :-: | :-: | :-: |
|
||||
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
|
||||
|
||||
More browsers can view [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
|
||||
## Maintainer
|
||||
|
||||
## Plugins
|
||||
[@Vben](https://github.com/anncwb)
|
||||
|
||||
If these plugins are helpful to you, you can give a star
|
||||
## Donate
|
||||
|
||||
- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock)
|
||||
- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html)
|
||||
- [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import)
|
||||
- [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme)
|
||||
- [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin)
|
||||
- [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression)
|
||||
If you think this project is helpful to you, you can help the author buy a cup of coffee to show your support!
|
||||
|
||||

|
||||
|
||||
<a style="display: block;width: 100px;height: 50px;line-height: 50px; color: #fff;text-align: center; background: #408aed;border-radius: 4px;" href="https://www.paypal.com/paypalme/cvvben">Paypal Me</a>
|
||||
|
||||
## Discord
|
||||
|
||||
- [github discussions](https://github.com/anncwb/vue-vben-admin/discussions)
|
||||
- [Discord](https://discord.gg/8GuAdwDhj6)
|
||||
|
||||
## License
|
||||
|
||||
[MIT © Vben-2020](./LICENSE)
|
||||
|
289
README.zh-CN.md
289
README.zh-CN.md
@@ -1,170 +1,113 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/anncwb/vue-vben-admin" target="_blank">
|
||||
<img alt="VbenAdmin Logo" width="200" src="./.github/res/imgs/logo.png">
|
||||
</a>
|
||||
</p>
|
||||
<h2 align="center">VUE VBEN ADMIN2.0</h2>
|
||||
<div align="center"> <a href="https://github.com/anncwb/vue-vben-admin"> <img alt="VbenAdmin Logo" width="200" height="200" src="https://anncwb.github.io/anncwb/images/logo.png"> </a> <br> <br>
|
||||
|
||||
[](LICENSE)
|
||||
|
||||
<h1>Vue vben admin</h1>
|
||||
</div>
|
||||
|
||||
**中文** | [English](./README.md)
|
||||
|
||||
[更新日志](CHANGELOG.zh_CN.md)
|
||||
## 简介
|
||||
|
||||
- [介绍](#介绍)
|
||||
- [gitHub 地址](#github-地址)
|
||||
- [精简版地址](#精简版地址)
|
||||
- [预览地址](#预览地址)
|
||||
- [文档](#文档)
|
||||
- [预安装](#预安装)
|
||||
- [环境要求](#环境要求)
|
||||
- [UI 框架](#ui-框架)
|
||||
- [图标](#图标)
|
||||
- [插件](#插件)
|
||||
- [建议开发环境](#建议开发环境)
|
||||
- [安装](#安装)
|
||||
- [使用](#使用)
|
||||
- [开发环境](#开发环境)
|
||||
- [打包](#打包)
|
||||
- [格式化](#格式化)
|
||||
- [其他](#其他)
|
||||
- [Git 提交规范](#git-提交规范)
|
||||
- [代码贡献](#代码贡献)
|
||||
- [已完成功能](#已完成功能)
|
||||
- [正在开发的功能](#正在开发的功能)
|
||||
- [浏览器支持](#浏览器支持)
|
||||
- [插件](#插件-1)
|
||||
- [加入我们](#加入我们)
|
||||
Vue Vben Admin 是一个免费开源的中后台模版。使用了最新的`vue3`,`vite2`,`TypeScript`等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。
|
||||
|
||||
## 介绍
|
||||
## 特性
|
||||
|
||||
项目基于`ant-design-vue`,`typescript`,`vue3.0`,`vite`,`tsx`实现的 vue3 风格的后台管理系统,
|
||||
- **最新技术栈**:使用 Vue3/vite2 等前端前沿技术开发
|
||||
- **TypeScript**: 应用程序级 JavaScript 的语言
|
||||
- **主题**:可配置的主题
|
||||
- **国际化**:内置完善的国际化方案
|
||||
- **Mock 数据** 内置 Mock 数据方案
|
||||
- **权限** 内置完善的动态路由权限生成方案
|
||||
- **组件** 二次封装了多个常用的组件
|
||||
|
||||
## gitHub 地址
|
||||
## 预览
|
||||
|
||||
[vue-vben-admin2.0](https://github.com/anncwb/vue-vben-admin) - `main` 分支
|
||||
|
||||
### 精简版地址
|
||||
|
||||
[vue-vben-admin-thin-next](https://github.com/anncwb/vben-admin-thin-next)
|
||||
|
||||
## 预览地址
|
||||
|
||||
- [2.0 在线预览](https://vvbin.cn/next/)
|
||||
|
||||
- [2.0 精简版 在线预览](https://vvbin.cn/thin/next/)
|
||||
- [vue-vben-admin](https://vvbin.cn/next/) - 完整版中文站点
|
||||
- [vue-vben-admin-gh-pages](https://anncwb.github.io/vue-vben-admin/) - 完整版 github 站点
|
||||
- [vben-admin-thin-next](https://vvbin.cn/thin/next/) - 简化版中文站点
|
||||
- [vben-admin-thin-gh-pages](https://anncwb.github.io/vben-admin-thin-next/) - 简化版 github 站点
|
||||
|
||||
测试账号: vben/123456
|
||||
|
||||
<p align="center">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="./.github/res/imgs/preview1.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="./.github/res/imgs/preview2.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="./.github/res/imgs/preview3.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview1.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview2.png">
|
||||
<img alt="VbenAdmin Logo" width="100%" src="https://anncwb.github.io/anncwb/images/preview3.png">
|
||||
</p>
|
||||
|
||||
### 使用 Gitpod
|
||||
|
||||
在 Gitpod(适用于 GitHub 的免费在线开发环境)中打开项目,并立即开始编码.
|
||||
|
||||
[](https://gitpod.io/#https://github.com/anncwb/vue-vben-admin)
|
||||
|
||||
## 文档
|
||||
|
||||
[文档地址,持续更新中。。,](https://vvbin.cn/doc-next/)
|
||||
[文档地址](https://vvbin.cn/doc-next/)
|
||||
|
||||
## 预安装
|
||||
## 准备
|
||||
|
||||
### 环境要求
|
||||
- [node](http://nodejs.org/) 和 [git](https://git-scm.com/) -项目开发环境
|
||||
- [Vite](https://vitejs.dev/) - 熟悉 vite 特性
|
||||
- [Vue3](https://v3.vuejs.org/) - 熟悉 Vue 基础语法
|
||||
- [TypeScript](https://www.typescriptlang.org/) - 熟悉`TypeScript`基本语法
|
||||
- [Es6+](http://es6.ruanyifeng.com/) - 熟悉 es6 基本语法
|
||||
- [Vue-Router-Next](https://next.router.vuejs.org/) - 熟悉 vue-router 基本使用
|
||||
- [Ant-Design-Vue](https://2x.antdv.com/docs/vue/introduce-cn/) - ui 基本使用
|
||||
- [Mock.js](https://github.com/nuysoft/Mock) - mockjs 基本语法
|
||||
|
||||
- `Node.js`: - 版本大于 `12.0.0`
|
||||
- `yarn` : - 包管理工具.
|
||||
## 安装使用
|
||||
|
||||
### UI 框架
|
||||
- 获取项目代码
|
||||
|
||||
- [Tailwind CSS](https://tailwindcss.com/) - 2.0.0-beta.5 已删除
|
||||
- [Ant Design Vue 2.0](https://2x.antdv.com/docs/vue/introduce-cn/)
|
||||
```bash
|
||||
git clone https://github.com/anncwb/vue-vben-admin.git
|
||||
```
|
||||
|
||||
### 图标
|
||||
- 安装依赖
|
||||
|
||||
- [Ant Design Vue Icon Component](https://2x.antdv.com/components/icon-cn/) - 按需引入所需图标.
|
||||
- [Iconify](https://iconify.design) - 使用任何图标集中的图标 [Icônes](https://icones.netlify.app/)
|
||||
- [PurgeIcons](https://github.com/antfu/purge-icons) - 仅打包所使用到的图标.
|
||||
```bash
|
||||
cd vue-vben-admin
|
||||
|
||||
### 插件
|
||||
|
||||
- [Vue Router Next](https://github.com/vuejs/vue-router-next)
|
||||
- [Vuex Next](https://github.com/vuejs/vuex)
|
||||
- [vuex-module-decorators](https://github.com/championswimmer/vuex-module-decorators) - vuex 模块化
|
||||
- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - 基于 vite 的 mock 插件.
|
||||
- [vue-i18n](https://github.com/intlify/vue-i18n-next) - 国际化
|
||||
- [lodash-es](https://github.com/lodash/lodash) - JavaScript 实用程序库
|
||||
- [axios](https://github.com/axios/axios) - Http 数据交互
|
||||
- [TypeScript](https://www.typescriptlang.org/)
|
||||
|
||||
### 建议开发环境
|
||||
|
||||
- `Git`: - 版本管理工具
|
||||
- `Visual Studio Code` - (VSCode): 最新版本
|
||||
- [VS Code Extensions](./.vscode/extensions.json)
|
||||
- [Iconify IntelliSense](https://marketplace.visualstudio.com/items?itemName=antfu.iconify)
|
||||
- [Tailwind CSS IntelliSense](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) - Tailwind Css 样式联想
|
||||
- [Vetur](https://marketplace.visualstudio.com/items?itemName=octref.vetur) - vue 开发必备
|
||||
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - 脚本代码检查
|
||||
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - 代码格式化
|
||||
- [Stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) - css 格式化
|
||||
|
||||
## 安装
|
||||
|
||||
```js
|
||||
// 使git对文件名大小写敏感
|
||||
git config core.ignorecase false
|
||||
|
||||
// 拉取项目代码
|
||||
|
||||
git clone https://github.com/anncwb/vue-vben-admin.git vue-vben-admin-2.0
|
||||
|
||||
cd vue-vben-admin-2.0
|
||||
|
||||
// 如果使用别的包管理工具,可以自行安装
|
||||
// 如果未安装yarn,请运行:npm install -g yarn
|
||||
yarn install
|
||||
|
||||
```
|
||||
|
||||
## 使用
|
||||
|
||||
### 开发环境
|
||||
- 运行
|
||||
|
||||
```bash
|
||||
yarn serve
|
||||
```
|
||||
|
||||
### 打包
|
||||
- 打包
|
||||
|
||||
```bash
|
||||
|
||||
yarn build # 打包
|
||||
|
||||
yarn build:no-cache # 打包,执行之前会先删除缓存
|
||||
|
||||
yarn report # 生成构建包报表预览
|
||||
yarn build
|
||||
```
|
||||
|
||||
### 格式化
|
||||
## 更新日志
|
||||
|
||||
```bash
|
||||
yarn lint:stylelint # 样式格式化
|
||||
[CHANGELOG](./CHANGELOG.zh_CN.md)
|
||||
|
||||
yarn lint:prettier # js/ts代码格式化
|
||||
```
|
||||
## 项目地址
|
||||
|
||||
### 其他
|
||||
- [vue-vben-admin](https://github.com/anncwb/vue-vben-admin) - 完整版
|
||||
- [vue-vben-admin-thin-next](https://github.com/anncwb/vben-admin-thin-next) - 简化版
|
||||
|
||||
```bash
|
||||
yarn reinstall # 删除依赖重新装,兼容window
|
||||
## 如何贡献
|
||||
|
||||
yarn preview # 本地进行打包预览
|
||||
非常欢迎你的加入 或者提交一个 Pull Request。
|
||||
|
||||
yarn log # 生成CHANGELOG
|
||||
**Pull Request:**
|
||||
|
||||
yarn clean:cache # 删除缓存
|
||||
1. Fork 代码!
|
||||
2. 创建自己的分支: `git checkout -b feat/xxxx`
|
||||
3. 提交你的修改: `git commit -am 'feat(function): add xxxxx'`
|
||||
4. 推送您的分支: `git push origin feat/xxxx`
|
||||
5. 提交`pull request`
|
||||
|
||||
yarn clean:lib # 删除node_modules,兼容window系统
|
||||
```
|
||||
|
||||
## Git 提交规范
|
||||
## Git 贡献提交规范
|
||||
|
||||
- 参考 [vue](https://github.com/vuejs/vue/blob/dev/.github/COMMIT_CONVENTION.md) 规范 ([Angular](https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-angular))
|
||||
|
||||
@@ -182,90 +125,50 @@ yarn clean:lib # 删除node_modules,兼容window系统
|
||||
- `types` 类型定义文件更改
|
||||
- `wip` 开发中
|
||||
|
||||
## 代码贡献
|
||||
|
||||
1. Fork 代码!
|
||||
2. 创建自己的分支: `git checkout -b feat/xxxx`
|
||||
3. 提交你的修改: `git commit -am 'feat(function): add xxxxx'`
|
||||
4. 推送您的分支: `git push origin feat/xxxx`
|
||||
5. 提交`pull request`
|
||||
|
||||
## 已完成功能
|
||||
|
||||
- [x] 项目搭建(基于 vite)
|
||||
- [x] 登录和注销
|
||||
- [x] 菜单(可以搜索及拖拽以及菜单布局)
|
||||
- [x] 多标签页/面包屑
|
||||
- [x] 基于角色的权限管理
|
||||
- [x] 基于后台的权限管理
|
||||
- [x] 分离的路由和菜单设置
|
||||
- [x] 可折叠侧边栏
|
||||
- [x] 可拖拽侧边栏
|
||||
- [x] 多标签页模式/全局控制
|
||||
- [x] 菜单搜索
|
||||
- [x] 页面加载 loading
|
||||
- [x] 滚动条组件
|
||||
- [x] 弹窗扩展(可拖拽,全屏,自适应高度)
|
||||
- [x] 模拟数据
|
||||
- [x] hook 封装
|
||||
- [x] 表单组件
|
||||
- [x] 右键菜单
|
||||
- [x] 水印插件
|
||||
- [x] 动画组件
|
||||
- [x] 二维码插件
|
||||
- [x] 国际化插件
|
||||
- [x] 详情组件
|
||||
- [x] 验证组件
|
||||
- [x] 树组件
|
||||
- [x] 图片预览组件
|
||||
- [x] 表格组件
|
||||
- [x] 图表库
|
||||
- [x] 数字动画
|
||||
- [x] 首屏加载等待动画
|
||||
- [x] 抽取生产环境配置文件
|
||||
- [x] 打包 Gzip
|
||||
- [x] 数据导入导出
|
||||
- [x] 系统性能优化
|
||||
- [x] 全局错误处理
|
||||
- [x] 富文本组件
|
||||
- [x] 上传组件
|
||||
- [x] 多语言支持
|
||||
|
||||
## 正在开发的功能
|
||||
|
||||
- [ ] 主题配置
|
||||
- [ ] 黑暗主题
|
||||
- [ ] 打包 CDN
|
||||
|
||||
更多组件/功能/建议/bug/欢迎提交 pr 或者 issue
|
||||
|
||||
## 浏览器支持
|
||||
|
||||
本地开发推荐使用`Chrome`浏览器,在火狐浏览器进行开发相对卡顿。
|
||||
本地开发推荐使用`Chrome 80+` 浏览器
|
||||
|
||||
支持现代浏览器, IE 暂不支持,后续考虑支持 ie11
|
||||
支持现代浏览器, 不支持 IE
|
||||
|
||||
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
|
||||
| :-: | :-: | :-: | :-: | :-: |
|
||||
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
|
||||
|
||||
更多浏览器可以查看 [Can I Use Es Module](https://caniuse.com/?search=ES%20Module)
|
||||
|
||||
## 插件
|
||||
## 相关仓库
|
||||
|
||||
如果这些插件对你有帮助,可以给一个 star 支持下
|
||||
|
||||
- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock)
|
||||
- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html)
|
||||
- [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import)
|
||||
- [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme)
|
||||
- [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin)
|
||||
- [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression)
|
||||
- [vite-plugin-mock](https://github.com/anncwb/vite-plugin-mock) - 用于本地及开发环境数据 mock
|
||||
- [vite-plugin-html](https://github.com/anncwb/vite-plugin-html) - 用于 html 模版转换及压缩
|
||||
- [vite-plugin-style-import](https://github.com/anncwb/vite-plugin-style-import) - 用于组件库样式按需引入
|
||||
- [vite-plugin-theme](https://github.com/anncwb/vite-plugin-theme) - 用于在线切换主题色等颜色相关配置
|
||||
- [vite-plugin-imagemin](https://github.com/anncwb/vite-plugin-imagemin) - 用于打包压缩图片资源
|
||||
- [vite-plugin-compression](https://github.com/anncwb/vite-plugin-compression) - 用于打包输出.gz|.brotil 文件
|
||||
- [vite-plugin-svg-icons](https://github.com/anncwb/vite-plugin-svg-icons) - 用于快速生成 svg 雪碧图
|
||||
|
||||
## 加入我们
|
||||
## 后台整合示例
|
||||
|
||||
`Vue-Vben-Aadmin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群(项目刚起步,人数较少,有兴趣的可以加群一起讨论),使用问题欢迎在群内提问。
|
||||
- [lamp-cloud](https://github.com/zuihou/lamp-cloud) - 基于 SpringCloud Alibaba 的微服务中后台快速开发平台
|
||||
|
||||
## 维护者
|
||||
|
||||
[@Vben](https://github.com/anncwb)
|
||||
|
||||
## 捐赠
|
||||
|
||||
如果你觉得这个项目对你有帮助,你可以帮作者买一杯咖啡表示支持!
|
||||
|
||||

|
||||
|
||||
<a style="display: block;width: 100px;height: 50px;line-height: 50px; color: #fff;text-align: center; background: #408aed;border-radius: 4px;" href="https://www.paypal.com/paypalme/cvvben">Paypal Me</a>
|
||||
|
||||
## 交流
|
||||
|
||||
`Vue-vben-Admin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供 QQ 交流群使用问题欢迎在群内提问。
|
||||
|
||||
- QQ 群 `569291866`
|
||||
|
||||
<img alt="VbenAdmin Logo" width="100" src="./.github/res/imgs/qq.jpeg">
|
||||
## License
|
||||
|
||||
[MIT © Vben-2020](./LICENSE)
|
||||
|
@@ -2,12 +2,12 @@ import { generate } from '@ant-design/colors';
|
||||
|
||||
export const primaryColor = '#0960bd';
|
||||
|
||||
export const themeMode = 'light';
|
||||
|
||||
export type ThemeMode = 'dark' | 'light';
|
||||
export const darkMode = 'light';
|
||||
|
||||
type Fn = (...arg: any) => any;
|
||||
|
||||
type GenerateTheme = 'default' | 'dark';
|
||||
|
||||
export interface GenerateColorsParams {
|
||||
mixLighten: Fn;
|
||||
mixDarken: Fn;
|
||||
@@ -15,20 +15,19 @@ export interface GenerateColorsParams {
|
||||
color?: string;
|
||||
}
|
||||
|
||||
export function generateAntColors(color: string, mode: ThemeMode) {
|
||||
export function generateAntColors(color: string, theme: GenerateTheme = 'default') {
|
||||
return generate(color, {
|
||||
theme: mode == 'dark' ? 'dark' : 'default',
|
||||
theme,
|
||||
});
|
||||
}
|
||||
|
||||
export function getThemeColors(color?: string, theme?: ThemeMode) {
|
||||
export function getThemeColors(color?: string) {
|
||||
const tc = color || primaryColor;
|
||||
const tm = theme || themeMode;
|
||||
const colors = generateAntColors(tc, tm);
|
||||
const primary = colors[5];
|
||||
const modeColors = generateAntColors(primary, tm === 'dark' ? 'light' : 'dark');
|
||||
const lightColors = generateAntColors(tc);
|
||||
const primary = lightColors[5];
|
||||
const modeColors = generateAntColors(primary, 'dark');
|
||||
|
||||
return [...colors, ...modeColors];
|
||||
return [...lightColors, ...modeColors];
|
||||
}
|
||||
|
||||
export function generateColors({
|
||||
@@ -38,22 +37,24 @@ export function generateColors({
|
||||
tinycolor,
|
||||
}: GenerateColorsParams) {
|
||||
const arr = new Array(19).fill(0);
|
||||
const lightens = arr.map((t, i) => {
|
||||
const lightens = arr.map((_t, i) => {
|
||||
return mixLighten(color, i / 5);
|
||||
});
|
||||
|
||||
const darkens = arr.map((t, i) => {
|
||||
const darkens = arr.map((_t, i) => {
|
||||
return mixDarken(color, i / 5);
|
||||
});
|
||||
|
||||
const alphaColors = arr.map((t, i) => {
|
||||
const alphaColors = arr.map((_t, i) => {
|
||||
return tinycolor(color)
|
||||
.setAlpha(i / 20)
|
||||
.toRgbString();
|
||||
});
|
||||
|
||||
const shortAlphaColors = alphaColors.map((item) => item.replace(/\s/g, '').replace(/0\./g, '.'));
|
||||
|
||||
const tinycolorLightens = arr
|
||||
.map((t, i) => {
|
||||
.map((_t, i) => {
|
||||
return tinycolor(color)
|
||||
.lighten(i * 5)
|
||||
.toHexString();
|
||||
@@ -61,44 +62,18 @@ export function generateColors({
|
||||
.filter((item) => item !== '#ffffff');
|
||||
|
||||
const tinycolorDarkens = arr
|
||||
.map((t, i) => {
|
||||
.map((_t, i) => {
|
||||
return tinycolor(color)
|
||||
.darken(i * 5)
|
||||
.toHexString();
|
||||
})
|
||||
.filter((item) => item !== '#000000');
|
||||
return [...lightens, ...darkens, ...alphaColors, ...tinycolorDarkens, ...tinycolorLightens];
|
||||
}
|
||||
|
||||
/**
|
||||
* less global variable
|
||||
*/
|
||||
export function generateModifyVars() {
|
||||
const palettes = generateAntColors(primaryColor, themeMode);
|
||||
const primary = palettes[5];
|
||||
|
||||
const primaryColorObj: Record<string, string> = {};
|
||||
|
||||
for (let index = 0; index < 10; index++) {
|
||||
primaryColorObj[`primary-${index + 1}`] = palettes[index];
|
||||
}
|
||||
|
||||
return {
|
||||
'primary-color': primary,
|
||||
...primaryColorObj,
|
||||
'info-color': primary,
|
||||
'processing-color': primary,
|
||||
'success-color': '#55D187', // Success color
|
||||
'error-color': '#ED6F6F', // False color
|
||||
'warning-color': '#EFBD47', // Warning color
|
||||
'disabled-color': 'rgba(0, 0, 0, 0.25)', // Failure color
|
||||
'heading-color': 'rgba(0, 0, 0, 0.85)', // Title color
|
||||
'text-color': 'rgba(0, 0, 0, 0.85)', // Main text color
|
||||
'text-color-secondary': 'rgba(0, 0, 0, 0.45)', // Subtext color
|
||||
'font-size-base': '14px', // Main font size
|
||||
'box-shadow-base': '0 2px 8px rgba(0, 0, 0, 0.15)', // Floating shadow
|
||||
'border-color-base': '#d9d9d9', // Border color,
|
||||
'border-radius-base': '2px', // Component/float fillet
|
||||
'link-color': primary, // Link color
|
||||
};
|
||||
return [
|
||||
...lightens,
|
||||
...darkens,
|
||||
...alphaColors,
|
||||
...shortAlphaColors,
|
||||
...tinycolorDarkens,
|
||||
...tinycolorLightens,
|
||||
].filter((item) => !item.includes('-'));
|
||||
}
|
||||
|
37
build/generate/generateModifyVars.ts
Normal file
37
build/generate/generateModifyVars.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { generateAntColors, primaryColor } from '../config/themeConfig';
|
||||
import { getThemeVariables } from 'ant-design-vue/dist/theme';
|
||||
import { resolve } from 'path';
|
||||
|
||||
/**
|
||||
* less global variable
|
||||
*/
|
||||
export function generateModifyVars(dark = false) {
|
||||
const palettes = generateAntColors(primaryColor);
|
||||
const primary = palettes[5];
|
||||
|
||||
const primaryColorObj: Record<string, string> = {};
|
||||
|
||||
for (let index = 0; index < 10; index++) {
|
||||
primaryColorObj[`primary-${index + 1}`] = palettes[index];
|
||||
}
|
||||
|
||||
const modifyVars = getThemeVariables({ dark });
|
||||
return {
|
||||
...modifyVars,
|
||||
// Used for global import to avoid the need to import each style file separately
|
||||
// reference: Avoid repeated references
|
||||
hack: `${modifyVars.hack} @import (reference) "${resolve('src/design/config.less')}";`,
|
||||
'primary-color': primary,
|
||||
...primaryColorObj,
|
||||
'info-color': primary,
|
||||
'processing-color': primary,
|
||||
'success-color': '#55D187', // Success color
|
||||
'error-color': '#ED6F6F', // False color
|
||||
'warning-color': '#EFBD47', // Warning color
|
||||
'border-color-base': '#EEEEEE',
|
||||
'font-size-base': '14px', // Main font size
|
||||
'border-radius-base': '2px', // Component/float fillet
|
||||
'link-color': primary, // Link color
|
||||
'app-content-background': '#fafafa', // Link color
|
||||
};
|
||||
}
|
72
build/generate/icon/index.ts
Normal file
72
build/generate/icon/index.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
import path from 'path';
|
||||
import fs from 'fs-extra';
|
||||
import inquirer from 'inquirer';
|
||||
import chalk from 'chalk';
|
||||
import pkg from '../../../package.json';
|
||||
|
||||
async function generateIcon() {
|
||||
const dir = path.resolve(process.cwd(), 'node_modules/@iconify/json');
|
||||
|
||||
const raw = await fs.readJSON(path.join(dir, 'collections.json'));
|
||||
|
||||
const collections = Object.entries(raw).map(([id, v]) => ({
|
||||
...(v as any),
|
||||
id,
|
||||
}));
|
||||
|
||||
const choices = collections.map((item) => ({ key: item.id, value: item.id, name: item.name }));
|
||||
|
||||
inquirer
|
||||
.prompt([
|
||||
{
|
||||
type: 'list',
|
||||
name: 'useType',
|
||||
choices: [
|
||||
{ key: 'local', value: 'local', name: 'Local' },
|
||||
{ key: 'onLine', value: 'onLine', name: 'OnLine' },
|
||||
],
|
||||
message: 'How to use icons?',
|
||||
},
|
||||
{
|
||||
type: 'list',
|
||||
name: 'iconSet',
|
||||
choices: choices,
|
||||
message: 'Select the icon set that needs to be generated?',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
name: 'output',
|
||||
message: 'Select the icon set that needs to be generated?',
|
||||
default: 'src/components/Icon/data',
|
||||
},
|
||||
])
|
||||
.then(async (answers) => {
|
||||
const { iconSet, output, useType } = answers;
|
||||
const outputDir = path.resolve(process.cwd(), output);
|
||||
fs.ensureDir(outputDir);
|
||||
const genCollections = collections.filter((item) => [iconSet].includes(item.id));
|
||||
const prefixSet: string[] = [];
|
||||
for (const info of genCollections) {
|
||||
const data = await fs.readJSON(path.join(dir, 'json', `${info.id}.json`));
|
||||
if (data) {
|
||||
const { prefix } = data;
|
||||
const isLocal = useType === 'local';
|
||||
const icons = Object.keys(data.icons).map(
|
||||
(item) => `${isLocal ? prefix + ':' : ''}${item}`
|
||||
);
|
||||
|
||||
await fs.writeFileSync(
|
||||
path.join(output, `icons.data.ts`),
|
||||
`export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`
|
||||
);
|
||||
prefixSet.push(prefix);
|
||||
}
|
||||
}
|
||||
fs.emptyDir(path.join(process.cwd(), 'node_modules/.vite'));
|
||||
console.log(
|
||||
`✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - Icon generated successfully:' + `[${prefixSet}]`
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
generateIcon();
|
@@ -2,7 +2,7 @@
|
||||
* Get the configuration file variable name
|
||||
* @param env
|
||||
*/
|
||||
export const getShortName = (env: any) => {
|
||||
export const getConfigFileName = (env: Record<string, any>) => {
|
||||
return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__`
|
||||
.toUpperCase()
|
||||
.replace(/\s/g, '');
|
@@ -5,8 +5,8 @@ import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from '../constant';
|
||||
import fs, { writeFileSync } from 'fs-extra';
|
||||
import chalk from 'chalk';
|
||||
|
||||
import { getCwdPath, getEnvConfig } from '../utils';
|
||||
import { getShortName } from '../getShortName';
|
||||
import { getRootPath, getEnvConfig } from '../utils';
|
||||
import { getConfigFileName } from '../getConfigFileName';
|
||||
|
||||
import pkg from '../../package.json';
|
||||
|
||||
@@ -27,8 +27,8 @@ function createConfig(
|
||||
writable: false,
|
||||
});
|
||||
`.replace(/\s/g, '');
|
||||
fs.mkdirp(getCwdPath(OUTPUT_DIR));
|
||||
writeFileSync(getCwdPath(`${OUTPUT_DIR}/${configFileName}`), configStr);
|
||||
fs.mkdirp(getRootPath(OUTPUT_DIR));
|
||||
writeFileSync(getRootPath(`${OUTPUT_DIR}/${configFileName}`), configStr);
|
||||
|
||||
console.log(chalk.cyan(`✨ [${pkg.name}]`) + ` - configuration file is build successfully:`);
|
||||
console.log(chalk.gray(OUTPUT_DIR + '/' + chalk.green(configFileName)) + '\n');
|
||||
@@ -39,6 +39,6 @@ function createConfig(
|
||||
|
||||
export function runBuildConfig() {
|
||||
const config = getEnvConfig();
|
||||
const configFileName = getShortName(config);
|
||||
const configFileName = getConfigFileName(config);
|
||||
createConfig({ config, configName: configFileName });
|
||||
}
|
||||
|
@@ -1,6 +1,5 @@
|
||||
// #!/usr/bin/env node
|
||||
|
||||
import { argv } from 'yargs';
|
||||
import { runBuildConfig } from './buildConf';
|
||||
import chalk from 'chalk';
|
||||
|
||||
@@ -8,12 +7,13 @@ import pkg from '../../package.json';
|
||||
|
||||
export const runBuild = async () => {
|
||||
try {
|
||||
const argvList = argv._;
|
||||
const argvList = process.argv.splice(2);
|
||||
|
||||
// Generate configuration file
|
||||
if (!argvList.includes('no-conf')) {
|
||||
if (!argvList.includes('disabled-config')) {
|
||||
await runBuildConfig();
|
||||
}
|
||||
|
||||
console.log(`✨ ${chalk.cyan(`[${pkg.name}]`)}` + ' - build successfully!');
|
||||
} catch (error) {
|
||||
console.log(chalk.red('vite build error:\n' + error));
|
||||
|
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "esnext",
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"strict": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"jsx": "react",
|
||||
"baseUrl": ".",
|
||||
"esModuleInterop": true,
|
||||
"noUnusedLocals": true,
|
||||
"noUnusedParameters": true,
|
||||
"experimentalDecorators": true,
|
||||
"lib": ["dom", "esnext"],
|
||||
"incremental": true,
|
||||
"skipLibCheck": true
|
||||
}
|
||||
}
|
4
build/typeing.d.ts
vendored
4
build/typeing.d.ts
vendored
@@ -1,4 +0,0 @@
|
||||
declare module '*.json' {
|
||||
const src: any;
|
||||
export default src;
|
||||
}
|
@@ -2,12 +2,6 @@ import fs from 'fs';
|
||||
import path from 'path';
|
||||
import dotenv from 'dotenv';
|
||||
|
||||
export const isFunction = (arg: unknown): arg is (...args: any[]) => any =>
|
||||
typeof arg === 'function';
|
||||
|
||||
export const isRegExp = (arg: unknown): arg is RegExp =>
|
||||
Object.prototype.toString.call(arg) === '[object RegExp]';
|
||||
|
||||
export function isDevFn(mode: string): boolean {
|
||||
return mode === 'development';
|
||||
}
|
||||
@@ -23,29 +17,14 @@ export function isReportMode(): boolean {
|
||||
return process.env.REPORT === 'true';
|
||||
}
|
||||
|
||||
export interface ViteEnv {
|
||||
VITE_PORT: number;
|
||||
VITE_USE_MOCK: boolean;
|
||||
VITE_USE_PWA: boolean;
|
||||
VITE_PUBLIC_PATH: string;
|
||||
VITE_PROXY: [string, string][];
|
||||
VITE_GLOB_APP_TITLE: string;
|
||||
VITE_GLOB_APP_SHORT_NAME: string;
|
||||
VITE_USE_CDN: boolean;
|
||||
VITE_DROP_CONSOLE: boolean;
|
||||
VITE_BUILD_COMPRESS: 'gzip' | 'brotli' | 'none';
|
||||
VITE_DYNAMIC_IMPORT: boolean;
|
||||
VITE_LEGACY: boolean;
|
||||
VITE_USE_IMAGEMIN: boolean;
|
||||
}
|
||||
|
||||
// Read all environment variable configuration files to process.env
|
||||
export function wrapperEnv(envConf: any): ViteEnv {
|
||||
export function wrapperEnv(envConf: Recordable): ViteEnv {
|
||||
const ret: any = {};
|
||||
|
||||
for (const envName of Object.keys(envConf)) {
|
||||
let realName = envConf[envName].replace(/\\n/g, '\n');
|
||||
realName = realName === 'true' ? true : realName === 'false' ? false : realName;
|
||||
|
||||
if (envName === 'VITE_PORT') {
|
||||
realName = Number(realName);
|
||||
}
|
||||
@@ -60,22 +39,37 @@ export function wrapperEnv(envConf: any): ViteEnv {
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前环境下生效的配置文件名
|
||||
*/
|
||||
function getConfFiles() {
|
||||
const script = process.env.npm_lifecycle_script;
|
||||
const reg = new RegExp('--mode ([a-z]+)');
|
||||
const result = reg.exec(script as string) as any;
|
||||
if (result) {
|
||||
const mode = result[1] as string;
|
||||
return ['.env', `.env.${mode}`];
|
||||
}
|
||||
return ['.env', '.env.production'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the environment variables starting with the specified prefix
|
||||
* @param match prefix
|
||||
* @param confFiles ext
|
||||
*/
|
||||
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = ['.env', '.env.production']) {
|
||||
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = getConfFiles()) {
|
||||
let envConfig = {};
|
||||
confFiles.forEach((item) => {
|
||||
try {
|
||||
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)));
|
||||
|
||||
envConfig = { ...envConfig, ...env };
|
||||
} catch (error) {}
|
||||
} catch (e) {
|
||||
console.error(`Error in parsing ${item}`, e);
|
||||
}
|
||||
});
|
||||
const reg = new RegExp(`^(${match})`);
|
||||
Object.keys(envConfig).forEach((key) => {
|
||||
const reg = new RegExp(`^(${match})`);
|
||||
if (!reg.test(key)) {
|
||||
Reflect.deleteProperty(envConfig, key);
|
||||
}
|
||||
@@ -87,6 +81,6 @@ export function getEnvConfig(match = 'VITE_GLOB_', confFiles = ['.env', '.env.pr
|
||||
* Get user root directory
|
||||
* @param dir file path
|
||||
*/
|
||||
export function getCwdPath(...dir: string[]) {
|
||||
export function getRootPath(...dir: string[]) {
|
||||
return path.resolve(process.cwd(), ...dir);
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
// TODO
|
||||
import type { GetManualChunk, GetManualChunkApi } from 'rollup';
|
||||
import type { GetManualChunk } from 'rollup';
|
||||
|
||||
//
|
||||
const vendorLibs: { match: string[]; output: string }[] = [
|
||||
@@ -10,8 +10,7 @@ const vendorLibs: { match: string[]; output: string }[] = [
|
||||
];
|
||||
|
||||
// @ts-ignore
|
||||
export const configManualChunk: GetManualChunk = (id: string, api: GetManualChunkApi) => {
|
||||
console.log(api);
|
||||
export const configManualChunk: GetManualChunk = (id: string) => {
|
||||
if (/[\\/]node_modules[\\/]/.test(id)) {
|
||||
const matchItem = vendorLibs.find((item) => {
|
||||
const reg = new RegExp(`[\\/]node_modules[\\/]_?(${item.match.join('|')})(.*)`, 'ig');
|
||||
|
@@ -6,7 +6,10 @@ import type { Plugin } from 'vite';
|
||||
|
||||
import compressPlugin from 'vite-plugin-compression';
|
||||
|
||||
export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none'): Plugin | Plugin[] {
|
||||
export function configCompressPlugin(
|
||||
compress: 'gzip' | 'brotli' | 'none',
|
||||
deleteOriginFile = false
|
||||
): Plugin | Plugin[] {
|
||||
const compressList = compress.split(',');
|
||||
|
||||
const plugins: Plugin[] = [];
|
||||
@@ -15,6 +18,7 @@ export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none'): Plug
|
||||
plugins.push(
|
||||
compressPlugin({
|
||||
ext: '.gz',
|
||||
deleteOriginFile,
|
||||
})
|
||||
);
|
||||
}
|
||||
@@ -23,6 +27,7 @@ export function configCompressPlugin(compress: 'gzip' | 'brotli' | 'none'): Plug
|
||||
compressPlugin({
|
||||
ext: '.br',
|
||||
algorithm: 'brotliCompress',
|
||||
deleteOriginFile,
|
||||
})
|
||||
);
|
||||
}
|
||||
|
25
build/vite/plugin/hmr.ts
Normal file
25
build/vite/plugin/hmr.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import type { Plugin } from 'vite';
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* Temporarily solve the Vite circular dependency problem, and wait for a better solution to fix it later. I don't know what problems this writing will bring.
|
||||
* @returns
|
||||
*/
|
||||
|
||||
export function configHmrPlugin(): Plugin {
|
||||
return {
|
||||
name: 'singleHMR',
|
||||
handleHotUpdate({ modules, file }) {
|
||||
if (file.match(/xml$/)) return [];
|
||||
|
||||
modules.forEach((m) => {
|
||||
if (!m.url.match(/\.(css|less)/)) {
|
||||
m.importedModules = new Set();
|
||||
m.importers = new Set();
|
||||
}
|
||||
});
|
||||
|
||||
return modules;
|
||||
},
|
||||
};
|
||||
}
|
@@ -3,7 +3,6 @@
|
||||
* https://github.com/anncwb/vite-plugin-html
|
||||
*/
|
||||
import type { Plugin } from 'vite';
|
||||
import type { ViteEnv } from '../../utils';
|
||||
|
||||
import html from 'vite-plugin-html';
|
||||
|
||||
|
@@ -12,23 +12,21 @@ export function configImageminPlugin() {
|
||||
optipng: {
|
||||
optimizationLevel: 7,
|
||||
},
|
||||
webp: {
|
||||
quality: 75,
|
||||
},
|
||||
mozjpeg: {
|
||||
quality: 65,
|
||||
quality: 20,
|
||||
},
|
||||
pngquant: {
|
||||
quality: [0.65, 0.9],
|
||||
quality: [0.8, 0.9],
|
||||
speed: 4,
|
||||
},
|
||||
svgo: {
|
||||
plugins: [
|
||||
{
|
||||
removeViewBox: false,
|
||||
name: 'removeViewBox',
|
||||
},
|
||||
{
|
||||
removeEmptyAttrs: false,
|
||||
name: 'removeEmptyAttrs',
|
||||
active: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
|
@@ -4,9 +4,8 @@ import vue from '@vitejs/plugin-vue';
|
||||
import vueJsx from '@vitejs/plugin-vue-jsx';
|
||||
import legacy from '@vitejs/plugin-legacy';
|
||||
|
||||
import PurgeIcons from 'vite-plugin-purge-icons';
|
||||
import purgeIcons from 'vite-plugin-purge-icons';
|
||||
|
||||
import { ViteEnv } from '../../utils';
|
||||
import { configHtmlPlugin } from './html';
|
||||
import { configPwaConfig } from './pwa';
|
||||
import { configMockPlugin } from './mock';
|
||||
@@ -15,10 +14,17 @@ import { configStyleImportPlugin } from './styleImport';
|
||||
import { configVisualizerConfig } from './visualizer';
|
||||
import { configThemePlugin } from './theme';
|
||||
import { configImageminPlugin } from './imagemin';
|
||||
import { configWindiCssPlugin } from './windicss';
|
||||
import { configSvgIconsPlugin } from './svgSprite';
|
||||
import { configHmrPlugin } from './hmr';
|
||||
|
||||
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
const { VITE_USE_IMAGEMIN, VITE_USE_MOCK, VITE_LEGACY, VITE_BUILD_COMPRESS } = viteEnv;
|
||||
const {
|
||||
VITE_USE_IMAGEMIN,
|
||||
VITE_USE_MOCK,
|
||||
VITE_LEGACY,
|
||||
VITE_BUILD_COMPRESS,
|
||||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE,
|
||||
} = viteEnv;
|
||||
|
||||
const vitePlugins: (Plugin | Plugin[])[] = [
|
||||
// have to
|
||||
@@ -27,29 +33,32 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
vueJsx(),
|
||||
];
|
||||
|
||||
// TODO
|
||||
!isBuild && vitePlugins.push(configHmrPlugin());
|
||||
|
||||
// @vitejs/plugin-legacy
|
||||
VITE_LEGACY && isBuild && vitePlugins.push(legacy());
|
||||
|
||||
// vite-plugin-html
|
||||
vitePlugins.push(configHtmlPlugin(viteEnv, isBuild));
|
||||
|
||||
// vite-plugin-windicss
|
||||
vitePlugins.push(configWindiCssPlugin());
|
||||
// vite-plugin-svg-icons
|
||||
vitePlugins.push(configSvgIconsPlugin(isBuild));
|
||||
|
||||
// vite-plugin-mock
|
||||
VITE_USE_MOCK && vitePlugins.push(configMockPlugin(isBuild));
|
||||
|
||||
// vite-plugin-purge-icons
|
||||
vitePlugins.push(PurgeIcons());
|
||||
vitePlugins.push(purgeIcons());
|
||||
|
||||
// vite-plugin-style-import
|
||||
vitePlugins.push(configStyleImportPlugin());
|
||||
vitePlugins.push(configStyleImportPlugin(isBuild));
|
||||
|
||||
// rollup-plugin-visualizer
|
||||
vitePlugins.push(configVisualizerConfig());
|
||||
|
||||
//vite-plugin-theme
|
||||
vitePlugins.push(configThemePlugin());
|
||||
vitePlugins.push(configThemePlugin(isBuild));
|
||||
|
||||
// The following plugins only work in the production environment
|
||||
if (isBuild) {
|
||||
@@ -57,7 +66,9 @@ export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
||||
VITE_USE_IMAGEMIN && vitePlugins.push(configImageminPlugin());
|
||||
|
||||
// rollup-plugin-gzip
|
||||
vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS));
|
||||
vitePlugins.push(
|
||||
configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE)
|
||||
);
|
||||
|
||||
// vite-plugin-pwa
|
||||
vitePlugins.push(configPwaConfig(viteEnv));
|
||||
|
@@ -8,7 +8,6 @@ export function configMockPlugin(isBuild: boolean) {
|
||||
return viteMockServe({
|
||||
ignore: /^\_/,
|
||||
mockPath: 'mock',
|
||||
showTime: true,
|
||||
localEnabled: !isBuild,
|
||||
prodEnabled: isBuild,
|
||||
injectCode: `
|
||||
|
@@ -5,8 +5,6 @@
|
||||
|
||||
import { VitePWA } from 'vite-plugin-pwa';
|
||||
|
||||
import { ViteEnv } from '../../utils';
|
||||
|
||||
export function configPwaConfig(env: ViteEnv) {
|
||||
const { VITE_USE_PWA, VITE_GLOB_APP_TITLE, VITE_GLOB_APP_SHORT_NAME } = env;
|
||||
|
||||
|
@@ -5,8 +5,9 @@
|
||||
|
||||
import styleImport from 'vite-plugin-style-import';
|
||||
|
||||
export function configStyleImportPlugin() {
|
||||
const pwaPlugin = styleImport({
|
||||
export function configStyleImportPlugin(isBuild: boolean) {
|
||||
if (!isBuild) return [];
|
||||
const styleImportPlugin = styleImport({
|
||||
libs: [
|
||||
{
|
||||
libraryName: 'ant-design-vue',
|
||||
@@ -17,5 +18,5 @@ export function configStyleImportPlugin() {
|
||||
},
|
||||
],
|
||||
});
|
||||
return pwaPlugin;
|
||||
return styleImportPlugin;
|
||||
}
|
||||
|
17
build/vite/plugin/svgSprite.ts
Normal file
17
build/vite/plugin/svgSprite.ts
Normal file
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Vite Plugin for fast creating SVG sprites.
|
||||
* https://github.com/anncwb/vite-plugin-svg-icons
|
||||
*/
|
||||
|
||||
import SvgIconsPlugin from 'vite-plugin-svg-icons';
|
||||
import path from 'path';
|
||||
|
||||
export function configSvgIconsPlugin(isBuild: boolean) {
|
||||
const svgIconsPlugin = SvgIconsPlugin({
|
||||
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
|
||||
svgoOptions: isBuild,
|
||||
// default
|
||||
symbolId: 'icon-[dir]-[name]',
|
||||
});
|
||||
return svgIconsPlugin;
|
||||
}
|
@@ -2,18 +2,64 @@
|
||||
* Vite plugin for website theme color switching
|
||||
* https://github.com/anncwb/vite-plugin-theme
|
||||
*/
|
||||
import { viteThemePlugin, mixLighten, mixDarken, tinycolor } from 'vite-plugin-theme';
|
||||
import type { Plugin } from 'vite';
|
||||
import path from 'path';
|
||||
import {
|
||||
viteThemePlugin,
|
||||
antdDarkThemePlugin,
|
||||
mixLighten,
|
||||
mixDarken,
|
||||
tinycolor,
|
||||
} from 'vite-plugin-theme';
|
||||
import { getThemeColors, generateColors } from '../../config/themeConfig';
|
||||
import { generateModifyVars } from '../../generate/generateModifyVars';
|
||||
|
||||
export function configThemePlugin() {
|
||||
export function configThemePlugin(isBuild: boolean): Plugin[] {
|
||||
const colors = generateColors({
|
||||
mixDarken,
|
||||
mixLighten,
|
||||
tinycolor,
|
||||
});
|
||||
const plugin = [
|
||||
viteThemePlugin({
|
||||
resolveSelector: (s) => {
|
||||
s = s.trim();
|
||||
switch (s) {
|
||||
case '.ant-steps-item-process .ant-steps-item-icon > .ant-steps-icon':
|
||||
return '.ant-steps-item-icon > .ant-steps-icon';
|
||||
case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled)':
|
||||
case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover':
|
||||
case '.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active':
|
||||
return s;
|
||||
case '.ant-steps-item-icon > .ant-steps-icon':
|
||||
return s;
|
||||
}
|
||||
return `[data-theme] ${s}`;
|
||||
},
|
||||
colorVariables: [...getThemeColors(), ...colors],
|
||||
}),
|
||||
antdDarkThemePlugin({
|
||||
preloadFiles: [
|
||||
path.resolve(process.cwd(), 'node_modules/ant-design-vue/dist/antd.less'),
|
||||
path.resolve(process.cwd(), 'src/design/index.less'),
|
||||
],
|
||||
filter: (id) => (isBuild ? !id.endsWith('antd.less') : true),
|
||||
// extractCss: false,
|
||||
darkModifyVars: {
|
||||
...generateModifyVars(true),
|
||||
'text-color': '#c9d1d9',
|
||||
'text-color-base': '#c9d1d9',
|
||||
'component-background': '#151515',
|
||||
// black: '#0e1117',
|
||||
// #8b949e
|
||||
'text-color-secondary': '#8b949e',
|
||||
'border-color-base': '#303030',
|
||||
// 'border-color-split': '#30363d',
|
||||
'item-active-bg': '#111b26',
|
||||
'app-content-background': 'rgb(255 255 255 / 4%)',
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
const plugin = viteThemePlugin({
|
||||
colorVariables: [...getThemeColors(), ...colors],
|
||||
});
|
||||
return plugin;
|
||||
return plugin as unknown as Plugin[];
|
||||
}
|
||||
|
@@ -9,6 +9,8 @@ export function configVisualizerConfig() {
|
||||
return visualizer({
|
||||
filename: './node_modules/.cache/visualizer/stats.html',
|
||||
open: true,
|
||||
gzipSize: true,
|
||||
brotliSize: true,
|
||||
}) as Plugin;
|
||||
}
|
||||
return [];
|
||||
|
@@ -1,12 +0,0 @@
|
||||
import windiCSS from 'vite-plugin-windicss';
|
||||
|
||||
import type { Plugin } from 'vite';
|
||||
|
||||
export function configWindiCssPlugin(): Plugin[] {
|
||||
return windiCSS({
|
||||
safelist: 'shadow shadow-xl',
|
||||
preflight: {
|
||||
enableAll: true,
|
||||
},
|
||||
});
|
||||
}
|
@@ -1,13 +1,13 @@
|
||||
/**
|
||||
* Used to parse the .env.development proxy configuration
|
||||
*/
|
||||
import type { ServerOptions } from 'http-proxy';
|
||||
import type { ProxyOptions } from 'vite';
|
||||
|
||||
type ProxyItem = [string, string];
|
||||
|
||||
type ProxyList = ProxyItem[];
|
||||
|
||||
type ProxyTargetList = Record<string, ServerOptions & { rewrite: (path: string) => string }>;
|
||||
type ProxyTargetList = Record<string, ProxyOptions & { rewrite: (path: string) => string }>;
|
||||
|
||||
const httpsRE = /^https:\/\//;
|
||||
|
||||
|
@@ -1,31 +1,6 @@
|
||||
module.exports = {
|
||||
ignores: [(commit) => commit.includes('init')],
|
||||
extends: ['@commitlint/config-conventional'],
|
||||
parserPreset: {
|
||||
parserOpts: {
|
||||
headerPattern: /^(\w*|[\u4e00-\u9fa5]*)(?:[\(\(](.*)[\)\)])?[\:\:] (.*)/,
|
||||
headerCorrespondence: ['type', 'scope', 'subject'],
|
||||
referenceActions: [
|
||||
'close',
|
||||
'closes',
|
||||
'closed',
|
||||
'fix',
|
||||
'fixes',
|
||||
'fixed',
|
||||
'resolve',
|
||||
'resolves',
|
||||
'resolved',
|
||||
],
|
||||
issuePrefixes: ['#'],
|
||||
noteKeywords: ['BREAKING CHANGE', '不兼容变更'],
|
||||
fieldPattern: /^-(.*?)-$/,
|
||||
revertPattern: /^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,
|
||||
revertCorrespondence: ['header', 'hash'],
|
||||
warn() {},
|
||||
mergePattern: null,
|
||||
mergeCorrespondence: null,
|
||||
},
|
||||
},
|
||||
rules: {
|
||||
'body-leading-blank': [2, 'always'],
|
||||
'footer-leading-blank': [1, 'always'],
|
||||
@@ -50,6 +25,7 @@ module.exports = {
|
||||
'wip',
|
||||
'workflow',
|
||||
'types',
|
||||
'release',
|
||||
],
|
||||
],
|
||||
},
|
||||
|
22
index.html
22
index.html
@@ -1,5 +1,5 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<html lang="en" id="htmlRoot">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
@@ -13,8 +13,26 @@
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
(() => {
|
||||
var htmlRoot = document.getElementById('htmlRoot');
|
||||
var theme = window.localStorage.getItem('__APP__DARK__MODE__');
|
||||
if (htmlRoot && theme) {
|
||||
htmlRoot.setAttribute('data-theme', theme);
|
||||
theme = htmlRoot = null;
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<div id="app">
|
||||
<style>
|
||||
html[data-theme='dark'] .app-loading {
|
||||
background-color: #2c344a;
|
||||
}
|
||||
|
||||
html[data-theme='dark'] .app-loading .app-loading-title {
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
|
||||
.app-loading {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
@@ -22,7 +40,7 @@
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
background: #f4f7f9;
|
||||
background-color: #f4f7f9;
|
||||
}
|
||||
|
||||
.app-loading .app-loading-wrap {
|
||||
|
36
jest.config.mjs
Normal file
36
jest.config.mjs
Normal file
@@ -0,0 +1,36 @@
|
||||
export default {
|
||||
preset: 'ts-jest',
|
||||
roots: ['<rootDir>/tests/'],
|
||||
clearMocks: true,
|
||||
moduleDirectories: ['node_modules', 'src'],
|
||||
moduleFileExtensions: ['js', 'ts', 'vue', 'tsx', 'jsx', 'json', 'node'],
|
||||
modulePaths: ['<rootDir>/src', '<rootDir>/node_modules'],
|
||||
testMatch: [
|
||||
'**/tests/**/*.[jt]s?(x)',
|
||||
'**/?(*.)+(spec|test).[tj]s?(x)',
|
||||
'(/__tests__/.*|(\\.|/)(test|spec))\\.(js|ts)$',
|
||||
],
|
||||
testPathIgnorePatterns: [
|
||||
'<rootDir>/tests/server/',
|
||||
'<rootDir>/tests/__mocks__/',
|
||||
'/node_modules/',
|
||||
],
|
||||
transform: {
|
||||
'^.+\\.tsx?$': 'ts-jest',
|
||||
},
|
||||
transformIgnorePatterns: ['<rootDir>/tests/__mocks__/', '/node_modules/'],
|
||||
// A map from regular expressions to module names that allow to stub out resources with a single module
|
||||
moduleNameMapper: {
|
||||
'\\.(vs|fs|vert|frag|glsl|jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$':
|
||||
'<rootDir>/tests/__mocks__/fileMock.ts',
|
||||
'\\.(sass|s?css|less)$': '<rootDir>/tests/__mocks__/styleMock.ts',
|
||||
'\\?worker$': '<rootDir>/tests/__mocks__/workerMock.ts',
|
||||
'^/@/(.*)$': '<rootDir>/src/$1',
|
||||
},
|
||||
testEnvironment: 'jsdom',
|
||||
verbose: true,
|
||||
collectCoverage: false,
|
||||
coverageDirectory: 'coverage',
|
||||
collectCoverageFrom: ['src/**/*.{js,ts,vue}'],
|
||||
coveragePathIgnorePatterns: ['^.+\\.d\\.ts$'],
|
||||
};
|
@@ -1,6 +1,6 @@
|
||||
// Interface data format used to return a unified format
|
||||
|
||||
export function resultSuccess<T = any>(result: T, { message = 'ok' } = {}) {
|
||||
export function resultSuccess<T = Recordable>(result: T, { message = 'ok' } = {}) {
|
||||
return {
|
||||
code: 0,
|
||||
result,
|
||||
@@ -18,13 +18,11 @@ export function resultPageSuccess<T = any>(
|
||||
const pageData = pagination(page, pageSize, list);
|
||||
|
||||
return {
|
||||
code: 0,
|
||||
result: {
|
||||
...resultSuccess({
|
||||
items: pageData,
|
||||
total: list.length,
|
||||
},
|
||||
}),
|
||||
message,
|
||||
type: 'success',
|
||||
};
|
||||
}
|
||||
|
||||
@@ -45,3 +43,18 @@ export function pagination<T = any>(pageNo: number, pageSize: number, array: T[]
|
||||
: array.slice(offset, offset + Number(pageSize));
|
||||
return ret;
|
||||
}
|
||||
|
||||
export interface requestParams {
|
||||
method: string;
|
||||
body: any;
|
||||
headers?: { authorization?: string };
|
||||
query: any;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description 本函数用于从request数据中获取token,请根据项目的实际情况修改
|
||||
*
|
||||
*/
|
||||
export function getRequestToken({ headers }: requestParams): string | undefined {
|
||||
return headers?.authorization;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { resultSuccess } from '../_util';
|
||||
import { resultSuccess, resultError } from '../_util';
|
||||
|
||||
const userInfo = {
|
||||
name: 'Vben',
|
||||
@@ -44,11 +44,19 @@ const userInfo = {
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/api/account/getAccountInfo',
|
||||
url: '/basic-api/account/getAccountInfo',
|
||||
timeout: 1000,
|
||||
method: 'get',
|
||||
response: () => {
|
||||
return resultSuccess(userInfo);
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/user/sessionTimeout',
|
||||
method: 'post',
|
||||
statusCode: 401,
|
||||
response: () => {
|
||||
return resultError();
|
||||
},
|
||||
},
|
||||
] as MockMethod[];
|
||||
|
@@ -1,25 +1,28 @@
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { resultSuccess } from '../_util';
|
||||
|
||||
const demoList = (() => {
|
||||
const result: any[] = [];
|
||||
const demoList = (keyword) => {
|
||||
const result = {
|
||||
list: [] as any[],
|
||||
};
|
||||
for (let index = 0; index < 20; index++) {
|
||||
result.push({
|
||||
label: `选项${index}`,
|
||||
value: `${index}`,
|
||||
result.list.push({
|
||||
name: `${keyword ?? ''}选项${index}`,
|
||||
id: `${index}`,
|
||||
});
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
};
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/api/select/getDemoOptions',
|
||||
timeout: 4000,
|
||||
url: '/basic-api/select/getDemoOptions',
|
||||
timeout: 1000,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
console.log(query);
|
||||
return resultSuccess(demoList);
|
||||
const { keyword } = query;
|
||||
console.log(keyword);
|
||||
return resultSuccess(demoList(keyword));
|
||||
},
|
||||
},
|
||||
] as MockMethod[];
|
||||
|
188
mock/demo/system.ts
Normal file
188
mock/demo/system.ts
Normal file
@@ -0,0 +1,188 @@
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { resultPageSuccess, resultSuccess } from '../_util';
|
||||
|
||||
const accountList = (() => {
|
||||
const result: any[] = [];
|
||||
for (let index = 0; index < 20; index++) {
|
||||
result.push({
|
||||
id: `${index}`,
|
||||
account: '@first',
|
||||
email: '@email',
|
||||
nickname: '@cname()',
|
||||
role: '@first',
|
||||
createTime: '@datetime',
|
||||
remark: '@cword(10,20)',
|
||||
'status|1': ['0', '1'],
|
||||
});
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
|
||||
const roleList = (() => {
|
||||
const result: any[] = [];
|
||||
for (let index = 0; index < 4; index++) {
|
||||
result.push({
|
||||
id: index + 1,
|
||||
orderNo: `${index + 1}`,
|
||||
roleName: ['超级管理员', '管理员', '文章管理员', '普通用户'][index],
|
||||
roleValue: '@first',
|
||||
createTime: '@datetime',
|
||||
remark: '@cword(10,20)',
|
||||
'status|1': ['0', '1'],
|
||||
});
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
|
||||
const deptList = (() => {
|
||||
const result: any[] = [];
|
||||
for (let index = 0; index < 3; index++) {
|
||||
result.push({
|
||||
id: `${index}`,
|
||||
deptName: ['华东分部', '华南分部', '西北分部'][index],
|
||||
orderNo: index + 1,
|
||||
createTime: '@datetime',
|
||||
remark: '@cword(10,20)',
|
||||
'status|1': ['0', '0', '1'],
|
||||
children: (() => {
|
||||
const children: any[] = [];
|
||||
for (let j = 0; j < 4; j++) {
|
||||
children.push({
|
||||
id: `${index}-${j}`,
|
||||
deptName: ['研发部', '市场部', '商务部', '财务部'][j],
|
||||
orderNo: j + 1,
|
||||
createTime: '@datetime',
|
||||
remark: '@cword(10,20)',
|
||||
'status|1': ['0', '1'],
|
||||
parentDept: `${index}`,
|
||||
children: undefined,
|
||||
});
|
||||
}
|
||||
return children;
|
||||
})(),
|
||||
});
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
|
||||
const menuList = (() => {
|
||||
const result: any[] = [];
|
||||
for (let index = 0; index < 3; index++) {
|
||||
result.push({
|
||||
id: `${index}`,
|
||||
icon: ['ion:layers-outline', 'ion:git-compare-outline', 'ion:tv-outline'][index],
|
||||
component: 'LAYOUT',
|
||||
type: '0',
|
||||
menuName: ['Dashboard', '权限管理', '功能'][index],
|
||||
permission: '',
|
||||
orderNo: index + 1,
|
||||
createTime: '@datetime',
|
||||
'status|1': ['0', '0', '1'],
|
||||
children: (() => {
|
||||
const children: any[] = [];
|
||||
for (let j = 0; j < 4; j++) {
|
||||
children.push({
|
||||
id: `${index}-${j}`,
|
||||
type: '1',
|
||||
menuName: ['菜单1', '菜单2', '菜单3', '菜单4'][j],
|
||||
icon: 'ion:document',
|
||||
permission: ['menu1:view', 'menu2:add', 'menu3:update', 'menu4:del'][index],
|
||||
component: [
|
||||
'/dashboard/welcome/index',
|
||||
'/dashboard/analysis/index',
|
||||
'/dashboard/workbench/index',
|
||||
'/dashboard/test/index',
|
||||
][j],
|
||||
orderNo: j + 1,
|
||||
createTime: '@datetime',
|
||||
'status|1': ['0', '1'],
|
||||
parentMenu: `${index}`,
|
||||
children: (() => {
|
||||
const children: any[] = [];
|
||||
for (let k = 0; k < 4; k++) {
|
||||
children.push({
|
||||
id: `${index}-${j}-${k}`,
|
||||
type: '2',
|
||||
menuName: '按钮' + (j + 1) + '-' + (k + 1),
|
||||
icon: '',
|
||||
permission:
|
||||
['menu1:view', 'menu2:add', 'menu3:update', 'menu4:del'][index] +
|
||||
':btn' +
|
||||
(k + 1),
|
||||
component: [
|
||||
'/dashboard/welcome/index',
|
||||
'/dashboard/analysis/index',
|
||||
'/dashboard/workbench/index',
|
||||
'/dashboard/test/index',
|
||||
][j],
|
||||
orderNo: j + 1,
|
||||
createTime: '@datetime',
|
||||
'status|1': ['0', '1'],
|
||||
parentMenu: `${index}-${j}`,
|
||||
children: undefined,
|
||||
});
|
||||
}
|
||||
return children;
|
||||
})(),
|
||||
});
|
||||
}
|
||||
return children;
|
||||
})(),
|
||||
});
|
||||
}
|
||||
return result;
|
||||
})();
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/basic-api/system/getAccountList',
|
||||
timeout: 100,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { page = 1, pageSize = 20 } = query;
|
||||
return resultPageSuccess(page, pageSize, accountList);
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/system/getRoleListByPage',
|
||||
timeout: 100,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { page = 1, pageSize = 20 } = query;
|
||||
return resultPageSuccess(page, pageSize, roleList);
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/system/setRoleStatus',
|
||||
timeout: 500,
|
||||
method: 'post',
|
||||
response: ({ query }) => {
|
||||
const { id, status } = query;
|
||||
return resultSuccess({ id, status });
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/system/getAllRoleList',
|
||||
timeout: 100,
|
||||
method: 'get',
|
||||
response: () => {
|
||||
return resultSuccess(roleList);
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/system/getDeptList',
|
||||
timeout: 100,
|
||||
method: 'get',
|
||||
response: () => {
|
||||
return resultSuccess(deptList);
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/system/getMenuList',
|
||||
timeout: 100,
|
||||
method: 'get',
|
||||
response: () => {
|
||||
return resultSuccess(menuList);
|
||||
},
|
||||
},
|
||||
] as MockMethod[];
|
@@ -1,6 +1,15 @@
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { Random } from 'mockjs';
|
||||
import { resultPageSuccess } from '../_util';
|
||||
|
||||
function getRandomPics(count = 10): string[] {
|
||||
const arr: string[] = [];
|
||||
for (let i = 0; i < count; i++) {
|
||||
arr.push(Random.image('800x600', Random.color(), Random.color(), Random.title()));
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
|
||||
const demoList = (() => {
|
||||
const result: any[] = [];
|
||||
for (let index = 0; index < 60; index++) {
|
||||
@@ -18,6 +27,11 @@ const demoList = (() => {
|
||||
name6: '@cname()',
|
||||
name7: '@cname()',
|
||||
name8: '@cname()',
|
||||
avatar: Random.image('400x400', Random.color(), Random.color(), Random.first()),
|
||||
imgArr: getRandomPics(Math.ceil(Math.random() * 3) + 1),
|
||||
imgs: getRandomPics(Math.ceil(Math.random() * 3) + 1),
|
||||
date: `@date('yyyy-MM-dd')`,
|
||||
time: `@time('HH:mm')`,
|
||||
'no|100000-10000000': 100000,
|
||||
'status|1': ['normal', 'enable', 'disable'],
|
||||
});
|
||||
@@ -27,8 +41,8 @@ const demoList = (() => {
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/api/table/getDemoList',
|
||||
timeout: 1000,
|
||||
url: '/basic-api/table/getDemoList',
|
||||
timeout: 100,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { page = 1, pageSize = 20 } = query;
|
||||
|
38
mock/demo/tree-demo.ts
Normal file
38
mock/demo/tree-demo.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { resultSuccess } from '../_util';
|
||||
|
||||
const demoTreeList = (keyword) => {
|
||||
const result = {
|
||||
list: [] as Recordable[],
|
||||
};
|
||||
for (let index = 0; index < 5; index++) {
|
||||
const children: Recordable[] = [];
|
||||
for (let j = 0; j < 3; j++) {
|
||||
children.push({
|
||||
title: `${keyword ?? ''}选项${index}-${j}`,
|
||||
value: `${index}-${j}`,
|
||||
key: `${index}-${j}`,
|
||||
});
|
||||
}
|
||||
result.list.push({
|
||||
title: `${keyword ?? ''}选项${index}`,
|
||||
value: `${index}`,
|
||||
key: `${index}`,
|
||||
children,
|
||||
});
|
||||
}
|
||||
return result;
|
||||
};
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/basic-api/tree/getDemoOptions',
|
||||
timeout: 1000,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { keyword } = query;
|
||||
console.log(keyword);
|
||||
return resultSuccess(demoTreeList(keyword));
|
||||
},
|
||||
},
|
||||
] as MockMethod[];
|
207
mock/sys/menu.ts
207
mock/sys/menu.ts
@@ -1,59 +1,46 @@
|
||||
import { resultSuccess } from '../_util';
|
||||
import { resultSuccess, resultError, getRequestToken, requestParams } from '../_util';
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { createFakeUserList } from './user';
|
||||
|
||||
// single
|
||||
const dashboardRoute = {
|
||||
path: '/home',
|
||||
name: 'Home',
|
||||
component: '/dashboard/welcome/index',
|
||||
path: '/dashboard',
|
||||
name: 'Dashboard',
|
||||
component: 'LAYOUT',
|
||||
redirect: '/dashboard/analysis',
|
||||
meta: {
|
||||
title: 'routes.dashboard.welcome',
|
||||
affix: true,
|
||||
title: 'routes.dashboard.dashboard',
|
||||
hideChildrenInMenu: true,
|
||||
icon: 'bx:bx-home',
|
||||
},
|
||||
};
|
||||
|
||||
const frontRoute = {
|
||||
path: 'front',
|
||||
name: 'PermissionFrontDemo',
|
||||
meta: {
|
||||
title: 'routes.demo.permission.front',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'page',
|
||||
name: 'FrontPageAuth',
|
||||
component: '/demo/permission/front/index',
|
||||
path: 'analysis',
|
||||
name: 'Analysis',
|
||||
component: '/dashboard/analysis/index',
|
||||
meta: {
|
||||
title: 'routes.demo.permission.frontPage',
|
||||
hideMenu: true,
|
||||
hideBreadcrumb: true,
|
||||
title: 'routes.dashboard.analysis',
|
||||
currentActiveMenu: '/dashboard',
|
||||
icon: 'bx:bx-home',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'btn',
|
||||
name: 'FrontBtnAuth',
|
||||
component: '/demo/permission/front/Btn',
|
||||
path: 'workbench',
|
||||
name: 'Workbench',
|
||||
component: '/dashboard/workbench/index',
|
||||
meta: {
|
||||
title: 'routes.demo.permission.frontBtn',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'auth-pageA',
|
||||
name: 'FrontAuthPageA',
|
||||
component: '/demo/permission/front/AuthPageA',
|
||||
meta: {
|
||||
title: 'routes.demo.permission.frontTestA',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'auth-pageB',
|
||||
name: 'FrontAuthPageB',
|
||||
component: '/demo/permission/front/AuthPageB',
|
||||
meta: {
|
||||
title: 'routes.demo.permission.frontTestB',
|
||||
hideMenu: true,
|
||||
hideBreadcrumb: true,
|
||||
title: 'routes.dashboard.workbench',
|
||||
currentActiveMenu: '/dashboard',
|
||||
icon: 'bx:bx-home',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const backRoute = {
|
||||
path: 'back',
|
||||
name: 'PermissionBackDemo',
|
||||
@@ -80,19 +67,8 @@ const backRoute = {
|
||||
},
|
||||
],
|
||||
};
|
||||
const authRoute = {
|
||||
path: '/permission',
|
||||
name: 'Permission',
|
||||
component: 'LAYOUT',
|
||||
redirect: '/permission/front/page',
|
||||
meta: {
|
||||
icon: 'carbon:user-role',
|
||||
title: 'routes.demo.permission.permission',
|
||||
},
|
||||
children: [frontRoute, backRoute],
|
||||
};
|
||||
|
||||
const authRoute1 = {
|
||||
const authRoute = {
|
||||
path: '/permission',
|
||||
name: 'Permission',
|
||||
component: 'LAYOUT',
|
||||
@@ -159,19 +135,136 @@ const levelRoute = {
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const sysRoute = {
|
||||
path: '/system',
|
||||
name: 'System',
|
||||
component: 'LAYOUT',
|
||||
redirect: '/system/account',
|
||||
meta: {
|
||||
icon: 'ion:settings-outline',
|
||||
title: 'routes.demo.system.moduleName',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'account',
|
||||
name: 'AccountManagement',
|
||||
meta: {
|
||||
title: 'routes.demo.system.account',
|
||||
ignoreKeepAlive: true,
|
||||
},
|
||||
component: '/demo/system/account/index',
|
||||
},
|
||||
{
|
||||
path: 'account_detail/:id',
|
||||
name: 'AccountDetail',
|
||||
meta: {
|
||||
hideMenu: true,
|
||||
title: 'routes.demo.system.account_detail',
|
||||
ignoreKeepAlive: true,
|
||||
showMenu: false,
|
||||
currentActiveMenu: '/system/account',
|
||||
},
|
||||
component: '/demo/system/account/AccountDetail',
|
||||
},
|
||||
{
|
||||
path: 'role',
|
||||
name: 'RoleManagement',
|
||||
meta: {
|
||||
title: 'routes.demo.system.role',
|
||||
ignoreKeepAlive: true,
|
||||
},
|
||||
component: '/demo/system/role/index',
|
||||
},
|
||||
|
||||
{
|
||||
path: 'menu',
|
||||
name: 'MenuManagement',
|
||||
meta: {
|
||||
title: 'routes.demo.system.menu',
|
||||
ignoreKeepAlive: true,
|
||||
},
|
||||
component: '/demo/system/menu/index',
|
||||
},
|
||||
{
|
||||
path: 'dept',
|
||||
name: 'DeptManagement',
|
||||
meta: {
|
||||
title: 'routes.demo.system.dept',
|
||||
ignoreKeepAlive: true,
|
||||
},
|
||||
component: '/demo/system/dept/index',
|
||||
},
|
||||
{
|
||||
path: 'changePassword',
|
||||
name: 'ChangePassword',
|
||||
meta: {
|
||||
title: 'routes.demo.system.password',
|
||||
ignoreKeepAlive: true,
|
||||
},
|
||||
component: '/demo/system/password/index',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const linkRoute = {
|
||||
path: '/link',
|
||||
name: 'Link',
|
||||
component: 'LAYOUT',
|
||||
meta: {
|
||||
icon: 'ion:tv-outline',
|
||||
title: 'routes.demo.iframe.frame',
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'doc',
|
||||
name: 'Doc',
|
||||
meta: {
|
||||
title: 'routes.demo.iframe.doc',
|
||||
frameSrc: 'https://vvbin.cn/doc-next/',
|
||||
},
|
||||
},
|
||||
{
|
||||
path: 'https://vvbin.cn/doc-next/',
|
||||
name: 'DocExternal',
|
||||
component: 'LAYOUT',
|
||||
meta: {
|
||||
title: 'routes.demo.iframe.docExternal',
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/api/getMenuListById',
|
||||
url: '/basic-api/getMenuList',
|
||||
timeout: 1000,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { id } = query;
|
||||
if (!id || id === '1') {
|
||||
return resultSuccess([dashboardRoute, authRoute, levelRoute]);
|
||||
response: (request: requestParams) => {
|
||||
const token = getRequestToken(request);
|
||||
if (!token) {
|
||||
return resultError('Invalid token!');
|
||||
}
|
||||
if (id === '2') {
|
||||
return resultSuccess([dashboardRoute, authRoute1, levelRoute]);
|
||||
const checkUser = createFakeUserList().find((item) => item.token === token);
|
||||
if (!checkUser) {
|
||||
return resultError('Invalid user token!');
|
||||
}
|
||||
const id = checkUser.userId;
|
||||
let menu: Object[];
|
||||
switch (id) {
|
||||
case '1':
|
||||
dashboardRoute.redirect = dashboardRoute.path + '/' + dashboardRoute.children[0].path;
|
||||
menu = [dashboardRoute, authRoute, levelRoute, sysRoute, linkRoute];
|
||||
break;
|
||||
case '2':
|
||||
dashboardRoute.redirect = dashboardRoute.path + '/' + dashboardRoute.children[1].path;
|
||||
menu = [dashboardRoute, authRoute, levelRoute, linkRoute];
|
||||
break;
|
||||
default:
|
||||
menu = [];
|
||||
}
|
||||
|
||||
return resultSuccess(menu);
|
||||
},
|
||||
},
|
||||
] as MockMethod[];
|
||||
|
@@ -1,15 +1,17 @@
|
||||
import { MockMethod } from 'vite-plugin-mock';
|
||||
import { resultError, resultSuccess } from '../_util';
|
||||
import { resultError, resultSuccess, getRequestToken, requestParams } from '../_util';
|
||||
|
||||
function createFakeUserList() {
|
||||
export function createFakeUserList() {
|
||||
return [
|
||||
{
|
||||
userId: '1',
|
||||
username: 'vben',
|
||||
realName: 'Vben Admin',
|
||||
avatar: 'https://q1.qlogo.cn/g?b=qq&nk=190848757&s=640',
|
||||
desc: 'manager',
|
||||
password: '123456',
|
||||
token: 'fakeToken1',
|
||||
homePath: '/dashboard/analysis',
|
||||
roles: [
|
||||
{
|
||||
roleName: 'Super Admin',
|
||||
@@ -22,8 +24,10 @@ function createFakeUserList() {
|
||||
username: 'test',
|
||||
password: '123456',
|
||||
realName: 'test user',
|
||||
avatar: 'https://q1.qlogo.cn/g?b=qq&nk=339449197&s=640',
|
||||
desc: 'tester',
|
||||
token: 'fakeToken2',
|
||||
homePath: '/dashboard/workbench',
|
||||
roles: [
|
||||
{
|
||||
roleName: 'Tester',
|
||||
@@ -42,7 +46,7 @@ const fakeCodeList: any = {
|
||||
export default [
|
||||
// mock user login
|
||||
{
|
||||
url: '/api/login',
|
||||
url: '/basic-api/login',
|
||||
timeout: 200,
|
||||
method: 'post',
|
||||
response: ({ body }) => {
|
||||
@@ -65,11 +69,12 @@ export default [
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/api/getUserInfoById',
|
||||
url: '/basic-api/getUserInfo',
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { userId } = query;
|
||||
const checkUser = createFakeUserList().find((item) => item.userId === userId);
|
||||
response: (request: requestParams) => {
|
||||
const token = getRequestToken(request);
|
||||
if (!token) return resultError('Invalid token');
|
||||
const checkUser = createFakeUserList().find((item) => item.token === token);
|
||||
if (!checkUser) {
|
||||
return resultError('The corresponding user information was not obtained!');
|
||||
}
|
||||
@@ -77,17 +82,33 @@ export default [
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/api/getPermCodeByUserId',
|
||||
url: '/basic-api/getPermCode',
|
||||
timeout: 200,
|
||||
method: 'get',
|
||||
response: ({ query }) => {
|
||||
const { userId } = query;
|
||||
if (!userId) {
|
||||
return resultError('userId is not null!');
|
||||
response: (request: requestParams) => {
|
||||
const token = getRequestToken(request);
|
||||
if (!token) return resultError('Invalid token');
|
||||
const checkUser = createFakeUserList().find((item) => item.token === token);
|
||||
if (!checkUser) {
|
||||
return resultError('Invalid token!');
|
||||
}
|
||||
const codeList = fakeCodeList[userId];
|
||||
const codeList = fakeCodeList[checkUser.userId];
|
||||
|
||||
return resultSuccess(codeList);
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/basic-api/logout',
|
||||
timeout: 200,
|
||||
method: 'get',
|
||||
response: (request: requestParams) => {
|
||||
const token = getRequestToken(request);
|
||||
if (!token) return resultError('Invalid token');
|
||||
const checkUser = createFakeUserList().find((item) => item.token === token);
|
||||
if (!checkUser) {
|
||||
return resultError('Invalid token!');
|
||||
}
|
||||
return resultSuccess(undefined, { message: 'Token has been destroyed' });
|
||||
},
|
||||
},
|
||||
] as MockMethod[];
|
||||
|
183
package.json
183
package.json
@@ -1,120 +1,145 @@
|
||||
{
|
||||
"name": "vben-admin",
|
||||
"version": "2.0.0",
|
||||
"version": "2.6.1",
|
||||
"author": {
|
||||
"name": "vben",
|
||||
"email": "anncwb@126.com",
|
||||
"url": "https://github.com/anncwb"
|
||||
},
|
||||
"scripts": {
|
||||
"bootstrap": "yarn install",
|
||||
"serve": "vite",
|
||||
"serve": "npm run dev",
|
||||
"dev": "vite",
|
||||
"build": "vite build && esno ./build/script/postBuild.ts",
|
||||
"build": "cross-env NODE_ENV=production vite build && esno ./build/script/postBuild.ts",
|
||||
"build:test": "cross-env vite build --mode test && esno ./build/script/postBuild.ts",
|
||||
"build:no-cache": "yarn clean:cache && npm run build",
|
||||
"report": "cross-env REPORT=true npm run build ",
|
||||
"report": "cross-env REPORT=true npm run build",
|
||||
"type:check": "vue-tsc --noEmit --skipLibCheck",
|
||||
"preview": "npm run build && vite preview",
|
||||
"preview:dist": "vite preview",
|
||||
"log": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0",
|
||||
"log": "conventional-changelog -p angular -i CHANGELOG.md -s",
|
||||
"clean:cache": "rimraf node_modules/.cache/ && rimraf node_modules/.vite",
|
||||
"clean:lib": "npx rimraf node_modules",
|
||||
"typecheck": "vuedx-typecheck .",
|
||||
"lint:eslint": "eslint \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
|
||||
"lint:prettier": "prettier --write --loglevel warn \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
|
||||
"lint:stylelint": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
|
||||
"lint:ls-lint": "ls-lint",
|
||||
"clean:lib": "rimraf node_modules",
|
||||
"lint:eslint": "eslint --cache --max-warnings 0 \"{src,mock}/**/*.{vue,ts,tsx}\" --fix",
|
||||
"lint:prettier": "prettier --write \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\"",
|
||||
"lint:stylelint": "stylelint --cache --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/",
|
||||
"lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.js",
|
||||
"lint:pretty": "pretty-quick --staged",
|
||||
"test:unit": "jest",
|
||||
"test:unit-coverage": "jest --coverage",
|
||||
"test:gzip": "http-server dist --cors --gzip -c-1",
|
||||
"test:br": "http-server dist --cors --brotli -c-1",
|
||||
"reinstall": "rimraf yarn.lock && rimraf package.lock.json && rimraf node_modules && npm run bootstrap",
|
||||
"postinstall": "is-ci || husky install"
|
||||
"prepare": "husky install",
|
||||
"gen:icon": "esno ./build/generate/icon/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@iconify/iconify": "^2.0.0-rc.6",
|
||||
"@vueuse/core": "^4.1.1",
|
||||
"@zxcvbn-ts/core": "^0.2.0",
|
||||
"ant-design-vue": "2.0.0",
|
||||
"apexcharts": "^3.25.0",
|
||||
"@iconify/iconify": "^2.0.3",
|
||||
"@logicflow/core": "^0.6.1",
|
||||
"@logicflow/extension": "^0.6.1",
|
||||
"@vueuse/core": "^5.1.4",
|
||||
"@zxcvbn-ts/core": "^1.0.0-beta.0",
|
||||
"ant-design-vue": "2.2.2",
|
||||
"axios": "^0.21.1",
|
||||
"crypto-es": "^1.2.7",
|
||||
"echarts": "^5.0.2",
|
||||
"codemirror": "^5.62.0",
|
||||
"cropperjs": "^1.5.12",
|
||||
"crypto-js": "^4.0.0",
|
||||
"echarts": "^5.1.2",
|
||||
"intro.js": "^4.1.0",
|
||||
"lodash-es": "^4.17.21",
|
||||
"mockjs": "^1.1.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"path-to-regexp": "^6.2.0",
|
||||
"pinia": "^2.0.0-beta.5",
|
||||
"print-js": "^1.6.0",
|
||||
"qrcode": "^1.4.4",
|
||||
"sortablejs": "^1.13.0",
|
||||
"vditor": "^3.8.1",
|
||||
"vue": "^3.0.5",
|
||||
"vue-i18n": "9.0.0-rc.2",
|
||||
"vue-router": "^4.0.4",
|
||||
"vue-types": "^3.0.2",
|
||||
"vuex": "^4.0.0",
|
||||
"vuex-module-decorators": "^1.0.1",
|
||||
"xlsx": "^0.16.9"
|
||||
"resize-observer-polyfill": "^1.5.1",
|
||||
"sortablejs": "^1.14.0",
|
||||
"tinymce": "^5.8.2",
|
||||
"vditor": "^3.8.6",
|
||||
"vue": "3.1.5",
|
||||
"vue-i18n": "9.1.6",
|
||||
"vue-json-pretty": "^2.0.2",
|
||||
"vue-router": "^4.0.10",
|
||||
"vue-types": "^4.0.0",
|
||||
"xlsx": "^0.17.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^11.0.0",
|
||||
"@commitlint/config-conventional": "^11.0.0",
|
||||
"@iconify/json": "^1.1.306",
|
||||
"@ls-lint/ls-lint": "^1.9.2",
|
||||
"@commitlint/cli": "^12.1.4",
|
||||
"@commitlint/config-conventional": "^12.1.4",
|
||||
"@iconify/json": "^1.1.374",
|
||||
"@purge-icons/generated": "^0.7.0",
|
||||
"@types/fs-extra": "^9.0.7",
|
||||
"@types/http-proxy": "^1.17.5",
|
||||
"@types/codemirror": "^5.60.2",
|
||||
"@types/crypto-js": "^4.0.2",
|
||||
"@types/fs-extra": "^9.0.12",
|
||||
"@types/inquirer": "^7.3.3",
|
||||
"@types/intro.js": "^3.0.2",
|
||||
"@types/jest": "^26.0.24",
|
||||
"@types/lodash-es": "^4.17.4",
|
||||
"@types/mockjs": "^1.0.3",
|
||||
"@types/mockjs": "^1.0.4",
|
||||
"@types/node": "^16.3.3",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/qrcode": "^1.4.0",
|
||||
"@types/rollup-plugin-visualizer": "^2.6.0",
|
||||
"@types/sortablejs": "^1.10.6",
|
||||
"@types/yargs": "^16.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^4.15.1",
|
||||
"@typescript-eslint/parser": "^4.15.1",
|
||||
"@vitejs/plugin-legacy": "^1.3.1",
|
||||
"@vitejs/plugin-vue": "^1.1.4",
|
||||
"@vitejs/plugin-vue-jsx": "^1.1.0",
|
||||
"@vue/compiler-sfc": "^3.0.5",
|
||||
"@vuedx/typecheck": "^0.6.3",
|
||||
"@vuedx/typescript-plugin-vue": "^0.6.3",
|
||||
"autoprefixer": "^10.2.4",
|
||||
"commitizen": "^4.2.3",
|
||||
"@types/qrcode": "^1.4.1",
|
||||
"@types/qs": "^6.9.7",
|
||||
"@types/sortablejs": "^1.10.7",
|
||||
"@typescript-eslint/eslint-plugin": "^4.28.3",
|
||||
"@typescript-eslint/parser": "^4.28.3",
|
||||
"@vitejs/plugin-legacy": "^1.4.4",
|
||||
"@vitejs/plugin-vue": "^1.2.5",
|
||||
"@vitejs/plugin-vue-jsx": "^1.1.6",
|
||||
"@vue/compiler-sfc": "3.1.5",
|
||||
"@vue/test-utils": "^2.0.0-rc.10",
|
||||
"autoprefixer": "^10.3.1",
|
||||
"commitizen": "^4.2.4",
|
||||
"conventional-changelog-cli": "^2.1.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"dotenv": "^8.2.0",
|
||||
"eslint": "^7.20.0",
|
||||
"eslint-config-prettier": "^7.2.0",
|
||||
"eslint-plugin-prettier": "^3.3.1",
|
||||
"eslint-plugin-vue": "^7.6.0",
|
||||
"esno": "^0.4.4",
|
||||
"fs-extra": "^9.1.0",
|
||||
"dotenv": "^10.0.0",
|
||||
"eslint": "^7.31.0",
|
||||
"eslint-config-prettier": "^8.3.0",
|
||||
"eslint-define-config": "^1.0.9",
|
||||
"eslint-plugin-jest": "^24.3.6",
|
||||
"eslint-plugin-prettier": "^3.4.0",
|
||||
"eslint-plugin-vue": "^7.14.0",
|
||||
"esno": "^0.7.3",
|
||||
"fs-extra": "^10.0.0",
|
||||
"http-server": "^0.12.3",
|
||||
"husky": "^5.0.9",
|
||||
"husky": "^7.0.1",
|
||||
"inquirer": "^8.1.2",
|
||||
"is-ci": "^3.0.0",
|
||||
"jest": "^27.0.6",
|
||||
"less": "^4.1.1",
|
||||
"lint-staged": "^10.5.4",
|
||||
"prettier": "^2.2.1",
|
||||
"pretty-quick": "^3.1.0",
|
||||
"lint-staged": "^11.0.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"postcss": "^8.3.5",
|
||||
"prettier": "^2.3.2",
|
||||
"pretty-quick": "^3.1.1",
|
||||
"rimraf": "^3.0.2",
|
||||
"rollup-plugin-visualizer": "^4.2.0",
|
||||
"stylelint": "^13.11.0",
|
||||
"rollup-plugin-visualizer": "5.5.2",
|
||||
"stylelint": "^13.13.1",
|
||||
"stylelint-config-prettier": "^8.0.2",
|
||||
"stylelint-config-standard": "^20.0.0",
|
||||
"stylelint-config-standard": "^22.0.0",
|
||||
"stylelint-order": "^4.1.0",
|
||||
"ts-node": "^9.1.1",
|
||||
"typescript": "^4.1.5",
|
||||
"vite": "2.0.1",
|
||||
"vite-plugin-compression": "^0.2.1",
|
||||
"vite-plugin-html": "^2.0.0",
|
||||
"vite-plugin-imagemin": "^0.2.7",
|
||||
"vite-plugin-mock": "^2.1.4",
|
||||
"tailwindcss": "^2.2.4",
|
||||
"ts-jest": "^27.0.3",
|
||||
"ts-node": "^10.1.0",
|
||||
"typescript": "4.3.5",
|
||||
"vite": "2.3.6",
|
||||
"vite-plugin-compression": "^0.3.1",
|
||||
"vite-plugin-html": "^2.0.7",
|
||||
"vite-plugin-imagemin": "^0.4.1",
|
||||
"vite-plugin-mock": "^2.9.3",
|
||||
"vite-plugin-purge-icons": "^0.7.0",
|
||||
"vite-plugin-pwa": "^0.5.2",
|
||||
"vite-plugin-style-import": "^0.7.3",
|
||||
"vite-plugin-theme": "^0.4.3",
|
||||
"vite-plugin-windicss": "0.4.3",
|
||||
"vue-eslint-parser": "^7.5.0",
|
||||
"yargs": "^16.2.0"
|
||||
"vite-plugin-pwa": "^0.8.1",
|
||||
"vite-plugin-style-import": "^1.0.1",
|
||||
"vite-plugin-svg-icons": "^1.0.1",
|
||||
"vite-plugin-theme": "^0.8.1",
|
||||
"vue-eslint-parser": "^7.9.0",
|
||||
"vue-tsc": "^0.2.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"//": "Used to install imagemin dependencies, because imagemin may not be installed in China.If it is abroad, you can delete it",
|
||||
"//": "Used to install imagemin dependencies, because imagemin may not be installed in China. If it is abroad, you can delete it",
|
||||
"bin-wrapper": "npm:bin-wrapper-china",
|
||||
"ecstatic": "4.1.4"
|
||||
"rollup": "^2.53.2"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -126,6 +151,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/anncwb/vue-vben-admin",
|
||||
"engines": {
|
||||
"node": "^12 || ^14 || ^15 || ^16"
|
||||
"node": "^12 || >=14"
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
};
|
||||
|
@@ -15,6 +15,6 @@ module.exports = {
|
||||
requirePragma: false,
|
||||
proseWrap: 'never',
|
||||
htmlWhitespaceSensitivity: 'strict',
|
||||
endOfLine: 'lf',
|
||||
endOfLine: 'auto',
|
||||
rangeStart: 0,
|
||||
};
|
||||
|
419
public/resource/tinymce/langs/en.js
Normal file
419
public/resource/tinymce/langs/en.js
Normal file
@@ -0,0 +1,419 @@
|
||||
tinymce.addI18n('es', {
|
||||
Redo: 'Rehacer',
|
||||
Undo: 'Deshacer',
|
||||
Cut: 'Cortar',
|
||||
Copy: 'Copiar',
|
||||
Paste: 'Pegar',
|
||||
'Select all': 'Seleccionar todo',
|
||||
'New document': 'Nuevo documento',
|
||||
Ok: 'Ok',
|
||||
Cancel: 'Cancelar',
|
||||
'Visual aids': 'Ayudas visuales',
|
||||
Bold: 'Negrita',
|
||||
Italic: 'Cursiva',
|
||||
Underline: 'Subrayado',
|
||||
Strikethrough: 'Tachado',
|
||||
Superscript: 'Super\u00edndice',
|
||||
Subscript: 'Sub\u00edndice',
|
||||
'Clear formatting': 'Limpiar formato',
|
||||
'Align left': 'Alinear a la izquierda',
|
||||
'Align center': 'Alinear al centro',
|
||||
'Align right': 'Alinear a la derecha',
|
||||
Justify: 'Justificar',
|
||||
'Bullet list': 'Lista de vi\u00f1etas',
|
||||
'Numbered list': 'Lista numerada',
|
||||
'Decrease indent': 'Disminuir sangr\u00eda',
|
||||
'Increase indent': 'Incrementar sangr\u00eda',
|
||||
Close: 'Cerrar',
|
||||
Formats: 'Formatos',
|
||||
"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": 'Su navegador no es compatible con el acceso directo al portapapeles. Use las teclas Crtl+X\/C\/V de su teclado.',
|
||||
Headers: 'Encabezados',
|
||||
'Header 1': 'Encabezado 1',
|
||||
'Header 2': 'Encabezado 2',
|
||||
'Header 3': 'Encabezado 3',
|
||||
'Header 4': 'Encabezado 4',
|
||||
'Header 5': 'Encabezado 5',
|
||||
'Header 6': 'Encabezado 6',
|
||||
Headings: 'Encabezados',
|
||||
'Heading 1': 'Encabezado 1',
|
||||
'Heading 2': 'Encabezado 2',
|
||||
'Heading 3': 'Encabezado 3',
|
||||
'Heading 4': 'Encabezado 4',
|
||||
'Heading 5': 'Encabezado 5',
|
||||
'Heading 6': 'Encabezado 6',
|
||||
Preformatted: 'Con formato previo',
|
||||
Div: 'Div',
|
||||
Pre: 'Pre',
|
||||
Code: 'C\u00f3digo',
|
||||
Paragraph: 'P\u00e1rrafo',
|
||||
Blockquote: 'Blockquote',
|
||||
Inline: 'Alineado',
|
||||
Blocks: 'Bloques',
|
||||
'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.': 'Pegar est\u00e1 ahora en modo de texto plano. El contenido se pegar\u00e1 como texto plano hasta que desactive esta opci\u00f3n.',
|
||||
Fonts: 'Fuentes',
|
||||
'Font Sizes': 'Tama\u00f1os de fuente',
|
||||
Class: 'Clase',
|
||||
'Browse for an image': 'Buscar una imagen',
|
||||
OR: 'OR',
|
||||
'Drop an image here': 'Arrastre una imagen aqu\u00ed',
|
||||
Upload: 'Cargar',
|
||||
Block: 'Bloque',
|
||||
Align: 'Alinear',
|
||||
Default: 'Por defecto',
|
||||
Circle: 'C\u00edrculo',
|
||||
Disc: 'Disco',
|
||||
Square: 'Cuadrado',
|
||||
'Lower Alpha': 'Inferior Alfa',
|
||||
'Lower Greek': 'Inferior Griega',
|
||||
'Lower Roman': 'Inferior Romana',
|
||||
'Upper Alpha': 'Superior Alfa',
|
||||
'Upper Roman': 'Superior Romana',
|
||||
'Anchor...': 'Anclaje...',
|
||||
Name: 'Nombre',
|
||||
Id: 'Id',
|
||||
'Id should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores.': 'Deber\u00eda comenzar por una letra, seguida solo de letras, n\u00fameros, guiones, puntos, dos puntos o guiones bajos.',
|
||||
'You have unsaved changes are you sure you want to navigate away?': 'Tiene cambios sin guardar. \u00bfEst\u00e1 seguro de que quiere salir?',
|
||||
'Restore last draft': 'Restaurar el \u00faltimo borrador',
|
||||
'Special character...': 'Car\u00e1cter especial...',
|
||||
'Source code': 'C\u00f3digo fuente',
|
||||
'Insert\/Edit code sample': 'Insertar\/editar c\u00f3digo de prueba',
|
||||
Language: 'Idioma',
|
||||
'Code sample...': 'Ejemplo de c\u00f3digo...',
|
||||
'Color Picker': 'Selector de colores',
|
||||
R: 'R',
|
||||
G: 'V',
|
||||
B: 'A',
|
||||
'Left to right': 'De izquierda a derecha',
|
||||
'Right to left': 'De derecha a izquierda',
|
||||
'Emoticons...': 'Emoticones...',
|
||||
'Metadata and Document Properties': 'Metadatos y propiedades del documento',
|
||||
Title: 'T\u00edtulo',
|
||||
Keywords: 'Palabras clave',
|
||||
Description: 'Descripci\u00f3n',
|
||||
Robots: 'Robots',
|
||||
Author: 'Autor',
|
||||
Encoding: 'Codificaci\u00f3n',
|
||||
Fullscreen: 'Pantalla completa',
|
||||
Action: 'Acci\u00f3n',
|
||||
Shortcut: 'Atajo',
|
||||
Help: 'Ayuda',
|
||||
Address: 'Direcci\u00f3n',
|
||||
'Focus to menubar': 'Enfocar la barra del men\u00fa',
|
||||
'Focus to toolbar': 'Enfocar la barra de herramientas',
|
||||
'Focus to element path': 'Enfocar la ruta del elemento',
|
||||
'Focus to contextual toolbar': 'Enfocar la barra de herramientas contextual',
|
||||
'Insert link (if link plugin activated)': 'Insertar enlace (si el complemento de enlace est\u00e1 activado)',
|
||||
'Save (if save plugin activated)': 'Guardar (si el componente de salvar est\u00e1 activado)',
|
||||
'Find (if searchreplace plugin activated)': 'Buscar (si el complemento buscar-remplazar est\u00e1 activado)',
|
||||
'Plugins installed ({0}):': 'Plugins instalados ({0}):',
|
||||
'Premium plugins:': 'Complementos premium:',
|
||||
'Learn more...': 'Aprende m\u00e1s...',
|
||||
'You are using {0}': 'Estas usando {0}',
|
||||
Plugins: 'Complementos',
|
||||
'Handy Shortcuts': 'Accesos directos',
|
||||
'Horizontal line': 'L\u00ednea horizontal',
|
||||
'Insert\/edit image': 'Insertar\/editar imagen',
|
||||
'Image description': 'Descripci\u00f3n de la imagen',
|
||||
Source: 'Enlace',
|
||||
Dimensions: 'Dimensiones',
|
||||
'Constrain proportions': 'Restringir proporciones',
|
||||
General: 'General',
|
||||
Advanced: 'Avanzado',
|
||||
Style: 'Estilo',
|
||||
'Vertical space': 'Espacio vertical',
|
||||
'Horizontal space': 'Espacio horizontal',
|
||||
Border: 'Borde',
|
||||
'Insert image': 'Insertar imagen',
|
||||
'Image...': 'Imagen...',
|
||||
'Image list': 'Lista de im\u00e1genes',
|
||||
'Rotate counterclockwise': 'Girar a la izquierda',
|
||||
'Rotate clockwise': 'Girar a la derecha',
|
||||
'Flip vertically': 'Invertir verticalmente',
|
||||
'Flip horizontally': 'Invertir horizontalmente',
|
||||
'Edit image': 'Editar imagen',
|
||||
'Image options': 'Opciones de imagen',
|
||||
'Zoom in': 'Acercar',
|
||||
'Zoom out': 'Alejar',
|
||||
Crop: 'Recortar',
|
||||
Resize: 'Redimensionar',
|
||||
Orientation: 'Orientaci\u00f3n',
|
||||
Brightness: 'Brillo',
|
||||
Sharpen: 'Forma',
|
||||
Contrast: 'Contraste',
|
||||
'Color levels': 'Niveles de color',
|
||||
Gamma: 'Gamma',
|
||||
Invert: 'Invertir',
|
||||
Apply: 'Aplicar',
|
||||
Back: 'Atr\u00e1s',
|
||||
'Insert date\/time': 'Insertar fecha\/hora',
|
||||
'Date\/time': 'Fecha\/hora',
|
||||
'Insert\/Edit Link': 'Insertar\/editar enlace',
|
||||
'Insert\/edit link': 'Insertar\/editar enlace',
|
||||
'Text to display': 'Texto para mostrar',
|
||||
Url: 'URL',
|
||||
'Open link in...': 'Abrir enlace en...',
|
||||
'Current window': 'Ventana actual',
|
||||
None: 'Ninguno',
|
||||
'New window': 'Nueva ventana',
|
||||
'Remove link': 'Quitar enlace',
|
||||
Anchors: 'Anclas',
|
||||
'Link...': 'Enlace...',
|
||||
'Paste or type a link': 'Pega o introduce un enlace',
|
||||
'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?': 'El enlace que has introducido no parece ser una direcci\u00f3n de correo electr\u00f3nico. Quieres a\u00f1adir el prefijo necesario mailto: ?',
|
||||
'The URL you entered seems to be an external link. Do you want to add the required http:\/\/ prefix?': 'El enlace que has introducido no parece ser una enlace externo. Quieres a\u00f1adir el prefijo necesario http:\/\/ ?',
|
||||
'Link list': 'Lista de enlaces',
|
||||
'Insert video': 'Insertar video',
|
||||
'Insert\/edit video': 'Insertar\/editar video',
|
||||
'Insert\/edit media': 'Insertar\/editar medio',
|
||||
'Alternative source': 'Enlace alternativo',
|
||||
'Alternative source URL': 'Origen de URL alternativo',
|
||||
'Media poster (Image URL)': 'P\u00f3ster de medio (URL de imagen)',
|
||||
'Paste your embed code below:': 'Pega tu c\u00f3digo embebido debajo',
|
||||
Embed: 'Incrustado',
|
||||
'Media...': 'Medios...',
|
||||
'Nonbreaking space': 'Espacio fijo',
|
||||
'Page break': 'Salto de p\u00e1gina',
|
||||
'Paste as text': 'Pegar como texto',
|
||||
Preview: 'Previsualizar',
|
||||
'Print...': 'Imprimir...',
|
||||
Save: 'Guardar',
|
||||
Find: 'Buscar',
|
||||
'Replace with': 'Reemplazar con',
|
||||
Replace: 'Reemplazar',
|
||||
'Replace all': 'Reemplazar todo',
|
||||
Previous: 'Anterior',
|
||||
Next: 'Siguiente',
|
||||
'Find and replace...': 'Buscar y reemplazar...',
|
||||
'Could not find the specified string.': 'No se encuentra la cadena de texto especificada',
|
||||
'Match case': 'Coincidencia exacta',
|
||||
'Find whole words only': 'Solo palabras completas',
|
||||
'Spell check': 'Revisar ortograf\u00eda',
|
||||
Ignore: 'Ignorar',
|
||||
'Ignore all': 'Ignorar todos',
|
||||
Finish: 'Finalizar',
|
||||
'Add to Dictionary': 'A\u00f1adir al Diccionario',
|
||||
'Insert table': 'Insertar tabla',
|
||||
'Table properties': 'Propiedades de la tabla',
|
||||
'Delete table': 'Eliminar tabla',
|
||||
Cell: 'Celda',
|
||||
Row: 'Fila',
|
||||
Column: 'Columna',
|
||||
'Cell properties': 'Propiedades de la celda',
|
||||
'Merge cells': 'Combinar celdas',
|
||||
'Split cell': 'Dividir celdas',
|
||||
'Insert row before': 'Insertar fila antes',
|
||||
'Insert row after': 'Insertar fila despu\u00e9s ',
|
||||
'Delete row': 'Eliminar fila',
|
||||
'Row properties': 'Propiedades de la fila',
|
||||
'Cut row': 'Cortar fila',
|
||||
'Copy row': 'Copiar fila',
|
||||
'Paste row before': 'Pegar la fila antes',
|
||||
'Paste row after': 'Pegar la fila despu\u00e9s',
|
||||
'Insert column before': 'Insertar columna antes',
|
||||
'Insert column after': 'Insertar columna despu\u00e9s',
|
||||
'Delete column': 'Eliminar columna',
|
||||
Cols: 'Columnas',
|
||||
Rows: 'Filas',
|
||||
Width: 'Ancho',
|
||||
Height: 'Alto',
|
||||
'Cell spacing': 'Espacio entre celdas',
|
||||
'Cell padding': 'Relleno de celda',
|
||||
'Show caption': 'Mostrar t\u00edtulo',
|
||||
Left: 'Izquierda',
|
||||
Center: 'Centrado',
|
||||
Right: 'Derecha',
|
||||
'Cell type': 'Tipo de celda',
|
||||
Scope: '\u00c1mbito',
|
||||
Alignment: 'Alineaci\u00f3n',
|
||||
'H Align': 'Alineamiento Horizontal',
|
||||
'V Align': 'Alineamiento Vertical',
|
||||
Top: 'Arriba',
|
||||
Middle: 'Centro',
|
||||
Bottom: 'Abajo',
|
||||
'Header cell': 'Celda de la cebecera',
|
||||
'Row group': 'Grupo de filas',
|
||||
'Column group': 'Grupo de columnas',
|
||||
'Row type': 'Tipo de fila',
|
||||
Header: 'Cabecera',
|
||||
Body: 'Cuerpo',
|
||||
Footer: 'Pie de p\u00e1gina',
|
||||
'Border color': 'Color del borde',
|
||||
'Insert template...': 'Insertar plantilla...',
|
||||
Templates: 'Plantillas',
|
||||
Template: 'Plantilla',
|
||||
'Text color': 'Color del texto',
|
||||
'Background color': 'Color de fondo',
|
||||
'Custom...': 'Personalizar...',
|
||||
'Custom color': 'Color personalizado',
|
||||
'No color': 'Sin color',
|
||||
'Remove color': 'Quitar color',
|
||||
'Table of Contents': 'Tabla de contenidos',
|
||||
'Show blocks': 'Mostrar bloques',
|
||||
'Show invisible characters': 'Mostrar caracteres invisibles',
|
||||
'Word count': 'Contar palabras',
|
||||
Count: 'Recuento',
|
||||
Document: 'Documento',
|
||||
Selection: 'Selecci\u00f3n',
|
||||
Words: 'Palabras',
|
||||
'Words: {0}': 'Palabras: {0}',
|
||||
'{0} words': '{0} palabras',
|
||||
File: 'Archivo',
|
||||
Edit: 'Editar',
|
||||
Insert: 'Insertar',
|
||||
View: 'Ver',
|
||||
Format: 'Formato',
|
||||
Table: 'Tabla',
|
||||
Tools: 'Herramientas',
|
||||
'Powered by {0}': 'Desarrollado por {0}',
|
||||
'Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help': '\u00c1rea de texto enriquecido. Pulse ALT-F9 para el menu. Pulse ALT-F10 para la barra de herramientas. Pulse ALT-0 para ayuda',
|
||||
'Image title': 'Titulo de imagen',
|
||||
'Border width': 'Ancho de borde',
|
||||
'Border style': 'Estilo de borde',
|
||||
Error: 'Error',
|
||||
Warn: 'Advertencia',
|
||||
Valid: 'V\u00e1lido',
|
||||
'To open the popup, press Shift+Enter': 'Para abrir el elemento emergente, pulse May\u00fas+Intro',
|
||||
'Rich Text Area. Press ALT-0 for help.': '\u00c1rea de texto enriquecido. Pulse ALT-0 para abrir la ayuda.',
|
||||
'System Font': 'Fuente de sistema',
|
||||
'Failed to upload image: {0}': 'Fallo al cargar imagen: {0}',
|
||||
'Failed to load plugin: {0} from url {1}': 'Fallo al cargar complemento: {0} desde URL {1}',
|
||||
'Failed to load plugin url: {0}': 'Fallo al cargar URL del complemento: {0}',
|
||||
'Failed to initialize plugin: {0}': 'Fallo al iniciar el complemento: {0}',
|
||||
example: 'ejemplo',
|
||||
Search: 'Buscar',
|
||||
All: 'Todo',
|
||||
Currency: 'Divisa',
|
||||
Text: 'Texto',
|
||||
Quotations: 'Comillas',
|
||||
Mathematical: 'S\u00edmbolo matem\u00e1tico',
|
||||
'Extended Latin': 'Latino extendido A',
|
||||
Symbols: 'S\u00edmbolos',
|
||||
Arrows: 'Flechas',
|
||||
'User Defined': 'Definido por el usuario',
|
||||
'dollar sign': 'signo de d\u00f3lar',
|
||||
'currency sign': 'signo de divisa',
|
||||
'euro-currency sign': 'signo de euro',
|
||||
'colon sign': 'signo de dos puntos',
|
||||
'cruzeiro sign': 'signo de cruceiro',
|
||||
'french franc sign': 'signo de franco franc\u00e9s',
|
||||
'lira sign': 'signo de lira',
|
||||
'mill sign': 'signo de mill',
|
||||
'naira sign': 'signo de naira',
|
||||
'peseta sign': 'signo de peseta',
|
||||
'rupee sign': 'signo de rupia',
|
||||
'won sign': 'signo de won',
|
||||
'new sheqel sign': 'signo de nuevo s\u00e9quel',
|
||||
'dong sign': 'signo de dong',
|
||||
'kip sign': 'signo de kip',
|
||||
'tugrik sign': 'signo de tugrik',
|
||||
'drachma sign': 'signo de dracma',
|
||||
'german penny symbol': 'signo de penique alem\u00e1n',
|
||||
'peso sign': 'signo de peso',
|
||||
'guarani sign': 'signo de guaran\u00ed',
|
||||
'austral sign': 'signo de austral',
|
||||
'hryvnia sign': 'signo de grivna',
|
||||
'cedi sign': 'signo de cedi',
|
||||
'livre tournois sign': 'signo de libra tornesa',
|
||||
'spesmilo sign': 'signo de spesmilo',
|
||||
'tenge sign': 'signo de tenge',
|
||||
'indian rupee sign': 'signo de rupia india',
|
||||
'turkish lira sign': 'signo de lira turca',
|
||||
'nordic mark sign': 'signo de marco n\u00f3rdico',
|
||||
'manat sign': 'signo de manat',
|
||||
'ruble sign': 'signo de rublo',
|
||||
'yen character': 'car\u00e1cter de yen',
|
||||
'yuan character': 'car\u00e1cter de yuan',
|
||||
'yuan character, in hong kong and taiwan': 'car\u00e1cter de yuan en Hong Kong y Taiw\u00e1n',
|
||||
'yen\/yuan character variant one': 'Variante uno de car\u00e1cter de yen\/yuan',
|
||||
'Loading emoticons...': 'Cargando emoticonos...',
|
||||
'Could not load emoticons': 'No se han podido cargar los emoticonos',
|
||||
People: 'Personas',
|
||||
'Animals and Nature': 'Animales y naturaleza',
|
||||
'Food and Drink': 'Comida y bebida',
|
||||
Activity: 'Actividad',
|
||||
'Travel and Places': 'Viajes y lugares',
|
||||
Objects: 'Objetos',
|
||||
Flags: 'Banderas',
|
||||
Characters: 'Caracteres',
|
||||
'Characters (no spaces)': 'Caracteres (sin espacios)',
|
||||
'{0} characters': '{0} caracteres',
|
||||
'Error: Form submit field collision.': 'Error: Colisi\u00f3n de campo al enviar formulario.',
|
||||
'Error: No form element found.': 'Error: No se encuentra ning\u00fan elemento de formulario.',
|
||||
Update: 'Actualizar',
|
||||
'Color swatch': 'Muestrario de colores',
|
||||
Turquoise: 'Turquesa',
|
||||
Green: 'Verde',
|
||||
Blue: 'Azul',
|
||||
Purple: 'P\u00farpura',
|
||||
'Navy Blue': 'Azul marino',
|
||||
'Dark Turquoise': 'Turquesa oscuro',
|
||||
'Dark Green': 'Verde oscuro',
|
||||
'Medium Blue': 'Azul medio',
|
||||
'Medium Purple': 'P\u00farpura medio',
|
||||
'Midnight Blue': 'Azul medio',
|
||||
Yellow: 'Amarillo',
|
||||
Orange: 'Naranja',
|
||||
Red: 'Rojo',
|
||||
'Light Gray': 'Gris claro',
|
||||
Gray: 'Gris',
|
||||
'Dark Yellow': 'Amarillo oscuro',
|
||||
'Dark Orange': 'Naranja oscuro',
|
||||
'Dark Red': 'Rojo oscuro',
|
||||
'Medium Gray': 'Gris medio',
|
||||
'Dark Gray': 'Gris oscuro',
|
||||
'Light Green': 'Verde claro',
|
||||
'Light Yellow': 'Amarillo claro',
|
||||
'Light Red': 'Rojo claro',
|
||||
'Light Purple': 'Morado claro',
|
||||
'Light Blue': 'Azul claro',
|
||||
'Dark Purple': 'Morado oscuro',
|
||||
'Dark Blue': 'Azul oscuro',
|
||||
Black: 'Negro',
|
||||
White: 'Blanco',
|
||||
'Switch to or from fullscreen mode': 'Activar o desactivar modo pantalla completa',
|
||||
'Open help dialog': 'Abrir di\u00e1logo de ayuda',
|
||||
history: 'historial',
|
||||
styles: 'estilos',
|
||||
formatting: 'formato',
|
||||
alignment: 'alineaci\u00f3n',
|
||||
indentation: 'sangr\u00eda',
|
||||
'permanent pen': 'bol\u00edgrafo permanente',
|
||||
comments: 'comentarios',
|
||||
'Format Painter': 'Copiar formato',
|
||||
'Insert\/edit iframe': 'Insertar\/editar iframe',
|
||||
Capitalization: 'Uso de may\u00fasculas',
|
||||
lowercase: 'min\u00fasculas',
|
||||
UPPERCASE: 'MAY\u00daSCULAS',
|
||||
'Title Case': 'Tipo T\u00edtulo',
|
||||
'Permanent Pen Properties': 'Propiedades del bol\u00edgrafo permanente',
|
||||
'Permanent pen properties...': 'Propiedades del bol\u00edgrafo permanente...',
|
||||
Font: 'Fuente',
|
||||
Size: 'Tama\u00f1o',
|
||||
'More...': 'M\u00e1s...',
|
||||
'Spellcheck Language': 'Corrector',
|
||||
'Select...': 'Seleccionar...',
|
||||
Preferences: 'Preferencias',
|
||||
Yes: 'S\u00ed',
|
||||
No: 'No',
|
||||
'Keyboard Navigation': 'Navegaci\u00f3n con el teclado',
|
||||
Version: 'Versi\u00f3n',
|
||||
Anchor: 'Ancla',
|
||||
'Special character': 'Car\u00e1cter especial',
|
||||
'Code sample': 'Ejemplo de c\u00f3digo',
|
||||
Color: 'Color',
|
||||
Emoticons: 'Emoticonos',
|
||||
'Document properties': 'Propiedades del documento',
|
||||
Image: 'Imagen',
|
||||
'Insert link': 'Insertar enlace',
|
||||
Target: 'Destino',
|
||||
Link: 'Enlace',
|
||||
Poster: 'Miniatura',
|
||||
Media: 'Media',
|
||||
Print: 'Imprimir',
|
||||
Prev: 'Anterior',
|
||||
'Find and replace': 'Buscar y reemplazar',
|
||||
'Whole words': 'Palabras completas',
|
||||
Spellcheck: 'Corrector ortogr\u00e1fico',
|
||||
Caption: 'Subt\u00edtulo',
|
||||
'Insert template': 'Insertar plantilla'
|
||||
})
|
239
public/resource/tinymce/skins/ui/oxide-dark/content.inline.min.css
vendored
Normal file
239
public/resource/tinymce/skins/ui/oxide-dark/content.inline.min.css
vendored
Normal file
@@ -0,0 +1,239 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor{display: inline-block;width: 8px !important;height: 12px !important;padding: 0 2px;cursor: default;background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;-webkit-user-select: all;-moz-user-select: all;-ms-user-select: all;user-select: all;-webkit-user-modify: read-only;-moz-user-modify: read-only;}
|
||||
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset: 1px;}
|
||||
|
||||
.tox-comments-visible .tox-comment{background-color: #fff0b7;}
|
||||
|
||||
.tox-comments-visible .tox-comment--active{background-color: #ffe168;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden){margin: .25em 0;list-style: none;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden)::before{position: absolute;width: 1em;height: 1em;margin-top: .125em;margin-left: -1.5em;cursor: pointer;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size: 100%;content: '';}
|
||||
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");}
|
||||
|
||||
[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-right: -1.5em;margin-left: 0;}
|
||||
|
||||
code[class*=language-],pre[class*=language-]{font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size: .875rem;-webkit-hyphens: none;-ms-hyphens: none;hyphens: none;line-height: 1.5;word-spacing: normal;color: #000;text-shadow: 0 1px #fff;word-break: normal;word-wrap: normal;white-space: pre;-moz-tab-size: 4;tab-size: 4;}
|
||||
|
||||
code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow: none;background: #b3d4fc;}
|
||||
|
||||
code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow: none;background: #b3d4fc;}@media print{code[class*=language-],pre[class*=language-]{text-shadow: none;}}
|
||||
|
||||
pre[class*=language-]{padding: 1em;margin: .5em 0;overflow: auto;}
|
||||
|
||||
:not(pre)>code[class*=language-],pre[class*=language-]{background: 0 0 !important;border: 1px solid #ccc;}
|
||||
|
||||
:not(pre)>code[class*=language-]{padding: .1em;border-radius: .3em;}
|
||||
|
||||
.token.cdata,.token.comment,.token.doctype,.token.prolog{color: #708090;}
|
||||
|
||||
.token.punctuation{color: #999;}
|
||||
|
||||
.namespace{opacity: .7;}
|
||||
|
||||
.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color: #905;}
|
||||
|
||||
.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color: #690;}
|
||||
|
||||
.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color: #a67f59;background: hsla(0,0%,100%,.5);}
|
||||
|
||||
.token.atrule,.token.attr-value,.token.keyword{color: #07a;}
|
||||
|
||||
.token.function{color: #dd4a68;}
|
||||
|
||||
.token.important,.token.regex,.token.variable{color: #e90;}
|
||||
|
||||
.token.bold,.token.important{font-weight: 700;}
|
||||
|
||||
.token.italic{font-style: italic;}
|
||||
|
||||
.token.entity{cursor: help;}
|
||||
|
||||
:not([dir=rtl]) code[class*=language-],:not([dir=rtl]) pre[class*=language-]{text-align: left;direction: ltr;}
|
||||
|
||||
[dir=rtl] code[class*=language-],[dir=rtl] pre[class*=language-]{text-align: right;direction: rtl;}
|
||||
|
||||
.mce-content-body{overflow-wrap: break-word;word-wrap: break-word;}
|
||||
|
||||
.mce-content-body .mce-visual-caret{position: absolute;background-color: #000;background-color: currentColor;}
|
||||
|
||||
.mce-content-body .mce-visual-caret-hidden{display: none;}
|
||||
|
||||
.mce-content-body [data-mce-caret]{position: absolute;top: 0;right: auto;left: -1000px;padding: 0;margin: 0;}
|
||||
|
||||
.mce-content-body .mce-offscreen-selection{position: absolute;left: -9999999999px;max-width: 1000000px;}
|
||||
|
||||
.mce-content-body [contentEditable=false]{cursor: default;}
|
||||
|
||||
.mce-content-body [contentEditable=true]{cursor: text;}
|
||||
|
||||
.tox-cursor-format-painter{cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default;}
|
||||
|
||||
.mce-content-body figure.align-left{float: left;}
|
||||
|
||||
.mce-content-body figure.align-right{float: right;}
|
||||
|
||||
.mce-content-body figure.image.align-center{display: table;margin-right: auto;margin-left: auto;}
|
||||
|
||||
.mce-preview-object{position: relative;display: inline-block;margin: 0 2px 0 2px;line-height: 0;border: 1px solid gray;}
|
||||
|
||||
.mce-preview-object .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.mce-object{background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border: 1px dashed #aaa;}
|
||||
|
||||
.mce-pagebreak{display: block;width: 100%;height: 5px;margin-top: 15px;cursor: default;border: 1px dashed #aaa;page-break-before: always;}@media print{.mce-pagebreak{border: 0;}}
|
||||
|
||||
.tiny-pageembed .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.tiny-pageembed{position: relative;display: inline-block;}
|
||||
|
||||
.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{position: relative;display: block;width: 100%;padding: 0;overflow: hidden;}
|
||||
|
||||
.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{display: block;content: "";}
|
||||
|
||||
.tiny-pageembed--21by9::before{padding-top: 42.857143%;}
|
||||
|
||||
.tiny-pageembed--16by9::before{padding-top: 56.25%;}
|
||||
|
||||
.tiny-pageembed--4by3::before{padding-top: 75%;}
|
||||
|
||||
.tiny-pageembed--1by1::before{padding-top: 100%;}
|
||||
|
||||
.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle{position: absolute;z-index: 10000;width: 10px;height: 10px;background-color: #4099ff;border-color: #4099ff;border-style: solid;border-width: 1px;box-sizing: border-box;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:hover{background-color: #4099ff;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body .mce-clonedresizable{position: absolute;z-index: 10000;outline: 1px dashed #000;opacity: .5;}
|
||||
|
||||
.mce-content-body .mce-resize-helper{position: absolute;z-index: 10001;display: none;padding: 5px;margin: 5px 10px;font-family: sans-serif;font-size: 12px;line-height: 14px;color: #fff;white-space: nowrap;background: #555;background: rgba(0,0,0,.75);border: 1px;border-radius: 3px;}
|
||||
|
||||
.mce-match-marker{color: #fff;background: #aaa;}
|
||||
|
||||
.mce-match-marker-selected{color: #fff;background: #39f;}
|
||||
|
||||
.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body hr[data-mce-selected]{outline: 3px solid #b4d7ff;outline-offset: 1px;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false][data-mce-selected]{cursor: not-allowed;outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline: 0;}
|
||||
|
||||
.mce-content-body [data-mce-selected=inline-boundary]{background-color: #b4d7ff;}
|
||||
|
||||
.mce-content-body .mce-edit-focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color: #b4d7ff !important;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}
|
||||
|
||||
.mce-content-body img::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body img::selection{background: 0 0;}
|
||||
|
||||
.ephox-snooker-resizer-bar{background-color: #b4d7ff;opacity: 0;}
|
||||
|
||||
.ephox-snooker-resizer-cols{cursor: col-resize;}
|
||||
|
||||
.ephox-snooker-resizer-rows{cursor: row-resize;}
|
||||
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity: 1;}
|
||||
|
||||
.mce-spellchecker-word{height: 2rem;cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.5'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-spellchecker-grammar{cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23008800'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-toc{border: 1px solid gray;}
|
||||
|
||||
.mce-toc h2{margin: 4px;}
|
||||
|
||||
.mce-toc li{list-style-type: none;}
|
||||
|
||||
.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{padding-top: 10px;margin-left: 3px;background-repeat: no-repeat;border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks p{background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);}
|
||||
|
||||
.mce-visualblocks h1{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);}
|
||||
|
||||
.mce-visualblocks h2{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h3{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);}
|
||||
|
||||
.mce-visualblocks h4{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);}
|
||||
|
||||
.mce-visualblocks h5{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h6{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);}
|
||||
|
||||
.mce-visualblocks div:not([data-mce-bogus]){background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);}
|
||||
|
||||
.mce-visualblocks section{background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);}
|
||||
|
||||
.mce-visualblocks article{background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);}
|
||||
|
||||
.mce-visualblocks blockquote{background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);}
|
||||
|
||||
.mce-visualblocks address{background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);}
|
||||
|
||||
.mce-visualblocks pre{background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);}
|
||||
|
||||
.mce-visualblocks figure{background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);}
|
||||
|
||||
.mce-visualblocks figcaption{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks hgroup{background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);}
|
||||
|
||||
.mce-visualblocks aside{background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);}
|
||||
|
||||
.mce-visualblocks ul{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);}
|
||||
|
||||
.mce-visualblocks ol{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);}
|
||||
|
||||
.mce-visualblocks dl{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);}
|
||||
|
||||
.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left: 3px;}
|
||||
|
||||
.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x: right;margin-right: 3px;}
|
||||
|
||||
.mce-nbsp,.mce-shy{background: #aaa;}
|
||||
|
||||
.mce-shy::after{content: '-';}
|
||||
|
||||
.tox-toolbar-dock-fadeout{opacity: 0;visibility: hidden;}
|
||||
|
||||
.tox-toolbar-dock-fadein{opacity: 1;visibility: visible;}
|
||||
|
||||
.tox-toolbar-dock-transition{transition: visibility 0s linear .3s,opacity .3s ease;}
|
||||
|
||||
.tox-toolbar-dock-transition.tox-toolbar-dock-fadein{transition-delay: 0s;}
|
235
public/resource/tinymce/skins/ui/oxide-dark/content.min.css
vendored
Normal file
235
public/resource/tinymce/skins/ui/oxide-dark/content.min.css
vendored
Normal file
@@ -0,0 +1,235 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor{display: inline-block;width: 8px !important;height: 12px !important;padding: 0 2px;cursor: default;background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;-webkit-user-select: all;-moz-user-select: all;-ms-user-select: all;user-select: all;-webkit-user-modify: read-only;-moz-user-modify: read-only;}
|
||||
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset: 1px;}
|
||||
|
||||
.tox-comments-visible .tox-comment{background-color: #fff0b7;}
|
||||
|
||||
.tox-comments-visible .tox-comment--active{background-color: #ffe168;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden){margin: .25em 0;list-style: none;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden)::before{position: absolute;width: 1em;height: 1em;margin-top: .125em;margin-left: -1.5em;cursor: pointer;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size: 100%;content: '';}
|
||||
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");}
|
||||
|
||||
[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-right: -1.5em;margin-left: 0;}
|
||||
|
||||
code[class*=language-],pre[class*=language-]{font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size: .875rem;-webkit-hyphens: none;-ms-hyphens: none;hyphens: none;line-height: 1.5;word-spacing: normal;color: #000;text-shadow: 0 1px #fff;word-break: normal;word-wrap: normal;white-space: pre;-moz-tab-size: 4;tab-size: 4;}
|
||||
|
||||
code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow: none;background: #b3d4fc;}
|
||||
|
||||
code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow: none;background: #b3d4fc;}@media print{code[class*=language-],pre[class*=language-]{text-shadow: none;}}
|
||||
|
||||
pre[class*=language-]{padding: 1em;margin: .5em 0;overflow: auto;}
|
||||
|
||||
:not(pre)>code[class*=language-],pre[class*=language-]{background: 0 0 !important;border: 1px solid #ccc;}
|
||||
|
||||
:not(pre)>code[class*=language-]{padding: .1em;border-radius: .3em;}
|
||||
|
||||
.token.cdata,.token.comment,.token.doctype,.token.prolog{color: #708090;}
|
||||
|
||||
.token.punctuation{color: #999;}
|
||||
|
||||
.namespace{opacity: .7;}
|
||||
|
||||
.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color: #905;}
|
||||
|
||||
.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color: #690;}
|
||||
|
||||
.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color: #a67f59;background: hsla(0,0%,100%,.5);}
|
||||
|
||||
.token.atrule,.token.attr-value,.token.keyword{color: #07a;}
|
||||
|
||||
.token.function{color: #dd4a68;}
|
||||
|
||||
.token.important,.token.regex,.token.variable{color: #e90;}
|
||||
|
||||
.token.bold,.token.important{font-weight: 700;}
|
||||
|
||||
.token.italic{font-style: italic;}
|
||||
|
||||
.token.entity{cursor: help;}
|
||||
|
||||
:not([dir=rtl]) code[class*=language-],:not([dir=rtl]) pre[class*=language-]{text-align: left;direction: ltr;}
|
||||
|
||||
[dir=rtl] code[class*=language-],[dir=rtl] pre[class*=language-]{text-align: right;direction: rtl;}
|
||||
|
||||
.mce-content-body{overflow-wrap: break-word;word-wrap: break-word;}
|
||||
|
||||
.mce-content-body .mce-visual-caret{position: absolute;background-color: #000;background-color: currentColor;}
|
||||
|
||||
.mce-content-body .mce-visual-caret-hidden{display: none;}
|
||||
|
||||
.mce-content-body [data-mce-caret]{position: absolute;top: 0;right: auto;left: -1000px;padding: 0;margin: 0;}
|
||||
|
||||
.mce-content-body .mce-offscreen-selection{position: absolute;left: -9999999999px;max-width: 1000000px;}
|
||||
|
||||
.mce-content-body [contentEditable=false]{cursor: default;}
|
||||
|
||||
.mce-content-body [contentEditable=true]{cursor: text;}
|
||||
|
||||
.tox-cursor-format-painter{cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default;}
|
||||
|
||||
.mce-content-body figure.align-left{float: left;}
|
||||
|
||||
.mce-content-body figure.align-right{float: right;}
|
||||
|
||||
.mce-content-body figure.image.align-center{display: table;margin-right: auto;margin-left: auto;}
|
||||
|
||||
.mce-preview-object{position: relative;display: inline-block;margin: 0 2px 0 2px;line-height: 0;border: 1px solid gray;}
|
||||
|
||||
.mce-preview-object .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.mce-object{background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border: 1px dashed #aaa;}
|
||||
|
||||
.mce-pagebreak{display: block;width: 100%;height: 5px;margin-top: 15px;cursor: default;border: 1px dashed #aaa;page-break-before: always;}@media print{.mce-pagebreak{border: 0;}}
|
||||
|
||||
.tiny-pageembed .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.tiny-pageembed{position: relative;display: inline-block;}
|
||||
|
||||
.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{position: relative;display: block;width: 100%;padding: 0;overflow: hidden;}
|
||||
|
||||
.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{display: block;content: "";}
|
||||
|
||||
.tiny-pageembed--21by9::before{padding-top: 42.857143%;}
|
||||
|
||||
.tiny-pageembed--16by9::before{padding-top: 56.25%;}
|
||||
|
||||
.tiny-pageembed--4by3::before{padding-top: 75%;}
|
||||
|
||||
.tiny-pageembed--1by1::before{padding-top: 100%;}
|
||||
|
||||
.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle{position: absolute;z-index: 10000;width: 10px;height: 10px;background-color: #4099ff;border-color: #4099ff;border-style: solid;border-width: 1px;box-sizing: border-box;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:hover{background-color: #4099ff;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body .mce-clonedresizable{position: absolute;z-index: 10000;outline: 1px dashed #000;opacity: .5;}
|
||||
|
||||
.mce-content-body .mce-resize-helper{position: absolute;z-index: 10001;display: none;padding: 5px;margin: 5px 10px;font-family: sans-serif;font-size: 12px;line-height: 14px;color: #fff;white-space: nowrap;background: #555;background: rgba(0,0,0,.75);border: 1px;border-radius: 3px;}
|
||||
|
||||
.mce-match-marker{color: #fff;background: #aaa;}
|
||||
|
||||
.mce-match-marker-selected{color: #fff;background: #39f;}
|
||||
|
||||
.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body hr[data-mce-selected]{outline: 3px solid #b4d7ff;outline-offset: 1px;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false][data-mce-selected]{cursor: not-allowed;outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline: 0;}
|
||||
|
||||
.mce-content-body [data-mce-selected=inline-boundary]{background-color: #b4d7ff;}
|
||||
|
||||
.mce-content-body .mce-edit-focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color: #b4d7ff !important;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}
|
||||
|
||||
.mce-content-body img::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body img::selection{background: 0 0;}
|
||||
|
||||
.ephox-snooker-resizer-bar{background-color: #b4d7ff;opacity: 0;}
|
||||
|
||||
.ephox-snooker-resizer-cols{cursor: col-resize;}
|
||||
|
||||
.ephox-snooker-resizer-rows{cursor: row-resize;}
|
||||
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity: 1;}
|
||||
|
||||
.mce-spellchecker-word{height: 2rem;cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.5'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-spellchecker-grammar{cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23008800'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-toc{border: 1px solid gray;}
|
||||
|
||||
.mce-toc h2{margin: 4px;}
|
||||
|
||||
.mce-toc li{list-style-type: none;}
|
||||
|
||||
.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{padding-top: 10px;margin-left: 3px;background-repeat: no-repeat;border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks p{background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);}
|
||||
|
||||
.mce-visualblocks h1{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);}
|
||||
|
||||
.mce-visualblocks h2{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h3{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);}
|
||||
|
||||
.mce-visualblocks h4{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);}
|
||||
|
||||
.mce-visualblocks h5{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h6{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);}
|
||||
|
||||
.mce-visualblocks div:not([data-mce-bogus]){background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);}
|
||||
|
||||
.mce-visualblocks section{background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);}
|
||||
|
||||
.mce-visualblocks article{background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);}
|
||||
|
||||
.mce-visualblocks blockquote{background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);}
|
||||
|
||||
.mce-visualblocks address{background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);}
|
||||
|
||||
.mce-visualblocks pre{background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);}
|
||||
|
||||
.mce-visualblocks figure{background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);}
|
||||
|
||||
.mce-visualblocks figcaption{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks hgroup{background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);}
|
||||
|
||||
.mce-visualblocks aside{background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);}
|
||||
|
||||
.mce-visualblocks ul{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);}
|
||||
|
||||
.mce-visualblocks ol{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);}
|
||||
|
||||
.mce-visualblocks dl{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);}
|
||||
|
||||
.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left: 3px;}
|
||||
|
||||
.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x: right;margin-right: 3px;}
|
||||
|
||||
.mce-nbsp,.mce-shy{background: #aaa;}
|
||||
|
||||
.mce-shy::after{content: '-';}
|
||||
|
||||
body{font-family: sans-serif;}
|
||||
|
||||
table{border-collapse: collapse;}
|
17
public/resource/tinymce/skins/ui/oxide-dark/content.mobile.min.css
vendored
Normal file
17
public/resource/tinymce/skins/ui/oxide-dark/content.mobile.min.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position: absolute;display: inline-block;background-color: green;opacity: .5;}
|
||||
|
||||
body{-webkit-text-size-adjust: none;}
|
||||
|
||||
body img{max-width: 96vw;}
|
||||
|
||||
body table img{max-width: 95%;}
|
||||
|
||||
body{font-family: sans-serif;}
|
||||
|
||||
table{border-collapse: collapse;}
|
875
public/resource/tinymce/skins/ui/oxide-dark/skin.min.css
vendored
Normal file
875
public/resource/tinymce/skins/ui/oxide-dark/skin.min.css
vendored
Normal file
@@ -0,0 +1,875 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tox{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 16px;font-style: normal;font-weight: 400;line-height: normal;color: #222f3e;text-decoration: none;text-shadow: none;text-transform: none;white-space: normal;vertical-align: initial;cursor: auto;box-sizing: content-box;-webkit-tap-highlight-color: transparent;}
|
||||
|
||||
.tox :not(svg){font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;line-height: inherit;color: inherit;text-align: inherit;text-decoration: inherit;text-shadow: inherit;text-transform: inherit;white-space: inherit;vertical-align: inherit;cursor: inherit;box-sizing: inherit;direction: inherit;-webkit-tap-highlight-color: inherit;}
|
||||
|
||||
.tox :not(svg){position: static;float: none;width: auto;height: auto;max-width: none;padding: 0;margin: 0;background: 0 0;border: 0;outline: 0;}
|
||||
|
||||
.tox:not([dir=rtl]){text-align: left;direction: ltr;}
|
||||
|
||||
.tox[dir=rtl]{text-align: right;direction: rtl;}
|
||||
|
||||
.tox-tinymce{position: relative;display: flex;overflow: hidden;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;border: 1px solid #000;border-radius: 0;visibility: inherit !important;box-shadow: none;box-sizing: border-box;flex-direction: column;}
|
||||
|
||||
.tox-editor-container{display: flex;flex: 1 1 auto;flex-direction: column;overflow: hidden;}
|
||||
|
||||
.tox-editor-container>:first-child{border-top: none !important;}
|
||||
|
||||
.tox-tinymce-aux{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
|
||||
|
||||
.tox-tinymce :focus,.tox-tinymce-aux :focus{outline: 0;}
|
||||
|
||||
button::-moz-focus-inner{border: 0;}
|
||||
|
||||
.tox-silver-sink{z-index: 1300;}
|
||||
|
||||
.tox .tox-anchorbar{display: flex;flex: 0 0 auto;}
|
||||
|
||||
.tox .tox-bar{display: flex;flex: 0 0 auto;}
|
||||
|
||||
.tox .tox-button{display: inline-block;padding: 4px 16px;margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 14px;font-weight: 700;line-height: 24px;letter-spacing: 1;color: #fff;text-align: center;text-decoration: none;text-transform: capitalize;white-space: nowrap;cursor: pointer;background-color: #207ab7;background-image: none;background-position: none;background-repeat: none;border-color: #207ab7;border-style: solid;border-width: 1px;border-radius: 3px;outline: 0;box-shadow: none;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-button[disabled]{color: rgba(255,255,255,.5);cursor: not-allowed;background-color: #207ab7;background-image: none;border-color: #207ab7;box-shadow: none;}
|
||||
|
||||
.tox .tox-button:focus:not(:disabled){color: #fff;background-color: #1c6ca1;background-image: none;border-color: #1c6ca1;box-shadow: none;}
|
||||
|
||||
.tox .tox-button:hover:not(:disabled){color: #fff;background-color: #1c6ca1;background-image: none;border-color: #1c6ca1;box-shadow: none;}
|
||||
|
||||
.tox .tox-button:active:not(:disabled){color: #fff;background-color: #185d8c;background-image: none;border-color: #185d8c;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary{padding: 4px 16px;color: #fff;text-decoration: none;text-transform: capitalize;background-color: #3d546f;background-image: none;background-position: none;background-repeat: none;border-color: #3d546f;border-style: solid;border-width: 1px;border-radius: 3px;outline: 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary[disabled]{color: rgba(255,255,255,.5);background-color: #3d546f;background-image: none;border-color: #3d546f;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary:focus:not(:disabled){color: #fff;background-color: #34485f;background-image: none;border-color: #34485f;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary:hover:not(:disabled){color: #fff;background-color: #34485f;background-image: none;border-color: #34485f;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary:active:not(:disabled){color: #fff;background-color: #2b3b4e;background-image: none;border-color: #2b3b4e;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding: 4px;}
|
||||
|
||||
.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display: block;fill: currentColor;}
|
||||
|
||||
.tox .tox-button-link{display: inline-block;padding: 0;margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 16px;font-weight: 400;line-height: 1.3;white-space: nowrap;cursor: pointer;background: 0;border: none;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-button-link--sm{font-size: 14px;}
|
||||
|
||||
.tox .tox-button--naked{color: #fff;background-color: transparent;border-color: transparent;box-shadow: unset;}
|
||||
|
||||
.tox .tox-button--naked:hover:not(:disabled){color: #fff;background-color: #34485f;border-color: #34485f;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--naked:focus:not(:disabled){color: #fff;background-color: #34485f;border-color: #34485f;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--naked:active:not(:disabled){color: #fff;background-color: #2b3b4e;border-color: #2b3b4e;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--naked .tox-icon svg{fill: currentColor;}
|
||||
|
||||
.tox .tox-button--naked.tox-button--icon{color: currentColor;}
|
||||
|
||||
.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color: #fff;}
|
||||
|
||||
.tox .tox-checkbox{display: flex;height: 36px;min-width: 36px;cursor: pointer;border-radius: 3px;align-items: center;}
|
||||
|
||||
.tox .tox-checkbox__input{position: absolute;top: auto;left: -10000px;width: 1px;height: 1px;overflow: hidden;}
|
||||
|
||||
.tox .tox-checkbox__icons{width: 24px;height: 24px;padding: calc(4px - 1px);border-radius: 3px;box-shadow: 0 0 0 2px transparent;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display: block;fill: rgba(255,255,255,.2);}
|
||||
|
||||
.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display: none;fill: #207ab7;}
|
||||
|
||||
.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display: none;fill: #207ab7;}
|
||||
|
||||
.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display: none;}
|
||||
|
||||
.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display: block;}
|
||||
|
||||
.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display: none;}
|
||||
|
||||
.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display: block;}
|
||||
|
||||
.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{padding: calc(4px - 1px);border-radius: 3px;box-shadow: inset 0 0 0 1px #207ab7;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-checkbox__label{margin-left: 4px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-checkbox__label{margin-right: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right: 4px;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__group{display: flex;padding: 0;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__group{display: flex;max-height: 208px;padding: 0;overflow-x: hidden;overflow-y: auto;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group{padding: 4px 0;border-color: #1a1a1a;border-style: solid;border-top-width: 1px;border-right-width: 0;border-bottom-width: 0;border-left-width: 0;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group:first-child{border-top-width: 0;}
|
||||
|
||||
.tox .tox-collection__group-heading{padding: 4px 8px;margin-top: -4px;margin-bottom: 4px;font-size: 12px;font-style: normal;font-weight: 400;color: #fff;text-transform: none;cursor: default;background-color: #333;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-touch-callout: none;}
|
||||
|
||||
.tox .tox-collection__item{display: flex;color: #fff;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;align-items: center;-webkit-touch-callout: none;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__item{padding: 4px 8px;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__item{padding: 4px;border-radius: 3px;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__item{padding: 4px;border-radius: 3px;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__item--enabled{color: contrast(inherit,#222f3e,#fff);background-color: inherit;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color: #fff;background-color: #434e5b;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__item--enabled{color: #fff;background-color: #6f7882;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color: #fff;background-color: #434e5b;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__item--enabled{color: #fff;background-color: #6f7882;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){color: #fff;background-color: #434e5b;}
|
||||
|
||||
.tox .tox-collection__item--state-disabled{color: rgba(255,255,255,.5);cursor: default;background-color: transparent;}
|
||||
|
||||
.tox .tox-collection__item-icon{display: flex;width: 24px;height: 24px;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-collection__item-icon svg{fill: currentColor;}
|
||||
|
||||
.tox .tox-collection--toolbar-lg .tox-collection__item-icon{width: 48px;height: 48px;}
|
||||
|
||||
.tox .tox-collection__item[role=menuitemcheckbox]:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display: none;}
|
||||
|
||||
.tox .tox-collection__item-label{display: inline-block;font-size: 14px;font-style: normal;font-weight: 400;line-height: 24px;color: currentColor;text-transform: none;word-break: break-all;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-collection__item-accessory{display: inline-block;height: 24px;font-size: 14px;line-height: 24px;color: rgba(255,255,255,.5);text-transform: normal;}
|
||||
|
||||
.tox .tox-collection__item-caret{align-items: center;display: flex;min-height: 24px;}
|
||||
|
||||
.tox .tox-collection__item-caret::after{min-height: inherit;font-size: 0;content: '';}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item-label:first-child{margin-left: 4px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left: 16px;text-align: right;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection__item-caret{margin-left: 16px;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection--list .tox-collection__item-label:first-child{margin-right: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg{transform: rotateY(180deg);}
|
||||
|
||||
.tox[dir=rtl] .tox-collection__item-accessory{margin-right: 16px;text-align: left;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection__item-caret{margin-right: 16px;transform: rotateY(180deg);}
|
||||
|
||||
.tox .tox-color-picker-container{display: flex;flex-direction: row;height: 225px;margin: 0;}
|
||||
|
||||
.tox .tox-sv-palette{display: flex;height: 100%;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-sv-palette-spectrum{height: 100%;}
|
||||
|
||||
.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width: 225px;}
|
||||
|
||||
.tox .tox-sv-palette-thumb{position: absolute;width: 12px;height: 12px;background: 0 0;border: 1px solid #000;border-radius: 50%;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-sv-palette-inner-thumb{position: absolute;width: 10px;height: 10px;border: 1px solid #fff;border-radius: 50%;}
|
||||
|
||||
.tox .tox-hue-slider{width: 25px;height: 100%;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-hue-slider-spectrum{width: 100%;height: 100%;background: linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);}
|
||||
|
||||
.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width: 20px;}
|
||||
|
||||
.tox .tox-hue-slider-thumb{width: 100%;height: 4px;background: #fff;border: 1px solid #000;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-rgb-form{display: flex;flex-direction: column;justify-content: space-between;}
|
||||
|
||||
.tox .tox-rgb-form div{display: flex;width: inherit;margin-bottom: 5px;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-rgb-form input{width: 6em;}
|
||||
|
||||
.tox .tox-rgb-form input.tox-invalid{border: 1px solid red !important;}
|
||||
|
||||
.tox .tox-rgb-form .tox-rgba-preview{margin-bottom: 0;border: 1px solid #000;flex-grow: 2;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-sv-palette{margin-right: 15px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-hue-slider{margin-right: 15px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left: -1px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-rgb-form label{margin-right: .5em;}
|
||||
|
||||
.tox[dir=rtl] .tox-sv-palette{margin-left: 15px;}
|
||||
|
||||
.tox[dir=rtl] .tox-hue-slider{margin-left: 15px;}
|
||||
|
||||
.tox[dir=rtl] .tox-hue-slider-thumb{margin-right: -1px;}
|
||||
|
||||
.tox[dir=rtl] .tox-rgb-form label{margin-left: .5em;}
|
||||
|
||||
.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin: 2px 0 3px 4px;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{margin: -4px 0;border: 0;}
|
||||
|
||||
.tox .tox-swatches__row{display: flex;}
|
||||
|
||||
.tox .tox-swatch{width: 30px;height: 30px;transition: transform .15s,box-shadow .15s;}
|
||||
|
||||
.tox .tox-swatch:focus,.tox .tox-swatch:hover{transform: scale(.8);box-shadow: 0 0 0 1px rgba(127,127,127,.3) inset;}
|
||||
|
||||
.tox .tox-swatch--remove{align-items: center;display: flex;justify-content: center;}
|
||||
|
||||
.tox .tox-swatch--remove svg path{stroke: #e74c3c;}
|
||||
|
||||
.tox .tox-swatches__picker-btn{display: flex;width: 30px;height: 30px;padding: 0;cursor: pointer;background-color: transparent;border: 0;outline: 0;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-swatches__picker-btn svg{width: 24px;height: 24px;}
|
||||
|
||||
.tox .tox-swatches__picker-btn:hover{background: #434e5b;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left: auto;}
|
||||
|
||||
.tox[dir=rtl] .tox-swatches__picker-btn{margin-right: auto;}
|
||||
|
||||
.tox .tox-comment-thread{position: relative;background: #2b3b4e;}
|
||||
|
||||
.tox .tox-comment-thread>:not(:first-child){margin-top: 8px;}
|
||||
|
||||
.tox .tox-comment{position: relative;padding: 8px 8px 16px 8px;background: #2b3b4e;border: 1px solid #000;border-radius: 3px;box-shadow: 0 4px 8px 0 rgba(34,47,62,.1);}
|
||||
|
||||
.tox .tox-comment__header{display: flex;color: #fff;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-comment__date{font-size: 12px;color: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-comment__body{position: relative;margin-top: 8px;font-size: 14px;font-style: normal;font-weight: 400;line-height: 1.3;color: #fff;text-transform: initial;}
|
||||
|
||||
.tox .tox-comment__body textarea{width: 100%;white-space: normal;resize: none;}
|
||||
|
||||
.tox .tox-comment__expander{padding-top: 8px;}
|
||||
|
||||
.tox .tox-comment__expander p{font-size: 14px;font-style: normal;color: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-comment__body p{margin: 0;}
|
||||
|
||||
.tox .tox-comment__buttonspacing{padding-top: 16px;text-align: center;}
|
||||
|
||||
.tox .tox-comment-thread__overlay::after{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 5;display: flex;background: #2b3b4e;content: "";opacity: .9;}
|
||||
|
||||
.tox .tox-comment__reply{display: flex;flex-shrink: 0;flex-wrap: wrap;justify-content: flex-end;margin-top: 8px;}
|
||||
|
||||
.tox .tox-comment__reply>:first-child{width: 100%;margin-bottom: 8px;}
|
||||
|
||||
.tox .tox-comment__edit{display: flex;flex-wrap: wrap;justify-content: flex-end;margin-top: 16px;}
|
||||
|
||||
.tox .tox-comment__gradient::after{position: absolute;bottom: 0;display: block;width: 100%;height: 5em;margin-top: -40px;background: linear-gradient(rgba(43,59,78,0),#2b3b4e);content: "";}
|
||||
|
||||
.tox .tox-comment__overlay{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 5;display: flex;text-align: center;background: #2b3b4e;opacity: .9;flex-direction: column;flex-grow: 1;}
|
||||
|
||||
.tox .tox-comment__loading-text{position: relative;display: flex;color: #fff;align-items: center;flex-direction: column;}
|
||||
|
||||
.tox .tox-comment__loading-text>div{padding-bottom: 16px;}
|
||||
|
||||
.tox .tox-comment__overlaytext{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 10;padding: 1em;font-size: 14px;flex-direction: column;}
|
||||
|
||||
.tox .tox-comment__overlaytext p{color: #fff;text-align: center;background-color: #2b3b4e;box-shadow: 0 0 8px 8px #2b3b4e;}
|
||||
|
||||
.tox .tox-comment__overlaytext div:nth-of-type(2){font-size: .8em;}
|
||||
|
||||
.tox .tox-comment__busy-spinner{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1103;display: flex;background-color: #2b3b4e;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-comment__scroll{display: flex;flex-direction: column;flex-shrink: 1;overflow: auto;}
|
||||
|
||||
.tox .tox-conversations{margin: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-comment__edit{margin-left: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-comment__edit{margin-right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right: 8px;}
|
||||
|
||||
.tox .tox-user{align-items: center;display: flex;}
|
||||
|
||||
.tox .tox-user__avatar svg{fill: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-user__name{font-size: 12px;font-style: normal;font-weight: 700;color: rgba(255,255,255,.5);text-transform: uppercase;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-user__avatar svg{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right: 8px;}
|
||||
|
||||
.tox .tox-dialog-wrap{position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 1100;display: flex;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-dialog-wrap__backdrop{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1101;background-color: rgba(34,47,62,.75);}
|
||||
|
||||
.tox .tox-dialog{position: relative;z-index: 1102;display: flex;width: 95vw;max-width: 480px;max-height: 100%;overflow: hidden;background-color: #2b3b4e;border-color: #000;border-style: solid;border-width: 1px;border-radius: 3px;box-shadow: 0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);flex-direction: column;}
|
||||
|
||||
.tox .tox-dialog__header{position: relative;display: flex;padding: 8px 16px 0 16px;margin-bottom: 16px;font-size: 16px;color: #fff;background-color: #2b3b4e;border-bottom: none;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-dialog__header .tox-button{z-index: 1;}
|
||||
|
||||
.tox .tox-dialog__draghandle{position: absolute;top: 0;left: 0;width: 100%;height: 100%;cursor: grab;}
|
||||
|
||||
.tox .tox-dialog__draghandle:active{cursor: grabbing;}
|
||||
|
||||
.tox .tox-dialog__dismiss{margin-left: auto;}
|
||||
|
||||
.tox .tox-dialog__title{margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 20px;font-style: normal;font-weight: 400;line-height: 1.3;text-transform: normal;}
|
||||
|
||||
.tox .tox-dialog__body{display: flex;min-width: 0;padding: 0 16px;font-size: 16px;font-style: normal;font-weight: 400;line-height: 1.3;color: #fff;text-align: left;text-transform: normal;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-nav{align-items: flex-start;display: flex;flex-direction: column;}
|
||||
|
||||
.tox .tox-dialog__body-nav-item{display: inline-block;margin-bottom: 8px;font-size: 14px;line-height: 1.3;color: rgba(255,255,255,.5);text-decoration: none;border-bottom: 2px solid transparent;}
|
||||
|
||||
.tox .tox-dialog__body-nav-item--active{color: #207ab7;border-bottom: 2px solid #207ab7;}
|
||||
|
||||
.tox .tox-dialog__body-content{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;max-height: 650px;overflow: auto;}
|
||||
|
||||
.tox .tox-dialog__body-content>*{margin-top: 16px;margin-bottom: 0;}
|
||||
|
||||
.tox .tox-dialog__body-content>:first-child{margin-top: 0;}
|
||||
|
||||
.tox .tox-dialog__body-content>:last-child{margin-bottom: 0;}
|
||||
|
||||
.tox .tox-dialog__body-content>:only-child{margin-top: 0;margin-bottom: 0;}
|
||||
|
||||
.tox .tox-dialog--width-lg{height: 650px;max-width: 1200px;}
|
||||
|
||||
.tox .tox-dialog--width-md{max-width: 800px;}
|
||||
|
||||
.tox .tox-dialog--width-md .tox-dialog__body-content{overflow: auto;}
|
||||
|
||||
.tox .tox-dialog__body-content--centered{text-align: center;}
|
||||
|
||||
.tox .tox-dialog__body-content--spacious{margin-bottom: 16px;}
|
||||
|
||||
.tox .tox-dialog__footer{display: flex;padding: 8px 16px;margin-top: 16px;background-color: #2b3b4e;border-top: 1px solid #000;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-dialog__busy-spinner{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1103;display: flex;background-color: rgba(34,47,62,.75);align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-dialog__table{width: 100%;border-collapse: collapse;}
|
||||
|
||||
.tox .tox-dialog__table thead th{padding-bottom: 8px;font-weight: 700;}
|
||||
|
||||
.tox .tox-dialog__table tbody tr{border-bottom: 1px solid #000;}
|
||||
|
||||
.tox .tox-dialog__table tbody tr:last-child{border-bottom: none;}
|
||||
|
||||
.tox .tox-dialog__table td{padding-top: 8px;padding-bottom: 8px;}
|
||||
|
||||
.tox .tox-dialog__popups{position: absolute;z-index: 1100;width: 100%;}
|
||||
|
||||
.tox .tox-dialog__body-iframe{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-iframe .tox-navobj{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex: 1;-ms-flex-preferred-size: auto;height: 100%;}
|
||||
|
||||
body.tox-dialog__disable-scroll{overflow: hidden;}
|
||||
|
||||
.tox.tox-platform-ie .tox-dialog-wrap{position: -ms-device-fixed;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right: 32px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-dialog__body{text-align: right;}
|
||||
|
||||
.tox[dir=rtl] .tox-dialog__body-nav{margin-left: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right: 8px;}
|
||||
|
||||
.tox .tox-dropzone-container{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dropzone{display: flex;min-height: 100px;padding: 10px;background: #fff;border: 2px dashed #000;box-sizing: border-box;align-items: center;flex-direction: column;flex-grow: 1;justify-content: center;}
|
||||
|
||||
.tox .tox-dropzone p{margin: 0 0 16px 0;color: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-edit-area{position: relative;display: flex;overflow: hidden;border-top: 1px solid #000;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-edit-area__iframe{position: absolute;width: 100%;height: 100%;background-color: #fff;border: 0;box-sizing: border-box;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox.tox-inline-edit-area{border: 1px dotted #000;}
|
||||
|
||||
.tox .tox-control-wrap{flex: 1;position: relative;}
|
||||
|
||||
.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display: none;}
|
||||
|
||||
.tox .tox-control-wrap svg{display: block;}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-wrap{position: absolute;top: 50%;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-invalid svg{fill: #c00;}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-unknown svg{fill: orange;}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-valid svg{fill: green;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right: 32px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left: 4px;}
|
||||
|
||||
.tox .tox-autocompleter{max-width: 25em;}
|
||||
|
||||
.tox .tox-autocompleter .tox-menu{max-width: 25em;}
|
||||
|
||||
.tox .tox-color-input{display: flex;}
|
||||
|
||||
.tox .tox-color-input .tox-textfield{display: flex;border-radius: 3px 0 0 3px;}
|
||||
|
||||
.tox .tox-color-input span{display: flex;width: 35px;cursor: pointer;border-color: rgba(34,47,62,.2);border-style: solid;border-width: 1px 1px 1px 0;border-radius: 0 3px 3px 0;box-shadow: none;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-color-input span:focus{border-color: #207ab7;}
|
||||
|
||||
.tox[dir=rtl] .tox-color-input .tox-textfield{border-radius: 0 3px 3px 0;}
|
||||
|
||||
.tox[dir=rtl] .tox-color-input span{border-width: 1px 0 1px 1px;border-radius: 3px 0 0 3px;}
|
||||
|
||||
.tox .tox-label,.tox .tox-toolbar-label{display: block;padding: 0 8px 0 0;font-size: 14px;font-style: normal;font-weight: 400;line-height: 1.3;color: rgba(255,255,255,.5);text-transform: normal;white-space: nowrap;}
|
||||
|
||||
.tox .tox-toolbar-label{padding: 0 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-label{padding: 0 0 0 8px;}
|
||||
|
||||
.tox .tox-form{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group{margin-bottom: 4px;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-form__group--error{color: #c00;}
|
||||
|
||||
.tox .tox-form__group--collection{display: flex;}
|
||||
|
||||
.tox .tox-form__grid{display: flex;flex-direction: row;flex-wrap: wrap;justify-content: space-between;}
|
||||
|
||||
.tox .tox-form__grid--2col>.tox-form__group{width: calc(50% - (8px / 2));}
|
||||
|
||||
.tox .tox-form__grid--3col>.tox-form__group{width: calc(100% / 3 - (8px / 2));}
|
||||
|
||||
.tox .tox-form__grid--4col>.tox-form__group{width: calc(25% - (8px / 2));}
|
||||
|
||||
.tox .tox-form__controls-h-stack{align-items: center;display: flex;}
|
||||
|
||||
.tox .tox-form__group--inline{align-items: center;display: flex;}
|
||||
|
||||
.tox .tox-form__group--stretched{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group--stretched .tox-textarea{flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group--stretched .tox-navobj{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex: 1;-ms-flex-preferred-size: auto;height: 100%;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right: 4px;}
|
||||
|
||||
.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display: none;}
|
||||
|
||||
.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield,.tox:not([dir=rtl]) .tox-selectfield select,.tox[dir=rtl] .tox-selectfield select{width: 100%;padding: 5px 4.75px;margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 16px;line-height: 24px;color: #fff;background-color: #2b3b4e;border-color: #000;border-style: solid;border-width: 1px;border-radius: 3px;outline: 0;box-shadow: none;box-sizing: border-box;resize: none;-webkit-appearance: none;-moz-appearance: none;appearance: none;}
|
||||
|
||||
.tox .tox-selectfield select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{border-color: #207ab7;outline: 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-toolbar-textfield{max-width: 250px;margin-top: 2px;margin-bottom: 3px;border-width: 0;}
|
||||
|
||||
.tox .tox-naked-btn{display: block;padding: 0;margin: 0;color: #207ab7;cursor: pointer;background-color: transparent;border: 0;border-color: transparent;box-shadow: unset;}
|
||||
|
||||
.tox .tox-naked-btn svg{display: block;fill: #fff;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right: 4px;}
|
||||
|
||||
.tox .tox-selectfield{position: relative;cursor: pointer;}
|
||||
|
||||
.tox .tox-selectfield select::-ms-expand{display: none;}
|
||||
|
||||
.tox .tox-selectfield svg{position: absolute;top: 50%;pointer-events: none;transform: translateY(-50%);}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-selectfield select{padding-right: 24px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-selectfield svg{right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-selectfield select{padding-left: 24px;}
|
||||
|
||||
.tox[dir=rtl] .tox-selectfield svg{left: 8px;}
|
||||
|
||||
.tox .tox-textarea{white-space: pre-wrap;-webkit-appearance: textarea;-moz-appearance: textarea;appearance: textarea;}
|
||||
|
||||
.tox-fullscreen{position: fixed;top: 0;left: 0;width: 100%;height: 100%;padding: 0;margin: 0;overflow: hidden;border: 0;}
|
||||
|
||||
.tox-fullscreen .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display: none;}
|
||||
|
||||
.tox-fullscreen .tox.tox-tinymce.tox-fullscreen{z-index: 1200;}
|
||||
|
||||
.tox-fullscreen .tox.tox-tinymce-aux{z-index: 1201;}
|
||||
|
||||
.tox .tox-image-tools{width: 100%;}
|
||||
|
||||
.tox .tox-image-tools__toolbar{align-items: center;display: flex;justify-content: center;}
|
||||
|
||||
.tox .tox-image-tools__image{position: relative;width: 100%;height: 380px;overflow: auto;background-color: #666;}
|
||||
|
||||
.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top: 8px;}
|
||||
|
||||
.tox .tox-image-tools__image-bg{background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==);}
|
||||
|
||||
.tox .tox-image-tools__toolbar>.tox-spacer{flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-croprect-block{position: absolute;background: #000;opacity: .5;zoom: 1;}
|
||||
|
||||
.tox .tox-croprect-handle{position: absolute;top: 0;left: 0;width: 20px;height: 20px;border: 2px solid #fff;}
|
||||
|
||||
.tox .tox-croprect-handle-move{position: absolute;cursor: move;border: 0;}
|
||||
|
||||
.tox .tox-croprect-handle-nw{top: 100px;left: 100px;margin: -2px 0 0 -2px;cursor: nw-resize;border-width: 2px 0 0 2px;}
|
||||
|
||||
.tox .tox-croprect-handle-ne{top: 100px;left: 200px;margin: -2px 0 0 -20px;cursor: ne-resize;border-width: 2px 2px 0 0;}
|
||||
|
||||
.tox .tox-croprect-handle-sw{top: 200px;left: 100px;margin: -20px 2px 0 -2px;cursor: sw-resize;border-width: 0 0 2px 2px;}
|
||||
|
||||
.tox .tox-croprect-handle-se{top: 200px;left: 200px;margin: -20px 0 0 -20px;cursor: se-resize;border-width: 0 2px 2px 0;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left: 32px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right: 32px;}
|
||||
|
||||
.tox .tox-insert-table-picker{display: flex;flex-wrap: wrap;width: 169px;}
|
||||
|
||||
.tox .tox-insert-table-picker>div{width: 16px;height: 16px;border-color: #070a0d;border-style: solid;border-width: 0 1px 1px 0;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin: -4px 0;}
|
||||
|
||||
.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color: rgba(32,122,183,.5);border-color: rgba(32,122,183,.5);}
|
||||
|
||||
.tox .tox-insert-table-picker__label{display: block;width: 100%;padding: 4px;font-size: 14px;color: #fff;text-align: center;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right: 0;}
|
||||
|
||||
.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right: 0;}
|
||||
|
||||
.tox .tox-menu{z-index: 1;display: inline-block;overflow: hidden;vertical-align: top;background-color: #2b3b4e;border: 1px solid #000;border-radius: 3px;box-shadow: 0 4px 8px 0 rgba(34,47,62,.1);}
|
||||
|
||||
.tox .tox-menu.tox-collection.tox-collection--list{padding: 0;}
|
||||
|
||||
.tox .tox-menu.tox-collection.tox-collection--toolbar{padding: 4px;}
|
||||
|
||||
.tox .tox-menu.tox-collection.tox-collection--grid{padding: 4px;}
|
||||
|
||||
.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin: 0;}
|
||||
|
||||
.tox .tox-menubar{display: flex;padding: 0 4px;margin-bottom: -1px;background: url("data:image/svg+xml;charset=utf8,%3Csvg height='43px' viewBox='0 0 40 43px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='42px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color: #222f3e;flex: 0 0 auto;flex-shrink: 0;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-mbtn{display: flex;width: auto;height: 34px;padding: 0 4px;margin: 2px 0 3px 0;overflow: hidden;font-size: 14px;font-style: normal;font-weight: 400;color: #fff;text-transform: normal;background: 0 0;border: 0;border-radius: 3px;outline: 0;box-shadow: none;align-items: center;flex: 0 0 auto;justify-content: center;}
|
||||
|
||||
.tox .tox-mbtn[disabled]{color: rgba(255,255,255,.5);cursor: not-allowed;background-color: none;border-color: none;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn:hover:not(:disabled){color: #fff;background: #434e5b;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn:focus:not(:disabled){color: #fff;background: #434e5b;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn--active{color: #fff;background: #6f7882;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn__select-label{margin: 0 4px;font-weight: 400;cursor: default;}
|
||||
|
||||
.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor: not-allowed;}
|
||||
|
||||
.tox .tox-mbtn__select-chevron{display: flex;display: none;width: 16px;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-notification{display: grid;padding: 5px;margin-top: 5px;background-color: #fffaea;border-color: #ffe89d;border-style: solid;border-width: 1px;opacity: 0;box-sizing: border-box;transition: transform .1s ease-in,opacity 150ms ease-in;grid-template-columns: minmax(40px,1fr) auto minmax(40px,1fr);}
|
||||
|
||||
.tox .tox-notification--in{opacity: 1;}
|
||||
|
||||
.tox .tox-notification--success{background-color: #dff0d8;border-color: #d6e9c6;}
|
||||
|
||||
.tox .tox-notification--error{background-color: #f2dede;border-color: #ebccd1;}
|
||||
|
||||
.tox .tox-notification--warn{background-color: #fcf8e3;border-color: #faebcc;}
|
||||
|
||||
.tox .tox-notification--info{background-color: #d9edf7;border-color: #779ecb;}
|
||||
|
||||
.tox .tox-notification__body{font-size: 14px;color: #fff;text-align: center;word-break: break-all;word-break: break-word;white-space: normal;align-self: center;grid-column-end: 3;-ms-grid-column-span: 1;grid-column-start: 2;grid-row-end: 2;grid-row-start: 1;}
|
||||
|
||||
.tox .tox-notification__body>*{margin: 0;}
|
||||
|
||||
.tox .tox-notification__body>*+*{margin-top: 1rem;}
|
||||
|
||||
.tox .tox-notification__icon{align-self: center;-ms-grid-column-align: end;grid-column-end: 2;-ms-grid-column-span: 1;grid-column-start: 1;grid-row-end: 2;grid-row-start: 1;justify-self: end;}
|
||||
|
||||
.tox .tox-notification__icon svg{display: block;}
|
||||
|
||||
.tox .tox-notification__dismiss{align-self: start;-ms-grid-column-align: end;grid-column-end: 4;-ms-grid-column-span: 1;grid-column-start: 3;grid-row-end: 2;grid-row-start: 1;justify-self: end;}
|
||||
|
||||
.tox .tox-notification .tox-progress-bar{-ms-grid-column-align: center;grid-column-end: 4;-ms-grid-column-span: 3;grid-column-start: 1;grid-row-end: 3;-ms-grid-row-span: 1;grid-row-start: 2;justify-self: center;}
|
||||
|
||||
.tox .tox-pop{position: relative;display: inline-block;}
|
||||
|
||||
.tox .tox-pop--resizing{transition: width .1s ease;}
|
||||
|
||||
.tox .tox-pop--resizing .tox-toolbar{flex-wrap: nowrap;}
|
||||
|
||||
.tox .tox-pop__dialog{min-width: 0;overflow: hidden;background-color: #222f3e;border: 1px solid #000;border-radius: 3px;box-shadow: 0 1px 3px rgba(0,0,0,.15);}
|
||||
|
||||
.tox .tox-pop__dialog>:not(.tox-toolbar){margin: 4px 4px 4px 8px;}
|
||||
|
||||
.tox .tox-pop__dialog .tox-toolbar{background-color: transparent;}
|
||||
|
||||
.tox .tox-pop::after,.tox .tox-pop::before{position: absolute;display: block;width: 0;height: 0;border-style: solid;content: '';}
|
||||
|
||||
.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{top: 100%;left: 50%;}
|
||||
|
||||
.tox .tox-pop.tox-pop--bottom::after{margin-top: -1px;margin-left: -8px;border-color: #222f3e transparent transparent transparent;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--bottom::before{margin-left: -9px;border-color: #000 transparent transparent transparent;border-width: 9px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{top: 0;left: 50%;transform: translateY(-100%);}
|
||||
|
||||
.tox .tox-pop.tox-pop--top::after{margin-top: 1px;margin-left: -8px;border-color: transparent transparent #222f3e transparent;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--top::before{margin-left: -9px;border-color: transparent transparent #000 transparent;border-width: 9px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{top: calc(50% - 1px);left: 0;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-pop.tox-pop--left::after{margin-left: -15px;border-color: transparent #222f3e transparent transparent;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--left::before{margin-left: -19px;border-color: transparent #000 transparent transparent;border-width: 10px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{top: calc(50% + 1px);left: 100%;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-pop.tox-pop--right::after{margin-left: -1px;border-color: transparent transparent transparent #222f3e;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--right::before{margin-left: -1px;border-color: transparent transparent transparent #000;border-width: 10px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left: 20px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left: calc(100% - 20px);}
|
||||
|
||||
.tox .tox-sidebar-wrap{display: flex;flex-direction: row;flex-grow: 1;min-height: 0;}
|
||||
|
||||
.tox .tox-sidebar{display: flex;flex-direction: row;justify-content: flex-end;}
|
||||
|
||||
.tox .tox-sidebar__slider{display: flex;overflow: hidden;}
|
||||
|
||||
.tox .tox-sidebar__pane-container{display: flex;}
|
||||
|
||||
.tox .tox-sidebar__pane{display: flex;}
|
||||
|
||||
.tox .tox-sidebar--sliding-closed{opacity: 0;}
|
||||
|
||||
.tox .tox-sidebar--sliding-open{opacity: 1;}
|
||||
|
||||
.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition: width .5s ease,opacity .5s ease;}
|
||||
|
||||
.tox .tox-slider{position: relative;display: flex;height: 24px;align-items: center;flex: 1;-ms-flex-preferred-size: auto;justify-content: center;}
|
||||
|
||||
.tox .tox-slider__rail{width: 100%;height: 10px;min-width: 120px;background-color: transparent;border: 1px solid #000;border-radius: 3px;}
|
||||
|
||||
.tox .tox-slider__handle{position: absolute;top: 50%;left: 50%;width: 14px;height: 24px;background-color: #207ab7;border: 2px solid #185d8c;border-radius: 3px;transform: translateX(-50%) translateY(-50%);box-shadow: none;}
|
||||
|
||||
.tox .tox-source-code{overflow: auto;}
|
||||
|
||||
.tox .tox-spinner{display: flex;}
|
||||
|
||||
.tox .tox-spinner>div{width: 8px;height: 8px;background-color: rgba(255,255,255,.5);border-radius: 100%;animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both;}
|
||||
|
||||
.tox .tox-spinner>div:nth-child(1){animation-delay: -.32s;}
|
||||
|
||||
.tox .tox-spinner>div:nth-child(2){animation-delay: -.16s;}@keyframes tam-bouncing-dots{0%,100%,80%{transform: scale(0);}
|
||||
|
||||
40%{transform: scale(1);}}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right: 4px;}
|
||||
|
||||
.tox .tox-statusbar{position: relative;display: flex;height: 18px;padding: 0 8px;overflow: hidden;font-size: 12px;color: rgba(255,255,255,.5);text-transform: uppercase;background-color: #222f3e;border-top: 1px solid #000;align-items: center;flex: 0 0 auto;}
|
||||
|
||||
.tox .tox-statusbar a{color: rgba(255,255,255,.5);text-decoration: none;}
|
||||
|
||||
.tox .tox-statusbar a:hover{text-decoration: underline;}
|
||||
|
||||
.tox .tox-statusbar__text-container{display: flex;flex: 1 1 auto;justify-content: flex-end;overflow: hidden;}
|
||||
|
||||
.tox .tox-statusbar__path{display: flex;flex: 1 1 auto;margin-right: auto;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
|
||||
|
||||
.tox .tox-statusbar__path>*{display: inline;white-space: nowrap;}
|
||||
|
||||
.tox .tox-statusbar__wordcount{flex: 0 0 auto;margin-left: 1ch;}
|
||||
|
||||
.tox .tox-statusbar__resize-handle{display: flex;padding-left: 1ch;margin-right: -8px;margin-left: auto;cursor: nwse-resize;align-items: flex-end;align-self: stretch;flex: 0 0 auto;justify-content: flex-end;}
|
||||
|
||||
.tox .tox-statusbar__resize-handle svg{display: block;fill: rgba(255,255,255,.5);}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right: 4px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left: 1ch;}
|
||||
|
||||
.tox[dir=rtl] .tox-statusbar{flex-direction: row-reverse;}
|
||||
|
||||
.tox[dir=rtl] .tox-statusbar__path>*{margin-left: 4px;}
|
||||
|
||||
.tox .tox-throbber{z-index: 1400;}
|
||||
|
||||
.tox .tox-throbber__busy-spinner{position: absolute;top: 0;right: 0;bottom: 0;left: 0;display: flex;background-color: rgba(34,47,62,.6);align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-tbtn{display: flex;width: 34px;height: 34px;padding: 0;margin: 2px 0 3px 0;overflow: hidden;font-size: 14px;font-style: normal;font-weight: 400;color: #fff;text-transform: normal;background: 0 0;border: 0;border-radius: 3px;outline: 0;box-shadow: none;align-items: center;flex: 0 0 auto;justify-content: center;}
|
||||
|
||||
.tox .tox-tbtn svg{display: block;fill: #fff;}
|
||||
|
||||
.tox .tox-tbtn.tox-tbtn-more{width: inherit;padding-right: 5px;padding-left: 5px;}
|
||||
|
||||
.tox .tox-tbtn--enabled{color: #fff;background: #6f7882;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn--enabled>*{transform: none;}
|
||||
|
||||
.tox .tox-tbtn--enabled svg{fill: #fff;}
|
||||
|
||||
.tox .tox-tbtn:hover{color: #fff;background: #434e5b;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn:hover svg{fill: #fff;}
|
||||
|
||||
.tox .tox-tbtn:focus{color: #fff;background: #434e5b;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn:focus svg{fill: #fff;}
|
||||
|
||||
.tox .tox-tbtn:active{color: #fff;background: #6f7882;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn:active svg{fill: #fff;}
|
||||
|
||||
.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{color: rgba(255,255,255,.5);cursor: not-allowed;background: 0 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-tbtn:active>*{transform: none;}
|
||||
|
||||
.tox .tox-tbtn--md{width: 51px;height: 51px;}
|
||||
|
||||
.tox .tox-tbtn--lg{width: 68px;height: 68px;flex-direction: column;}
|
||||
|
||||
.tox .tox-tbtn--return{width: 16px;height: unset;align-self: stretch;}
|
||||
|
||||
.tox .tox-tbtn--labeled{width: unset;padding: 0 4px;}
|
||||
|
||||
.tox .tox-tbtn__vlabel{display: block;margin-bottom: 4px;font-size: 10px;font-weight: 400;letter-spacing: -.025em;white-space: nowrap;}
|
||||
|
||||
.tox .tox-tbtn--select{width: auto;padding: 0 4px;margin: 2px 0 3px 0;}
|
||||
|
||||
.tox .tox-tbtn__select-label{margin: 0 4px;font-weight: 400;cursor: default;}
|
||||
|
||||
.tox .tox-tbtn__select-chevron{align-items: center;display: flex;justify-content: center;width: 16px;}
|
||||
|
||||
.tox .tox-tbtn__select-chevron svg{fill: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-tbtn--bespoke .tox-tbtn__select-label{width: 7em;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
|
||||
|
||||
.tox .tox-split-button{display: flex;margin: 2px 0 3px 0;overflow: hidden;border: 0;border-radius: 3px;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-split-button:hover{box-shadow: 0 0 0 1px #434e5b inset;}
|
||||
|
||||
.tox .tox-split-button:focus{color: #fff;background: #434e5b;box-shadow: none;}
|
||||
|
||||
.tox .tox-split-button>*{border-radius: 0;}
|
||||
|
||||
.tox .tox-split-button__chevron{width: 16px;}
|
||||
|
||||
.tox .tox-split-button__chevron svg{fill: rgba(255,255,255,.5);}
|
||||
|
||||
.tox .tox-pop .tox-split-button__chevron svg{transform: rotate(-90deg);}
|
||||
|
||||
.tox .tox-split-button .tox-tbtn{margin: 0;}
|
||||
|
||||
.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{color: rgba(255,255,255,.5);background: 0 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{display: flex;padding: 0 0;margin-bottom: -1px;background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23000000'/%3E%3C/svg%3E") left 0 top 0 #222f3e;background-color: #222f3e;border-top: 1px solid #000;flex: 0 0 auto;flex-shrink: 0;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height: 0;opacity: 0;visibility: hidden;}
|
||||
|
||||
.tox .tox-toolbar__overflow--growing{transition: height .3s ease,opacity .2s linear .1s;}
|
||||
|
||||
.tox .tox-toolbar__overflow--shrinking{transition: opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s;}
|
||||
|
||||
.tox .tox-pop .tox-toolbar{border-width: 0;}
|
||||
|
||||
.tox .tox-toolbar--no-divider{background-image: none;}
|
||||
|
||||
.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color: #222f3e;border: 1px solid #000;border-radius: 3px;box-shadow: 0 1px 3px rgba(0,0,0,.15);}
|
||||
|
||||
.tox.tox-tinymce-aux:not([dir=rtl]) .tox-toolbar__overflow{margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-tbtn__icon-rtl svg{transform: rotateY(180deg);}
|
||||
|
||||
.tox[dir=rtl].tox-tinymce-aux .tox-toolbar__overflow{margin-right: 4px;}
|
||||
|
||||
.tox .tox-toolbar__group{display: flex;padding: 0 4px;margin: 0 0;align-items: center;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-toolbar__group--pull-right{margin-left: auto;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right: 1px solid #000;}
|
||||
|
||||
.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left: 1px solid #000;}
|
||||
|
||||
.tox .tox-tooltip{position: relative;display: inline-block;padding: 8px;}
|
||||
|
||||
.tox .tox-tooltip__body{padding: 4px 8px;font-size: 14px;font-style: normal;font-weight: 400;color: rgba(255,255,255,.75);text-transform: normal;background-color: #3d546f;border-radius: 3px;box-shadow: 0 2px 4px rgba(34,47,62,.3);}
|
||||
|
||||
.tox .tox-tooltip__arrow{position: absolute;}
|
||||
|
||||
.tox .tox-tooltip--down .tox-tooltip__arrow{position: absolute;bottom: 0;left: 50%;border-top: 8px solid #3d546f;border-right: 8px solid transparent;border-left: 8px solid transparent;transform: translateX(-50%);}
|
||||
|
||||
.tox .tox-tooltip--up .tox-tooltip__arrow{position: absolute;top: 0;left: 50%;border-right: 8px solid transparent;border-bottom: 8px solid #3d546f;border-left: 8px solid transparent;transform: translateX(-50%);}
|
||||
|
||||
.tox .tox-tooltip--right .tox-tooltip__arrow{position: absolute;top: 50%;right: 0;border-top: 8px solid transparent;border-bottom: 8px solid transparent;border-left: 8px solid #3d546f;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-tooltip--left .tox-tooltip__arrow{position: absolute;top: 50%;left: 0;border-top: 8px solid transparent;border-right: 8px solid #3d546f;border-bottom: 8px solid transparent;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-well{width: 100%;padding: 8px;border: 1px solid #000;border-radius: 3px;}
|
||||
|
||||
.tox .tox-well>:first-child{margin-top: 0;}
|
||||
|
||||
.tox .tox-well>:last-child{margin-bottom: 0;}
|
||||
|
||||
.tox .tox-well>:only-child{margin: 0;}
|
||||
|
||||
.tox .tox-custom-editor{display: flex;height: 525px;border: 1px solid #000;border-radius: 3px;}
|
||||
|
||||
.tox .tox-dialog-loading::before{position: absolute;z-index: 1000;width: 100%;height: 100%;background-color: rgba(0,0,0,.5);content: "";}
|
||||
|
||||
.tox .tox-tab{cursor: pointer;}
|
||||
|
||||
.tox .tox-dialog__content-js{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-content .tox-collection{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox ul{display: block;list-style-type: disc;-webkit-margin-before: 1em;margin-block-start: 1em;-webkit-margin-after: 1em;margin-block-end: 1em;-webkit-margin-start: 0;margin-inline-start: 0;-webkit-margin-end: 0;margin-inline-end: 0;-webkit-padding-start: 40px;padding-inline-start: 40px;}
|
||||
|
||||
.tox a{color: #2276d2;cursor: pointer;}
|
||||
|
||||
.tox .tox-image-tools-edit-panel{height: 60px;}
|
||||
|
||||
.tox .tox-image-tools__sidebar{height: 60px;}
|
239
public/resource/tinymce/skins/ui/oxide-dark/skin.mobile.min.css
vendored
Normal file
239
public/resource/tinymce/skins/ui/oxide-dark/skin.mobile.min.css
vendored
Normal file
@@ -0,0 +1,239 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-outer-container{all: initial;display: block;}
|
||||
|
||||
.tinymce-mobile-outer-container *{float: none;padding: 0;margin: 0;line-height: 1;text-shadow: none;white-space: nowrap;cursor: inherit;border: 0;outline: 0;box-sizing: initial;-webkit-tap-highlight-color: transparent;}
|
||||
|
||||
.tinymce-mobile-icon-arrow-back::before{content: "\e5cd";}
|
||||
|
||||
.tinymce-mobile-icon-image::before{content: "\e412";}
|
||||
|
||||
.tinymce-mobile-icon-cancel-circle::before{content: "\e5c9";}
|
||||
|
||||
.tinymce-mobile-icon-full-dot::before{content: "\e061";}
|
||||
|
||||
.tinymce-mobile-icon-align-center::before{content: "\e234";}
|
||||
|
||||
.tinymce-mobile-icon-align-left::before{content: "\e236";}
|
||||
|
||||
.tinymce-mobile-icon-align-right::before{content: "\e237";}
|
||||
|
||||
.tinymce-mobile-icon-bold::before{content: "\e238";}
|
||||
|
||||
.tinymce-mobile-icon-italic::before{content: "\e23f";}
|
||||
|
||||
.tinymce-mobile-icon-unordered-list::before{content: "\e241";}
|
||||
|
||||
.tinymce-mobile-icon-ordered-list::before{content: "\e242";}
|
||||
|
||||
.tinymce-mobile-icon-font-size::before{content: "\e245";}
|
||||
|
||||
.tinymce-mobile-icon-underline::before{content: "\e249";}
|
||||
|
||||
.tinymce-mobile-icon-link::before{content: "\e157";}
|
||||
|
||||
.tinymce-mobile-icon-unlink::before{content: "\eca2";}
|
||||
|
||||
.tinymce-mobile-icon-color::before{content: "\e891";}
|
||||
|
||||
.tinymce-mobile-icon-previous::before{content: "\e314";}
|
||||
|
||||
.tinymce-mobile-icon-next::before{content: "\e315";}
|
||||
|
||||
.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content: "\e264";}
|
||||
|
||||
.tinymce-mobile-icon-undo::before{content: "\e166";}
|
||||
|
||||
.tinymce-mobile-icon-redo::before{content: "\e15a";}
|
||||
|
||||
.tinymce-mobile-icon-removeformat::before{content: "\e239";}
|
||||
|
||||
.tinymce-mobile-icon-small-font::before{content: "\e906";}
|
||||
|
||||
.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content: "\e5ca";}
|
||||
|
||||
.tinymce-mobile-icon-small-heading::before{content: "small";}
|
||||
|
||||
.tinymce-mobile-icon-large-heading::before{content: "large";}
|
||||
|
||||
.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family: sans-serif;font-size: 80%;}
|
||||
|
||||
.tinymce-mobile-mask-edit-icon::before{content: "\e254";}
|
||||
|
||||
.tinymce-mobile-icon-back::before{content: "\e5c4";}
|
||||
|
||||
.tinymce-mobile-icon-heading::before{font-family: sans-serif;font-size: 80%;font-weight: 700;content: "Headings";}
|
||||
|
||||
.tinymce-mobile-icon-h1::before{font-weight: 700;content: "H1";}
|
||||
|
||||
.tinymce-mobile-icon-h2::before{font-weight: 700;content: "H2";}
|
||||
|
||||
.tinymce-mobile-icon-h3::before{font-weight: 700;content: "H3";}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{position: absolute;top: 0;display: flex;width: 100%;height: 100%;background: rgba(51,51,51,.5);align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{display: flex;font-family: sans-serif;font-size: 1em;border-radius: 50%;align-items: center;flex-direction: column;justify-content: space-between;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{display: flex;width: 2.1em;height: 2.1em;border-radius: 50%;align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items: center;display: flex;justify-content: center;flex-direction: column;font-size: 1em;}@media only screen and (min-device-width: 700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size: 1.2em;}}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{display: flex;width: 2.1em;height: 2.1em;color: #207ab7;background-color: #fff;border-radius: 50%;align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{font-family: tinymce-mobile,sans-serif;content: "\e900";}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index: 2;}
|
||||
|
||||
.tinymce-mobile-android-container.tinymce-mobile-android-maximized{position: fixed;top: 0;right: 0;bottom: 0;left: 0;display: flex;background: #fff;border: none;flex-direction: column;}
|
||||
|
||||
.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position: relative;}
|
||||
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display: flex;flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display: flex !important;flex-grow: 1;height: auto !important;}
|
||||
|
||||
.tinymce-mobile-android-scroll-reload{overflow: hidden;}
|
||||
|
||||
:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top: 23px;}
|
||||
|
||||
.tinymce-mobile-toolstrip{z-index: 1;display: flex;background: #fff;flex: 0 0 auto;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{display: flex;width: 100%;height: 2.5em;background-color: #fff;border-bottom: 1px solid #ccc;align-items: center;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items: center;display: flex;height: 100%;flex-shrink: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items: center;display: flex;height: 100%;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background: #f44336;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-right: .5em;padding-left: .5em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{display: flex;height: 80%;margin-right: 2px;margin-left: 2px;align-items: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{color: #ccc;background: #c8cbcf;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{color: #eceff1;background: #207ab7;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{display: flex;height: 100%;padding-top: .4em;padding-bottom: .4em;align-items: center;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{position: relative;display: flex;width: 100%;min-height: 1.5em;padding-right: 0;padding-left: 0;overflow: hidden;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display: flex;width: 100%;height: 100%;transition: left cubic-bezier(.4,0,1,1) .15s;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display: flex;flex: 0 0 auto;justify-content: space-between;width: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family: sans-serif;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{position: relative;display: flex;flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{position: absolute;right: 0;height: 100%;padding-right: 2px;font-size: .6em;font-weight: 700;color: #888;background: inherit;border: none;border-radius: 50%;align-self: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display: none;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items: center;display: flex;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{display: flex;height: 100%;padding-right: .5em;padding-left: .5em;font-weight: 700;align-items: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility: hidden;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{padding-top: 3px;margin: 0 2px;font-size: 10px;line-height: 10px;color: #ccc;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color: #c8cbcf;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-right: .9em;margin-left: .5em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-right: .5em;margin-left: .9em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{position: relative;display: flex;padding: .28em 0;margin-right: 0;margin-left: 0;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items: center;display: flex;flex-grow: 1;height: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{display: flex;height: .2em;margin-top: .3em;margin-bottom: .3em;background: #ccc;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-right: 2em;padding-left: 2em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items: center;display: flex;flex-grow: 1;height: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{display: flex;height: .2em;margin-top: .3em;margin-bottom: .3em;background: linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{width: 1.2em;height: .2em;margin-top: .3em;margin-bottom: .3em;background: #000;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{width: 1.2em;height: .2em;margin-top: .3em;margin-bottom: .3em;background: #fff;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{position: absolute;top: 0;bottom: 0;left: -10px;display: flex;width: .5em;height: .5em;margin: auto;color: #fff;background-color: #455a64;border: .5em solid rgba(136,136,136,0);border-radius: 3em;transition: border 120ms cubic-bezier(.39,.58,.57,1);background-clip: padding-box;align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border: .5em solid rgba(136,136,136,.39);}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items: center;display: flex;height: 100%;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction: column;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items: center;display: flex;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display: flex;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{padding-top: .1em;padding-bottom: .1em;padding-left: 5px;font-size: .85em;color: #455a64;background: #fff;border: none;border-radius: 0;flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color: #888;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color: #888;}
|
||||
|
||||
.tinymce-mobile-dropup{display: flex;width: 100%;overflow: hidden;background: #fff;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition: height .3s ease-out;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition: height .3s ease-in;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow: 0;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height: 200px;}@media only screen and (orientation: landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height: 200px;}}@media only screen and (min-device-width: 320px) and (max-device-width: 568px) and (orientation: landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height: 150px;}}
|
||||
|
||||
.tinymce-mobile-styles-menu{position: relative;width: 100%;overflow: hidden;font-family: sans-serif;outline: 4px solid #000;}
|
||||
|
||||
.tinymce-mobile-styles-menu [role=menu]{position: absolute;display: flex;width: 100%;height: 100%;flex-direction: column;}
|
||||
|
||||
.tinymce-mobile-styles-menu [role=menu].transitioning{transition: transform .5s ease-in-out;}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{position: relative;display: flex;padding: 1em 1em;color: #455a64;cursor: pointer;border-bottom: 1px solid #ddd;}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{font-family: tinymce-mobile,sans-serif;color: #455a64;content: "\e314";}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{position: absolute;right: 0;padding-right: 1em;padding-left: 1em;font-family: tinymce-mobile,sans-serif;color: #455a64;content: "\e315";}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{position: absolute;right: 0;padding-right: 1em;padding-left: 1em;font-family: tinymce-mobile,sans-serif;}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{display: flex;min-height: 2.5em;padding-right: 1em;padding-left: 1em;color: #455a64;background: #fff;border-top: #455a64;align-items: center;}
|
||||
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform: translate(-100%);}
|
||||
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform: translate(0);}
|
||||
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform: translate(100%);}@font-face{font-family: tinymce-mobile;font-style: normal;font-weight: 400;src: url(fonts/tinymce-mobile.woff?8x92w3) format('woff');}@media (min-device-width: 700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size: 25px;}}@media (max-device-width: 700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size: 18px;}}
|
||||
|
||||
.tinymce-mobile-icon{font-family: tinymce-mobile,sans-serif;}
|
||||
|
||||
.mixin-flex-and-centre{align-items: center;display: flex;justify-content: center;}
|
||||
|
||||
.mixin-flex-bar{align-items: center;display: flex;height: 100%;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{width: 100%;background-color: #fff;}
|
||||
|
||||
.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{position: fixed;right: 2em;bottom: 1em;display: flex;width: 2.1em;height: 2.1em;font-size: 1em;color: #fff;background-color: #207ab7;border-radius: 50%;align-items: center;justify-content: center;}@media only screen and (min-device-width: 700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size: 1.2em;}}
|
||||
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height: 300px;overflow: hidden;}
|
||||
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height: 100%;}
|
||||
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display: none;}
|
||||
|
||||
input[type=file]::-webkit-file-upload-button{display: none;}@media only screen and (min-device-width: 320px) and (max-device-width: 568px) and (orientation: landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom: 50%;}}
|
239
public/resource/tinymce/skins/ui/oxide/content.inline.min.css
vendored
Normal file
239
public/resource/tinymce/skins/ui/oxide/content.inline.min.css
vendored
Normal file
@@ -0,0 +1,239 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor{display: inline-block;width: 8px !important;height: 12px !important;padding: 0 2px;cursor: default;background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;-webkit-user-select: all;-moz-user-select: all;-ms-user-select: all;user-select: all;-webkit-user-modify: read-only;-moz-user-modify: read-only;}
|
||||
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset: 1px;}
|
||||
|
||||
.tox-comments-visible .tox-comment{background-color: #fff0b7;}
|
||||
|
||||
.tox-comments-visible .tox-comment--active{background-color: #ffe168;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden){margin: .25em 0;list-style: none;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden)::before{position: absolute;width: 1em;height: 1em;margin-top: .125em;margin-left: -1.5em;cursor: pointer;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size: 100%;content: '';}
|
||||
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");}
|
||||
|
||||
[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-right: -1.5em;margin-left: 0;}
|
||||
|
||||
code[class*=language-],pre[class*=language-]{font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size: .875rem;-webkit-hyphens: none;-ms-hyphens: none;hyphens: none;line-height: 1.5;word-spacing: normal;color: #000;text-shadow: 0 1px #fff;word-break: normal;word-wrap: normal;white-space: pre;-moz-tab-size: 4;tab-size: 4;}
|
||||
|
||||
code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow: none;background: #b3d4fc;}
|
||||
|
||||
code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow: none;background: #b3d4fc;}@media print{code[class*=language-],pre[class*=language-]{text-shadow: none;}}
|
||||
|
||||
pre[class*=language-]{padding: 1em;margin: .5em 0;overflow: auto;}
|
||||
|
||||
:not(pre)>code[class*=language-],pre[class*=language-]{background: 0 0 !important;border: 1px solid #ccc;}
|
||||
|
||||
:not(pre)>code[class*=language-]{padding: .1em;border-radius: .3em;}
|
||||
|
||||
.token.cdata,.token.comment,.token.doctype,.token.prolog{color: #708090;}
|
||||
|
||||
.token.punctuation{color: #999;}
|
||||
|
||||
.namespace{opacity: .7;}
|
||||
|
||||
.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color: #905;}
|
||||
|
||||
.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color: #690;}
|
||||
|
||||
.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color: #a67f59;background: hsla(0,0%,100%,.5);}
|
||||
|
||||
.token.atrule,.token.attr-value,.token.keyword{color: #07a;}
|
||||
|
||||
.token.function{color: #dd4a68;}
|
||||
|
||||
.token.important,.token.regex,.token.variable{color: #e90;}
|
||||
|
||||
.token.bold,.token.important{font-weight: 700;}
|
||||
|
||||
.token.italic{font-style: italic;}
|
||||
|
||||
.token.entity{cursor: help;}
|
||||
|
||||
:not([dir=rtl]) code[class*=language-],:not([dir=rtl]) pre[class*=language-]{text-align: left;direction: ltr;}
|
||||
|
||||
[dir=rtl] code[class*=language-],[dir=rtl] pre[class*=language-]{text-align: right;direction: rtl;}
|
||||
|
||||
.mce-content-body{overflow-wrap: break-word;word-wrap: break-word;}
|
||||
|
||||
.mce-content-body .mce-visual-caret{position: absolute;background-color: #000;background-color: currentColor;}
|
||||
|
||||
.mce-content-body .mce-visual-caret-hidden{display: none;}
|
||||
|
||||
.mce-content-body [data-mce-caret]{position: absolute;top: 0;right: auto;left: -1000px;padding: 0;margin: 0;}
|
||||
|
||||
.mce-content-body .mce-offscreen-selection{position: absolute;left: -9999999999px;max-width: 1000000px;}
|
||||
|
||||
.mce-content-body [contentEditable=false]{cursor: default;}
|
||||
|
||||
.mce-content-body [contentEditable=true]{cursor: text;}
|
||||
|
||||
.tox-cursor-format-painter{cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default;}
|
||||
|
||||
.mce-content-body figure.align-left{float: left;}
|
||||
|
||||
.mce-content-body figure.align-right{float: right;}
|
||||
|
||||
.mce-content-body figure.image.align-center{display: table;margin-right: auto;margin-left: auto;}
|
||||
|
||||
.mce-preview-object{position: relative;display: inline-block;margin: 0 2px 0 2px;line-height: 0;border: 1px solid gray;}
|
||||
|
||||
.mce-preview-object .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.mce-object{background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border: 1px dashed #aaa;}
|
||||
|
||||
.mce-pagebreak{display: block;width: 100%;height: 5px;margin-top: 15px;cursor: default;border: 1px dashed #aaa;page-break-before: always;}@media print{.mce-pagebreak{border: 0;}}
|
||||
|
||||
.tiny-pageembed .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.tiny-pageembed{position: relative;display: inline-block;}
|
||||
|
||||
.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{position: relative;display: block;width: 100%;padding: 0;overflow: hidden;}
|
||||
|
||||
.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{display: block;content: "";}
|
||||
|
||||
.tiny-pageembed--21by9::before{padding-top: 42.857143%;}
|
||||
|
||||
.tiny-pageembed--16by9::before{padding-top: 56.25%;}
|
||||
|
||||
.tiny-pageembed--4by3::before{padding-top: 75%;}
|
||||
|
||||
.tiny-pageembed--1by1::before{padding-top: 100%;}
|
||||
|
||||
.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle{position: absolute;z-index: 10000;width: 10px;height: 10px;background-color: #4099ff;border-color: #4099ff;border-style: solid;border-width: 1px;box-sizing: border-box;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:hover{background-color: #4099ff;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body .mce-clonedresizable{position: absolute;z-index: 10000;outline: 1px dashed #000;opacity: .5;}
|
||||
|
||||
.mce-content-body .mce-resize-helper{position: absolute;z-index: 10001;display: none;padding: 5px;margin: 5px 10px;font-family: sans-serif;font-size: 12px;line-height: 14px;color: #fff;white-space: nowrap;background: #555;background: rgba(0,0,0,.75);border: 1px;border-radius: 3px;}
|
||||
|
||||
.mce-match-marker{color: #fff;background: #aaa;}
|
||||
|
||||
.mce-match-marker-selected{color: #fff;background: #39f;}
|
||||
|
||||
.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body hr[data-mce-selected]{outline: 3px solid #b4d7ff;outline-offset: 1px;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false][data-mce-selected]{cursor: not-allowed;outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline: 0;}
|
||||
|
||||
.mce-content-body [data-mce-selected=inline-boundary]{background-color: #b4d7ff;}
|
||||
|
||||
.mce-content-body .mce-edit-focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color: #b4d7ff !important;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}
|
||||
|
||||
.mce-content-body img::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body img::selection{background: 0 0;}
|
||||
|
||||
.ephox-snooker-resizer-bar{background-color: #b4d7ff;opacity: 0;}
|
||||
|
||||
.ephox-snooker-resizer-cols{cursor: col-resize;}
|
||||
|
||||
.ephox-snooker-resizer-rows{cursor: row-resize;}
|
||||
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity: 1;}
|
||||
|
||||
.mce-spellchecker-word{height: 2rem;cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.5'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-spellchecker-grammar{cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23008800'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-toc{border: 1px solid gray;}
|
||||
|
||||
.mce-toc h2{margin: 4px;}
|
||||
|
||||
.mce-toc li{list-style-type: none;}
|
||||
|
||||
.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{padding-top: 10px;margin-left: 3px;background-repeat: no-repeat;border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks p{background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);}
|
||||
|
||||
.mce-visualblocks h1{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);}
|
||||
|
||||
.mce-visualblocks h2{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h3{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);}
|
||||
|
||||
.mce-visualblocks h4{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);}
|
||||
|
||||
.mce-visualblocks h5{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h6{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);}
|
||||
|
||||
.mce-visualblocks div:not([data-mce-bogus]){background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);}
|
||||
|
||||
.mce-visualblocks section{background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);}
|
||||
|
||||
.mce-visualblocks article{background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);}
|
||||
|
||||
.mce-visualblocks blockquote{background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);}
|
||||
|
||||
.mce-visualblocks address{background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);}
|
||||
|
||||
.mce-visualblocks pre{background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);}
|
||||
|
||||
.mce-visualblocks figure{background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);}
|
||||
|
||||
.mce-visualblocks figcaption{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks hgroup{background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);}
|
||||
|
||||
.mce-visualblocks aside{background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);}
|
||||
|
||||
.mce-visualblocks ul{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);}
|
||||
|
||||
.mce-visualblocks ol{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);}
|
||||
|
||||
.mce-visualblocks dl{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);}
|
||||
|
||||
.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left: 3px;}
|
||||
|
||||
.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x: right;margin-right: 3px;}
|
||||
|
||||
.mce-nbsp,.mce-shy{background: #aaa;}
|
||||
|
||||
.mce-shy::after{content: '-';}
|
||||
|
||||
.tox-toolbar-dock-fadeout{opacity: 0;visibility: hidden;}
|
||||
|
||||
.tox-toolbar-dock-fadein{opacity: 1;visibility: visible;}
|
||||
|
||||
.tox-toolbar-dock-transition{transition: visibility 0s linear .3s,opacity .3s ease;}
|
||||
|
||||
.tox-toolbar-dock-transition.tox-toolbar-dock-fadein{transition-delay: 0s;}
|
235
public/resource/tinymce/skins/ui/oxide/content.min.css
vendored
Normal file
235
public/resource/tinymce/skins/ui/oxide/content.min.css
vendored
Normal file
@@ -0,0 +1,235 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.mce-content-body .mce-item-anchor{display: inline-block;width: 8px !important;height: 12px !important;padding: 0 2px;cursor: default;background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'8'%20height%3D'12'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20d%3D'M0%200L8%200%208%2012%204.09117821%209%200%2012z'%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;-webkit-user-select: all;-moz-user-select: all;-ms-user-select: all;user-select: all;-webkit-user-modify: read-only;-moz-user-modify: read-only;}
|
||||
|
||||
.mce-content-body .mce-item-anchor[data-mce-selected]{outline-offset: 1px;}
|
||||
|
||||
.tox-comments-visible .tox-comment{background-color: #fff0b7;}
|
||||
|
||||
.tox-comments-visible .tox-comment--active{background-color: #ffe168;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden){margin: .25em 0;list-style: none;}
|
||||
|
||||
.tox-checklist>li:not(.tox-checklist--hidden)::before{position: absolute;width: 1em;height: 1em;margin-top: .125em;margin-left: -1.5em;cursor: pointer;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-unchecked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2215%22%20height%3D%2215%22%20x%3D%22.5%22%20y%3D%22.5%22%20fill-rule%3D%22nonzero%22%20stroke%3D%22%234C4C4C%22%20rx%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");background-size: 100%;content: '';}
|
||||
|
||||
.tox-checklist li:not(.tox-checklist--hidden).tox-checklist--checked::before{background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cg%20id%3D%22checklist-checked%22%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%3Crect%20id%3D%22Rectangle%22%20width%3D%2216%22%20height%3D%2216%22%20fill%3D%22%234099FF%22%20fill-rule%3D%22nonzero%22%20rx%3D%222%22%2F%3E%3Cpath%20id%3D%22Path%22%20fill%3D%22%23FFF%22%20fill-rule%3D%22nonzero%22%20d%3D%22M11.5703186%2C3.14417309%20C11.8516238%2C2.73724603%2012.4164781%2C2.62829933%2012.83558%2C2.89774797%20C13.260121%2C3.17069355%2013.3759736%2C3.72932262%2013.0909105%2C4.14168582%20L7.7580587%2C11.8560195%20C7.43776896%2C12.3193404%206.76483983%2C12.3852142%206.35607322%2C11.9948725%20L3.02491697%2C8.8138662%20C2.66090143%2C8.46625845%202.65798871%2C7.89594698%203.01850234%2C7.54483354%20C3.373942%2C7.19866177%203.94940006%2C7.19592841%204.30829608%2C7.5386474%20L6.85276923%2C9.9684299%20L11.5703186%2C3.14417309%20Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A");}
|
||||
|
||||
[dir=rtl] .tox-checklist>li:not(.tox-checklist--hidden)::before{margin-right: -1.5em;margin-left: 0;}
|
||||
|
||||
code[class*=language-],pre[class*=language-]{font-family: Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size: .875rem;-webkit-hyphens: none;-ms-hyphens: none;hyphens: none;line-height: 1.5;word-spacing: normal;color: #000;text-shadow: 0 1px #fff;word-break: normal;word-wrap: normal;white-space: pre;-moz-tab-size: 4;tab-size: 4;}
|
||||
|
||||
code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow: none;background: #b3d4fc;}
|
||||
|
||||
code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow: none;background: #b3d4fc;}@media print{code[class*=language-],pre[class*=language-]{text-shadow: none;}}
|
||||
|
||||
pre[class*=language-]{padding: 1em;margin: .5em 0;overflow: auto;}
|
||||
|
||||
:not(pre)>code[class*=language-],pre[class*=language-]{background: 0 0 !important;border: 1px solid #ccc;}
|
||||
|
||||
:not(pre)>code[class*=language-]{padding: .1em;border-radius: .3em;}
|
||||
|
||||
.token.cdata,.token.comment,.token.doctype,.token.prolog{color: #708090;}
|
||||
|
||||
.token.punctuation{color: #999;}
|
||||
|
||||
.namespace{opacity: .7;}
|
||||
|
||||
.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color: #905;}
|
||||
|
||||
.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color: #690;}
|
||||
|
||||
.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color: #a67f59;background: hsla(0,0%,100%,.5);}
|
||||
|
||||
.token.atrule,.token.attr-value,.token.keyword{color: #07a;}
|
||||
|
||||
.token.function{color: #dd4a68;}
|
||||
|
||||
.token.important,.token.regex,.token.variable{color: #e90;}
|
||||
|
||||
.token.bold,.token.important{font-weight: 700;}
|
||||
|
||||
.token.italic{font-style: italic;}
|
||||
|
||||
.token.entity{cursor: help;}
|
||||
|
||||
:not([dir=rtl]) code[class*=language-],:not([dir=rtl]) pre[class*=language-]{text-align: left;direction: ltr;}
|
||||
|
||||
[dir=rtl] code[class*=language-],[dir=rtl] pre[class*=language-]{text-align: right;direction: rtl;}
|
||||
|
||||
.mce-content-body{overflow-wrap: break-word;word-wrap: break-word;}
|
||||
|
||||
.mce-content-body .mce-visual-caret{position: absolute;background-color: #000;background-color: currentColor;}
|
||||
|
||||
.mce-content-body .mce-visual-caret-hidden{display: none;}
|
||||
|
||||
.mce-content-body [data-mce-caret]{position: absolute;top: 0;right: auto;left: -1000px;padding: 0;margin: 0;}
|
||||
|
||||
.mce-content-body .mce-offscreen-selection{position: absolute;left: -9999999999px;max-width: 1000000px;}
|
||||
|
||||
.mce-content-body [contentEditable=false]{cursor: default;}
|
||||
|
||||
.mce-content-body [contentEditable=true]{cursor: text;}
|
||||
|
||||
.tox-cursor-format-painter{cursor: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%3Cg%20fill%3D%22none%22%20fill-rule%3D%22evenodd%22%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M15%2C6%20C15%2C5.45%2014.55%2C5%2014%2C5%20L6%2C5%20C5.45%2C5%205%2C5.45%205%2C6%20L5%2C10%20C5%2C10.55%205.45%2C11%206%2C11%20L14%2C11%20C14.55%2C11%2015%2C10.55%2015%2C10%20L15%2C9%20L16%2C9%20L16%2C12%20L9%2C12%20L9%2C19%20C9%2C19.55%209.45%2C20%2010%2C20%20L11%2C20%20C11.55%2C20%2012%2C19.55%2012%2C19%20L12%2C14%20L18%2C14%20L18%2C7%20L15%2C7%20L15%2C6%20Z%22%2F%3E%0A%20%20%20%20%3Cpath%20fill%3D%22%23000%22%20fill-rule%3D%22nonzero%22%20d%3D%22M1%2C1%20L8.25%2C1%20C8.66421356%2C1%209%2C1.33578644%209%2C1.75%20L9%2C1.75%20C9%2C2.16421356%208.66421356%2C2.5%208.25%2C2.5%20L2.5%2C2.5%20L2.5%2C8.25%20C2.5%2C8.66421356%202.16421356%2C9%201.75%2C9%20L1.75%2C9%20C1.33578644%2C9%201%2C8.66421356%201%2C8.25%20L1%2C1%20Z%22%2F%3E%0A%20%20%3C%2Fg%3E%0A%3C%2Fsvg%3E%0A"),default;}
|
||||
|
||||
.mce-content-body figure.align-left{float: left;}
|
||||
|
||||
.mce-content-body figure.align-right{float: right;}
|
||||
|
||||
.mce-content-body figure.image.align-center{display: table;margin-right: auto;margin-left: auto;}
|
||||
|
||||
.mce-preview-object{position: relative;display: inline-block;margin: 0 2px 0 2px;line-height: 0;border: 1px solid gray;}
|
||||
|
||||
.mce-preview-object .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.mce-preview-object[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.mce-object{background: transparent url("data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%203h16a1%201%200%200%201%201%201v16a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V4a1%201%200%200%201%201-1zm1%202v14h14V5H5zm4.79%202.565l5.64%204.028a.5.5%200%200%201%200%20.814l-5.64%204.028a.5.5%200%200%201-.79-.407V7.972a.5.5%200%200%201%20.79-.407z%22%2F%3E%3C%2Fsvg%3E%0A") no-repeat center;border: 1px dashed #aaa;}
|
||||
|
||||
.mce-pagebreak{display: block;width: 100%;height: 5px;margin-top: 15px;cursor: default;border: 1px dashed #aaa;page-break-before: always;}@media print{.mce-pagebreak{border: 0;}}
|
||||
|
||||
.tiny-pageembed .mce-shim{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);}
|
||||
|
||||
.tiny-pageembed[data-mce-selected="2"] .mce-shim{display: none;}
|
||||
|
||||
.tiny-pageembed{position: relative;display: inline-block;}
|
||||
|
||||
.tiny-pageembed--16by9,.tiny-pageembed--1by1,.tiny-pageembed--21by9,.tiny-pageembed--4by3{position: relative;display: block;width: 100%;padding: 0;overflow: hidden;}
|
||||
|
||||
.tiny-pageembed--16by9::before,.tiny-pageembed--1by1::before,.tiny-pageembed--21by9::before,.tiny-pageembed--4by3::before{display: block;content: "";}
|
||||
|
||||
.tiny-pageembed--21by9::before{padding-top: 42.857143%;}
|
||||
|
||||
.tiny-pageembed--16by9::before{padding-top: 56.25%;}
|
||||
|
||||
.tiny-pageembed--4by3::before{padding-top: 75%;}
|
||||
|
||||
.tiny-pageembed--1by1::before{padding-top: 100%;}
|
||||
|
||||
.tiny-pageembed--16by9 iframe,.tiny-pageembed--1by1 iframe,.tiny-pageembed--21by9 iframe,.tiny-pageembed--4by3 iframe{position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle{position: absolute;z-index: 10000;width: 10px;height: 10px;background-color: #4099ff;border-color: #4099ff;border-style: solid;border-width: 1px;box-sizing: border-box;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:hover{background-color: #4099ff;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(1){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(2){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(3){cursor: nwse-resize;}
|
||||
|
||||
.mce-content-body div.mce-resizehandle:nth-of-type(4){cursor: nesw-resize;}
|
||||
|
||||
.mce-content-body .mce-clonedresizable{position: absolute;z-index: 10000;outline: 1px dashed #000;opacity: .5;}
|
||||
|
||||
.mce-content-body .mce-resize-helper{position: absolute;z-index: 10001;display: none;padding: 5px;margin: 5px 10px;font-family: sans-serif;font-size: 12px;line-height: 14px;color: #fff;white-space: nowrap;background: #555;background: rgba(0,0,0,.75);border: 1px;border-radius: 3px;}
|
||||
|
||||
.mce-match-marker{color: #fff;background: #aaa;}
|
||||
|
||||
.mce-match-marker-selected{color: #fff;background: #39f;}
|
||||
|
||||
.mce-content-body img[data-mce-selected],.mce-content-body table[data-mce-selected]{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body hr[data-mce-selected]{outline: 3px solid #b4d7ff;outline-offset: 1px;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false] [contentEditable=true]:hover{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body [contentEditable=false][data-mce-selected]{cursor: not-allowed;outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body.mce-content-readonly [contentEditable=true]:focus,.mce-content-body.mce-content-readonly [contentEditable=true]:hover{outline: 0;}
|
||||
|
||||
.mce-content-body [data-mce-selected=inline-boundary]{background-color: #b4d7ff;}
|
||||
|
||||
.mce-content-body .mce-edit-focus{outline: 3px solid #b4d7ff;}
|
||||
|
||||
.mce-content-body td[data-mce-selected],.mce-content-body th[data-mce-selected]{background-color: #b4d7ff !important;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::-moz-selection,.mce-content-body th[data-mce-selected]::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected]::selection,.mce-content-body th[data-mce-selected]::selection{background: 0 0;}
|
||||
|
||||
.mce-content-body td[data-mce-selected] *,.mce-content-body th[data-mce-selected] *{-webkit-touch-callout: none;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}
|
||||
|
||||
.mce-content-body img::-moz-selection{background: 0 0;}
|
||||
|
||||
.mce-content-body img::selection{background: 0 0;}
|
||||
|
||||
.ephox-snooker-resizer-bar{background-color: #b4d7ff;opacity: 0;}
|
||||
|
||||
.ephox-snooker-resizer-cols{cursor: col-resize;}
|
||||
|
||||
.ephox-snooker-resizer-rows{cursor: row-resize;}
|
||||
|
||||
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity: 1;}
|
||||
|
||||
.mce-spellchecker-word{height: 2rem;cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23ff0000'%20fill%3D'none'%20stroke-linecap%3D'round'%20stroke-opacity%3D'.5'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-spellchecker-grammar{cursor: default;background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D'4'%20height%3D'4'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%3E%3Cpath%20stroke%3D'%23008800'%20fill%3D'none'%20stroke-linecap%3D'round'%20d%3D'M0%203L2%201%204%203'%2F%3E%3C%2Fsvg%3E%0A");background-position: 0 calc(100% + 1px);background-repeat: repeat-x;background-size: auto 6px;}
|
||||
|
||||
.mce-toc{border: 1px solid gray;}
|
||||
|
||||
.mce-toc h2{margin: 4px;}
|
||||
|
||||
.mce-toc li{list-style-type: none;}
|
||||
|
||||
.mce-item-table,.mce-item-table caption,.mce-item-table td,.mce-item-table th{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks address,.mce-visualblocks article,.mce-visualblocks aside,.mce-visualblocks blockquote,.mce-visualblocks div:not([data-mce-bogus]),.mce-visualblocks dl,.mce-visualblocks figcaption,.mce-visualblocks figure,.mce-visualblocks h1,.mce-visualblocks h2,.mce-visualblocks h3,.mce-visualblocks h4,.mce-visualblocks h5,.mce-visualblocks h6,.mce-visualblocks hgroup,.mce-visualblocks ol,.mce-visualblocks p,.mce-visualblocks pre,.mce-visualblocks section,.mce-visualblocks ul{padding-top: 10px;margin-left: 3px;background-repeat: no-repeat;border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks p{background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7);}
|
||||
|
||||
.mce-visualblocks h1{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==);}
|
||||
|
||||
.mce-visualblocks h2{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h3{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7);}
|
||||
|
||||
.mce-visualblocks h4{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==);}
|
||||
|
||||
.mce-visualblocks h5{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==);}
|
||||
|
||||
.mce-visualblocks h6{background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==);}
|
||||
|
||||
.mce-visualblocks div:not([data-mce-bogus]){background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7);}
|
||||
|
||||
.mce-visualblocks section{background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=);}
|
||||
|
||||
.mce-visualblocks article{background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7);}
|
||||
|
||||
.mce-visualblocks blockquote{background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7);}
|
||||
|
||||
.mce-visualblocks address{background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=);}
|
||||
|
||||
.mce-visualblocks pre{background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==);}
|
||||
|
||||
.mce-visualblocks figure{background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7);}
|
||||
|
||||
.mce-visualblocks figcaption{border: 1px dashed #bbb;}
|
||||
|
||||
.mce-visualblocks hgroup{background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7);}
|
||||
|
||||
.mce-visualblocks aside{background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=);}
|
||||
|
||||
.mce-visualblocks ul{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIAAALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGuYnqUVSjvw26DzzXiqIDlVwAAOw==);}
|
||||
|
||||
.mce-visualblocks ol{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybH6HHt0qourxC6CvzXieHyeWQAAOw==);}
|
||||
|
||||
.mce-visualblocks dl{background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==);}
|
||||
|
||||
.mce-visualblocks:not([dir=rtl]) address,.mce-visualblocks:not([dir=rtl]) article,.mce-visualblocks:not([dir=rtl]) aside,.mce-visualblocks:not([dir=rtl]) blockquote,.mce-visualblocks:not([dir=rtl]) div:not([data-mce-bogus]),.mce-visualblocks:not([dir=rtl]) dl,.mce-visualblocks:not([dir=rtl]) figcaption,.mce-visualblocks:not([dir=rtl]) figure,.mce-visualblocks:not([dir=rtl]) h1,.mce-visualblocks:not([dir=rtl]) h2,.mce-visualblocks:not([dir=rtl]) h3,.mce-visualblocks:not([dir=rtl]) h4,.mce-visualblocks:not([dir=rtl]) h5,.mce-visualblocks:not([dir=rtl]) h6,.mce-visualblocks:not([dir=rtl]) hgroup,.mce-visualblocks:not([dir=rtl]) ol,.mce-visualblocks:not([dir=rtl]) p,.mce-visualblocks:not([dir=rtl]) pre,.mce-visualblocks:not([dir=rtl]) section,.mce-visualblocks:not([dir=rtl]) ul{margin-left: 3px;}
|
||||
|
||||
.mce-visualblocks[dir=rtl] address,.mce-visualblocks[dir=rtl] article,.mce-visualblocks[dir=rtl] aside,.mce-visualblocks[dir=rtl] blockquote,.mce-visualblocks[dir=rtl] div:not([data-mce-bogus]),.mce-visualblocks[dir=rtl] dl,.mce-visualblocks[dir=rtl] figcaption,.mce-visualblocks[dir=rtl] figure,.mce-visualblocks[dir=rtl] h1,.mce-visualblocks[dir=rtl] h2,.mce-visualblocks[dir=rtl] h3,.mce-visualblocks[dir=rtl] h4,.mce-visualblocks[dir=rtl] h5,.mce-visualblocks[dir=rtl] h6,.mce-visualblocks[dir=rtl] hgroup,.mce-visualblocks[dir=rtl] ol,.mce-visualblocks[dir=rtl] p,.mce-visualblocks[dir=rtl] pre,.mce-visualblocks[dir=rtl] section,.mce-visualblocks[dir=rtl] ul{background-position-x: right;margin-right: 3px;}
|
||||
|
||||
.mce-nbsp,.mce-shy{background: #aaa;}
|
||||
|
||||
.mce-shy::after{content: '-';}
|
||||
|
||||
body{font-family: sans-serif;}
|
||||
|
||||
table{border-collapse: collapse;}
|
17
public/resource/tinymce/skins/ui/oxide/content.mobile.min.css
vendored
Normal file
17
public/resource/tinymce/skins/ui/oxide/content.mobile.min.css
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position: absolute;display: inline-block;background-color: green;opacity: .5;}
|
||||
|
||||
body{-webkit-text-size-adjust: none;}
|
||||
|
||||
body img{max-width: 96vw;}
|
||||
|
||||
body table img{max-width: 95%;}
|
||||
|
||||
body{font-family: sans-serif;}
|
||||
|
||||
table{border-collapse: collapse;}
|
BIN
public/resource/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff
Normal file
BIN
public/resource/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff
Normal file
Binary file not shown.
875
public/resource/tinymce/skins/ui/oxide/skin.min.css
vendored
Normal file
875
public/resource/tinymce/skins/ui/oxide/skin.min.css
vendored
Normal file
@@ -0,0 +1,875 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tox{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 16px;font-style: normal;font-weight: 400;line-height: normal;color: #222f3e;text-decoration: none;text-shadow: none;text-transform: none;white-space: normal;vertical-align: initial;cursor: auto;box-sizing: content-box;-webkit-tap-highlight-color: transparent;}
|
||||
|
||||
.tox :not(svg){font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;line-height: inherit;color: inherit;text-align: inherit;text-decoration: inherit;text-shadow: inherit;text-transform: inherit;white-space: inherit;vertical-align: inherit;cursor: inherit;box-sizing: inherit;direction: inherit;-webkit-tap-highlight-color: inherit;}
|
||||
|
||||
.tox :not(svg){position: static;float: none;width: auto;height: auto;max-width: none;padding: 0;margin: 0;background: 0 0;border: 0;outline: 0;}
|
||||
|
||||
.tox:not([dir=rtl]){text-align: left;direction: ltr;}
|
||||
|
||||
.tox[dir=rtl]{text-align: right;direction: rtl;}
|
||||
|
||||
.tox-tinymce{position: relative;display: flex;overflow: hidden;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;border: 1px solid #ccc;border-radius: 0;visibility: inherit !important;box-shadow: none;box-sizing: border-box;flex-direction: column;}
|
||||
|
||||
.tox-editor-container{display: flex;flex: 1 1 auto;flex-direction: column;overflow: hidden;}
|
||||
|
||||
.tox-editor-container>:first-child{border-top: none !important;}
|
||||
|
||||
.tox-tinymce-aux{font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;}
|
||||
|
||||
.tox-tinymce :focus,.tox-tinymce-aux :focus{outline: 0;}
|
||||
|
||||
button::-moz-focus-inner{border: 0;}
|
||||
|
||||
.tox-silver-sink{z-index: 1300;}
|
||||
|
||||
.tox .tox-anchorbar{display: flex;flex: 0 0 auto;}
|
||||
|
||||
.tox .tox-bar{display: flex;flex: 0 0 auto;}
|
||||
|
||||
.tox .tox-button{display: inline-block;padding: 4px 16px;margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 14px;font-weight: 700;line-height: 24px;letter-spacing: 1;color: #fff;text-align: center;text-decoration: none;text-transform: capitalize;white-space: nowrap;cursor: pointer;background-color: #207ab7;background-image: none;background-position: none;background-repeat: none;border-color: #207ab7;border-style: solid;border-width: 1px;border-radius: 3px;outline: 0;box-shadow: none;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-button[disabled]{color: rgba(255,255,255,.5);cursor: not-allowed;background-color: #207ab7;background-image: none;border-color: #207ab7;box-shadow: none;}
|
||||
|
||||
.tox .tox-button:focus:not(:disabled){color: #fff;background-color: #1c6ca1;background-image: none;border-color: #1c6ca1;box-shadow: none;}
|
||||
|
||||
.tox .tox-button:hover:not(:disabled){color: #fff;background-color: #1c6ca1;background-image: none;border-color: #1c6ca1;box-shadow: none;}
|
||||
|
||||
.tox .tox-button:active:not(:disabled){color: #fff;background-color: #185d8c;background-image: none;border-color: #185d8c;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary{padding: 4px 16px;color: #222f3e;text-decoration: none;text-transform: capitalize;background-color: #f0f0f0;background-image: none;background-position: none;background-repeat: none;border-color: #f0f0f0;border-style: solid;border-width: 1px;border-radius: 3px;outline: 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary[disabled]{color: rgba(34,47,62,.5);background-color: #f0f0f0;background-image: none;border-color: #f0f0f0;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary:focus:not(:disabled){color: #222f3e;background-color: #e3e3e3;background-image: none;border-color: #e3e3e3;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary:hover:not(:disabled){color: #222f3e;background-color: #e3e3e3;background-image: none;border-color: #e3e3e3;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--secondary:active:not(:disabled){color: #222f3e;background-color: #d6d6d6;background-image: none;border-color: #d6d6d6;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding: 4px;}
|
||||
|
||||
.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display: block;fill: currentColor;}
|
||||
|
||||
.tox .tox-button-link{display: inline-block;padding: 0;margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 16px;font-weight: 400;line-height: 1.3;white-space: nowrap;cursor: pointer;background: 0;border: none;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-button-link--sm{font-size: 14px;}
|
||||
|
||||
.tox .tox-button--naked{color: #222f3e;background-color: transparent;border-color: transparent;box-shadow: unset;}
|
||||
|
||||
.tox .tox-button--naked:hover:not(:disabled){color: #222f3e;background-color: #e3e3e3;border-color: #e3e3e3;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--naked:focus:not(:disabled){color: #222f3e;background-color: #e3e3e3;border-color: #e3e3e3;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--naked:active:not(:disabled){color: #222f3e;background-color: #d6d6d6;border-color: #d6d6d6;box-shadow: none;}
|
||||
|
||||
.tox .tox-button--naked .tox-icon svg{fill: currentColor;}
|
||||
|
||||
.tox .tox-button--naked.tox-button--icon{color: currentColor;}
|
||||
|
||||
.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color: #222f3e;}
|
||||
|
||||
.tox .tox-checkbox{display: flex;height: 36px;min-width: 36px;cursor: pointer;border-radius: 3px;align-items: center;}
|
||||
|
||||
.tox .tox-checkbox__input{position: absolute;top: auto;left: -10000px;width: 1px;height: 1px;overflow: hidden;}
|
||||
|
||||
.tox .tox-checkbox__icons{width: 24px;height: 24px;padding: calc(4px - 1px);border-radius: 3px;box-shadow: 0 0 0 2px transparent;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display: block;fill: rgba(34,47,62,.3);}
|
||||
|
||||
.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display: none;fill: #207ab7;}
|
||||
|
||||
.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display: none;fill: #207ab7;}
|
||||
|
||||
.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display: none;}
|
||||
|
||||
.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display: block;}
|
||||
|
||||
.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display: none;}
|
||||
|
||||
.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display: block;}
|
||||
|
||||
.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{padding: calc(4px - 1px);border-radius: 3px;box-shadow: inset 0 0 0 1px #207ab7;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-checkbox__label{margin-left: 4px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-checkbox__label{margin-right: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right: 4px;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__group{display: flex;padding: 0;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__group{display: flex;max-height: 208px;padding: 0;overflow-x: hidden;overflow-y: auto;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group{padding: 4px 0;border-color: #ccc;border-style: solid;border-top-width: 1px;border-right-width: 0;border-bottom-width: 0;border-left-width: 0;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group:first-child{border-top-width: 0;}
|
||||
|
||||
.tox .tox-collection__group-heading{padding: 4px 8px;margin-top: -4px;margin-bottom: 4px;font-size: 12px;font-style: normal;font-weight: 400;color: rgba(34,47,62,.7);text-transform: none;cursor: default;background-color: #e6e6e6;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;-webkit-touch-callout: none;}
|
||||
|
||||
.tox .tox-collection__item{display: flex;color: #222f3e;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;align-items: center;-webkit-touch-callout: none;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__item{padding: 4px 8px;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__item{padding: 4px;border-radius: 3px;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__item{padding: 4px;border-radius: 3px;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__item--enabled{color: contrast(inherit,#222f3e,#fff);background-color: inherit;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color: #222f3e;background-color: #dee0e2;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__item--enabled{color: #222f3e;background-color: #c8cbcf;}
|
||||
|
||||
.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color: #222f3e;background-color: #dee0e2;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__item--enabled{color: #222f3e;background-color: #c8cbcf;}
|
||||
|
||||
.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){color: #222f3e;background-color: #dee0e2;}
|
||||
|
||||
.tox .tox-collection__item--state-disabled{color: rgba(34,47,62,.5);cursor: default;background-color: transparent;}
|
||||
|
||||
.tox .tox-collection__item-icon{display: flex;width: 24px;height: 24px;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-collection__item-icon svg{fill: currentColor;}
|
||||
|
||||
.tox .tox-collection--toolbar-lg .tox-collection__item-icon{width: 48px;height: 48px;}
|
||||
|
||||
.tox .tox-collection__item[role=menuitemcheckbox]:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display: none;}
|
||||
|
||||
.tox .tox-collection__item-label{display: inline-block;font-size: 14px;font-style: normal;font-weight: 400;line-height: 24px;color: currentColor;text-transform: none;word-break: break-all;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-collection__item-accessory{display: inline-block;height: 24px;font-size: 14px;line-height: 24px;color: rgba(34,47,62,.7);text-transform: normal;}
|
||||
|
||||
.tox .tox-collection__item-caret{align-items: center;display: flex;min-height: 24px;}
|
||||
|
||||
.tox .tox-collection__item-caret::after{min-height: inherit;font-size: 0;content: '';}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item-label:first-child{margin-left: 4px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left: 16px;text-align: right;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-collection__item-caret{margin-left: 16px;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection--list .tox-collection__item-label:first-child{margin-right: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection__item-icon-rtl .tox-collection__item-icon svg{transform: rotateY(180deg);}
|
||||
|
||||
.tox[dir=rtl] .tox-collection__item-accessory{margin-right: 16px;text-align: left;}
|
||||
|
||||
.tox[dir=rtl] .tox-collection__item-caret{margin-right: 16px;transform: rotateY(180deg);}
|
||||
|
||||
.tox .tox-color-picker-container{display: flex;flex-direction: row;height: 225px;margin: 0;}
|
||||
|
||||
.tox .tox-sv-palette{display: flex;height: 100%;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-sv-palette-spectrum{height: 100%;}
|
||||
|
||||
.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width: 225px;}
|
||||
|
||||
.tox .tox-sv-palette-thumb{position: absolute;width: 12px;height: 12px;background: 0 0;border: 1px solid #000;border-radius: 50%;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-sv-palette-inner-thumb{position: absolute;width: 10px;height: 10px;border: 1px solid #fff;border-radius: 50%;}
|
||||
|
||||
.tox .tox-hue-slider{width: 25px;height: 100%;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-hue-slider-spectrum{width: 100%;height: 100%;background: linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);}
|
||||
|
||||
.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width: 20px;}
|
||||
|
||||
.tox .tox-hue-slider-thumb{width: 100%;height: 4px;background: #fff;border: 1px solid #000;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-rgb-form{display: flex;flex-direction: column;justify-content: space-between;}
|
||||
|
||||
.tox .tox-rgb-form div{display: flex;width: inherit;margin-bottom: 5px;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-rgb-form input{width: 6em;}
|
||||
|
||||
.tox .tox-rgb-form input.tox-invalid{border: 1px solid red !important;}
|
||||
|
||||
.tox .tox-rgb-form .tox-rgba-preview{margin-bottom: 0;border: 1px solid #000;flex-grow: 2;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-sv-palette{margin-right: 15px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-hue-slider{margin-right: 15px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left: -1px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-rgb-form label{margin-right: .5em;}
|
||||
|
||||
.tox[dir=rtl] .tox-sv-palette{margin-left: 15px;}
|
||||
|
||||
.tox[dir=rtl] .tox-hue-slider{margin-left: 15px;}
|
||||
|
||||
.tox[dir=rtl] .tox-hue-slider-thumb{margin-right: -1px;}
|
||||
|
||||
.tox[dir=rtl] .tox-rgb-form label{margin-left: .5em;}
|
||||
|
||||
.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin: 2px 0 3px 4px;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{margin: -4px 0;border: 0;}
|
||||
|
||||
.tox .tox-swatches__row{display: flex;}
|
||||
|
||||
.tox .tox-swatch{width: 30px;height: 30px;transition: transform .15s,box-shadow .15s;}
|
||||
|
||||
.tox .tox-swatch:focus,.tox .tox-swatch:hover{transform: scale(.8);box-shadow: 0 0 0 1px rgba(127,127,127,.3) inset;}
|
||||
|
||||
.tox .tox-swatch--remove{align-items: center;display: flex;justify-content: center;}
|
||||
|
||||
.tox .tox-swatch--remove svg path{stroke: #e74c3c;}
|
||||
|
||||
.tox .tox-swatches__picker-btn{display: flex;width: 30px;height: 30px;padding: 0;cursor: pointer;background-color: transparent;border: 0;outline: 0;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-swatches__picker-btn svg{width: 24px;height: 24px;}
|
||||
|
||||
.tox .tox-swatches__picker-btn:hover{background: #dee0e2;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left: auto;}
|
||||
|
||||
.tox[dir=rtl] .tox-swatches__picker-btn{margin-right: auto;}
|
||||
|
||||
.tox .tox-comment-thread{position: relative;background: #fff;}
|
||||
|
||||
.tox .tox-comment-thread>:not(:first-child){margin-top: 8px;}
|
||||
|
||||
.tox .tox-comment{position: relative;padding: 8px 8px 16px 8px;background: #fff;border: 1px solid #ccc;border-radius: 3px;box-shadow: 0 4px 8px 0 rgba(34,47,62,.1);}
|
||||
|
||||
.tox .tox-comment__header{display: flex;color: #222f3e;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-comment__date{font-size: 12px;color: rgba(34,47,62,.7);}
|
||||
|
||||
.tox .tox-comment__body{position: relative;margin-top: 8px;font-size: 14px;font-style: normal;font-weight: 400;line-height: 1.3;color: #222f3e;text-transform: initial;}
|
||||
|
||||
.tox .tox-comment__body textarea{width: 100%;white-space: normal;resize: none;}
|
||||
|
||||
.tox .tox-comment__expander{padding-top: 8px;}
|
||||
|
||||
.tox .tox-comment__expander p{font-size: 14px;font-style: normal;color: rgba(34,47,62,.7);}
|
||||
|
||||
.tox .tox-comment__body p{margin: 0;}
|
||||
|
||||
.tox .tox-comment__buttonspacing{padding-top: 16px;text-align: center;}
|
||||
|
||||
.tox .tox-comment-thread__overlay::after{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 5;display: flex;background: #fff;content: "";opacity: .9;}
|
||||
|
||||
.tox .tox-comment__reply{display: flex;flex-shrink: 0;flex-wrap: wrap;justify-content: flex-end;margin-top: 8px;}
|
||||
|
||||
.tox .tox-comment__reply>:first-child{width: 100%;margin-bottom: 8px;}
|
||||
|
||||
.tox .tox-comment__edit{display: flex;flex-wrap: wrap;justify-content: flex-end;margin-top: 16px;}
|
||||
|
||||
.tox .tox-comment__gradient::after{position: absolute;bottom: 0;display: block;width: 100%;height: 5em;margin-top: -40px;background: linear-gradient(rgba(255,255,255,0),#fff);content: "";}
|
||||
|
||||
.tox .tox-comment__overlay{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 5;display: flex;text-align: center;background: #fff;opacity: .9;flex-direction: column;flex-grow: 1;}
|
||||
|
||||
.tox .tox-comment__loading-text{position: relative;display: flex;color: #222f3e;align-items: center;flex-direction: column;}
|
||||
|
||||
.tox .tox-comment__loading-text>div{padding-bottom: 16px;}
|
||||
|
||||
.tox .tox-comment__overlaytext{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 10;padding: 1em;font-size: 14px;flex-direction: column;}
|
||||
|
||||
.tox .tox-comment__overlaytext p{color: #222f3e;text-align: center;background-color: #fff;box-shadow: 0 0 8px 8px #fff;}
|
||||
|
||||
.tox .tox-comment__overlaytext div:nth-of-type(2){font-size: .8em;}
|
||||
|
||||
.tox .tox-comment__busy-spinner{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1103;display: flex;background-color: #fff;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-comment__scroll{display: flex;flex-direction: column;flex-shrink: 1;overflow: auto;}
|
||||
|
||||
.tox .tox-conversations{margin: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-comment__edit{margin-left: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-comment__edit{margin-right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right: 8px;}
|
||||
|
||||
.tox .tox-user{align-items: center;display: flex;}
|
||||
|
||||
.tox .tox-user__avatar svg{fill: rgba(34,47,62,.7);}
|
||||
|
||||
.tox .tox-user__name{font-size: 12px;font-style: normal;font-weight: 700;color: rgba(34,47,62,.7);text-transform: uppercase;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-user__avatar svg{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right: 8px;}
|
||||
|
||||
.tox .tox-dialog-wrap{position: fixed;top: 0;right: 0;bottom: 0;left: 0;z-index: 1100;display: flex;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-dialog-wrap__backdrop{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1101;background-color: rgba(255,255,255,.75);}
|
||||
|
||||
.tox .tox-dialog{position: relative;z-index: 1102;display: flex;width: 95vw;max-width: 480px;max-height: 100%;overflow: hidden;background-color: #fff;border-color: #ccc;border-style: solid;border-width: 1px;border-radius: 3px;box-shadow: 0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);flex-direction: column;}
|
||||
|
||||
.tox .tox-dialog__header{position: relative;display: flex;padding: 8px 16px 0 16px;margin-bottom: 16px;font-size: 16px;color: #222f3e;background-color: #fff;border-bottom: none;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-dialog__header .tox-button{z-index: 1;}
|
||||
|
||||
.tox .tox-dialog__draghandle{position: absolute;top: 0;left: 0;width: 100%;height: 100%;cursor: grab;}
|
||||
|
||||
.tox .tox-dialog__draghandle:active{cursor: grabbing;}
|
||||
|
||||
.tox .tox-dialog__dismiss{margin-left: auto;}
|
||||
|
||||
.tox .tox-dialog__title{margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 20px;font-style: normal;font-weight: 400;line-height: 1.3;text-transform: normal;}
|
||||
|
||||
.tox .tox-dialog__body{display: flex;min-width: 0;padding: 0 16px;font-size: 16px;font-style: normal;font-weight: 400;line-height: 1.3;color: #222f3e;text-align: left;text-transform: normal;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-nav{align-items: flex-start;display: flex;flex-direction: column;}
|
||||
|
||||
.tox .tox-dialog__body-nav-item{display: inline-block;margin-bottom: 8px;font-size: 14px;line-height: 1.3;color: rgba(34,47,62,.7);text-decoration: none;border-bottom: 2px solid transparent;}
|
||||
|
||||
.tox .tox-dialog__body-nav-item--active{color: #207ab7;border-bottom: 2px solid #207ab7;}
|
||||
|
||||
.tox .tox-dialog__body-content{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;max-height: 650px;overflow: auto;}
|
||||
|
||||
.tox .tox-dialog__body-content>*{margin-top: 16px;margin-bottom: 0;}
|
||||
|
||||
.tox .tox-dialog__body-content>:first-child{margin-top: 0;}
|
||||
|
||||
.tox .tox-dialog__body-content>:last-child{margin-bottom: 0;}
|
||||
|
||||
.tox .tox-dialog__body-content>:only-child{margin-top: 0;margin-bottom: 0;}
|
||||
|
||||
.tox .tox-dialog--width-lg{height: 650px;max-width: 1200px;}
|
||||
|
||||
.tox .tox-dialog--width-md{max-width: 800px;}
|
||||
|
||||
.tox .tox-dialog--width-md .tox-dialog__body-content{overflow: auto;}
|
||||
|
||||
.tox .tox-dialog__body-content--centered{text-align: center;}
|
||||
|
||||
.tox .tox-dialog__body-content--spacious{margin-bottom: 16px;}
|
||||
|
||||
.tox .tox-dialog__footer{display: flex;padding: 8px 16px;margin-top: 16px;background-color: #fff;border-top: 1px solid #ccc;align-items: center;justify-content: space-between;}
|
||||
|
||||
.tox .tox-dialog__busy-spinner{position: absolute;top: 0;right: 0;bottom: 0;left: 0;z-index: 1103;display: flex;background-color: rgba(255,255,255,.75);align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-dialog__table{width: 100%;border-collapse: collapse;}
|
||||
|
||||
.tox .tox-dialog__table thead th{padding-bottom: 8px;font-weight: 700;}
|
||||
|
||||
.tox .tox-dialog__table tbody tr{border-bottom: 1px solid #ccc;}
|
||||
|
||||
.tox .tox-dialog__table tbody tr:last-child{border-bottom: none;}
|
||||
|
||||
.tox .tox-dialog__table td{padding-top: 8px;padding-bottom: 8px;}
|
||||
|
||||
.tox .tox-dialog__popups{position: absolute;z-index: 1100;width: 100%;}
|
||||
|
||||
.tox .tox-dialog__body-iframe{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-iframe .tox-navobj{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex: 1;-ms-flex-preferred-size: auto;height: 100%;}
|
||||
|
||||
body.tox-dialog__disable-scroll{overflow: hidden;}
|
||||
|
||||
.tox.tox-platform-ie .tox-dialog-wrap{position: -ms-device-fixed;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right: 32px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-dialog__body{text-align: right;}
|
||||
|
||||
.tox[dir=rtl] .tox-dialog__body-nav{margin-left: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right: 8px;}
|
||||
|
||||
.tox .tox-dropzone-container{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dropzone{display: flex;min-height: 100px;padding: 10px;background: #fff;border: 2px dashed #ccc;box-sizing: border-box;align-items: center;flex-direction: column;flex-grow: 1;justify-content: center;}
|
||||
|
||||
.tox .tox-dropzone p{margin: 0 0 16px 0;color: rgba(34,47,62,.7);}
|
||||
|
||||
.tox .tox-edit-area{position: relative;display: flex;overflow: hidden;border-top: 1px solid #ccc;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-edit-area__iframe{position: absolute;width: 100%;height: 100%;background-color: #fff;border: 0;box-sizing: border-box;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox.tox-inline-edit-area{border: 1px dotted #ccc;}
|
||||
|
||||
.tox .tox-control-wrap{flex: 1;position: relative;}
|
||||
|
||||
.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display: none;}
|
||||
|
||||
.tox .tox-control-wrap svg{display: block;}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-wrap{position: absolute;top: 50%;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-invalid svg{fill: #c00;}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-unknown svg{fill: orange;}
|
||||
|
||||
.tox .tox-control-wrap__status-icon-valid svg{fill: green;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right: 32px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left: 4px;}
|
||||
|
||||
.tox .tox-autocompleter{max-width: 25em;}
|
||||
|
||||
.tox .tox-autocompleter .tox-menu{max-width: 25em;}
|
||||
|
||||
.tox .tox-color-input{display: flex;}
|
||||
|
||||
.tox .tox-color-input .tox-textfield{display: flex;border-radius: 3px 0 0 3px;}
|
||||
|
||||
.tox .tox-color-input span{display: flex;width: 35px;cursor: pointer;border-color: rgba(34,47,62,.2);border-style: solid;border-width: 1px 1px 1px 0;border-radius: 0 3px 3px 0;box-shadow: none;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-color-input span:focus{border-color: #207ab7;}
|
||||
|
||||
.tox[dir=rtl] .tox-color-input .tox-textfield{border-radius: 0 3px 3px 0;}
|
||||
|
||||
.tox[dir=rtl] .tox-color-input span{border-width: 1px 0 1px 1px;border-radius: 3px 0 0 3px;}
|
||||
|
||||
.tox .tox-label,.tox .tox-toolbar-label{display: block;padding: 0 8px 0 0;font-size: 14px;font-style: normal;font-weight: 400;line-height: 1.3;color: rgba(34,47,62,.7);text-transform: normal;white-space: nowrap;}
|
||||
|
||||
.tox .tox-toolbar-label{padding: 0 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-label{padding: 0 0 0 8px;}
|
||||
|
||||
.tox .tox-form{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group{margin-bottom: 4px;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-form__group--error{color: #c00;}
|
||||
|
||||
.tox .tox-form__group--collection{display: flex;}
|
||||
|
||||
.tox .tox-form__grid{display: flex;flex-direction: row;flex-wrap: wrap;justify-content: space-between;}
|
||||
|
||||
.tox .tox-form__grid--2col>.tox-form__group{width: calc(50% - (8px / 2));}
|
||||
|
||||
.tox .tox-form__grid--3col>.tox-form__group{width: calc(100% / 3 - (8px / 2));}
|
||||
|
||||
.tox .tox-form__grid--4col>.tox-form__group{width: calc(25% - (8px / 2));}
|
||||
|
||||
.tox .tox-form__controls-h-stack{align-items: center;display: flex;}
|
||||
|
||||
.tox .tox-form__group--inline{align-items: center;display: flex;}
|
||||
|
||||
.tox .tox-form__group--stretched{display: flex;flex: 1;flex-direction: column;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group--stretched .tox-textarea{flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group--stretched .tox-navobj{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex: 1;-ms-flex-preferred-size: auto;height: 100%;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right: 4px;}
|
||||
|
||||
.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display: none;}
|
||||
|
||||
.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield,.tox:not([dir=rtl]) .tox-selectfield select,.tox[dir=rtl] .tox-selectfield select{width: 100%;padding: 5px 4.75px;margin: 0;font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size: 16px;line-height: 24px;color: #222f3e;background-color: #fff;border-color: #ccc;border-style: solid;border-width: 1px;border-radius: 3px;outline: 0;box-shadow: none;box-sizing: border-box;resize: none;-webkit-appearance: none;-moz-appearance: none;appearance: none;}
|
||||
|
||||
.tox .tox-selectfield select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{border-color: #207ab7;outline: 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-toolbar-textfield{max-width: 250px;margin-top: 2px;margin-bottom: 3px;border-width: 0;}
|
||||
|
||||
.tox .tox-naked-btn{display: block;padding: 0;margin: 0;color: #207ab7;cursor: pointer;background-color: transparent;border: 0;border-color: transparent;box-shadow: unset;}
|
||||
|
||||
.tox .tox-naked-btn svg{display: block;fill: #222f3e;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right: 4px;}
|
||||
|
||||
.tox .tox-selectfield{position: relative;cursor: pointer;}
|
||||
|
||||
.tox .tox-selectfield select::-ms-expand{display: none;}
|
||||
|
||||
.tox .tox-selectfield svg{position: absolute;top: 50%;pointer-events: none;transform: translateY(-50%);}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-selectfield select{padding-right: 24px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-selectfield svg{right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-selectfield select{padding-left: 24px;}
|
||||
|
||||
.tox[dir=rtl] .tox-selectfield svg{left: 8px;}
|
||||
|
||||
.tox .tox-textarea{white-space: pre-wrap;-webkit-appearance: textarea;-moz-appearance: textarea;appearance: textarea;}
|
||||
|
||||
.tox-fullscreen{position: fixed;top: 0;left: 0;width: 100%;height: 100%;padding: 0;margin: 0;overflow: hidden;border: 0;}
|
||||
|
||||
.tox-fullscreen .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display: none;}
|
||||
|
||||
.tox-fullscreen .tox.tox-tinymce.tox-fullscreen{z-index: 1200;}
|
||||
|
||||
.tox-fullscreen .tox.tox-tinymce-aux{z-index: 1201;}
|
||||
|
||||
.tox .tox-image-tools{width: 100%;}
|
||||
|
||||
.tox .tox-image-tools__toolbar{align-items: center;display: flex;justify-content: center;}
|
||||
|
||||
.tox .tox-image-tools__image{position: relative;width: 100%;height: 380px;overflow: auto;background-color: #666;}
|
||||
|
||||
.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top: 8px;}
|
||||
|
||||
.tox .tox-image-tools__image-bg{background: url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==);}
|
||||
|
||||
.tox .tox-image-tools__toolbar>.tox-spacer{flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-croprect-block{position: absolute;background: #000;opacity: .5;zoom: 1;}
|
||||
|
||||
.tox .tox-croprect-handle{position: absolute;top: 0;left: 0;width: 20px;height: 20px;border: 2px solid #fff;}
|
||||
|
||||
.tox .tox-croprect-handle-move{position: absolute;cursor: move;border: 0;}
|
||||
|
||||
.tox .tox-croprect-handle-nw{top: 100px;left: 100px;margin: -2px 0 0 -2px;cursor: nw-resize;border-width: 2px 0 0 2px;}
|
||||
|
||||
.tox .tox-croprect-handle-ne{top: 100px;left: 200px;margin: -2px 0 0 -20px;cursor: ne-resize;border-width: 2px 2px 0 0;}
|
||||
|
||||
.tox .tox-croprect-handle-sw{top: 200px;left: 100px;margin: -20px 2px 0 -2px;cursor: sw-resize;border-width: 0 0 2px 2px;}
|
||||
|
||||
.tox .tox-croprect-handle-se{top: 200px;left: 200px;margin: -20px 0 0 -20px;cursor: se-resize;border-width: 0 2px 2px 0;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left: 8px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left: 32px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right: 8px;}
|
||||
|
||||
.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right: 32px;}
|
||||
|
||||
.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right: 32px;}
|
||||
|
||||
.tox .tox-insert-table-picker{display: flex;flex-wrap: wrap;width: 169px;}
|
||||
|
||||
.tox .tox-insert-table-picker>div{width: 16px;height: 16px;border-color: #ccc;border-style: solid;border-width: 0 1px 1px 0;box-sizing: content-box;}
|
||||
|
||||
.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin: -4px 0;}
|
||||
|
||||
.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color: rgba(32,122,183,.5);border-color: rgba(32,122,183,.5);}
|
||||
|
||||
.tox .tox-insert-table-picker__label{display: block;width: 100%;padding: 4px;font-size: 14px;color: rgba(34,47,62,.7);text-align: center;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right: 0;}
|
||||
|
||||
.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right: 0;}
|
||||
|
||||
.tox .tox-menu{z-index: 1;display: inline-block;overflow: hidden;vertical-align: top;background-color: #fff;border: 1px solid #ccc;border-radius: 3px;box-shadow: 0 4px 8px 0 rgba(34,47,62,.1);}
|
||||
|
||||
.tox .tox-menu.tox-collection.tox-collection--list{padding: 0;}
|
||||
|
||||
.tox .tox-menu.tox-collection.tox-collection--toolbar{padding: 4px;}
|
||||
|
||||
.tox .tox-menu.tox-collection.tox-collection--grid{padding: 4px;}
|
||||
|
||||
.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin: 0;}
|
||||
|
||||
.tox .tox-menubar{display: flex;padding: 0 4px;margin-bottom: -1px;background: url("data:image/svg+xml;charset=utf8,%3Csvg height='43px' viewBox='0 0 40 43px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='42px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color: #fff;flex: 0 0 auto;flex-shrink: 0;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-mbtn{display: flex;width: auto;height: 34px;padding: 0 4px;margin: 2px 0 3px 0;overflow: hidden;font-size: 14px;font-style: normal;font-weight: 400;color: #222f3e;text-transform: normal;background: 0 0;border: 0;border-radius: 3px;outline: 0;box-shadow: none;align-items: center;flex: 0 0 auto;justify-content: center;}
|
||||
|
||||
.tox .tox-mbtn[disabled]{color: rgba(34,47,62,.5);cursor: not-allowed;background-color: none;border-color: none;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn:hover:not(:disabled){color: #222f3e;background: #dee0e2;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn:focus:not(:disabled){color: #222f3e;background: #dee0e2;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn--active{color: #222f3e;background: #c8cbcf;box-shadow: none;}
|
||||
|
||||
.tox .tox-mbtn__select-label{margin: 0 4px;font-weight: 400;cursor: default;}
|
||||
|
||||
.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor: not-allowed;}
|
||||
|
||||
.tox .tox-mbtn__select-chevron{display: flex;display: none;width: 16px;align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-notification{display: grid;padding: 5px;margin-top: 5px;background-color: #fffaea;border-color: #ffe89d;border-style: solid;border-width: 1px;opacity: 0;box-sizing: border-box;transition: transform .1s ease-in,opacity 150ms ease-in;grid-template-columns: minmax(40px,1fr) auto minmax(40px,1fr);}
|
||||
|
||||
.tox .tox-notification--in{opacity: 1;}
|
||||
|
||||
.tox .tox-notification--success{background-color: #dff0d8;border-color: #d6e9c6;}
|
||||
|
||||
.tox .tox-notification--error{background-color: #f2dede;border-color: #ebccd1;}
|
||||
|
||||
.tox .tox-notification--warn{background-color: #fcf8e3;border-color: #faebcc;}
|
||||
|
||||
.tox .tox-notification--info{background-color: #d9edf7;border-color: #779ecb;}
|
||||
|
||||
.tox .tox-notification__body{font-size: 14px;color: #222f3e;text-align: center;word-break: break-all;word-break: break-word;white-space: normal;align-self: center;grid-column-end: 3;-ms-grid-column-span: 1;grid-column-start: 2;grid-row-end: 2;grid-row-start: 1;}
|
||||
|
||||
.tox .tox-notification__body>*{margin: 0;}
|
||||
|
||||
.tox .tox-notification__body>*+*{margin-top: 1rem;}
|
||||
|
||||
.tox .tox-notification__icon{align-self: center;-ms-grid-column-align: end;grid-column-end: 2;-ms-grid-column-span: 1;grid-column-start: 1;grid-row-end: 2;grid-row-start: 1;justify-self: end;}
|
||||
|
||||
.tox .tox-notification__icon svg{display: block;}
|
||||
|
||||
.tox .tox-notification__dismiss{align-self: start;-ms-grid-column-align: end;grid-column-end: 4;-ms-grid-column-span: 1;grid-column-start: 3;grid-row-end: 2;grid-row-start: 1;justify-self: end;}
|
||||
|
||||
.tox .tox-notification .tox-progress-bar{-ms-grid-column-align: center;grid-column-end: 4;-ms-grid-column-span: 3;grid-column-start: 1;grid-row-end: 3;-ms-grid-row-span: 1;grid-row-start: 2;justify-self: center;}
|
||||
|
||||
.tox .tox-pop{position: relative;display: inline-block;}
|
||||
|
||||
.tox .tox-pop--resizing{transition: width .1s ease;}
|
||||
|
||||
.tox .tox-pop--resizing .tox-toolbar{flex-wrap: nowrap;}
|
||||
|
||||
.tox .tox-pop__dialog{min-width: 0;overflow: hidden;background-color: #fff;border: 1px solid #ccc;border-radius: 3px;box-shadow: 0 1px 3px rgba(0,0,0,.15);}
|
||||
|
||||
.tox .tox-pop__dialog>:not(.tox-toolbar){margin: 4px 4px 4px 8px;}
|
||||
|
||||
.tox .tox-pop__dialog .tox-toolbar{background-color: transparent;}
|
||||
|
||||
.tox .tox-pop::after,.tox .tox-pop::before{position: absolute;display: block;width: 0;height: 0;border-style: solid;content: '';}
|
||||
|
||||
.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{top: 100%;left: 50%;}
|
||||
|
||||
.tox .tox-pop.tox-pop--bottom::after{margin-top: -1px;margin-left: -8px;border-color: #fff transparent transparent transparent;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--bottom::before{margin-left: -9px;border-color: #ccc transparent transparent transparent;border-width: 9px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{top: 0;left: 50%;transform: translateY(-100%);}
|
||||
|
||||
.tox .tox-pop.tox-pop--top::after{margin-top: 1px;margin-left: -8px;border-color: transparent transparent #fff transparent;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--top::before{margin-left: -9px;border-color: transparent transparent #ccc transparent;border-width: 9px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{top: calc(50% - 1px);left: 0;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-pop.tox-pop--left::after{margin-left: -15px;border-color: transparent #fff transparent transparent;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--left::before{margin-left: -19px;border-color: transparent #ccc transparent transparent;border-width: 10px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{top: calc(50% + 1px);left: 100%;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-pop.tox-pop--right::after{margin-left: -1px;border-color: transparent transparent transparent #fff;border-width: 8px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--right::before{margin-left: -1px;border-color: transparent transparent transparent #ccc;border-width: 10px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left: 20px;}
|
||||
|
||||
.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left: calc(100% - 20px);}
|
||||
|
||||
.tox .tox-sidebar-wrap{display: flex;flex-direction: row;flex-grow: 1;min-height: 0;}
|
||||
|
||||
.tox .tox-sidebar{display: flex;flex-direction: row;justify-content: flex-end;}
|
||||
|
||||
.tox .tox-sidebar__slider{display: flex;overflow: hidden;}
|
||||
|
||||
.tox .tox-sidebar__pane-container{display: flex;}
|
||||
|
||||
.tox .tox-sidebar__pane{display: flex;}
|
||||
|
||||
.tox .tox-sidebar--sliding-closed{opacity: 0;}
|
||||
|
||||
.tox .tox-sidebar--sliding-open{opacity: 1;}
|
||||
|
||||
.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition: width .5s ease,opacity .5s ease;}
|
||||
|
||||
.tox .tox-slider{position: relative;display: flex;height: 24px;align-items: center;flex: 1;-ms-flex-preferred-size: auto;justify-content: center;}
|
||||
|
||||
.tox .tox-slider__rail{width: 100%;height: 10px;min-width: 120px;background-color: transparent;border: 1px solid #ccc;border-radius: 3px;}
|
||||
|
||||
.tox .tox-slider__handle{position: absolute;top: 50%;left: 50%;width: 14px;height: 24px;background-color: #207ab7;border: 2px solid #185d8c;border-radius: 3px;transform: translateX(-50%) translateY(-50%);box-shadow: none;}
|
||||
|
||||
.tox .tox-source-code{overflow: auto;}
|
||||
|
||||
.tox .tox-spinner{display: flex;}
|
||||
|
||||
.tox .tox-spinner>div{width: 8px;height: 8px;background-color: rgba(34,47,62,.7);border-radius: 100%;animation: tam-bouncing-dots 1.5s ease-in-out 0s infinite both;}
|
||||
|
||||
.tox .tox-spinner>div:nth-child(1){animation-delay: -.32s;}
|
||||
|
||||
.tox .tox-spinner>div:nth-child(2){animation-delay: -.16s;}@keyframes tam-bouncing-dots{0%,100%,80%{transform: scale(0);}
|
||||
|
||||
40%{transform: scale(1);}}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right: 4px;}
|
||||
|
||||
.tox .tox-statusbar{position: relative;display: flex;height: 18px;padding: 0 8px;overflow: hidden;font-size: 12px;color: rgba(34,47,62,.7);text-transform: uppercase;background-color: #fff;border-top: 1px solid #ccc;align-items: center;flex: 0 0 auto;}
|
||||
|
||||
.tox .tox-statusbar a{color: rgba(34,47,62,.7);text-decoration: none;}
|
||||
|
||||
.tox .tox-statusbar a:hover{text-decoration: underline;}
|
||||
|
||||
.tox .tox-statusbar__text-container{display: flex;flex: 1 1 auto;justify-content: flex-end;overflow: hidden;}
|
||||
|
||||
.tox .tox-statusbar__path{display: flex;flex: 1 1 auto;margin-right: auto;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
|
||||
|
||||
.tox .tox-statusbar__path>*{display: inline;white-space: nowrap;}
|
||||
|
||||
.tox .tox-statusbar__wordcount{flex: 0 0 auto;margin-left: 1ch;}
|
||||
|
||||
.tox .tox-statusbar__resize-handle{display: flex;padding-left: 1ch;margin-right: -8px;margin-left: auto;cursor: nwse-resize;align-items: flex-end;align-self: stretch;flex: 0 0 auto;justify-content: flex-end;}
|
||||
|
||||
.tox .tox-statusbar__resize-handle svg{display: block;fill: rgba(34,47,62,.7);}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right: 4px;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left: 1ch;}
|
||||
|
||||
.tox[dir=rtl] .tox-statusbar{flex-direction: row-reverse;}
|
||||
|
||||
.tox[dir=rtl] .tox-statusbar__path>*{margin-left: 4px;}
|
||||
|
||||
.tox .tox-throbber{z-index: 1400;}
|
||||
|
||||
.tox .tox-throbber__busy-spinner{position: absolute;top: 0;right: 0;bottom: 0;left: 0;display: flex;background-color: rgba(255,255,255,.6);align-items: center;justify-content: center;}
|
||||
|
||||
.tox .tox-tbtn{display: flex;width: 34px;height: 34px;padding: 0;margin: 2px 0 3px 0;overflow: hidden;font-size: 14px;font-style: normal;font-weight: 400;color: #222f3e;text-transform: normal;background: 0 0;border: 0;border-radius: 3px;outline: 0;box-shadow: none;align-items: center;flex: 0 0 auto;justify-content: center;}
|
||||
|
||||
.tox .tox-tbtn svg{display: block;fill: #222f3e;}
|
||||
|
||||
.tox .tox-tbtn.tox-tbtn-more{width: inherit;padding-right: 5px;padding-left: 5px;}
|
||||
|
||||
.tox .tox-tbtn--enabled{color: #222f3e;background: #c8cbcf;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn--enabled>*{transform: none;}
|
||||
|
||||
.tox .tox-tbtn--enabled svg{fill: #222f3e;}
|
||||
|
||||
.tox .tox-tbtn:hover{color: #222f3e;background: #dee0e2;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn:hover svg{fill: #222f3e;}
|
||||
|
||||
.tox .tox-tbtn:focus{color: #222f3e;background: #dee0e2;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn:focus svg{fill: #222f3e;}
|
||||
|
||||
.tox .tox-tbtn:active{color: #222f3e;background: #c8cbcf;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn:active svg{fill: #222f3e;}
|
||||
|
||||
.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{color: rgba(34,47,62,.5);cursor: not-allowed;background: 0 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill: rgba(34,47,62,.5);}
|
||||
|
||||
.tox .tox-tbtn:active>*{transform: none;}
|
||||
|
||||
.tox .tox-tbtn--md{width: 51px;height: 51px;}
|
||||
|
||||
.tox .tox-tbtn--lg{width: 68px;height: 68px;flex-direction: column;}
|
||||
|
||||
.tox .tox-tbtn--return{width: 16px;height: unset;align-self: stretch;}
|
||||
|
||||
.tox .tox-tbtn--labeled{width: unset;padding: 0 4px;}
|
||||
|
||||
.tox .tox-tbtn__vlabel{display: block;margin-bottom: 4px;font-size: 10px;font-weight: 400;letter-spacing: -.025em;white-space: nowrap;}
|
||||
|
||||
.tox .tox-tbtn--select{width: auto;padding: 0 4px;margin: 2px 0 3px 0;}
|
||||
|
||||
.tox .tox-tbtn__select-label{margin: 0 4px;font-weight: 400;cursor: default;}
|
||||
|
||||
.tox .tox-tbtn__select-chevron{align-items: center;display: flex;justify-content: center;width: 16px;}
|
||||
|
||||
.tox .tox-tbtn__select-chevron svg{fill: rgba(34,47,62,.7);}
|
||||
|
||||
.tox .tox-tbtn--bespoke .tox-tbtn__select-label{width: 7em;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
|
||||
|
||||
.tox .tox-split-button{display: flex;margin: 2px 0 3px 0;overflow: hidden;border: 0;border-radius: 3px;box-sizing: border-box;}
|
||||
|
||||
.tox .tox-split-button:hover{box-shadow: 0 0 0 1px #dee0e2 inset;}
|
||||
|
||||
.tox .tox-split-button:focus{color: #222f3e;background: #dee0e2;box-shadow: none;}
|
||||
|
||||
.tox .tox-split-button>*{border-radius: 0;}
|
||||
|
||||
.tox .tox-split-button__chevron{width: 16px;}
|
||||
|
||||
.tox .tox-split-button__chevron svg{fill: rgba(34,47,62,.7);}
|
||||
|
||||
.tox .tox-pop .tox-split-button__chevron svg{transform: rotate(-90deg);}
|
||||
|
||||
.tox .tox-split-button .tox-tbtn{margin: 0;}
|
||||
|
||||
.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{color: rgba(34,47,62,.5);background: 0 0;box-shadow: none;}
|
||||
|
||||
.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{display: flex;padding: 0 0;margin-bottom: -1px;background: url("data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E") left 0 top 0 #fff;background-color: #fff;border-top: 1px solid #ccc;flex: 0 0 auto;flex-shrink: 0;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height: 0;opacity: 0;visibility: hidden;}
|
||||
|
||||
.tox .tox-toolbar__overflow--growing{transition: height .3s ease,opacity .2s linear .1s;}
|
||||
|
||||
.tox .tox-toolbar__overflow--shrinking{transition: opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s;}
|
||||
|
||||
.tox .tox-pop .tox-toolbar{border-width: 0;}
|
||||
|
||||
.tox .tox-toolbar--no-divider{background-image: none;}
|
||||
|
||||
.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color: #fff;border: 1px solid #ccc;border-radius: 3px;box-shadow: 0 1px 3px rgba(0,0,0,.15);}
|
||||
|
||||
.tox.tox-tinymce-aux:not([dir=rtl]) .tox-toolbar__overflow{margin-left: 4px;}
|
||||
|
||||
.tox[dir=rtl] .tox-tbtn__icon-rtl svg{transform: rotateY(180deg);}
|
||||
|
||||
.tox[dir=rtl].tox-tinymce-aux .tox-toolbar__overflow{margin-right: 4px;}
|
||||
|
||||
.tox .tox-toolbar__group{display: flex;padding: 0 4px;margin: 0 0;align-items: center;flex-wrap: wrap;}
|
||||
|
||||
.tox .tox-toolbar__group--pull-right{margin-left: auto;}
|
||||
|
||||
.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right: 1px solid #ccc;}
|
||||
|
||||
.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left: 1px solid #ccc;}
|
||||
|
||||
.tox .tox-tooltip{position: relative;display: inline-block;padding: 8px;}
|
||||
|
||||
.tox .tox-tooltip__body{padding: 4px 8px;font-size: 14px;font-style: normal;font-weight: 400;color: rgba(255,255,255,.75);text-transform: normal;background-color: #222f3e;border-radius: 3px;box-shadow: 0 2px 4px rgba(34,47,62,.3);}
|
||||
|
||||
.tox .tox-tooltip__arrow{position: absolute;}
|
||||
|
||||
.tox .tox-tooltip--down .tox-tooltip__arrow{position: absolute;bottom: 0;left: 50%;border-top: 8px solid #222f3e;border-right: 8px solid transparent;border-left: 8px solid transparent;transform: translateX(-50%);}
|
||||
|
||||
.tox .tox-tooltip--up .tox-tooltip__arrow{position: absolute;top: 0;left: 50%;border-right: 8px solid transparent;border-bottom: 8px solid #222f3e;border-left: 8px solid transparent;transform: translateX(-50%);}
|
||||
|
||||
.tox .tox-tooltip--right .tox-tooltip__arrow{position: absolute;top: 50%;right: 0;border-top: 8px solid transparent;border-bottom: 8px solid transparent;border-left: 8px solid #222f3e;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-tooltip--left .tox-tooltip__arrow{position: absolute;top: 50%;left: 0;border-top: 8px solid transparent;border-right: 8px solid #222f3e;border-bottom: 8px solid transparent;transform: translateY(-50%);}
|
||||
|
||||
.tox .tox-well{width: 100%;padding: 8px;border: 1px solid #ccc;border-radius: 3px;}
|
||||
|
||||
.tox .tox-well>:first-child{margin-top: 0;}
|
||||
|
||||
.tox .tox-well>:last-child{margin-bottom: 0;}
|
||||
|
||||
.tox .tox-well>:only-child{margin: 0;}
|
||||
|
||||
.tox .tox-custom-editor{display: flex;height: 525px;border: 1px solid #ccc;border-radius: 3px;}
|
||||
|
||||
.tox .tox-dialog-loading::before{position: absolute;z-index: 1000;width: 100%;height: 100%;background-color: rgba(0,0,0,.5);content: "";}
|
||||
|
||||
.tox .tox-tab{cursor: pointer;}
|
||||
|
||||
.tox .tox-dialog__content-js{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox .tox-dialog__body-content .tox-collection{display: flex;flex: 1;-ms-flex-preferred-size: auto;}
|
||||
|
||||
.tox ul{display: block;list-style-type: disc;-webkit-margin-before: 1em;margin-block-start: 1em;-webkit-margin-after: 1em;margin-block-end: 1em;-webkit-margin-start: 0;margin-inline-start: 0;-webkit-margin-end: 0;margin-inline-end: 0;-webkit-padding-start: 40px;padding-inline-start: 40px;}
|
||||
|
||||
.tox a{color: #2276d2;cursor: pointer;}
|
||||
|
||||
.tox .tox-image-tools-edit-panel{height: 60px;}
|
||||
|
||||
.tox .tox-image-tools__sidebar{height: 60px;}
|
239
public/resource/tinymce/skins/ui/oxide/skin.mobile.min.css
vendored
Normal file
239
public/resource/tinymce/skins/ui/oxide/skin.mobile.min.css
vendored
Normal file
@@ -0,0 +1,239 @@
|
||||
/**
|
||||
* Copyright (c) Tiny Technologies, Inc. All rights reserved.
|
||||
* Licensed under the LGPL or a commercial license.
|
||||
* For LGPL see License.txt in the project root for license information.
|
||||
* For commercial licenses see https://www.tiny.cloud/
|
||||
*/
|
||||
.tinymce-mobile-outer-container{all: initial;display: block;}
|
||||
|
||||
.tinymce-mobile-outer-container *{float: none;padding: 0;margin: 0;line-height: 1;text-shadow: none;white-space: nowrap;cursor: inherit;border: 0;outline: 0;box-sizing: initial;-webkit-tap-highlight-color: transparent;}
|
||||
|
||||
.tinymce-mobile-icon-arrow-back::before{content: "\e5cd";}
|
||||
|
||||
.tinymce-mobile-icon-image::before{content: "\e412";}
|
||||
|
||||
.tinymce-mobile-icon-cancel-circle::before{content: "\e5c9";}
|
||||
|
||||
.tinymce-mobile-icon-full-dot::before{content: "\e061";}
|
||||
|
||||
.tinymce-mobile-icon-align-center::before{content: "\e234";}
|
||||
|
||||
.tinymce-mobile-icon-align-left::before{content: "\e236";}
|
||||
|
||||
.tinymce-mobile-icon-align-right::before{content: "\e237";}
|
||||
|
||||
.tinymce-mobile-icon-bold::before{content: "\e238";}
|
||||
|
||||
.tinymce-mobile-icon-italic::before{content: "\e23f";}
|
||||
|
||||
.tinymce-mobile-icon-unordered-list::before{content: "\e241";}
|
||||
|
||||
.tinymce-mobile-icon-ordered-list::before{content: "\e242";}
|
||||
|
||||
.tinymce-mobile-icon-font-size::before{content: "\e245";}
|
||||
|
||||
.tinymce-mobile-icon-underline::before{content: "\e249";}
|
||||
|
||||
.tinymce-mobile-icon-link::before{content: "\e157";}
|
||||
|
||||
.tinymce-mobile-icon-unlink::before{content: "\eca2";}
|
||||
|
||||
.tinymce-mobile-icon-color::before{content: "\e891";}
|
||||
|
||||
.tinymce-mobile-icon-previous::before{content: "\e314";}
|
||||
|
||||
.tinymce-mobile-icon-next::before{content: "\e315";}
|
||||
|
||||
.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content: "\e264";}
|
||||
|
||||
.tinymce-mobile-icon-undo::before{content: "\e166";}
|
||||
|
||||
.tinymce-mobile-icon-redo::before{content: "\e15a";}
|
||||
|
||||
.tinymce-mobile-icon-removeformat::before{content: "\e239";}
|
||||
|
||||
.tinymce-mobile-icon-small-font::before{content: "\e906";}
|
||||
|
||||
.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content: "\e5ca";}
|
||||
|
||||
.tinymce-mobile-icon-small-heading::before{content: "small";}
|
||||
|
||||
.tinymce-mobile-icon-large-heading::before{content: "large";}
|
||||
|
||||
.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family: sans-serif;font-size: 80%;}
|
||||
|
||||
.tinymce-mobile-mask-edit-icon::before{content: "\e254";}
|
||||
|
||||
.tinymce-mobile-icon-back::before{content: "\e5c4";}
|
||||
|
||||
.tinymce-mobile-icon-heading::before{font-family: sans-serif;font-size: 80%;font-weight: 700;content: "Headings";}
|
||||
|
||||
.tinymce-mobile-icon-h1::before{font-weight: 700;content: "H1";}
|
||||
|
||||
.tinymce-mobile-icon-h2::before{font-weight: 700;content: "H2";}
|
||||
|
||||
.tinymce-mobile-icon-h3::before{font-weight: 700;content: "H3";}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{position: absolute;top: 0;display: flex;width: 100%;height: 100%;background: rgba(51,51,51,.5);align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{display: flex;font-family: sans-serif;font-size: 1em;border-radius: 50%;align-items: center;flex-direction: column;justify-content: space-between;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{display: flex;width: 2.1em;height: 2.1em;border-radius: 50%;align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items: center;display: flex;justify-content: center;flex-direction: column;font-size: 1em;}@media only screen and (min-device-width: 700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size: 1.2em;}}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{display: flex;width: 2.1em;height: 2.1em;color: #207ab7;background-color: #fff;border-radius: 50%;align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{font-family: tinymce-mobile,sans-serif;content: "\e900";}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index: 2;}
|
||||
|
||||
.tinymce-mobile-android-container.tinymce-mobile-android-maximized{position: fixed;top: 0;right: 0;bottom: 0;left: 0;display: flex;background: #fff;border: none;flex-direction: column;}
|
||||
|
||||
.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position: relative;}
|
||||
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display: flex;flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display: flex !important;flex-grow: 1;height: auto !important;}
|
||||
|
||||
.tinymce-mobile-android-scroll-reload{overflow: hidden;}
|
||||
|
||||
:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top: 23px;}
|
||||
|
||||
.tinymce-mobile-toolstrip{z-index: 1;display: flex;background: #fff;flex: 0 0 auto;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{display: flex;width: 100%;height: 2.5em;background-color: #fff;border-bottom: 1px solid #ccc;align-items: center;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items: center;display: flex;height: 100%;flex-shrink: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items: center;display: flex;height: 100%;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background: #f44336;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-right: .5em;padding-left: .5em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{display: flex;height: 80%;margin-right: 2px;margin-left: 2px;align-items: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{color: #ccc;background: #c8cbcf;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{color: #eceff1;background: #207ab7;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{display: flex;height: 100%;padding-top: .4em;padding-bottom: .4em;align-items: center;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{position: relative;display: flex;width: 100%;min-height: 1.5em;padding-right: 0;padding-left: 0;overflow: hidden;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display: flex;width: 100%;height: 100%;transition: left cubic-bezier(.4,0,1,1) .15s;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display: flex;flex: 0 0 auto;justify-content: space-between;width: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family: sans-serif;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{position: relative;display: flex;flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{position: absolute;right: 0;height: 100%;padding-right: 2px;font-size: .6em;font-weight: 700;color: #888;background: inherit;border: none;border-radius: 50%;align-self: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display: none;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items: center;display: flex;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{display: flex;height: 100%;padding-right: .5em;padding-left: .5em;font-weight: 700;align-items: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility: hidden;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{padding-top: 3px;margin: 0 2px;font-size: 10px;line-height: 10px;color: #ccc;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color: #c8cbcf;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-right: .9em;margin-left: .5em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-right: .5em;margin-left: .9em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{position: relative;display: flex;padding: .28em 0;margin-right: 0;margin-left: 0;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items: center;display: flex;flex-grow: 1;height: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{display: flex;height: .2em;margin-top: .3em;margin-bottom: .3em;background: #ccc;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-right: 2em;padding-left: 2em;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items: center;display: flex;flex-grow: 1;height: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{display: flex;height: .2em;margin-top: .3em;margin-bottom: .3em;background: linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{width: 1.2em;height: .2em;margin-top: .3em;margin-bottom: .3em;background: #000;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{width: 1.2em;height: .2em;margin-top: .3em;margin-bottom: .3em;background: #fff;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{position: absolute;top: 0;bottom: 0;left: -10px;display: flex;width: .5em;height: .5em;margin: auto;color: #fff;background-color: #455a64;border: .5em solid rgba(136,136,136,0);border-radius: 3em;transition: border 120ms cubic-bezier(.39,.58,.57,1);background-clip: padding-box;align-items: center;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border: .5em solid rgba(136,136,136,.39);}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items: center;display: flex;height: 100%;flex: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction: column;justify-content: center;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items: center;display: flex;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height: 100%;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display: flex;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{padding-top: .1em;padding-bottom: .1em;padding-left: 5px;font-size: .85em;color: #455a64;background: #fff;border: none;border-radius: 0;flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color: #888;}
|
||||
|
||||
.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color: #888;}
|
||||
|
||||
.tinymce-mobile-dropup{display: flex;width: 100%;overflow: hidden;background: #fff;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition: height .3s ease-out;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition: height .3s ease-in;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow: 0;}
|
||||
|
||||
.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow: 1;}
|
||||
|
||||
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height: 200px;}@media only screen and (orientation: landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height: 200px;}}@media only screen and (min-device-width: 320px) and (max-device-width: 568px) and (orientation: landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height: 150px;}}
|
||||
|
||||
.tinymce-mobile-styles-menu{position: relative;width: 100%;overflow: hidden;font-family: sans-serif;outline: 4px solid #000;}
|
||||
|
||||
.tinymce-mobile-styles-menu [role=menu]{position: absolute;display: flex;width: 100%;height: 100%;flex-direction: column;}
|
||||
|
||||
.tinymce-mobile-styles-menu [role=menu].transitioning{transition: transform .5s ease-in-out;}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{position: relative;display: flex;padding: 1em 1em;color: #455a64;cursor: pointer;border-bottom: 1px solid #ddd;}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{font-family: tinymce-mobile,sans-serif;color: #455a64;content: "\e314";}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{position: absolute;right: 0;padding-right: 1em;padding-left: 1em;font-family: tinymce-mobile,sans-serif;color: #455a64;content: "\e315";}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{position: absolute;right: 0;padding-right: 1em;padding-left: 1em;font-family: tinymce-mobile,sans-serif;}
|
||||
|
||||
.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{display: flex;min-height: 2.5em;padding-right: 1em;padding-left: 1em;color: #455a64;background: #fff;border-top: #455a64;align-items: center;}
|
||||
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform: translate(-100%);}
|
||||
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform: translate(0);}
|
||||
|
||||
.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform: translate(100%);}@font-face{font-family: tinymce-mobile;font-style: normal;font-weight: 400;src: url(fonts/tinymce-mobile.woff?8x92w3) format('woff');}@media (min-device-width: 700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size: 25px;}}@media (max-device-width: 700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size: 18px;}}
|
||||
|
||||
.tinymce-mobile-icon{font-family: tinymce-mobile,sans-serif;}
|
||||
|
||||
.mixin-flex-and-centre{align-items: center;display: flex;justify-content: center;}
|
||||
|
||||
.mixin-flex-bar{align-items: center;display: flex;height: 100%;}
|
||||
|
||||
.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{width: 100%;background-color: #fff;}
|
||||
|
||||
.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{position: fixed;right: 2em;bottom: 1em;display: flex;width: 2.1em;height: 2.1em;font-size: 1em;color: #fff;background-color: #207ab7;border-radius: 50%;align-items: center;justify-content: center;}@media only screen and (min-device-width: 700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size: 1.2em;}}
|
||||
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height: 300px;overflow: hidden;}
|
||||
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height: 100%;}
|
||||
|
||||
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display: none;}
|
||||
|
||||
input[type=file]::-webkit-file-upload-button{display: none;}@media only screen and (min-device-width: 320px) and (max-device-width: 568px) and (orientation: landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom: 50%;}}
|
22
src/App.vue
22
src/App.vue
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<ConfigProvider v-bind="lockEvent" :locale="antConfigLocale">
|
||||
<ConfigProvider :locale="getAntdLocale">
|
||||
<AppProvider>
|
||||
<RouterView />
|
||||
</AppProvider>
|
||||
@@ -10,29 +10,19 @@
|
||||
import { defineComponent } from 'vue';
|
||||
import { ConfigProvider } from 'ant-design-vue';
|
||||
import { AppProvider } from '/@/components/Application';
|
||||
|
||||
import { initAppConfigStore } from '/@/logics/initAppConfig';
|
||||
|
||||
import { useLockPage } from '/@/hooks/web/useLockPage';
|
||||
import { useTitle } from '/@/hooks/web/useTitle';
|
||||
import { useLocale } from '/@/locales/useLocale';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'App',
|
||||
components: { ConfigProvider, AppProvider },
|
||||
setup() {
|
||||
useTitle();
|
||||
|
||||
// support Multi-language
|
||||
const { antConfigLocale, setLocale } = useLocale();
|
||||
setLocale();
|
||||
const { getAntdLocale } = useLocale();
|
||||
|
||||
// Initialize vuex internal system configuration
|
||||
initAppConfigStore();
|
||||
// Create a lock screen monitor
|
||||
const lockEvent = useLockPage();
|
||||
|
||||
return {
|
||||
antConfigLocale,
|
||||
lockEvent,
|
||||
};
|
||||
return { getAntdLocale };
|
||||
},
|
||||
});
|
||||
</script>
|
||||
|
@@ -3,12 +3,11 @@ import { GetAccountInfoModel } from './model/accountModel';
|
||||
|
||||
enum Api {
|
||||
ACCOUNT_INFO = '/account/getAccountInfo',
|
||||
SESSION_TIMEOUT = '/user/sessionTimeout',
|
||||
}
|
||||
|
||||
// Get personal center-basic settings
|
||||
export function accountInfoApi() {
|
||||
return defHttp.request<GetAccountInfoModel>({
|
||||
url: Api.ACCOUNT_INFO,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
export const accountInfoApi = () => defHttp.get<GetAccountInfoModel>({ url: Api.ACCOUNT_INFO });
|
||||
|
||||
export const sessionTimeoutApi = () => defHttp.post<void>({ url: Api.SESSION_TIMEOUT });
|
||||
|
@@ -8,9 +8,5 @@ enum Api {
|
||||
/**
|
||||
* @description: Trigger ajax error
|
||||
*/
|
||||
export function fireErrorApi() {
|
||||
return defHttp.request({
|
||||
url: Api.Error,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
export const fireErrorApi = () => defHttp.get({ url: Api.Error });
|
||||
|
@@ -5,7 +5,11 @@ export interface DemoOptionsItem {
|
||||
value: string;
|
||||
}
|
||||
|
||||
export interface selectParams {
|
||||
id: number | string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Request list return value
|
||||
*/
|
||||
export type DemoOptionsGetResultModel = BasicFetchResult<DemoOptionsItem[]>;
|
||||
export type DemoOptionsGetResultModel = BasicFetchResult<DemoOptionsItem>;
|
||||
|
74
src/api/demo/model/systemModel.ts
Normal file
74
src/api/demo/model/systemModel.ts
Normal file
@@ -0,0 +1,74 @@
|
||||
import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
|
||||
|
||||
export type AccountParams = BasicPageParams & {
|
||||
account?: string;
|
||||
nickname?: string;
|
||||
};
|
||||
|
||||
export type RoleParams = {
|
||||
roleName?: string;
|
||||
status?: string;
|
||||
};
|
||||
|
||||
export type RolePageParams = BasicPageParams & RoleParams;
|
||||
|
||||
export type DeptParams = {
|
||||
deptName?: string;
|
||||
status?: string;
|
||||
};
|
||||
|
||||
export type MenuParams = {
|
||||
menuName?: string;
|
||||
status?: string;
|
||||
};
|
||||
|
||||
export interface AccountListItem {
|
||||
id: string;
|
||||
account: string;
|
||||
email: string;
|
||||
nickname: string;
|
||||
role: number;
|
||||
createTime: string;
|
||||
remark: string;
|
||||
status: number;
|
||||
}
|
||||
|
||||
export interface DeptListItem {
|
||||
id: string;
|
||||
orderNo: string;
|
||||
createTime: string;
|
||||
remark: string;
|
||||
status: number;
|
||||
}
|
||||
|
||||
export interface MenuListItem {
|
||||
id: string;
|
||||
orderNo: string;
|
||||
createTime: string;
|
||||
status: number;
|
||||
icon: string;
|
||||
component: string;
|
||||
permission: string;
|
||||
}
|
||||
|
||||
export interface RoleListItem {
|
||||
id: string;
|
||||
roleName: string;
|
||||
roleValue: string;
|
||||
status: number;
|
||||
orderNo: string;
|
||||
createTime: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Request list return value
|
||||
*/
|
||||
export type AccountListGetResultModel = BasicFetchResult<AccountListItem>;
|
||||
|
||||
export type DeptListGetResultModel = BasicFetchResult<DeptListItem>;
|
||||
|
||||
export type MenuListGetResultModel = BasicFetchResult<MenuListItem>;
|
||||
|
||||
export type RolePageListGetResultModel = BasicFetchResult<RoleListItem>;
|
||||
|
||||
export type RoleListGetResultModel = RoleListItem[];
|
@@ -1,6 +1,5 @@
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { DemoOptionsGetResultModel } from './model/optionsModel';
|
||||
|
||||
import { DemoOptionsItem, selectParams } from './model/optionsModel';
|
||||
enum Api {
|
||||
OPTIONS_LIST = '/select/getDemoOptions',
|
||||
}
|
||||
@@ -8,9 +7,5 @@ enum Api {
|
||||
/**
|
||||
* @description: Get sample options value
|
||||
*/
|
||||
export function optionsListApi() {
|
||||
return defHttp.request<DemoOptionsGetResultModel>({
|
||||
url: Api.OPTIONS_LIST,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
export const optionsListApi = (params?: selectParams) =>
|
||||
defHttp.get<DemoOptionsItem[]>({ url: Api.OPTIONS_LIST, params });
|
||||
|
40
src/api/demo/system.ts
Normal file
40
src/api/demo/system.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import {
|
||||
AccountParams,
|
||||
DeptListItem,
|
||||
MenuParams,
|
||||
RoleParams,
|
||||
RolePageParams,
|
||||
MenuListGetResultModel,
|
||||
DeptListGetResultModel,
|
||||
AccountListGetResultModel,
|
||||
RolePageListGetResultModel,
|
||||
RoleListGetResultModel,
|
||||
} from './model/systemModel';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
enum Api {
|
||||
AccountList = '/system/getAccountList',
|
||||
DeptList = '/system/getDeptList',
|
||||
setRoleStatus = '/system/setRoleStatus',
|
||||
MenuList = '/system/getMenuList',
|
||||
RolePageList = '/system/getRoleListByPage',
|
||||
GetAllRoleList = '/system/getAllRoleList',
|
||||
}
|
||||
|
||||
export const getAccountList = (params: AccountParams) =>
|
||||
defHttp.get<AccountListGetResultModel>({ url: Api.AccountList, params });
|
||||
|
||||
export const getDeptList = (params?: DeptListItem) =>
|
||||
defHttp.get<DeptListGetResultModel>({ url: Api.DeptList, params });
|
||||
|
||||
export const getMenuList = (params?: MenuParams) =>
|
||||
defHttp.get<MenuListGetResultModel>({ url: Api.MenuList, params });
|
||||
|
||||
export const getRoleListByPage = (params?: RolePageParams) =>
|
||||
defHttp.get<RolePageListGetResultModel>({ url: Api.RolePageList, params });
|
||||
|
||||
export const getAllRoleList = (params?: RoleParams) =>
|
||||
defHttp.get<RoleListGetResultModel>({ url: Api.GetAllRoleList, params });
|
||||
|
||||
export const setRoleStatus = (id: number, status: string) =>
|
||||
defHttp.post({ url: Api.setRoleStatus, params: { id, status } });
|
@@ -8,13 +8,12 @@ enum Api {
|
||||
/**
|
||||
* @description: Get sample list value
|
||||
*/
|
||||
export function demoListApi(params: DemoParams) {
|
||||
return defHttp.request<DemoListGetResultModel>({
|
||||
|
||||
export const demoListApi = (params: DemoParams) =>
|
||||
defHttp.get<DemoListGetResultModel>({
|
||||
url: Api.DEMO_LIST,
|
||||
method: 'GET',
|
||||
params,
|
||||
headers: {
|
||||
ignoreCancelToken: true,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
11
src/api/demo/tree.ts
Normal file
11
src/api/demo/tree.ts
Normal file
@@ -0,0 +1,11 @@
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
enum Api {
|
||||
TREE_OPTIONS_LIST = '/tree/getDemoOptions',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get sample options value
|
||||
*/
|
||||
export const treeOptionsListApi = (params?: Recordable) =>
|
||||
defHttp.get<Recordable[]>({ url: Api.TREE_OPTIONS_LIST, params });
|
@@ -4,6 +4,6 @@ export interface BasicPageParams {
|
||||
}
|
||||
|
||||
export interface BasicFetchResult<T extends any> {
|
||||
items: T;
|
||||
items: T[];
|
||||
total: number;
|
||||
}
|
||||
|
@@ -1,18 +1,14 @@
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
import { getMenuListByIdParams, getMenuListByIdParamsResultModel } from './model/menuModel';
|
||||
import { getMenuListResultModel } from './model/menuModel';
|
||||
|
||||
enum Api {
|
||||
GetMenuListById = '/getMenuListById',
|
||||
GetMenuList = '/getMenuList',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get user menu based on id
|
||||
*/
|
||||
export function getMenuListById(params: getMenuListByIdParams) {
|
||||
return defHttp.request<getMenuListByIdParamsResultModel>({
|
||||
url: Api.GetMenuListById,
|
||||
method: 'GET',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export const getMenuList = () => {
|
||||
return defHttp.get<getMenuListResultModel>({ url: Api.GetMenuList });
|
||||
};
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { RouteMeta } from '/@/router/types';
|
||||
import type { RouteMeta } from 'vue-router';
|
||||
export interface RouteItem {
|
||||
path: string;
|
||||
component: any;
|
||||
@@ -10,14 +10,7 @@ export interface RouteItem {
|
||||
children?: RouteItem[];
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get menu interface
|
||||
*/
|
||||
export interface getMenuListByIdParams {
|
||||
id: number | string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get menu return value
|
||||
*/
|
||||
export type getMenuListByIdParamsResultModel = RouteItem[];
|
||||
export type getMenuListResultModel = RouteItem[];
|
||||
|
@@ -6,13 +6,6 @@ export interface LoginParams {
|
||||
password: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: Get user information
|
||||
*/
|
||||
export interface GetUserInfoByUserIdParams {
|
||||
userId: string | number;
|
||||
}
|
||||
|
||||
export interface RoleInfo {
|
||||
roleName: string;
|
||||
value: string;
|
||||
@@ -30,7 +23,7 @@ export interface LoginResultModel {
|
||||
/**
|
||||
* @description: Get user information return value
|
||||
*/
|
||||
export interface GetUserInfoByUserIdModel {
|
||||
export interface GetUserInfoModel {
|
||||
roles: RoleInfo[];
|
||||
// 用户id
|
||||
userId: string | number;
|
||||
@@ -38,6 +31,8 @@ export interface GetUserInfoByUserIdModel {
|
||||
username: string;
|
||||
// 真实名字
|
||||
realName: string;
|
||||
// 头像
|
||||
avatar: string;
|
||||
// 介绍
|
||||
desc?: string;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
import { UploadApiResult } from './model/uploadModel';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { UploadFileParams } from '/@/utils/http/axios/types';
|
||||
import { UploadFileParams } from '/#/axios';
|
||||
import { useGlobSetting } from '/@/hooks/setting';
|
||||
|
||||
const { uploadUrl = '' } = useGlobSetting();
|
||||
|
@@ -1,26 +1,22 @@
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import {
|
||||
LoginParams,
|
||||
LoginResultModel,
|
||||
GetUserInfoByUserIdParams,
|
||||
GetUserInfoByUserIdModel,
|
||||
} from './model/userModel';
|
||||
import { ErrorMessageMode } from '/@/utils/http/axios/types';
|
||||
import { LoginParams, LoginResultModel, GetUserInfoModel } from './model/userModel';
|
||||
|
||||
import { ErrorMessageMode } from '/#/axios';
|
||||
|
||||
enum Api {
|
||||
Login = '/login',
|
||||
GetUserInfoById = '/getUserInfoById',
|
||||
GetPermCodeByUserId = '/getPermCodeByUserId',
|
||||
Logout = '/logout',
|
||||
GetUserInfo = '/getUserInfo',
|
||||
GetPermCode = '/getPermCode',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: user login api
|
||||
*/
|
||||
export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
|
||||
return defHttp.request<LoginResultModel>(
|
||||
return defHttp.post<LoginResultModel>(
|
||||
{
|
||||
url: Api.Login,
|
||||
method: 'POST',
|
||||
params,
|
||||
},
|
||||
{
|
||||
@@ -30,20 +26,16 @@ export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal')
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getUserInfoById
|
||||
* @description: getUserInfo
|
||||
*/
|
||||
export function getUserInfoById(params: GetUserInfoByUserIdParams) {
|
||||
return defHttp.request<GetUserInfoByUserIdModel>({
|
||||
url: Api.GetUserInfoById,
|
||||
method: 'GET',
|
||||
params,
|
||||
});
|
||||
export function getUserInfo() {
|
||||
return defHttp.get<GetUserInfoModel>({ url: Api.GetUserInfo });
|
||||
}
|
||||
|
||||
export function getPermCodeByUserId(params: GetUserInfoByUserIdParams) {
|
||||
return defHttp.request<string[]>({
|
||||
url: Api.GetPermCodeByUserId,
|
||||
method: 'GET',
|
||||
params,
|
||||
});
|
||||
export function getPermCode() {
|
||||
return defHttp.get<string[]>({ url: Api.GetPermCode });
|
||||
}
|
||||
|
||||
export function doLogout() {
|
||||
return defHttp.get({ url: Api.Logout });
|
||||
}
|
||||
|
1
src/assets/icons/download-count.svg
Normal file
1
src/assets/icons/download-count.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 356.99 419.8"><defs><style>.cls-1{fill:#ffa546;}.cls-2{fill:#ff6059;opacity:0.4;}.cls-3{fill:#426572;}.cls-4{fill:#ffd947;}</style></defs><title>Asset 91</title><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path class="cls-1" d="M351,380.73v17.59a15.52,15.52,0,0,1-15.47,15.48H21.46A15.52,15.52,0,0,1,6,398.32V380.73a15.51,15.51,0,0,1,15.47-15.47H335.52A15.51,15.51,0,0,1,351,380.73Z"/><path class="cls-2" d="M351,406.85c0,3.95-7,7.19-15.47,7.19H21.46C13,414,6,410.8,6,406.85V380.73a15.51,15.51,0,0,1,15.47-15.47H37.66l3.44,25.27c0,4,7,7.2,15.47,7.2l283.72,12.44,7.38-2.28Z"/><path class="cls-3" d="M335.52,419.8H21.46A21.5,21.5,0,0,1,0,398.32V380.73a21.49,21.49,0,0,1,21.46-21.47H335.52A21.49,21.49,0,0,1,357,380.73v17.59a21.52,21.52,0,0,1-21.46,21.48ZM21.46,371.26A9.48,9.48,0,0,0,12,380.73v17.59a9.48,9.48,0,0,0,9.46,9.48H335.52a9.52,9.52,0,0,0,9.46-9.48V380.73a9.48,9.48,0,0,0-9.46-9.47Z"/><path class="cls-1" d="M247.93,138H233.23V41.7A35.7,35.7,0,0,0,197.53,6H159.45a35.7,35.7,0,0,0-35.7,35.7V138H109.06C80,138,61.84,169.48,76.37,194.64l34.72,60.13,30,52c16.6,28.76,58.12,28.76,74.72,0l30-52,34.72-60.13C295.14,169.48,277,138,247.93,138Z"/><path class="cls-2" d="M280.62,188l-34.73,60.13-30,52c-11.24,19.46-66.68,32.78-52.52,18.88,60.22-59.12,104.3-182.16,104.3-182.16A37.74,37.74,0,0,1,280.62,188Z"/><path class="cls-4" d="M192.3,6c-.22.23-.42.47-.63.72-38.92,45-18.36,116.49-42.85,170.71-10.14,22.45-29.18,41.51-52.15,49.48L78,194.64C63.52,169.48,81.67,138,110.72,138h14.7V41.7A35.7,35.7,0,0,1,161.12,6Z"/><path class="cls-3" d="M178.49,334.39h0a48.64,48.64,0,0,1-42.56-24.57L71.17,197.64A43.75,43.75,0,0,1,109.06,132h8.69V41.7A41.74,41.74,0,0,1,159.45,0h38.09a41.75,41.75,0,0,1,41.7,41.7V132h8.69a43.75,43.75,0,0,1,37.89,65.62L221,309.82A48.64,48.64,0,0,1,178.49,334.39ZM109.06,144a31.75,31.75,0,0,0-27.49,47.62l64.76,112.17a37.14,37.14,0,0,0,64.33,0l64.76-112.17A31.75,31.75,0,0,0,247.92,144H227.23V41.7A29.73,29.73,0,0,0,197.53,12H159.45a29.73,29.73,0,0,0-29.7,29.7V144Z"/></g></g></svg>
|
After Width: | Height: | Size: 2.0 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user