Compare commits
1936 Commits
Author | SHA1 | Date | |
---|---|---|---|
7e858e212b | |||
f3cd33b3c9 | |||
01320f4511 | |||
6e32f57275 | |||
07266e4833 | |||
2bded12e54 | |||
d4a77ba057 | |||
554d195219 | |||
2da3e08c09 | |||
de0199421c | |||
94e3c0e391 | |||
3f923ffce9 | |||
ee0c3f4bbf | |||
0cd14002ec | |||
8a66c83257 | |||
87f703f22a | |||
6f511c685b | |||
854e8a7f07 | |||
5a85390655 | |||
19028eee3d | |||
7c4a84aaf4 | |||
62bb75ed91 | |||
ca3487abee | |||
6b36eaa6d8 | |||
9301b5b070 | |||
0843dde765 | |||
e62a3ee5b5 | |||
fb2c839fad | |||
87352ee366 | |||
380e6d0f0a | |||
06ac055112 | |||
8ce8524ee3 | |||
3569a20efa | |||
32be9ef361 | |||
85d112bb82 | |||
bee18084c3 | |||
37d6d612c4 | |||
1f287e7af0 | |||
8501b1ba80 | |||
8b482136d0 | |||
4137c12bca | |||
ef7f2ebade | |||
f7212e583a | |||
1603378d7d | |||
930ff18785 | |||
f12bb8e680 | |||
b91d96deab | |||
6a6d158785 | |||
d6545a01f6 | |||
4e3f540bc1 | |||
aac6eff525 | |||
25a2b8eceb | |||
9240603063 | |||
6c2cda36b0 | |||
bc950d0616 | |||
bdee356bb8 | |||
7b07667e76 | |||
8a228ed854 | |||
f75620a7c1 | |||
34ca96d007 | |||
a6fcc60de3 | |||
761c28ef01 | |||
69f21814e3 | |||
05d48811eb | |||
ddf323aa3b | |||
2b83c8c69f | |||
f6b752e807 | |||
d00efbeb54 | |||
51c22c7044 | |||
963dd083b6 | |||
f6a59647d5 | |||
0bf7e5e77f | |||
ffaa140289 | |||
0157feb508 | |||
abe44ca9f8 | |||
9d99872ef7 | |||
7d6cfd911e | |||
7f9faf1d99 | |||
ae828b9ac4 | |||
54f5addca9 | |||
70dbfc28b7 | |||
d99a7bca90 | |||
9f856b5b01 | |||
925e8722e7 | |||
8a3a068e6a | |||
447b0e496c | |||
4ff9306826 | |||
56b551dc16 | |||
370f3082de | |||
52be5ca3f9 | |||
eaa1a4aa69 | |||
014db1e695 | |||
3ed038479a | |||
0bf9e75dd0 | |||
209ede594e | |||
97e40955ab | |||
3da51a0cf9 | |||
3af9701683 | |||
ad319393b7 | |||
28c4f5e3d0 | |||
6f0307be95 | |||
c3656829a7 | |||
a3cf1daeae | |||
8028bd3e95 | |||
08c320423b | |||
8b7b933d1e | |||
ec987cbc4e | |||
0fe75d98f9 | |||
4bcf413dbe | |||
f5a2088000 | |||
b35b772eb1 | |||
769a11048e | |||
aa5b052e66 | |||
db23bffee1 | |||
d52dfa215c | |||
119dcbd5b5 | |||
1565b71bb1 | |||
fa59c2c184 | |||
79599ee6da | |||
6e16bca122 | |||
dccd729c2f | |||
f54e18ca44 | |||
b3e836548c | |||
e5d04a011f | |||
d68fdc76bf | |||
7380d4859b | |||
47fed85953 | |||
9afe052b2a | |||
db3bbd83aa | |||
430c9b72f7 | |||
0ce8fce161 | |||
19c6f777fc | |||
0a8bcaf484 | |||
343b91a980 | |||
59bbe31433 | |||
46f888a30b | |||
ac65c138ee | |||
18baff3888 | |||
b303111d3d | |||
f27b6a26bb | |||
3e4e323131 | |||
12b769abe1 | |||
0f1929625f | |||
2ceb002d96 | |||
982f6b9177 | |||
82d7f77f9c | |||
f44ae7ac8f | |||
4f42fa86a3 | |||
94eeae5626 | |||
d549ae713a | |||
fa5cb8aaf9 | |||
ac8e2ac927 | |||
479499ccb3 | |||
0c8c61cede | |||
d1abde13f8 | |||
3681852041 | |||
d3debdd29a | |||
8700178f01 | |||
5e9b83bf2d | |||
aaa08d5ab6 | |||
cf7cfe40f8 | |||
6b2faeeecb | |||
f3f7d4dc61 | |||
4576dd289f | |||
096ab74ee3 | |||
40fc3882f3 | |||
483acb0040 | |||
30c8ce0839 | |||
2caa535098 | |||
aa7bd6eb67 | |||
192bdce421 | |||
a2d6da8c61 | |||
a9d89ff514 | |||
84f263db2e | |||
c0fb4c44ff | |||
b276202e45 | |||
52357eb586 | |||
931c6ca198 | |||
152b9af871 | |||
325dc9e9f6 | |||
5d1ae1f9d0 | |||
8728229659 | |||
3077723a27 | |||
3848c3e653 | |||
63be8969f3 | |||
428f52fdb6 | |||
6c03702fbd | |||
4b35b24f6a | |||
b296e40077 | |||
70e6447e28 | |||
81274b1691 | |||
c1babe49db | |||
90bbca0987 | |||
18b953e68c | |||
e7f766aedf | |||
f90e869402 | |||
6a2da4645b | |||
8bb917cd09 | |||
9455eebb60 | |||
d112d4088f | |||
376dca1098 | |||
cf67ad2a83 | |||
c848c62ee9 | |||
cd0b795ac8 | |||
f9d6e65ece | |||
2292ab09a8 | |||
4c3e7e62d4 | |||
33f744e9be | |||
c75bc388c9 | |||
57eb438eb8 | |||
ae442e191c | |||
520e7166cf | |||
c25567ae64 | |||
c8c88a8704 | |||
f994d1b232 | |||
d6991eaa17 | |||
0e15b459c0 | |||
3212da8deb | |||
57dbb2fdb4 | |||
6acebd9145 | |||
db1416014e | |||
c2ad02514c | |||
d6c2fa5f96 | |||
e63ead696e | |||
f1cb67bd3f | |||
c94aad885c | |||
06e60730d3 | |||
fb6f86543c | |||
6594975d92 | |||
423d445d8f | |||
24f6ebaf0c | |||
72d0af6951 | |||
0b1d0b4960 | |||
51ee9637d9 | |||
34b7bf5cad | |||
902e275c47 | |||
774266ee8d | |||
b488ae71d9 | |||
97848a42f5 | |||
82d6c51365 | |||
b1704a268c | |||
99f6d7445a | |||
59cb38a986 | |||
f0b7c42275 | |||
eca4e2104a | |||
2db1157c63 | |||
6141e4a57a | |||
7680e879d0 | |||
22aa07093c | |||
b47fc02ca4 | |||
910eb812c0 | |||
cbd5c443f2 | |||
4af1b970e3 | |||
66259fc9b6 | |||
72c18782cc | |||
13e79082a0 | |||
332408f4f4 | |||
feba707c76 | |||
c75dc63cc5 | |||
685af267cb | |||
fb93c73a34 | |||
c0eed5b919 | |||
fc8837e03c | |||
397232e932 | |||
cb786ee57f | |||
47bbba4898 | |||
1d87c4377e | |||
4eaaa51bce | |||
0c109ea34c | |||
df3b790c0b | |||
03da98e5df | |||
1cab4a944a | |||
509a79fd1a | |||
68902a206d | |||
26ec430942 | |||
fa43495d81 | |||
c747b71829 | |||
d505bffcfd | |||
caba21b8af | |||
d52113d104 | |||
37226202bc | |||
398f8ffddd | |||
8ea409cb22 | |||
8c13b726f3 | |||
be41b1e896 | |||
9c99fe733b | |||
7b90dff4b6 | |||
5c2b150d63 | |||
a3ebd0695b | |||
9738bd3ecd | |||
a74c5993a0 | |||
8ba694e30d | |||
328b5b1475 | |||
e2777aebc3 | |||
19b5abc171 | |||
d6760cb113 | |||
b2bd4e7721 | |||
0d12c05fb9 | |||
ce6c9dfcdb | |||
9d9b3f58c4 | |||
8cf48d2707 | |||
68f09b6bd1 | |||
b5a846327a | |||
d365be2334 | |||
c968b03ca7 | |||
6fa85ef879 | |||
301a10b210 | |||
2bba70125c | |||
f1f667c355 | |||
d0659f638c | |||
e140dc6d4e | |||
e081c554aa | |||
5328213d85 | |||
06874645c7 | |||
a24c5f5869 | |||
568918f1fc | |||
c7e01e0cb1 | |||
5297333d6a | |||
eaa2085fba | |||
bc43aaaeb7 | |||
7570c7ecfe | |||
d0c92627e9 | |||
8e0211913a | |||
68d69cb8bb | |||
b1a940aded | |||
b963d8b988 | |||
47ca0d926b | |||
3ed92e2de9 | |||
ae28e62b1a | |||
45f59770fc | |||
c507229dd2 | |||
d37b961c2b | |||
a90a1462f4 | |||
17c206ef8f | |||
644e0f3e0f | |||
b30a9af4ad | |||
62dcee8ae9 | |||
8d311f2d9f | |||
263e8f6f4d | |||
ccbd239009 | |||
7dd5ca91c5 | |||
5d03be50f3 | |||
30f5a48b9d | |||
f04f7755fd | |||
ed8a3344af | |||
e2d658e5fc | |||
542ac60626 | |||
635a23bd87 | |||
3d25b73fc6 | |||
989fd7d1cb | |||
3b321de91e | |||
afb5456759 | |||
d37292ff13 | |||
c7c06d0a21 | |||
2b5826d417 | |||
1d3722b6d3 | |||
a919275c24 | |||
d902ec446c | |||
d1b691f69c | |||
d2d12e30ec | |||
bd66929731 | |||
84ef2f1427 | |||
80d5d35e25 | |||
45b473a53f | |||
ba90249cc2 | |||
afbaac8439 | |||
0cb684151f | |||
4836a4c66f | |||
7cc6765493 | |||
9a3a7f420c | |||
dfc4334a1d | |||
8603de7124 | |||
354ed92076 | |||
7f1ef637cc | |||
77b83ff188 | |||
c63434fa1c | |||
e1be576525 | |||
f0e954e356 | |||
58b2ac4a60 | |||
3a627f4d99 | |||
78fbb7d6bc | |||
4200781a56 | |||
bb9b04ecc8 | |||
78feddd30a | |||
14515c4140 | |||
ab708359d1 | |||
535f880c8d | |||
0f4ffd7849 | |||
cf88a3fab2 | |||
46b3c65fdf | |||
6a53b9b808 | |||
695c387210 | |||
d6d46ec57a | |||
32951c050d | |||
403ea6022e | |||
d7ccd75744 | |||
997fc06c5d | |||
c9922d32d8 | |||
d58373fa61 | |||
7bf7b182f9 | |||
2be8952824 | |||
2d0228e4e4 | |||
65fefd3d73 | |||
41aa211ee6 | |||
b97f2d5850 | |||
900a03756f | |||
995f61f6fd | |||
8fbe37dc4d | |||
2aaf01fe11 | |||
093814eaa7 | |||
790f3f4974 | |||
a31af24205 | |||
dd1abb909a | |||
cdf4cd759b | |||
7fbb53e452 | |||
2547f4bfbd | |||
2ead4214cd | |||
f80dfec1fb | |||
5978baf5fa | |||
bc1711f35f | |||
c77e78152b | |||
942dd5d538 | |||
29f02344c5 | |||
d14ce5410b | |||
274a77ea92 | |||
ce41438d65 | |||
70f30a54f1 | |||
f802eb0978 | |||
645bd7945d | |||
3756a9b696 | |||
afe5bc6571 | |||
6ec3b33ecc | |||
ba619fb7ac | |||
cac89e472a | |||
372306e739 | |||
0c1ff84fe7 | |||
55153719e9 | |||
2adc7fbc5e | |||
a24b510e82 | |||
8adcdf76e4 | |||
60e38b9b40 | |||
441d998bab | |||
d26083a655 | |||
b007f5ede2 | |||
54f0d414d3 | |||
90b5c03e51 | |||
dd1b162199 | |||
c42288c5ab | |||
096e8f7963 | |||
c9c75c8c6d | |||
0a11fadb05 | |||
1c6d461129 | |||
befe68b721 | |||
c54a414d51 | |||
67c7535051 | |||
9b14add577 | |||
f99bc544cf | |||
c5bcd8927a | |||
f329306b1a | |||
005c5196c9 | |||
ece4977d6a | |||
cac0c8e93d | |||
44489a1030 | |||
0a125b8aeb | |||
eb74b55b62 | |||
5d8672ca27 | |||
9c74068039 | |||
960518fd57 | |||
a912f3500c | |||
b15ad9692c | |||
b20690261f | |||
551d6730db | |||
2e80af9876 | |||
4c1164b89b | |||
29970af07f | |||
7b0bed4c19 | |||
4477932245 | |||
d7c5a53091 | |||
f5a08dc2f3 | |||
d61d558eef | |||
412cb56b02 | |||
77b6b61937 | |||
534e7ee708 | |||
898a479860 | |||
2ba5a6b512 | |||
895073972d | |||
b8d00e24ec | |||
8233b9876a | |||
2950862114 | |||
0ce3eed33b | |||
0c427a415e | |||
ddb43a3d76 | |||
566a329ec6 | |||
da28bb8578 | |||
50ff982fd4 | |||
2818998f63 | |||
b115289d2b | |||
f794a0b0f6 | |||
a8916a2b78 | |||
5890b74598 | |||
a64882101f | |||
7919cf2835 | |||
db101cab7e | |||
ce4f12312f | |||
7c2526bc87 | |||
6eb00c7eac | |||
726017d795 | |||
291a1637c1 | |||
37ad1d1275 | |||
92c52fd9f1 | |||
e21cc48dc2 | |||
7185d1286e | |||
ef3c64b85d | |||
fb0ef238da | |||
01234cb35d | |||
7b8dcb3fb1 | |||
3333f178b1 | |||
0f3050c93b | |||
11be7e914a | |||
29914ac6ca | |||
a132e6175b | |||
ff771d7b84 | |||
68e01ccf9f | |||
d81571dd47 | |||
d832925107 | |||
0f01755e18 | |||
96760cc7e4 | |||
4c9aa7c0ab | |||
4f43cc1e80 | |||
ce4aa37326 | |||
0487ad50cb | |||
d54e666eea | |||
163578b9bc | |||
19ae4ea2ac | |||
262df3444d | |||
20fa66daf1 | |||
0a2ccd6015 | |||
9dd4b05c09 | |||
b2cca8d123 | |||
20f495922b | |||
03b94e557a | |||
b10bdefdb2 | |||
dee57d5425 | |||
c61dccf9de | |||
e53f8393b1 | |||
3ec2a187de | |||
4166fd2111 | |||
0cbe4fa9fd | |||
bf234cdd6e | |||
a9b4b57fd6 | |||
436215aa82 | |||
6ef87eacee | |||
b0244cbc5f | |||
4c506a349d | |||
959f66663b | |||
bfa66956d9 | |||
b2054eafc5 | |||
9531ceefbc | |||
2bd64f96d3 | |||
222392d9de | |||
8c837a4df2 | |||
3efaf67eeb | |||
a3a06af731 | |||
5ecbd4370b | |||
de5d34e03a | |||
155eb28889 | |||
4d0f7d8b66 | |||
1fd85ee873 | |||
4b9f78267c | |||
b09710368a | |||
ae857bdeaa | |||
f826ce52d6 | |||
db029bbbaa | |||
77cf9997bc | |||
d30772ea7c | |||
ccfce23c30 | |||
a103f589b8 | |||
fe6357864d | |||
5e497e3ddb | |||
75723d5af6 | |||
13daff5883 | |||
c0e226b4bb | |||
212e01dd4c | |||
71aef99607 | |||
26a85458a5 | |||
cc032b7520 | |||
20e435872f | |||
6a1e734633 | |||
b91f2cde2b | |||
7c425a6b9a | |||
f1a2954dca | |||
5e74dce6bd | |||
a641521e0f | |||
bd3a3a116e | |||
9b87698819 | |||
f92f045142 | |||
c84a6894ba | |||
534bff5a80 | |||
ce917280d4 | |||
b6577565b6 | |||
9ca259d1d0 | |||
4242442d8e | |||
0795c2ffff | |||
ddd89e70ed | |||
fe93b1a150 | |||
87925dbd9c | |||
4192f82d29 | |||
fdf0875905 | |||
93110826e7 | |||
976c374cb7 | |||
51db625911 | |||
2a6b7cd210 | |||
fa73c3bc26 | |||
286cd94135 | |||
e7d9f3d362 | |||
2187f4a2d0 | |||
1ddf69b490 | |||
4a49143422 | |||
b5eaf6d115 | |||
6012a139cb | |||
c68fc1378c | |||
a96d2388f4 | |||
c847f69e9d | |||
dd3b37aba8 | |||
8d41b5521c | |||
cf6f4f204d | |||
da5f5b0b90 | |||
1db97d2301 | |||
936de6ec30 | |||
1b17c04301 | |||
67f6b490bf | |||
2ef6c8c9b2 | |||
83599e7ba9 | |||
e7868f033d | |||
c733e088c2 | |||
93cfffe295 | |||
fcf6e738c7 | |||
38e7346b6e | |||
7210fad0e1 | |||
9e016bfc07 | |||
230c9f183d | |||
741d86d7ea | |||
2d709b6249 | |||
0d888ce8e4 | |||
7b788387fe | |||
48e2c5f945 | |||
60541209ff | |||
63141bca95 | |||
8cfb93a3b6 | |||
cd9bf9107f | |||
7379b83a92 | |||
c4faa53386 | |||
d406e7c05e | |||
14e2fcfef3 | |||
cf2cdde7e5 | |||
518918b675 | |||
986ce4bb30 | |||
612500c612 | |||
22b0278003 | |||
3d0c3cbed9 | |||
fce2c5e45e | |||
82e917f3f5 | |||
93ae658f5c | |||
da3ec8c9a8 | |||
8221b03466 | |||
997a486f4a | |||
da05dd3384 | |||
56ecef06a2 | |||
71886776ae | |||
20b48d5a1b | |||
8c0854ab47 | |||
49c85c05ed | |||
a6824cce36 | |||
1a04b05e0d | |||
fc8436ba74 | |||
0435c09c53 | |||
64137aebb3 | |||
9578e4c11e | |||
62e90c3e19 | |||
f01429fe52 | |||
14046affd7 | |||
526e631f6e | |||
3b9cbbfc61 | |||
87e5ea8dfd | |||
26bdf7e20c | |||
a9a3c53245 | |||
678911a8bc | |||
2bcd1ace70 | |||
6374ce9ad3 | |||
775ab32037 | |||
e942133ac6 | |||
5ef9608366 | |||
ede0a1e4cd | |||
bc699ea642 | |||
27045209bc | |||
ee007e9392 | |||
b1ec1b9500 | |||
a7c8a8c638 | |||
9e157da66d | |||
e3897fa04e | |||
f1ac576a7a | |||
ec74290b3e | |||
bcb3bacf89 | |||
566882ad44 | |||
c7238441e2 | |||
aa4d58fb58 | |||
719e0095a7 | |||
04307ca2a6 | |||
6e99d5ec9d | |||
076f79358e | |||
50a377b749 | |||
1727163640 | |||
f6d58dab8f | |||
ab35f5c8c1 | |||
9217f197f9 | |||
16beb8d0f3 | |||
673f6db39a | |||
f28687be74 | |||
71415e73c0 | |||
7930f04b22 | |||
12456828fe | |||
bd95f9caaf | |||
767e6f4fbf | |||
59ab4d742e | |||
92eb91001a | |||
3938c40023 | |||
8beb423a43 | |||
847132b433 | |||
64c2ab5f9f | |||
45d4af878b | |||
ac9eddc239 | |||
57ca1bf864 | |||
7b93f0e61e | |||
9a7c14076a | |||
436e4e01e1 | |||
25430762e8 | |||
6449505696 | |||
d25e6cf4ff | |||
456b99fa02 | |||
6fdb1247a7 | |||
e4b3717012 | |||
506f07ce36 | |||
f4d8c7acd8 | |||
5e5a165a41 | |||
8889a3f63d | |||
67455a0752 | |||
7ca607f49f | |||
b3aff28335 | |||
489fa9552b | |||
d49040a11e | |||
64f008e106 | |||
2f0d7137db | |||
68bd3314d9 | |||
2083adc3d2 | |||
a4e8bf9a9c | |||
7daa0c9dff | |||
027f3fbefe | |||
e3c4728529 | |||
06f231f4b1 | |||
4966d45d5e | |||
ae38774f85 | |||
b907ca491b | |||
abfc33002c | |||
94954c1601 | |||
914b5752cd | |||
102da43d05 | |||
6cf9f7f1d6 | |||
389017c3b9 | |||
0b4d18faa0 | |||
623010a644 | |||
9e62501c30 | |||
95ec3d2fb9 | |||
f60ae7a8ef | |||
eef47c5bfb | |||
a91108f52e | |||
f0772cc793 | |||
fe20687ae8 | |||
da5051f758 | |||
a9d8a2b164 | |||
c6846a2d4c | |||
81ffe6e4f9 | |||
ab3d27569f | |||
337dcb603f | |||
084022010b | |||
b83dac2ed9 | |||
ddf4c9109c | |||
40cdb9a766 | |||
9cf70c6c3b | |||
333b121b2a | |||
1de328abaa | |||
6b4b1dfcbe | |||
66dc6e67ab | |||
d8d859d209 | |||
4bd7dd4ad6 | |||
359f134881 | |||
a65866d2a8 | |||
3917a559f7 | |||
24eab9aac3 | |||
bb240d8e68 | |||
f3bf4b36e9 | |||
d8729ef43c | |||
4072daa91f | |||
3ae281fc1f | |||
86ce19085a | |||
0aceab5a2e | |||
a48b725c7d | |||
cf5718122f | |||
e7e4276bf2 | |||
551d68ff69 | |||
61fa215607 | |||
89df50c160 | |||
e9326e8c9e | |||
956d693454 | |||
a76fb6c63a | |||
d061d451a4 | |||
52e19d445a | |||
c6a3e08c34 | |||
a11a462eee | |||
310d689219 | |||
118cc83cc2 | |||
3da2144ead | |||
b17a9cb4ae | |||
351c8a0bd7 | |||
c705862e82 | |||
dd2f100acd | |||
88398af343 | |||
28bc4d6943 | |||
e1e690ad14 | |||
110b67bd9c | |||
8788e299e1 | |||
ed81ae1ccd | |||
d19e297d37 | |||
c4ce4fd10b | |||
527ebafc5c | |||
e7f1325d3e | |||
d7d3095824 | |||
d9b103891b | |||
fe8f90a4d8 | |||
6d7bece8d6 | |||
199f3e21e7 | |||
7e9caeffbf | |||
a075b7bd68 | |||
359f734024 | |||
a069ae6884 | |||
6de8b0ceec | |||
edf34ccc2c | |||
57f953933d | |||
9b2e6208e0 | |||
314327aed2 | |||
ce370c76a3 | |||
153d29b167 | |||
7858d4ada2 | |||
adc158367d | |||
69e67f3c7a | |||
4f831f8b17 | |||
36c95f80fd | |||
2fb36e57f9 | |||
401501b97b | |||
d585c27f6e | |||
0775ce2669 | |||
37bb5fd824 | |||
fee5af2ffa | |||
21d03c5bf7 | |||
0854b1ce36 | |||
949c962fc9 | |||
17c0a76754 | |||
d449f02883 | |||
b40c5a5dfe | |||
08aea80a55 | |||
86a4347908 | |||
f242e847bb | |||
3c89bf2f0d | |||
10ea5ec55b | |||
805804f3d3 | |||
74549665d6 | |||
5b78ea9a69 | |||
b25c8b8965 | |||
da5b0ede16 | |||
29de3e2bae | |||
79bc684312 | |||
7bc71429eb | |||
967988519b | |||
3b5a96a3f7 | |||
83b14013ec | |||
cd9904de7d | |||
d305498613 | |||
69833557e4 | |||
cd596245ce | |||
7d36d59e65 | |||
efaa5073fb | |||
37f4082210 | |||
f324abd1d0 | |||
5d56a0368a | |||
106db48f8d | |||
ed2ecb7604 | |||
10dcc4f45d | |||
3237351450 | |||
8d57e81b99 | |||
e37daa6c66 | |||
ad4247a241 | |||
8a4f5c13da | |||
1161e6f3f6 | |||
e5d5e20efd | |||
9fcb9afa9d | |||
b24b7b86fd | |||
ddca94891d | |||
9f14f3cc08 | |||
6b3fc309cc | |||
60d933b39a | |||
ea57fd9c11 | |||
a9788b04d4 | |||
46c45d9bef | |||
3282e2f063 | |||
05e941e449 | |||
6a14a3f7b1 | |||
b858f1159a | |||
f3d73aae03 | |||
494723c818 | |||
93af9d491d | |||
b07d34ee23 | |||
4b2b94db9e | |||
77b9cea62c | |||
e2dc137b59 | |||
2da4f5f3b9 | |||
7549ed7f0f | |||
0719f3c4e3 | |||
ba055b4278 | |||
0b5a809883 | |||
a4f7a05bff | |||
1730578a23 | |||
f88623e48d | |||
46fdd8eeb3 | |||
40f4216ff8 | |||
fe536fcdd0 | |||
62cff7b388 | |||
b24beb1dae | |||
b52c53f7f5 | |||
f66be1b947 | |||
5d3b26bb58 | |||
55b64d0354 | |||
7ce1b6eb6c | |||
97b42a4a91 | |||
bedde323bd | |||
0cf2787937 | |||
f0bc53766b | |||
f7fc2c16c1 | |||
f6d80b6e8b | |||
17d3f66316 | |||
23e08ecb44 | |||
4dfdfc8423 | |||
5cdce529b5 | |||
522b8a87db | |||
6e8660dcc4 | |||
936b7fed74 | |||
d87794aa1f | |||
8675aaef6e | |||
824e097639 | |||
dce8e94f8e | |||
e22ffcb5e3 | |||
8f94096cdd | |||
faa17b0d5c | |||
c4d4a6e594 | |||
9937bcc2d5 | |||
031c7d9866 | |||
0e84ddb957 | |||
5672823472 | |||
d03e11f938 | |||
3dbd91bfef | |||
d0ff2a9eae | |||
78314944aa | |||
872bf07b25 | |||
17b79ee29f | |||
f5b411e2ae | |||
e3e865eac5 | |||
6b7ffbc4ad | |||
4ddcc14eee | |||
7bca78e268 | |||
82159dd4c5 | |||
1e76b214ea | |||
8c44364dab | |||
7aea3528c4 | |||
b7809608d1 | |||
19bb957ae7 | |||
6e5ba84aab | |||
1a20f53916 | |||
57d364d142 | |||
89f76f67ca | |||
5e589cd5e3 | |||
139fb2f1ad | |||
5e7ece1e87 | |||
47a4e3b4e9 | |||
0019ad110e | |||
62325dc096 | |||
290aceb0e9 | |||
a9f4e47fe0 | |||
ede135c2b4 | |||
8ba6739356 | |||
cef5959fff | |||
9f81b2c787 | |||
5885bd7f84 | |||
f1d8ba51df | |||
39a9bf8e4c | |||
8dfb36cc3c | |||
fdbd25c513 | |||
ef5ec6367e | |||
c5b181949b | |||
03d7306611 | |||
fd5e8b6855 | |||
47e46aeebe | |||
56aae5cc99 | |||
84df282c0a | |||
a95c5bd1e9 | |||
c1b552b5ff | |||
18c2e53af8 | |||
e3808f7a61 | |||
68187a0fb6 | |||
f50dcd3bd1 | |||
ce8191ad6c | |||
5fe02fcc3e | |||
f31086f790 | |||
be20537587 | |||
708813c6cb | |||
3b3cd055df | |||
4b438242ab | |||
722e6f9d27 | |||
7b431d9291 | |||
30c6e6f769 | |||
8b2b8c3d48 | |||
0b5c65d568 | |||
49b2f5528f | |||
6bc58e23c9 | |||
7e66adcc0b | |||
24b906a738 | |||
ddbce0d636 | |||
277f870178 | |||
4be7f37bbc | |||
9ac18ab69e | |||
1bec3b4637 | |||
33e74bb0dd | |||
89d5f108e4 | |||
e4d00171b4 | |||
9f070f1914 | |||
94b5803337 | |||
9a2d4e83b2 | |||
59d91ff7ef | |||
bfe658fc86 | |||
7ced42a494 | |||
6164a92b9f | |||
7b11962bf2 | |||
3c7f1021b6 | |||
644412998a | |||
c1afee57e9 | |||
ac1d014562 | |||
71322ee512 | |||
dc2638a3ab | |||
41b23b24b9 | |||
9c8afa85d4 | |||
18c3424f03 | |||
1b1ee34acf | |||
d963bb4e7d | |||
b1f42bbeba | |||
dcdb447578 | |||
39d22bdd62 | |||
e4c9d037b1 | |||
d1ad7fecd7 | |||
4b92a9a4a5 | |||
9d65fe8d5e | |||
c353830163 | |||
6dd87b0dec | |||
fa3216be9b | |||
31201eb3cc | |||
48c075b730 | |||
14c85e3380 | |||
f551d4388c | |||
751dc539f6 | |||
d305680ba5 | |||
bb7775f87b | |||
54d9b517dd | |||
199910a52f | |||
983102c094 | |||
0d330e08b4 | |||
ccd1a5363d | |||
c368b130b8 | |||
3ffe99d5ab | |||
339068c086 | |||
dad40e262f | |||
0bbd65ac61 | |||
1a7b7d1936 | |||
2bbaa246d7 | |||
296ec54c3e | |||
579de1cc86 | |||
da88250fe1 | |||
ad831316ab | |||
2e97cb6924 | |||
c79787c677 | |||
07954dd968 | |||
2ace6da75b | |||
982568445b | |||
a53e446583 | |||
b033d7d92f | |||
1190d61ca3 | |||
7da5cc847f | |||
2778244faf | |||
3789379084 | |||
72e3c87190 | |||
38640e65e4 | |||
e0718f11ea | |||
eb7cc97ca2 | |||
24d3c0b13b | |||
ec0b1d4de8 | |||
56c90ef452 | |||
5f0ac0ec7e | |||
8c767af5c6 | |||
b0e8263e2f | |||
be592dbf9b | |||
3679320483 | |||
51ab4523f8 | |||
60abe14c7a | |||
f58b5e61b0 | |||
dbb972ec3f | |||
1930410754 | |||
539df2a994 | |||
ad41ef2f5e | |||
7ed0a92eda | |||
9471314917 | |||
69440ec2a6 | |||
0bbdf4b47f | |||
f11aca925f | |||
e4029a607a | |||
eb53973799 | |||
aab8281af0 | |||
3df00548ab | |||
ada346f4ef | |||
b3691a4625 | |||
e02b631172 | |||
2200411455 | |||
b0ab2f404f | |||
4195428643 | |||
1692c9bef5 | |||
cb25cf2944 | |||
794c5ce2d5 | |||
974d2d5a59 | |||
2ebcad1468 | |||
671c7eed7d | |||
72de76fe9b | |||
53cc357632 | |||
47d3472fef | |||
05c5b46089 | |||
f85bd8622f | |||
503cf61c0f | |||
d9eca55189 | |||
e850eaa90c | |||
478eab61e4 | |||
ea53728799 | |||
914d0d37c0 | |||
c1aae2c192 | |||
03cdcb30f8 | |||
a462e72b30 | |||
83db3db90d | |||
9495a40900 | |||
dbc2c9c240 | |||
d6bd1a5527 | |||
c5cd863f15 | |||
8ef1bfaf24 | |||
abac8d7147 | |||
367bcaf233 | |||
fdbb9428d9 | |||
bd047a0108 | |||
05202d572f | |||
a698e416ad | |||
1efc417f82 | |||
4dc31bbdb0 | |||
12dc727fda | |||
6602103d0f | |||
f3e8fb8ae2 | |||
a205d4d7f4 | |||
1783ca6e42 | |||
6555833fb6 | |||
ce3b9b2b7b | |||
1a653c5676 | |||
85a8d8aedb | |||
5c453fcd54 | |||
ec9adf8a6c | |||
b5064ca46f | |||
84b97ead76 | |||
4e578238f7 | |||
bb6d6137aa | |||
74c7728e3a | |||
e13113e38b | |||
68db0dbefe | |||
e015302a94 | |||
20fcf23f8f | |||
11beebf74d | |||
5a53406d33 | |||
ee83e4d748 | |||
970db8f0d8 | |||
71828f9f6e | |||
0525dd0f56 | |||
e3ba525195 | |||
1eed55cbce | |||
fd1331e602 | |||
02b82c04f3 | |||
ad5ef6ebbc | |||
3c5bc5b384 | |||
f229df0383 | |||
9092f892d0 | |||
9c3fb0856f | |||
2a8c665e12 | |||
9b1942ce48 | |||
932b4532f0 | |||
6533a1444d | |||
05a109dcf4 | |||
5b5b7856c6 | |||
4ceb508218 | |||
3afc7dc140 | |||
1c1058667b | |||
129aed2ae9 | |||
f8c7adf5a6 | |||
6346d39507 | |||
1b76f3b862 | |||
40c140a631 | |||
7fd11d4fb5 | |||
7fa694314b | |||
080e385b02 | |||
7c0b625793 | |||
f0b858b1f8 | |||
b218663e7e | |||
d8ea29423d | |||
ff038a1c56 | |||
588e8fca6b | |||
8d9f23d5f8 | |||
ea4637c740 | |||
c0e56a4f92 | |||
53a4722e91 | |||
d175870adf | |||
a64229f688 | |||
cd69e1e7b9 | |||
321db0b004 | |||
aaf01475b0 | |||
1cd38a396e | |||
1f1c9dd077 | |||
0da6d84309 | |||
3a05598166 | |||
5035d64298 | |||
56f6d20244 | |||
650d730c3f | |||
decaa0f636 | |||
c2b9e33b79 | |||
34347f241d | |||
5802f2132d | |||
8e502e5f50 | |||
0187f0cede | |||
8457aa7e2b | |||
67156b7c6f | |||
f9250b66a9 | |||
1fcdccaa33 | |||
5b93b88f46 | |||
cbd41cd1be | |||
95a8943b7e | |||
dd363370f6 | |||
1027a6a676 | |||
0fd93b0ff9 | |||
bfade87b62 | |||
26d9030544 | |||
5688a0daea | |||
92996ac781 | |||
1f471782ab | |||
320459eaab | |||
e65b2cce02 | |||
520ee981d3 | |||
f100ef72da | |||
146e1c871f | |||
669367c9c6 | |||
77d62c431a | |||
4a5fc507ca | |||
06f59dd320 | |||
4367f44449 | |||
856e0f69d3 | |||
c4bd2acd84 | |||
210c240aab | |||
d19f5dc732 | |||
6541c20466 | |||
3952484848 | |||
7d918604c3 | |||
ffaf5b88b6 | |||
eca4a9e923 | |||
1cee4e67e8 | |||
b1c35b60d8 | |||
1e5cfb4eaf | |||
5e5956420f | |||
78446d174a | |||
917d64a3e3 | |||
a3d51b2b08 | |||
3ffbd6e236 | |||
9753331d52 | |||
b266edb8e7 | |||
f1899055b8 | |||
c3f0a36665 | |||
88efb1f3d1 | |||
146f5881f7 | |||
3279fb1154 | |||
5f5efbe876 | |||
12afcfb656 | |||
0aac9e9d60 | |||
4e3b1527cd | |||
b27dcdd40a | |||
7b584dd482 | |||
5e71d94b62 | |||
8bb4338627 | |||
4bcd4a2cf2 | |||
ea7971cb3b | |||
9036b210a0 | |||
f337ac388b | |||
b0ae21ec60 | |||
7d11eeeddd | |||
4577ca5476 | |||
846794b60d | |||
5757af95aa | |||
b8c3b38652 | |||
3d21e4f35e | |||
73ce89d051 | |||
49d9dd666b | |||
53dda33c02 | |||
9b9f61bf13 | |||
651e2d3c56 | |||
0bd627d3b1 | |||
99d0eede80 | |||
d09b4ca409 | |||
caa76983e4 | |||
7b6bbb0bc3 | |||
cdf7c81a94 | |||
86812c5259 | |||
657302b720 | |||
172b5215d2 | |||
52a9d9f76c | |||
8eb7a48d3e | |||
a8bceffc9c | |||
2c728c793a | |||
8d974d8147 | |||
8fbc5c270a | |||
92dc5921df | |||
3c3ce37720 | |||
f369e399ed | |||
01aa1e1e52 | |||
2bbc1b7063 | |||
04b8a0ed73 | |||
761f7c6537 | |||
723dc2c9d3 | |||
d66fbb1c20 | |||
c2107b8d59 | |||
926620e8f8 | |||
82aeb89854 | |||
c67c58709b | |||
75b5958a53 | |||
bba5101669 | |||
b9c5dddbaf | |||
0566b3f5fa | |||
ac4adac1ab | |||
33a9097719 | |||
08c74cdf8b | |||
8c5222d850 | |||
08c76a46af | |||
3d24cb1deb | |||
a151f93be1 | |||
bce6a06c15 | |||
10a6e387f3 | |||
b6a37f274c | |||
2cdbc68643 | |||
7db40b27b5 | |||
b1760ff676 | |||
293eef2c78 | |||
299c6b779e | |||
842f435976 | |||
11faf925cc | |||
1295aa21cc | |||
84cd137c76 | |||
37067dff67 | |||
c7f850e1ba | |||
b25f2cd5f4 | |||
af95080b67 | |||
6b8c35d5fe | |||
a35e0dced4 | |||
c6259eb185 | |||
670017b342 | |||
ce7b210da9 | |||
1a2d8b8d40 | |||
fe2df00a8c | |||
20577d974f | |||
7369465a3a | |||
5769fa45f5 | |||
193b4cbf98 | |||
461df1a560 | |||
d5f78680eb | |||
96dde7107b | |||
3e756bfadd | |||
82c755200e | |||
735d33d05b | |||
90c8e5b2c9 | |||
cd1f06b116 | |||
173f347431 | |||
353d3389cd | |||
fe364978a1 | |||
cd512bbb01 | |||
f5193df721 | |||
25b5d24867 | |||
1d99ff0943 | |||
99d6d96b05 | |||
6ddfe2c605 | |||
d2ec7bba42 | |||
2557171953 | |||
0d7e45ea03 | |||
e677169a51 | |||
e268eac378 | |||
375f2b13c5 | |||
34406a2f72 | |||
cc658bcc3d | |||
973aefe7ae | |||
34e91251e8 | |||
882402645d | |||
d9d4dccc09 | |||
9d2fcccbf5 | |||
c4fdd881e6 | |||
83f7eee8ae | |||
dc1f63d8bb | |||
3e2425abd8 | |||
65e78c7990 | |||
2bdc5d3683 | |||
1de276378f | |||
cc76fe77f0 | |||
c8636aac6f | |||
a09f41143e | |||
8b29694446 | |||
5e0e89408c | |||
86076547c3 | |||
b1bbabe14d | |||
f5c678ec2d | |||
223625bd9b | |||
fbd7cf8cc7 | |||
26c7e4d1cc | |||
4832771185 | |||
7fb8d64628 | |||
36fed3bbf8 | |||
8ab738b315 | |||
b84b9606e9 | |||
aa68b7e148 | |||
ca44339512 | |||
91f5376dfc | |||
d51ef70db6 | |||
c164268c20 | |||
4c7c94c75d | |||
ccf141b279 | |||
e42808f22d | |||
75a4b2c538 | |||
f1d64c0572 | |||
25c57bf9fe | |||
079c90dbba | |||
0fc342ee4c | |||
7570c9fa0e | |||
7642c4da4f | |||
dce13e5b8e | |||
8b922681b6 | |||
bd33cdbc24 | |||
bc04ad2528 | |||
c54a5213b3 | |||
07cf0cd79b | |||
e64dc1669f | |||
48181994d8 | |||
31c2915075 | |||
67f05ecfe2 | |||
c121c60e8c | |||
110859508e | |||
efd3377ecd | |||
a7c1d8431d | |||
127f3e6363 | |||
6bec12c762 | |||
d1df2d4f42 | |||
5598f0af19 | |||
8dd80ce0f2 | |||
e45510e064 | |||
bfafff132a | |||
d6748fe979 | |||
2169522818 | |||
06cfa3fc60 | |||
f9e507eb15 | |||
90332a23b3 | |||
a82a810269 | |||
5a378b3c5f | |||
49a2df3dbb | |||
dee5ff38f5 | |||
70aefb421b | |||
764e1a1bf0 | |||
b140011f92 | |||
b48c9e437e | |||
f34efb4d6f | |||
324c03e8b9 | |||
e718101425 | |||
080ce50fea | |||
1b9eb223b0 | |||
ea2fa794ac | |||
c46c61a923 | |||
1136431551 | |||
957be23212 | |||
91a88b3e91 | |||
7c5d239267 | |||
c748b80447 | |||
725e0ecb00 | |||
eb71dd8a68 | |||
ce1687cf97 | |||
2e328b6d7f | |||
8489e63d34 | |||
f8c17730fc | |||
93e43eee7a | |||
9063dc3079 | |||
9d55d3f134 | |||
d199c3768a | |||
0e0c2447d9 | |||
99dfb3d24b | |||
c4366e009b | |||
1d31202607 | |||
78d25ffb69 | |||
b710682c66 | |||
52c6b94315 | |||
fd6b49e598 | |||
df2982454e | |||
8a19fd906f | |||
99198e5c2d | |||
9204f37560 | |||
765aa6efab | |||
50b613365f | |||
4fe8d10d6c | |||
162dab790d | |||
6e8c9731d8 | |||
235552f91d | |||
4ee08c296b | |||
bda979ec4f | |||
78f10f064e | |||
eca4a68fec | |||
9daa5d58c7 | |||
6cc232fbad | |||
6a07bd44ff | |||
63cd326191 | |||
40b15b0eb1 | |||
3825e9cb11 | |||
7db2942140 | |||
3a5d28f24a | |||
d02c63844d | |||
c3045dba07 | |||
c239566e1e | |||
dfdc8cfd09 | |||
4977b7ffa2 | |||
8e69299a6a | |||
903bcbb92e | |||
8d6492ac8c | |||
c39ae1fe1f | |||
e3539b06a2 | |||
d34a265ac2 | |||
9a72e361b1 | |||
a520e4bd93 | |||
9ab6ebbe0d | |||
6a3cfd05e7 | |||
f825e535e3 | |||
a2c5420d7f | |||
c6d3573652 | |||
e41bcd0d02 | |||
f805907954 | |||
d970efc0da | |||
c0ce5944dc | |||
467f354eb1 | |||
3f016b45f9 | |||
679f74e498 | |||
08b314e0b4 | |||
cc5959805b | |||
407f3d1609 | |||
503df3584c | |||
fa9510f0c1 | |||
cc92df4e7f | |||
d76c5d32f2 | |||
c6198cba4c | |||
e29dd4286e | |||
98c1c33341 | |||
78cc8743d5 | |||
89e75b3828 | |||
982d104ba0 | |||
2ce4461c63 | |||
146a55b921 | |||
7e883d3e5b | |||
7896efcd6c | |||
a1ef87ef78 | |||
d058f1741f | |||
ff0852fa39 | |||
5f07b68b07 | |||
0c2934a556 | |||
885b51a6cf | |||
6cb5ceca21 | |||
9a14ddb57c | |||
5c6f32488a | |||
4ec8f27d36 | |||
9554727370 | |||
394f9abd67 | |||
6ee45f0f54 | |||
2e9ae1ed0b | |||
74b12bd2d9 | |||
279adcfbcf | |||
64d655857b | |||
b2b5f3c22a | |||
588f3a9feb | |||
8c676b773d | |||
c76a0adb5e | |||
848fc51070 | |||
af1e09f46f | |||
f1abfe557a | |||
aa52ca804e | |||
273551fa36 | |||
17898b243a | |||
81ed12d454 | |||
2f78c99381 | |||
480c7d25e0 | |||
c1a6c5a215 | |||
8fadc87036 | |||
5176566882 | |||
b52b9990da | |||
8796599d89 | |||
9808245d30 | |||
12f2d1730f | |||
dac8c1e2f3 | |||
a3e1f8d8c6 | |||
2c28449b58 | |||
43197bf859 | |||
bd34c4e7ec | |||
511b8ad7ff | |||
a60562254c | |||
96368cbd3f | |||
e384e7dea3 | |||
86fbcd3a57 | |||
9730fb9272 | |||
a3f2ee8bbb | |||
a177b3b8da | |||
f369fdfa4a | |||
80a6e78d48 | |||
f65821256c | |||
dd10389c55 | |||
3dd6ef3da7 | |||
036d0a29ae | |||
d199e0b77e | |||
17ab79aa6f | |||
b10cd32449 | |||
f9001c1826 | |||
31050394b9 | |||
e9970f3cc8 | |||
516c460ace | |||
03d80290e6 | |||
d65b567858 | |||
0d10f4b1dd | |||
610d0204eb | |||
545a4adc66 | |||
38d8a1cd00 | |||
53201c7422 | |||
6f447e8a93 | |||
368a400fea | |||
902eeccea1 | |||
c8cf00a151 | |||
f41423e6a2 | |||
774485d5f2 | |||
8f4d62b080 | |||
8003a3e97f | |||
cf572985a7 | |||
c4966a9cc1 | |||
c6e6b13731 | |||
975041d211 | |||
ea16472ab1 | |||
713b0255f7 | |||
2aa63bbb8e | |||
f6708d9526 | |||
65b56271d4 | |||
c9c35d591b | |||
e9cfcb51ba | |||
dc5e5b4f8b | |||
ccb5369c57 | |||
bfe3ff17af | |||
756b0587bc | |||
af3d08ff36 | |||
a91913e633 | |||
736d8a8b12 | |||
9b5bdb2206 | |||
3ad606a767 | |||
e0cab11293 | |||
bffafdcd33 | |||
6dfeb7a100 | |||
a6431678ed | |||
cdcdfb135c | |||
7821c5767b | |||
6a5b7adc16 | |||
e58de01950 | |||
ae6e790879 | |||
d21b2fe21d | |||
6b8e8988b8 | |||
0db495eb1d | |||
6ad315b8de | |||
945ff65358 | |||
e0458ca444 | |||
5bd639e0be | |||
c78a050d86 | |||
e37a824d86 | |||
fe4d78992f | |||
1c380933e1 | |||
a8c3465133 | |||
edbfb957b1 | |||
161b8d8f34 | |||
96d9347cff | |||
dfb7133dbb | |||
a264b00200 | |||
100a301476 | |||
35c3ebfb20 | |||
e3db69282d | |||
45999f98b2 | |||
6f5c39e97c | |||
4644f3fe08 | |||
d951ebd351 | |||
a7bc4e7c70 | |||
a08553c9bc | |||
8161b83ded | |||
ad46d05c6b | |||
f231f3dc6d | |||
933b947f45 | |||
f6a5e0117c | |||
56c79dd66a | |||
25ba667cb1 | |||
1ac9c86a66 | |||
94a2e54c1e | |||
fbf4c853c1 | |||
5fba25d823 | |||
18efc02921 | |||
bdd803c517 | |||
382e232538 | |||
a2cddc761c | |||
6b4d2409cc | |||
da110bed80 | |||
363ee93c25 | |||
db0024dc58 | |||
1b59b95f52 | |||
2d0673a864 | |||
9f4b0d0ca1 | |||
97c1712fa6 | |||
455e3fbb90 | |||
3c718e3f68 | |||
63e797ba37 | |||
48340872f8 | |||
1b5d85d41a | |||
0595852d5a | |||
448e89d062 | |||
f92ee90e9b | |||
80f22c5b50 | |||
4b74d66529 | |||
ca72e11d9a | |||
5a0ec403f6 | |||
b6e7e39fb0 | |||
8c24d59f43 | |||
5ed0c3fb2d | |||
2151118183 | |||
4c65374a0c | |||
32cf2084b8 | |||
9dc834e14a | |||
3db11c443d | |||
421549d6ee | |||
a7277f3437 | |||
4d56911230 | |||
0f23dea7fc | |||
742e3e85e9 | |||
6eeb5bb1bf | |||
01eb59a295 | |||
8ddd42ea4c | |||
eb80adc2ed | |||
3103ef11d5 | |||
a1ead743fa | |||
c8d0291e41 | |||
bd44d77973 | |||
f872ab1819 | |||
55371ce7ee | |||
ba45d23307 | |||
f660bd9bd7 | |||
1332fb89e4 | |||
dc5254721e | |||
918a4d7c74 | |||
ec29c8fb49 | |||
43922a7c27 | |||
76b1166269 | |||
12c0605f92 | |||
0bbf1b96d5 | |||
b716b427a7 | |||
c1ac9f7922 | |||
3dd872e211 | |||
a09a9cdcbf | |||
2d835cdec1 | |||
28b91ed994 | |||
1e147c9dd5 | |||
6f89b47b30 | |||
8d5c07a317 | |||
9ff72b4d4c | |||
4fe5219b89 | |||
2dab7fdb0c | |||
5075982cd3 | |||
1a58166a0b | |||
ca0681b1a7 | |||
540b34c63f | |||
c8565b1197 | |||
75906820e5 | |||
2cacb5809d | |||
900faa2a71 | |||
c140eea734 | |||
5201c359d3 | |||
4e1b1b3c27 | |||
8af01c3bcb | |||
d94dabb8d6 | |||
63b1f1670b | |||
2d050b0ea5 | |||
686f702ec9 | |||
5754302154 | |||
e2ede3e568 | |||
f95824dea0 | |||
650a8704cd | |||
cd37f92592 | |||
6bf201b45e | |||
e178d6519c | |||
97d4a8e4f8 | |||
e5ce252587 | |||
b7cae6dac4 | |||
07d3b753b8 | |||
72ef0909f5 | |||
a5473bf882 | |||
c4e7ea4c8e | |||
ce462f1643 | |||
91936aff92 | |||
57858bbe9a | |||
42d9b1241e | |||
fc4a5315df | |||
e771bd53da | |||
291f46d732 | |||
e236d3312c | |||
794090291a | |||
380eec1ed6 | |||
7c283b7fda | |||
916080fa5a | |||
c10f80457d | |||
9773408c8b | |||
5ba5426281 | |||
098aebfaf9 | |||
75d79f19cc | |||
1b70e6d494 | |||
2c57251bae | |||
9bdb32c073 | |||
b74890137a | |||
57548b579f | |||
7aa1a5f4ba | |||
d60e399a3b | |||
da34614b5c | |||
a0d330fded | |||
f766661f8c | |||
82ddce42df | |||
bfe95676c3 | |||
789bb0b396 | |||
2620ef0b57 | |||
627962570e | |||
bbdbf6a52d | |||
56ed9f4ece | |||
e6188f5cef | |||
a37e5bbe74 | |||
9df99b1a00 | |||
5ff543e62d | |||
8f14c5ac53 | |||
4e0aa3c56d | |||
545c6bfa5e | |||
cd3652eaa6 | |||
655641737b | |||
152794720a | |||
cb294fb303 | |||
98744a53c1 | |||
430fcc20a8 | |||
1df78f22d3 | |||
2f823f5606 | |||
086d6dce7e | |||
879cca9fb3 | |||
3434fbe3b5 | |||
d4f9ccca5e | |||
4a74c3e6fd | |||
60d9a3f1ac | |||
b64fbbdb7f | |||
12e8d44a43 | |||
667658ae2f | |||
9d2624163c | |||
8f6688eba7 | |||
b360d9a2cf | |||
11384bbf6a | |||
6235944442 | |||
83573b0d43 | |||
bd87c09e1a | |||
1010b64c05 | |||
dd1fcd5100 | |||
75706c9e8b | |||
61e1dd6a83 | |||
8d5af952f6 | |||
2751a4bf3a | |||
ed297dd68d | |||
17c7d42ede | |||
1741b39375 | |||
800432ab54 | |||
f169c8f8ac | |||
f92a12db30 | |||
3ea730a0b6 | |||
e3c19fa306 | |||
f2c4890def | |||
5bc2f62d98 | |||
c954603bfc | |||
bf552801ec | |||
6bb1af0a18 | |||
48dca5e298 | |||
c08813be1d | |||
1cc6d93717 | |||
18a071fd7b | |||
32d310d999 | |||
c76d18e647 | |||
865706c112 | |||
3238049828 | |||
a41de82030 | |||
ccec1faeb1 | |||
b19887add0 | |||
ba2cb75877 | |||
b89905aa80 | |||
a25e879cac | |||
0106c5123d | |||
2cb20a8f63 | |||
fe1a994442 | |||
70889ab06d | |||
aab6865f50 | |||
efd32043e3 | |||
3eaa13a421 | |||
80d2ab44a3 |
@ -71,13 +71,6 @@ anchors:
|
||||
- trunk
|
||||
- release
|
||||
|
||||
only_trunk_and_cot: &only_trunk_and_cot
|
||||
filters:
|
||||
branches:
|
||||
only:
|
||||
- trunk
|
||||
- /^cot-.*/
|
||||
|
||||
multisite_acceptance_config: &multisite_acceptance_config
|
||||
multisite: 1
|
||||
requires:
|
||||
@ -85,6 +78,11 @@ anchors:
|
||||
- static_analysis_php8
|
||||
<<: *only_trunk_and_release
|
||||
|
||||
command_add_github_key: &command_add_github_key
|
||||
command: |
|
||||
# Add GitHub to known_hosts (for jobs without a checkout step that need to clone repos)
|
||||
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=" >> ~/.ssh/known_hosts
|
||||
|
||||
executors:
|
||||
wpcli_php_oldest:
|
||||
<<: *default_job_config
|
||||
@ -99,7 +97,7 @@ executors:
|
||||
wpcli_php_latest:
|
||||
<<: *default_job_config
|
||||
docker:
|
||||
- image: mailpoet/wordpress:8.1_20220718.1
|
||||
- image: mailpoet/wordpress:8.1_20230307.1
|
||||
|
||||
wpcli_php_mysql_oldest:
|
||||
<<: *default_job_config
|
||||
@ -110,7 +108,7 @@ executors:
|
||||
wpcli_php_mysql_latest:
|
||||
<<: *default_job_config
|
||||
docker:
|
||||
- image: mailpoet/wordpress:8.1_20220718.1
|
||||
- image: mailpoet/wordpress:8.1_20230307.1
|
||||
- image: cimg/mysql:8.0
|
||||
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_520_ci
|
||||
|
||||
@ -186,10 +184,11 @@ jobs:
|
||||
- run:
|
||||
name: Download additional WP Plugins for tests
|
||||
command: |
|
||||
./do download:woo-commerce-zip 6.8.2
|
||||
./do download:woo-commerce-subscriptions-zip 4.5.1
|
||||
./do download:woo-commerce-memberships-zip 1.23.0
|
||||
./do download:woo-commerce-blocks-zip 8.4.0
|
||||
./do download:woo-commerce-zip latest
|
||||
./do download:woo-commerce-subscriptions-zip 4.9.1
|
||||
./do download:woo-commerce-memberships-zip 1.24.0
|
||||
./do download:woo-commerce-blocks-zip 9.6.2
|
||||
./do download:automate-woo-zip 5.6.8
|
||||
- run:
|
||||
name: Dump tests ENV variables for acceptance tests
|
||||
command: |
|
||||
@ -207,11 +206,12 @@ jobs:
|
||||
- attach_workspace:
|
||||
at: /home/circleci
|
||||
- add_ssh_keys
|
||||
- run:
|
||||
name: 'Add GitHub to known_hosts'
|
||||
<<: *command_add_github_key
|
||||
- run:
|
||||
name: 'Install Premium plugin'
|
||||
command: |
|
||||
# Add GitHub to known_hosts because there is no checkout step in this job
|
||||
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
|
||||
git clone ${MAILPOET_PREMIUM_REPO_URL} mailpoet-premium
|
||||
- restore_cache:
|
||||
key: premium-tools-{{ checksum "mailpoet-premium/tools/install.php" }}
|
||||
@ -256,6 +256,26 @@ jobs:
|
||||
- run:
|
||||
name: 'Static analysis'
|
||||
command: ./do qa:phpstan --php-version=<< parameters.php_version >>
|
||||
security_analysis:
|
||||
working_directory: /home/circleci/mailpoet/mailpoet
|
||||
machine:
|
||||
image: ubuntu-2204:2022.10.2
|
||||
docker_layer_caching: false
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/circleci
|
||||
- add_ssh_keys
|
||||
- run:
|
||||
name: 'Add GitHub to known_hosts'
|
||||
<<: *command_add_github_key
|
||||
- run:
|
||||
name: 'Set up PHP'
|
||||
command: |
|
||||
sudo apt update
|
||||
sudo apt install -y php8.1-cli
|
||||
- run:
|
||||
name: 'QA Security'
|
||||
command: ./do qa:semgrep
|
||||
qa_js:
|
||||
executor: wpcli_php_latest
|
||||
working_directory: /home/circleci/mailpoet/mailpoet
|
||||
@ -318,7 +338,8 @@ jobs:
|
||||
parallelism: 20
|
||||
working_directory: /home/circleci/mailpoet/mailpoet
|
||||
machine:
|
||||
image: ubuntu-2204:2022.07.1
|
||||
image: ubuntu-2204:2022.10.2
|
||||
docker_layer_caching: false
|
||||
parameters:
|
||||
multisite:
|
||||
type: integer
|
||||
@ -329,7 +350,7 @@ jobs:
|
||||
mysql_command:
|
||||
type: string
|
||||
default: ''
|
||||
mysql_image_version:
|
||||
mysql_image:
|
||||
type: string
|
||||
default: ''
|
||||
codeception_image_version:
|
||||
@ -350,18 +371,18 @@ jobs:
|
||||
woo_blocks_version:
|
||||
type: string
|
||||
default: ''
|
||||
automate_woo_version:
|
||||
type: string
|
||||
default: ''
|
||||
enable_cot:
|
||||
type: integer
|
||||
default: 0
|
||||
enable_cot_sync:
|
||||
type: integer
|
||||
default: 0
|
||||
allow_fail:
|
||||
type: integer
|
||||
default: 0
|
||||
environment:
|
||||
MYSQL_COMMAND: << parameters.mysql_command >>
|
||||
MYSQL_IMAGE_VERSION: << parameters.mysql_image_version >>
|
||||
MYSQL_IMAGE: << parameters.mysql_image >>
|
||||
CODECEPTION_IMAGE_VERSION: << parameters.codeception_image_version >>
|
||||
WORDPRESS_IMAGE_VERSION: << parameters.wordpress_image_version >>
|
||||
steps:
|
||||
@ -406,11 +427,21 @@ jobs:
|
||||
command: |
|
||||
cd tests/docker
|
||||
docker-compose run --rm -w /project --entrypoint "./do download:woo-commerce-blocks-zip << parameters.woo_blocks_version >>" --no-deps -e WP_GITHUB_USERNAME=${WP_GITHUB_USERNAME} -e WP_GITHUB_TOKEN=${WP_GITHUB_TOKEN} codeception_acceptance
|
||||
- when:
|
||||
condition: << parameters.automate_woo_version >>
|
||||
steps:
|
||||
- run:
|
||||
name: Download AutomateWoo
|
||||
command: |
|
||||
cd tests/docker
|
||||
docker-compose run --rm -w /project --entrypoint "./do download:automate-woo-zip << parameters.automate_woo_version >>" --no-deps -e WP_GITHUB_USERNAME=${WP_GITHUB_USERNAME} -e WP_GITHUB_TOKEN=${WP_GITHUB_TOKEN} codeception_acceptance
|
||||
- run:
|
||||
name: Group acceptance tests
|
||||
command: |
|
||||
# Convert test result filename values to be relative paths because the circleci CLI's split command requires exact matches
|
||||
sed -i.bak 's#/wp-core/wp-content/plugins/mailpoet/##g' $CIRCLE_INTERNAL_TASK_DATA/circle-test-results/results.json
|
||||
if [ -e $CIRCLE_INTERNAL_TASK_DATA/circle-test-results/results.json ]; then
|
||||
sed -i.bak 's#/wp-core/wp-content/plugins/mailpoet/##g' $CIRCLE_INTERNAL_TASK_DATA/circle-test-results/results.json
|
||||
fi
|
||||
# `circleci tests split` returns different values based on the container it's run on
|
||||
# in case group is defined find only tests containing the group
|
||||
if [[ -n '<< parameters.group >>' ]]; then
|
||||
@ -419,6 +450,12 @@ jobs:
|
||||
circleci tests glob "tests/acceptance/**/*Cest.php" | circleci tests split --split-by=timings > tests/acceptance/_groups/circleci_split_group
|
||||
fi
|
||||
cat tests/acceptance/_groups/circleci_split_group
|
||||
- run:
|
||||
name: Create docker containers for test
|
||||
# We experienced some failures when creating containers so we do it explicitly with one retry
|
||||
command: |
|
||||
cd tests/docker
|
||||
docker-compose create || docker-compose create
|
||||
- run:
|
||||
name: Run acceptance tests
|
||||
command: |
|
||||
@ -432,9 +469,6 @@ jobs:
|
||||
--xml
|
||||
-g circleci_split_group
|
||||
)
|
||||
if [[ << parameters.allow_fail >> == 1 ]]; then
|
||||
args+=(--no-exit)
|
||||
fi
|
||||
docker-compose run -e SKIP_DEPS=1 \
|
||||
-e CIRCLE_BRANCH=${CIRCLE_BRANCH} \
|
||||
-e CIRCLE_JOB=${CIRCLE_JOB} \
|
||||
@ -442,22 +476,78 @@ jobs:
|
||||
-e ENABLE_COT=<< parameters.enable_cot >> \
|
||||
-e ENABLE_COT_SYNC=<< parameters.enable_cot_sync >> \
|
||||
codeception_acceptance "${args[@]}"
|
||||
- when:
|
||||
condition:
|
||||
not:
|
||||
equal: [1, << parameters.allow_fail >>]
|
||||
steps:
|
||||
- run:
|
||||
name: Check exceptions
|
||||
command: |
|
||||
if [ "$(ls tests/_output/exceptions/*.html)" ]; then
|
||||
echo "There were some exceptions during the tests run"
|
||||
exit 1
|
||||
fi
|
||||
- run:
|
||||
name: Check exceptions
|
||||
command: |
|
||||
if [ "$(ls tests/_output/exceptions/*.html)" ]; then
|
||||
echo "There were some exceptions during the tests run"
|
||||
exit 1
|
||||
fi
|
||||
- store_artifacts:
|
||||
path: tests/_output
|
||||
- store_test_results:
|
||||
path: tests/_output
|
||||
performance_tests:
|
||||
working_directory: /home/circleci/mailpoet/mailpoet
|
||||
machine:
|
||||
image: ubuntu-2204:2022.10.2
|
||||
docker_layer_caching: false
|
||||
parameters:
|
||||
mysql_command:
|
||||
type: string
|
||||
default: ''
|
||||
mysql_image:
|
||||
type: string
|
||||
default: ''
|
||||
wordpress_image_version:
|
||||
type: string
|
||||
default: ''
|
||||
url:
|
||||
type: string
|
||||
default: 'http://localhost:9500'
|
||||
pw:
|
||||
type: string
|
||||
default: 'password'
|
||||
scenario:
|
||||
type: string
|
||||
default: 'pullrequests'
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/circleci
|
||||
- run:
|
||||
name: 'Set up PHP'
|
||||
command: |
|
||||
sudo apt update
|
||||
sudo apt install -y php8.1-cli
|
||||
- run:
|
||||
name: 'Pull test docker images'
|
||||
# Pull docker images with 3 retries
|
||||
command: i='0';while ! docker-compose -f tests/performance/docker-compose.yml pull && ((i < 3)); do sleep 3 && i=$[$i+1]; done
|
||||
- run:
|
||||
name: Create docker containers for test
|
||||
# We experienced some failures when creating containers so we do it explicitly with one retry
|
||||
command: |
|
||||
cd tests/performance
|
||||
docker-compose create || docker-compose create
|
||||
- run:
|
||||
name: Run performance tests
|
||||
command: |
|
||||
mkdir -p tests/performance/_output
|
||||
mkdir -p tests/performance/_screenshots
|
||||
./do test:performance --url=<< parameters.url >> --pw=<< parameters.pw >> --scenario=<< parameters.scenario >>
|
||||
- run:
|
||||
name: Check exceptions
|
||||
command: |
|
||||
if [ "$(ls tests/performance/_output/exceptions/*.html)" ]; then
|
||||
echo "There were some exceptions during the tests run"
|
||||
exit 1
|
||||
fi
|
||||
- store_artifacts:
|
||||
path: tests/performance/_output
|
||||
- store_artifacts:
|
||||
path: tests/performance/_screenshots
|
||||
- store_test_results:
|
||||
path: tests/performance/_output
|
||||
unit_tests:
|
||||
working_directory: /home/circleci/mailpoet/mailpoet
|
||||
parameters:
|
||||
@ -492,9 +582,12 @@ jobs:
|
||||
integration_tests:
|
||||
working_directory: /home/circleci/mailpoet/mailpoet
|
||||
machine:
|
||||
image: ubuntu-2204:2022.07.1
|
||||
image: ubuntu-2204:2022.10.2
|
||||
docker_layer_caching: false
|
||||
environment:
|
||||
CODECEPTION_IMAGE_VERSION: << parameters.codeception_image_version >>
|
||||
MYSQL_COMMAND: << parameters.mysql_command >>
|
||||
MYSQL_IMAGE: << parameters.mysql_image >>
|
||||
parameters:
|
||||
codeception_image_version:
|
||||
type: string
|
||||
@ -517,12 +610,12 @@ jobs:
|
||||
multisite:
|
||||
type: integer
|
||||
default: 0
|
||||
woo_core_version:
|
||||
mysql_command:
|
||||
type: string
|
||||
default: ''
|
||||
mysql_image:
|
||||
type: string
|
||||
default: ''
|
||||
allow_fail:
|
||||
type: integer
|
||||
default: 0
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /home/circleci
|
||||
@ -530,14 +623,12 @@ jobs:
|
||||
name: 'Pull test docker images'
|
||||
# Pull docker images with 3 retries
|
||||
command: i='0';while ! docker-compose -f tests/docker/docker-compose.yml pull && ((i < 3)); do sleep 3 && i=$[$i+1]; done
|
||||
- when:
|
||||
condition: << parameters.woo_core_version >>
|
||||
steps:
|
||||
- run:
|
||||
name: Download WooCommerce Core
|
||||
command: |
|
||||
cd tests/docker
|
||||
docker-compose run --rm -w /project --entrypoint "./do download:woo-commerce-zip << parameters.woo_core_version >>" --no-deps codeception_integration
|
||||
- run:
|
||||
name: Create docker containers for test
|
||||
# We experienced some failures when creating containers so we do it explicitly with one retry
|
||||
command: |
|
||||
cd tests/docker
|
||||
docker-compose create || docker-compose create
|
||||
- run:
|
||||
name: 'PHP Integration tests'
|
||||
command: |
|
||||
@ -556,9 +647,6 @@ jobs:
|
||||
if [[ -n '<< parameters.skip_group >>' ]]; then
|
||||
args+=(--skip-group << parameters.skip_group >>)
|
||||
fi
|
||||
if [[ << parameters.allow_fail >> == 1 ]]; then
|
||||
args+=(--no-exit)
|
||||
fi
|
||||
docker-compose run -e SKIP_DEPS=1 \
|
||||
-e CIRCLE_BRANCH=${CIRCLE_BRANCH} \
|
||||
-e CIRCLE_JOB=${CIRCLE_JOB} \
|
||||
@ -633,6 +721,10 @@ workflows:
|
||||
php_version: 80000
|
||||
requires:
|
||||
- build
|
||||
- security_analysis:
|
||||
<<: *slack-fail-post-step
|
||||
requires:
|
||||
- build
|
||||
- qa_js:
|
||||
<<: *slack-fail-post-step
|
||||
requires:
|
||||
@ -651,7 +743,7 @@ workflows:
|
||||
- build
|
||||
- acceptance_tests:
|
||||
<<: *slack-fail-post-step
|
||||
name: acceptance_tests
|
||||
name: acceptance_tests_base_and_woo_cot_off
|
||||
requires:
|
||||
- unit_tests
|
||||
- static_analysis_php8
|
||||
@ -659,13 +751,10 @@ workflows:
|
||||
- qa_php
|
||||
- acceptance_tests:
|
||||
<<: *slack-fail-post-step
|
||||
<<: *only_trunk_and_cot
|
||||
name: acceptance_tests_woo_cot_sync
|
||||
group: woo
|
||||
enable_cot: 1
|
||||
enable_cot_sync: 1
|
||||
allow_fail: 1
|
||||
woo_core_version: woo-cot-beta # Temporarily force COT beta version
|
||||
requires:
|
||||
- unit_tests
|
||||
- static_analysis_php8
|
||||
@ -673,24 +762,18 @@ workflows:
|
||||
- qa_php
|
||||
- acceptance_tests:
|
||||
<<: *slack-fail-post-step
|
||||
<<: *only_trunk_and_cot
|
||||
name: acceptance_tests_woo_cot_no_sync
|
||||
group: woo
|
||||
enable_cot: 1
|
||||
enable_cot_sync: 0
|
||||
allow_fail: 1
|
||||
woo_core_version: woo-cot-beta # Temporarily force COT beta version
|
||||
requires:
|
||||
- unit_tests
|
||||
- static_analysis_php8
|
||||
- qa_js
|
||||
- qa_php
|
||||
- acceptance_tests:
|
||||
- performance_tests:
|
||||
<<: *slack-fail-post-step
|
||||
<<: *only_trunk_and_cot
|
||||
name: acceptance_tests_woo_cot_off
|
||||
group: woo
|
||||
woo_core_version: woo-cot-beta # Temporarily force COT beta version
|
||||
name: performance_tests
|
||||
requires:
|
||||
- unit_tests
|
||||
- static_analysis_php8
|
||||
@ -703,20 +786,8 @@ workflows:
|
||||
- integration_tests:
|
||||
<<: *slack-fail-post-step
|
||||
group: woo
|
||||
name: integration_test_woocommerce
|
||||
requires:
|
||||
- unit_tests
|
||||
- static_analysis_php8
|
||||
- qa_js
|
||||
- qa_php
|
||||
- integration_tests:
|
||||
<<: *slack-fail-post-step
|
||||
<<: *only_trunk_and_cot
|
||||
group: woo
|
||||
enable_cot: 1
|
||||
enable_cot_sync: 1
|
||||
allow_fail: 1
|
||||
woo_core_version: woo-cot-beta # Temporarily force COT beta version
|
||||
name: integration_test_woo_cot_sync
|
||||
requires:
|
||||
- unit_tests
|
||||
@ -725,12 +796,9 @@ workflows:
|
||||
- qa_php
|
||||
- integration_tests:
|
||||
<<: *slack-fail-post-step
|
||||
<<: *only_trunk_and_cot
|
||||
group: woo
|
||||
enable_cot: 1
|
||||
enable_cot_sync: 0
|
||||
allow_fail: 1
|
||||
woo_core_version: woo-cot-beta # Temporarily force COT beta version
|
||||
name: integration_test_woo_cot_no_sync
|
||||
requires:
|
||||
- unit_tests
|
||||
@ -739,9 +807,7 @@ workflows:
|
||||
- qa_php
|
||||
- integration_tests:
|
||||
<<: *slack-fail-post-step
|
||||
<<: *only_trunk_and_cot
|
||||
group: woo
|
||||
woo_core_version: woo-cot-beta # Temporarily force COT beta version
|
||||
name: integration_test_woo_cot_off
|
||||
requires:
|
||||
- unit_tests
|
||||
@ -777,10 +843,15 @@ workflows:
|
||||
<<: *slack-fail-post-step
|
||||
requires:
|
||||
- build
|
||||
- acceptance_tests
|
||||
- acceptance_tests_base_and_woo_cot_off
|
||||
- js_tests
|
||||
- integration_test_woocommerce
|
||||
- integration_test_base
|
||||
- integration_test_woo_cot_no_sync
|
||||
- integration_test_woo_cot_off
|
||||
- integration_test_woo_cot_sync
|
||||
- acceptance_tests_woo_cot_sync
|
||||
- acceptance_tests_woo_cot_no_sync
|
||||
- performance_tests
|
||||
|
||||
nightly:
|
||||
triggers:
|
||||
@ -800,19 +871,29 @@ workflows:
|
||||
woo_subscriptions_version: latest
|
||||
woo_memberships_version: latest
|
||||
woo_blocks_version: latest
|
||||
automate_woo_version: latest
|
||||
requires:
|
||||
- build
|
||||
- acceptance_tests:
|
||||
<<: *slack-fail-post-step
|
||||
name: acceptance_oldest
|
||||
woo_core_version: 6.2.2
|
||||
woo_core_version: 7.3.0
|
||||
woo_subscriptions_version: 4.3.0
|
||||
woo_memberships_version: 1.21.0
|
||||
woo_blocks_version: 5.3.2
|
||||
mysql_command: --max_allowed_packet=100M
|
||||
mysql_image_version: 5.7.36
|
||||
codeception_image_version: 7.4-cli_20210126.1
|
||||
wordpress_image_version: wp-5.6_php7.2_20220406.1
|
||||
woo_blocks_version: 6.8.0
|
||||
automate_woo_version: 5.1.1
|
||||
mysql_command: --max_allowed_packet=100M --default-storage-engine=MYISAM
|
||||
mysql_image: mysql:5.5
|
||||
codeception_image_version: 7.4-cli_20220605.0
|
||||
wordpress_image_version: wp-6.0_php7.4_20230425.1
|
||||
requires:
|
||||
- build
|
||||
- performance_tests:
|
||||
<<: *slack-fail-post-step
|
||||
name: performance_latest
|
||||
url: https://qawp.net
|
||||
pw: $WP_TEST_PERFORMANCE_PW
|
||||
scenario: nightlytests
|
||||
requires:
|
||||
- build
|
||||
- unit_tests:
|
||||
@ -835,6 +916,8 @@ workflows:
|
||||
<<: *slack-fail-post-step
|
||||
name: integration_oldest
|
||||
codeception_image_version: 7.2-cli_20220605.0
|
||||
mysql_command: --max_allowed_packet=100M --default-storage-engine=MYISAM
|
||||
mysql_image: mysql:5.5
|
||||
requires:
|
||||
- build
|
||||
- build_premium:
|
||||
|
16
.github/workflows/stats.yml
vendored
Normal file
16
.github/workflows/stats.yml
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
name: Pull Request Stats
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
stats:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Run pull request stats
|
||||
uses: flowwer-dev/pull-request-stats@master
|
||||
with:
|
||||
period: 90
|
||||
charts: true
|
||||
sort-by: 'TIME'
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -7,4 +7,5 @@ docker-compose.override.yml
|
||||
node_modules
|
||||
npm-debug.log
|
||||
mailpoet-premium
|
||||
tsconfig.tsbuildinfo
|
||||
wordpress
|
||||
|
1
.npmrc
1
.npmrc
@ -1,2 +1,3 @@
|
||||
save-workspace-protocol=rolling
|
||||
strict-peer-dependencies=false
|
||||
resolve-peers-from-workspace-root=true
|
||||
|
@ -22,6 +22,7 @@ vendor-prefixed
|
||||
/mailpoet/temp
|
||||
/mailpoet/tests/javascript_newsletter_editor/testBundles
|
||||
/mailpoet/tests/plugins
|
||||
/mailpoet/tools/wpscan-semgrep-rules
|
||||
/mailpoet/views
|
||||
/mailpoet-premium
|
||||
/wordpress
|
||||
|
15
README.md
15
README.md
@ -126,23 +126,24 @@ You can access this help in your command line running `./do` without parameters.
|
||||
|
||||
[Read the article.](https://mailpoet.atlassian.net/wiki/spaces/MAILPOET/pages/629374977/Adding+new+templates+to+the+plugin)
|
||||
|
||||
## 🚥 Testing with PHP 7.4 or PHP 8.0
|
||||
## 🚥 Testing with different PHP versions
|
||||
|
||||
To switch the environment to PHP 7.4/8.0:
|
||||
To switch the environment to a different PHP version:
|
||||
|
||||
1. Configure the `wordpress` service in `docker-compose.override.yml` to build from the php74 Dockerfile:
|
||||
1. Check https://github.com/mailpoet/mailpoet/tree/trunk/dev for a list of available PHP versions. Each directory starting with `php` corresponds to a available version.
|
||||
2. Configure the `wordpress` service in `docker-compose.override.yml` to build from the desired PHP version Dockerfile (replace {PHP_VERSION} with the name of the directory that corresponds to the version that you want to use):
|
||||
|
||||
```yaml
|
||||
wordpress:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: dev/php74/Dockerfile # OR dev/php80/Dockerfile
|
||||
dockerfile: dev/{PHP_VERSION}/Dockerfile
|
||||
```
|
||||
|
||||
2. Run `docker-compose build wordpress`.
|
||||
3. Start the stack with `./do start`.
|
||||
3. Run `docker-compose build wordpress`.
|
||||
4. Start the stack with `./do start`.
|
||||
|
||||
To switch back to PHP 8.1 remove what was added in 1) and, run `docker-compose build wordpress` for application container and `docker-compose build test_wordpress` for tests container,
|
||||
To switch back to the default PHP version remove what was added in 2) and, run `docker-compose build wordpress` for application container and `docker-compose build test_wordpress` for tests container,
|
||||
and start the stack using `./do start`.
|
||||
|
||||
## ✅ TODO
|
||||
|
8
babel.config.js
Normal file
8
babel.config.js
Normal file
@ -0,0 +1,8 @@
|
||||
export default {
|
||||
presets: [
|
||||
['@babel/preset-react', { runtime: 'automatic' }],
|
||||
'@babel/preset-env',
|
||||
'@babel/preset-typescript',
|
||||
],
|
||||
plugins: [['@babel/plugin-transform-runtime']],
|
||||
};
|
@ -10,7 +10,7 @@ RUN apt-get update \
|
||||
&& pecl install xdebug-2.9.8 && \
|
||||
\
|
||||
# Install NodeJS, enable Corepack
|
||||
curl -sL https://deb.nodesource.com/setup_17.x | bash - && \
|
||||
curl -sL https://deb.nodesource.com/setup_19.x | bash - && \
|
||||
apt-get install -y nodejs build-essential && \
|
||||
corepack enable && \
|
||||
\
|
||||
|
@ -8,7 +8,7 @@ RUN apt-get update \
|
||||
&& apt-get install -y git zlib1g-dev libzip-dev zip wget gnupg msmtp libpng-dev gettext subversion \
|
||||
&& \
|
||||
# Install NodeJS, enable Corepack
|
||||
curl -sL https://deb.nodesource.com/setup_17.x | bash - && \
|
||||
curl -sL https://deb.nodesource.com/setup_19.x | bash - && \
|
||||
apt-get install -y nodejs build-essential && \
|
||||
corepack enable && \
|
||||
\
|
||||
|
@ -8,7 +8,7 @@ RUN apt-get update \
|
||||
&& apt-get install -y git zlib1g-dev libzip-dev zip wget gnupg msmtp libpng-dev gettext subversion \
|
||||
&& \
|
||||
# Install NodeJS, enable Corepack
|
||||
curl -sL https://deb.nodesource.com/setup_17.x | bash - && \
|
||||
curl -sL https://deb.nodesource.com/setup_19.x | bash - && \
|
||||
apt-get install -y nodejs build-essential && \
|
||||
corepack enable && \
|
||||
\
|
||||
|
46
dev/php82/Dockerfile
Normal file
46
dev/php82/Dockerfile
Normal file
@ -0,0 +1,46 @@
|
||||
FROM php:8.2.0RC6-apache
|
||||
|
||||
ARG UID=1000
|
||||
ARG GID=1000
|
||||
|
||||
# additinal extensions
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y git zlib1g-dev libzip-dev zip wget gnupg msmtp libpng-dev gettext subversion \
|
||||
&& \
|
||||
# Install NodeJS, enable Corepack
|
||||
curl -sL https://deb.nodesource.com/setup_19.x | bash - && \
|
||||
apt-get install -y nodejs build-essential && \
|
||||
corepack enable && \
|
||||
\
|
||||
# Install WP-CLI
|
||||
curl -o /usr/local/bin/wp https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
|
||||
chmod +x /usr/local/bin/wp && \
|
||||
\
|
||||
# Clean up
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
COPY dev/php.ini /usr/local/etc/php/conf.d/php_user.ini
|
||||
|
||||
# msmtp config
|
||||
RUN printf "account default\nhost smtp\nport 1025" > /etc/msmtprc
|
||||
|
||||
# xdebug build an config
|
||||
ENV XDEBUGINI_PATH=/usr/local/etc/php/conf.d/xdebug.ini
|
||||
RUN git clone -b "3.2.0RC2" --depth 1 https://github.com/xdebug/xdebug.git /usr/src/php/ext/xdebug \
|
||||
&& docker-php-ext-configure xdebug --enable-xdebug-dev \
|
||||
&& docker-php-ext-install xdebug \
|
||||
&& mkdir /tmp/debug
|
||||
COPY dev/xdebug.ini /tmp/xdebug.ini
|
||||
RUN cat /tmp/xdebug.ini >> $XDEBUGINI_PATH
|
||||
|
||||
# php extensions
|
||||
RUN docker-php-ext-install pdo_mysql
|
||||
RUN docker-php-ext-install mysqli
|
||||
|
||||
# allow .htaccess files (between <Directory /var/www/> and </Directory>, which is WordPress installation)
|
||||
RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf
|
||||
|
||||
# ensure existing content in /var/www/html respects UID and GID, give Node permissions for Corepack
|
||||
RUN chown -R ${UID}:${GID} /var/www/html && \
|
||||
mkdir -p /.node && chown -R ${UID}:${GID} /.node
|
@ -28,6 +28,7 @@ Class `\MailPoet\API\API` becomes available once MailPoet plugin is loaded by Wo
|
||||
- [Add List (addList)](api_methods/AddList.md)
|
||||
- [Add Subscriber (addSubscriber)](api_methods/AddSubscriber.md)
|
||||
- [Add Subscriber Field (addSubscriberField)](api_methods/AddSubscriberField.md)
|
||||
- [Delete List (deleteList)](api_methods/DeleteList.md)
|
||||
- [Get Lists (getLists)](api_methods/GetLists.md)
|
||||
- [Get Subscriber (getSubscriber)](api_methods/GetSubscriber.md)
|
||||
- [Get Subscribers (getSubscribers)](api_methods/GetSubscribers.md)
|
||||
@ -36,8 +37,10 @@ Class `\MailPoet\API\API` becomes available once MailPoet plugin is loaded by Wo
|
||||
- [Is Setup Complete (isSetupComplete)](api_methods/IsSetupComplete.md)
|
||||
- [Subscribe to List (subscribeToList)](api_methods/SubscribeToList.md)
|
||||
- [Subscribe to Lists (subscribeToLists)](api_methods/SubscribeToLists.md)
|
||||
- [Unsubscribe globally](api_methods/UnsubscribeGlobally.md)
|
||||
- [Unsubscribe from List (unsubscribeFromList)](api_methods/UnsubscribeFromList.md)
|
||||
- [Unsubscribe from Lists (unsubscribeFromLists)](api_methods/UnsubscribeFromLists.md)
|
||||
- [Update List (updateList)](api_methods/UpdateList.md)
|
||||
|
||||
### Usage examples
|
||||
|
||||
|
27
doc/api_methods/DeleteList.md
Normal file
27
doc/api_methods/DeleteList.md
Normal file
@ -0,0 +1,27 @@
|
||||
[back to list](../Readme.md)
|
||||
|
||||
# Delete List
|
||||
|
||||
## `bool deleteList(string $list_id)`
|
||||
|
||||
This method provides functionality for deleting a list that is of the type 'default'.
|
||||
|
||||
It returns a boolean value.
|
||||
|
||||
## Error handling
|
||||
|
||||
All expected errors from the API are exceptions of class `\MailPoet\API\MP\v1\APIException`.
|
||||
Code of the exception is populated to distinguish between different errors.
|
||||
|
||||
An exception of base class `\Exception` can be thrown when something unexpected happens.
|
||||
|
||||
Codes description:
|
||||
|
||||
| Code | Description |
|
||||
| ---- | --------------------------------------------------------------- |
|
||||
| 5 | List does not exist |
|
||||
| 18 | List id is empty |
|
||||
| 20 | List cannot be deleted because it’s used for an automatic email |
|
||||
| 21 | List cannot be deleted because it’s used for a form |
|
||||
| 22 | The list couldn’t be deleted from the database |
|
||||
| 23 | Only lists of the type 'default' can be deleted |
|
@ -18,8 +18,8 @@ This method returns a list of subscribers. To see the subscriber data structure,
|
||||
|
||||
Filter argument supports following array keys.
|
||||
|
||||
| Key | Type | Description |
|
||||
| -------------- | ------------ | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| status | string | Specific status of subscribers. One of values: `unconfirmed`, `subscribed`, `unsubscribed`, `bounced`, `inactive` |
|
||||
| list_id | int | List id or dynamic segment id |
|
||||
| min_updated_at | DateTime\int | DateTime object or timestamp of the minimal last update of subscribers |
|
||||
| Key | Type | Description |
|
||||
| ------------ | ------------ | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| status | string | Specific status of subscribers. One of values: `unconfirmed`, `subscribed`, `unsubscribed`, `bounced`, `inactive` |
|
||||
| listId | int | List id or dynamic segment id |
|
||||
| minUpdatedAt | DateTime\int | DateTime object or timestamp of the minimal last update of subscribers |
|
||||
|
29
doc/api_methods/UnsubscribeGlobally.md
Normal file
29
doc/api_methods/UnsubscribeGlobally.md
Normal file
@ -0,0 +1,29 @@
|
||||
[back to list](../Readme.md)
|
||||
|
||||
# Unsubscribe from all lists and change subscriber status
|
||||
|
||||
## `array unsubscribe(string $subscriber_id)`
|
||||
|
||||
This method removes a subscriber from all lists and updates its status to 'unsubscribed'.
|
||||
|
||||
It returns a subscriber. See [Get Subscriber](GetSubscriber.md) for returned data structure.
|
||||
|
||||
## Arguments
|
||||
|
||||
### string `$subscriber_id` (required)
|
||||
|
||||
An id or email of an existing subscriber. An `\Exception` is thrown when an id or email doesn't match any subscriber.
|
||||
|
||||
## Error handling
|
||||
|
||||
All expected errors from the API are exceptions of class `\MailPoet\API\MP\v1\APIException`.
|
||||
Code of the exception is populated to distinguish between different errors.
|
||||
|
||||
An exception of base class `\Exception` can be thrown when something unexpected happens.
|
||||
|
||||
Codes description:
|
||||
|
||||
| Code | Description |
|
||||
| ---- | -------------------------------------------- |
|
||||
| 4 | Invalid subscriber that does not exist |
|
||||
| 24 | Subscriber already has 'unsubscribed' status |
|
39
doc/api_methods/UpdateList.md
Normal file
39
doc/api_methods/UpdateList.md
Normal file
@ -0,0 +1,39 @@
|
||||
[back to list](../Readme.md)
|
||||
|
||||
# Add Subscriber
|
||||
|
||||
## `array updateList(array $list)`
|
||||
|
||||
This method provides functionality for updating a list name or description. Only lists of type 'default' are supported.
|
||||
|
||||
It returns the updated list. See [Get Lists](GetLists.md) for a list data structure description.
|
||||
|
||||
## Arguments
|
||||
|
||||
### `$list` (required)
|
||||
|
||||
An associative array which contains list data.
|
||||
|
||||
| Property | Type | Limits | Description |
|
||||
| ---------------------- | ------------ | --------- | -------------------------- |
|
||||
| id (required) | string | 11 chars | A id of the list. |
|
||||
| name (required) | string | 90 chars | A name of the list. |
|
||||
| description (optional) | string\|null | 250 chars | A description of the list. |
|
||||
|
||||
## Error handling
|
||||
|
||||
All expected errors from the API are exceptions of class `\MailPoet\API\MP\v1\APIException`.
|
||||
Code of the exception is populated to distinguish between different errors.
|
||||
|
||||
An exception of base class `\Exception` can be thrown when something unexpected happens.
|
||||
|
||||
Codes description:
|
||||
|
||||
| Code | Description |
|
||||
| ---- | ----------------------------------------------- |
|
||||
| 5 | The list was not found by id |
|
||||
| 14 | Missing list name |
|
||||
| 15 | Trying to use a list name that is already used |
|
||||
| 18 | Missing list id |
|
||||
| 19 | The list couldn’t be updated in the database |
|
||||
| 23 | Only lists of the type 'default' can be updated |
|
@ -15,6 +15,7 @@ services:
|
||||
volumes:
|
||||
- my-datavolume:/var/lib/mysql
|
||||
- ./dev/database/create_test_db.sh:/docker-entrypoint-initdb.d/10-create_test_db.sh
|
||||
command: --sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ANSI,ONLY_FULL_GROUP_BY
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: somewordpress
|
||||
MYSQL_DATABASE: wordpress
|
||||
@ -46,6 +47,7 @@ services:
|
||||
PHP_IDE_CONFIG: 'serverName=Mailpoet'
|
||||
COMPOSER_HOME: '/tmp/.composer'
|
||||
NPM_CONFIG_CACHE: '/tmp/.npm'
|
||||
XDG_CACHE_HOME: '/tmp/.cache'
|
||||
MAILPOET_DEV_SITE: 1
|
||||
volumes:
|
||||
- './wordpress:/var/www/html'
|
||||
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
"presets": [
|
||||
"@babel/preset-typescript",
|
||||
["@babel/preset-react", { "runtime": "automatic" }],
|
||||
"@babel/preset-env"
|
||||
"@babel/preset-env",
|
||||
["@babel/preset-typescript", { "allowDeclareFields": true }]
|
||||
],
|
||||
"plugins": [
|
||||
"babel-plugin-typescript-to-proptypes",
|
||||
[
|
||||
"@babel/plugin-transform-runtime",
|
||||
{
|
||||
|
@ -37,3 +37,10 @@ WP_GITHUB_TOKEN=
|
||||
# Jira username/email and a token from https://id.atlassian.com/manage/api-tokens:
|
||||
WP_JIRA_USER=
|
||||
WP_JIRA_TOKEN=
|
||||
|
||||
# k6 performance test suite
|
||||
# Get following secrets from the Secret Store, look for "MailPoet: plugin .env":
|
||||
WP_TEST_PERFORMANCE_DATA_URL=
|
||||
WP_TEST_PERFORMANCE_PW=
|
||||
K6_CLOUD_TOKEN=
|
||||
K6_CLOUD_ID=
|
||||
|
@ -1,3 +0,0 @@
|
||||
**/vendor/**
|
||||
**/vendor-prefixed/**
|
||||
**/testBundles/**
|
@ -1 +0,0 @@
|
||||
v17.9.1
|
@ -90,7 +90,6 @@ $ ./do test:debug-unit # alias for ./do test:unit --debug
|
||||
$ ./do test:debug-integration # alias for ./do test:integration --debug
|
||||
$ ./do test:failed-unit # run the last failing unit test.
|
||||
$ ./do test:failed-integration # run the last failing integration test.
|
||||
$ ./do test:coverage # run tests and output coverage information.
|
||||
$ ./do test:javascript # run the JS tests.
|
||||
$ ./do test:acceptance [--file=...] [--skip-deps]
|
||||
# run acceptances tests into a docker environment.
|
||||
|
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing
|
||||
|
||||
// phpcs:disable PSR1.Classes.ClassDeclaration
|
||||
// phpcs:disable PSR1.Classes.ClassDeclaration.MissingNamespace
|
||||
@ -117,11 +117,48 @@ class RoboFile extends \Robo\Tasks {
|
||||
}
|
||||
|
||||
public function translationsBuild() {
|
||||
$exclude = implode(',', [
|
||||
'.mp_svn',
|
||||
'assets/css',
|
||||
'assets/img',
|
||||
'assets/js',
|
||||
'generated',
|
||||
'lang',
|
||||
'lib-3rd-party',
|
||||
'mailpoet-premium',
|
||||
'node_modules',
|
||||
'plugin_repository',
|
||||
'prefixer',
|
||||
'tasks',
|
||||
'temp',
|
||||
'tests',
|
||||
'tools',
|
||||
'vendor',
|
||||
'vendor-prefixed',
|
||||
'RoboFile.php',
|
||||
'.storybook',
|
||||
'storybook-static',
|
||||
]);
|
||||
|
||||
$headers = escapeshellarg(
|
||||
json_encode([
|
||||
'Report-Msgid-Bugs-To' => 'http://support.mailpoet.com/',
|
||||
'Last-Translator' => 'MailPoet i18n (https://www.transifex.com/organization/wysija)',
|
||||
'Language-Team' => 'MailPoet i18n <https://www.transifex.com/organization/wysija>',
|
||||
'Plural-Forms' => 'nplurals=2; plural=(n != 1);',
|
||||
])
|
||||
);
|
||||
|
||||
$this->collectionBuilder()
|
||||
->taskExec('mkdir -p ' . __DIR__ . '/lang')
|
||||
->taskExec(
|
||||
'php -d memory_limit=-1 tasks/makepot/grunt-makepot.php wp-plugin . lang/mailpoet.pot mailpoet .mp_svn,assets,lang,node_modules,plugin_repository,tasks,tests,vendor'
|
||||
)->run();
|
||||
|
||||
// HTML, HBS
|
||||
->taskExec("php -d memory_limit=-1 tasks/makepot/makepot-views.php . > lang/mailpoet.pot")
|
||||
|
||||
// PHP, JS/TS
|
||||
->taskExec("php -d memory_limit=-1 vendor/wp-cli/wp-cli/php/boot-fs.php i18n make-pot --merge --slug=mailpoet --domain=mailpoet --exclude=$exclude --headers=$headers . lang/mailpoet.pot")
|
||||
|
||||
->run();
|
||||
}
|
||||
|
||||
public function translationsGetPotFileFromBuild() {
|
||||
@ -184,7 +221,7 @@ class RoboFile extends \Robo\Tasks {
|
||||
return $this->_exec($command);
|
||||
}
|
||||
|
||||
public function testIntegration(array $opts = ['file' => null, 'group' => null, 'skip-group' => null, 'xml' => false, 'multisite' => false, 'debug' => false, 'skip-deps' => false, 'skip-plugins' => false, 'enable-cot' => false, 'enable-cot-sync' => false]) {
|
||||
public function testIntegration(array $opts = ['file' => null, 'group' => null, 'skip-group' => null, 'xml' => false, 'multisite' => false, 'debug' => false, 'skip-deps' => false, 'skip-plugins' => false, 'enable-cot' => false, 'enable-cot-sync' => false, 'stop-on-fail' => false]) {
|
||||
return $this->runTestsInContainer(array_merge($opts, ['test_type' => 'integration']));
|
||||
}
|
||||
|
||||
@ -200,21 +237,6 @@ class RoboFile extends \Robo\Tasks {
|
||||
return $this->runTestsInContainer(array_merge($opts, ['test_type' => 'integration', 'skip-group' => 'woo', 'skip-deps' => true, 'skip-plugins' => true]));
|
||||
}
|
||||
|
||||
public function testCoverage($opts = ['file' => null, 'xml' => false]) {
|
||||
$command = join(' ', [
|
||||
'vendor/bin/codecept run -s acceptance',
|
||||
(($opts['file']) ? $opts['file'] : ''),
|
||||
'--coverage',
|
||||
($opts['xml']) ? '--coverage-xml' : '--coverage-html',
|
||||
]);
|
||||
|
||||
if ($opts['xml']) {
|
||||
$command .= ' --xml';
|
||||
}
|
||||
|
||||
return $this->execWithXDebug($command);
|
||||
}
|
||||
|
||||
public function testNewsletterEditor($xmlOutputFile = null) {
|
||||
$command = join(' ', [
|
||||
'./node_modules/.bin/mocha',
|
||||
@ -263,6 +285,80 @@ class RoboFile extends \Robo\Tasks {
|
||||
return $this->runTestsInContainer($opts);
|
||||
}
|
||||
|
||||
public function testPerformance($path = null, $opts = ['url' => null, 'pw' => null, 'head' => false, 'scenario' => null]) {
|
||||
$dir = __DIR__;
|
||||
if ((getenv('K6_CLOUD_TOKEN')) === false) {
|
||||
return $this->collectionBuilder()
|
||||
->addCode([$this, 'testPerformanceSetup'])
|
||||
->taskExec("php $dir/tools/k6.php")
|
||||
->arg('run')
|
||||
->option('env', 'K6_BROWSER_ENABLED=1')
|
||||
->option('env', 'URL=' . $opts['url'])
|
||||
->option('env', 'PW=' . $opts['pw'])
|
||||
->option('env', 'HEADLESS=' . ($opts['head'] ? 'false' : 'true'))
|
||||
->option('env', 'SCENARIO=' . $opts['scenario'])
|
||||
->arg($path ?? "$dir/tests/performance/scenarios.js")
|
||||
->dir($dir)->run();
|
||||
} else {
|
||||
return $this->collectionBuilder()
|
||||
->addCode([$this, 'testPerformanceSetup'])
|
||||
->taskExec("php $dir/tools/k6.php")
|
||||
->arg('run')
|
||||
->option('env', 'K6_BROWSER_ENABLED=1')
|
||||
->option('env', 'URL=' . $opts['url'])
|
||||
->option('env', 'PW=' . $opts['pw'])
|
||||
->option('env', 'HEADLESS=' . ($opts['head'] ? 'false' : 'true'))
|
||||
->option('env', 'SCENARIO=' . $opts['scenario'])
|
||||
->option('env', 'K6_CLOUD_TOKEN=' . getenv('K6_CLOUD_TOKEN'))
|
||||
->option('env', 'K6_CLOUD_ID=' . getenv('K6_CLOUD_ID'))
|
||||
->option('env', 'K6_PROJECT_NAME=' . $opts['scenario'])
|
||||
->option('out', 'cloud')
|
||||
->arg($path ?? "$dir/tests/performance/scenarios.js")
|
||||
->dir($dir)->run();
|
||||
}
|
||||
}
|
||||
|
||||
public function testPerformanceSetup() {
|
||||
// get data file URL
|
||||
$url = getenv('WP_TEST_PERFORMANCE_DATA_URL');
|
||||
if (!$url) {
|
||||
$this->yell("Please set 'WP_TEST_PERFORMANCE_DATA_URL'. You'll find it in the secret store.", 40, 'red');
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// download data
|
||||
$dataFile = __DIR__ . '/tests/performance/_data/data.sql';
|
||||
if (!file_exists($dataFile)) {
|
||||
$this->say('Downloading data file...');
|
||||
if (!is_dir(dirname($dataFile))) {
|
||||
mkdir(dirname($dataFile), 0777, true);
|
||||
}
|
||||
$source = gzopen($url, 'rb');
|
||||
$destination = fopen($dataFile, 'wb');
|
||||
while (!gzeof($source)) {
|
||||
fwrite($destination, gzread($source, 4096));
|
||||
}
|
||||
fclose($destination);
|
||||
gzclose($source);
|
||||
$this->say("Data file downloaded to: $dataFile");
|
||||
} else {
|
||||
$this->say("Data file already exists: $dataFile");
|
||||
}
|
||||
|
||||
// import data & run WordPress setup
|
||||
$this->say('Importing data and running a WordPress setup...');
|
||||
$this->taskExec('COMPOSE_HTTP_TIMEOUT=200 docker-compose run --rm -it setup')
|
||||
->dir(__DIR__ . '/tests/performance')
|
||||
->run();
|
||||
$this->say('Data imported, WordPress set up.');
|
||||
}
|
||||
|
||||
public function testPerformanceClean() {
|
||||
$this->taskExec('COMPOSE_HTTP_TIMEOUT=200 docker-compose down --remove-orphans -v')
|
||||
->dir(__DIR__ . '/tests/performance')
|
||||
->run();
|
||||
}
|
||||
|
||||
public function testAcceptanceMultisite($opts = ['file' => null, 'skip-deps' => false, 'group' => null, 'timeout' => null, 'enable-cot' => false, 'enable-cot-sync' => false]) {
|
||||
return $this->runTestsInContainer(array_merge($opts, ['multisite' => true]));
|
||||
}
|
||||
@ -351,6 +447,25 @@ class RoboFile extends \Robo\Tasks {
|
||||
$this->say("Validator metadata generated to: $validatorMetadataDir");
|
||||
}
|
||||
|
||||
public function migrationsNew() {
|
||||
$generator = new \MailPoet\Migrator\Repository();
|
||||
$result = $generator->create();
|
||||
$path = realpath($result['path']);
|
||||
$this->output->writeln('MAILPOET DATABASE MIGRATIONS');
|
||||
$this->output->writeln("============================\n");
|
||||
$this->output->writeln("New migration created ✔\n");
|
||||
$this->output->writeln(" Name: {$result['name']}");
|
||||
$this->output->writeln(" Path: $path");
|
||||
}
|
||||
|
||||
public function migrationsStatus() {
|
||||
return $this->taskExec('vendor/bin/wp mailpoet:migrations:status');
|
||||
}
|
||||
|
||||
public function migrationsRun() {
|
||||
return $this->taskExec('vendor/bin/wp mailpoet:migrations:run');
|
||||
}
|
||||
|
||||
public function qa() {
|
||||
$collection = $this->collectionBuilder();
|
||||
$collection->addCode([$this, 'qaPhp']);
|
||||
@ -372,6 +487,9 @@ class RoboFile extends \Robo\Tasks {
|
||||
$collection->addCode(function() {
|
||||
return $this->qaCodeSniffer([]);
|
||||
});
|
||||
$collection->addCode(function() {
|
||||
return $this->qaMinimalPluginStandard([]);
|
||||
});
|
||||
return $collection->run();
|
||||
}
|
||||
|
||||
@ -399,8 +517,8 @@ class RoboFile extends \Robo\Tasks {
|
||||
'lib-3rd-party/',
|
||||
'vendor/composer',
|
||||
'vendor/mtdowling',
|
||||
'vendor/soundasleep',
|
||||
'vendor-prefixed/',
|
||||
'vendor-prefixed/soundasleep',
|
||||
'mailpoet.php',
|
||||
]);
|
||||
// The list of files and folders to exclude is coming from build.sh
|
||||
@ -418,7 +536,7 @@ class RoboFile extends \Robo\Tasks {
|
||||
'vendor/phpmailer/phpmailer/test',
|
||||
'vendor-prefixed/psr/log/Psr/Log/Test',
|
||||
'vendor-prefixed/sabberworm/php-css-parser/tests',
|
||||
'vendor/soundasleep/html2text/tests',
|
||||
'vendor-prefixed/soundasleep/html2text/tests',
|
||||
'vendor-prefixed/swiftmailer/swiftmailer/tests',
|
||||
'vendor-prefixed/symfony/service-contracts/Tests',
|
||||
'vendor-prefixed/symfony/translation/Tests',
|
||||
@ -448,7 +566,56 @@ class RoboFile extends \Robo\Tasks {
|
||||
'./tasks/code_sniffer/vendor/bin/phpcs',
|
||||
'--extensions=php',
|
||||
$severityFlag,
|
||||
'--standard=tasks/code_sniffer/MailPoet',
|
||||
'--standard=tasks/code_sniffer/MailPoet/free-ruleset.xml',
|
||||
'-s',
|
||||
]);
|
||||
|
||||
$ignorePaths = [
|
||||
'.mp_svn',
|
||||
'assets',
|
||||
'doc',
|
||||
'generated',
|
||||
'lib/Config/PopulatorData/Templates',
|
||||
'lib-3rd-party',
|
||||
'node_modules',
|
||||
'plugin_repository',
|
||||
'prefixer/build',
|
||||
'prefixer/vendor',
|
||||
'tasks/code_sniffer/vendor',
|
||||
'tasks/phpstan/vendor',
|
||||
'tasks/makepot',
|
||||
'tools/vendor',
|
||||
'temp',
|
||||
'tests/_data',
|
||||
'tests/_output',
|
||||
'tests/_support/_generated',
|
||||
'vendor',
|
||||
'vendor-prefixed',
|
||||
'views',
|
||||
];
|
||||
|
||||
// the "--ignore" arg takes a list of regexes, we need to anchor and escape them
|
||||
$ignorePatterns = array_map(function (string $path): string {
|
||||
return '^' . preg_quote(__DIR__ . DIRECTORY_SEPARATOR . $path);
|
||||
}, $ignorePaths);
|
||||
|
||||
$stringFilesToCheck = !empty($filesToCheck) ? implode(' ', $filesToCheck) : '.';
|
||||
|
||||
return $this->taskExec($task)
|
||||
->arg('--ignore=' . implode(',', $ignorePatterns))
|
||||
->rawArg($stringFilesToCheck)
|
||||
->run();
|
||||
}
|
||||
|
||||
public function qaMinimalPluginStandard(array $filesToCheck, $opts = ['severity' => 'all']) {
|
||||
$severityFlag = $opts['severity'] === 'all' ? '-w' : '-n';
|
||||
|
||||
$task = implode(' ', [
|
||||
'php -d memory_limit=-1',
|
||||
'./tasks/code_sniffer/vendor/bin/phpcs',
|
||||
'--extensions=php',
|
||||
$severityFlag,
|
||||
'--standard=tasks/code_sniffer/vendor/wporg/plugin-directory/MinimalPluginStandard',
|
||||
'-s',
|
||||
]);
|
||||
|
||||
@ -491,7 +658,8 @@ class RoboFile extends \Robo\Tasks {
|
||||
}
|
||||
|
||||
public function qaFixFile($filePath) {
|
||||
if (substr($filePath, -4) === '.php') {
|
||||
$extension = pathinfo($filePath, PATHINFO_EXTENSION);
|
||||
if ($extension === 'php') {
|
||||
// fix PHPCS rules
|
||||
return $this->collectionBuilder()
|
||||
->taskExec(
|
||||
@ -502,48 +670,10 @@ class RoboFile extends \Robo\Tasks {
|
||||
)
|
||||
->run();
|
||||
}
|
||||
if (substr($filePath, -4) === '.jsx') {
|
||||
// fix ESLint using ES6 rules
|
||||
if (in_array($extension, ['js', 'jsx', 'ts', 'tsx'], true)) {
|
||||
// fix ESLint rules
|
||||
return $this->collectionBuilder()
|
||||
->taskExec(
|
||||
'npx ../eslint-config/node_modules/.bin/eslint -c ../eslint-config/.eslintrc.es6.json ' .
|
||||
'--max-warnings 0 ' .
|
||||
'--fix ' .
|
||||
$filePath
|
||||
)
|
||||
->run();
|
||||
}
|
||||
if (substr($filePath, -4) === '.tsx' || substr($filePath, -3) === '.ts') {
|
||||
// fix ESLint using TS rules
|
||||
return $this->collectionBuilder()
|
||||
->taskExec(
|
||||
'npx ../eslint-config/node_modules/.bin/eslint -c ../eslint-config/.eslintrc.ts.json ' .
|
||||
'--max-warnings 0 ' .
|
||||
'--fix ' .
|
||||
$filePath
|
||||
)
|
||||
->run();
|
||||
}
|
||||
if (substr($filePath, -8) === '.spec.js') {
|
||||
// fix ESLint using tests rules
|
||||
return $this->collectionBuilder()
|
||||
->taskExec(
|
||||
'npx ../eslint-config/node_modules/.bin/eslint -c ../eslint-config/.eslintrc.tests_newsletter_editor.json ' .
|
||||
'--max-warnings 0 ' .
|
||||
'--fix ' .
|
||||
$filePath
|
||||
)
|
||||
->run();
|
||||
}
|
||||
if (substr($filePath, -3) === '.js') {
|
||||
// fix ESLint using ES5 rules
|
||||
return $this->collectionBuilder()
|
||||
->taskExec(
|
||||
'npx ../eslint-config/node_modules/.bin/eslint -c ../eslint-config/.eslintrc.es5.json ' .
|
||||
'--max-warnings 0 ' .
|
||||
'--fix ' .
|
||||
$filePath
|
||||
)
|
||||
->taskExec("pnpm eslint --max-warnings 0 --fix $filePath")
|
||||
->run();
|
||||
}
|
||||
}
|
||||
@ -580,6 +710,10 @@ class RoboFile extends \Robo\Tasks {
|
||||
->run();
|
||||
}
|
||||
|
||||
public function qaSemgrep() {
|
||||
return $this->_exec('./tools/semgrep.sh lib/ lib-3rd-party/');
|
||||
}
|
||||
|
||||
public function storybookBuild() {
|
||||
return $this->_exec('pnpm run build-storybook');
|
||||
}
|
||||
@ -746,6 +880,9 @@ class RoboFile extends \Robo\Tasks {
|
||||
->addCode(function () use ($version) {
|
||||
$this->releaseCreatePullRequest($version);
|
||||
})
|
||||
->addCode(function () use ($version) {
|
||||
$this->releaseRerunCircleWorkflow(\MailPoetTasks\Release\CircleCiController::PROJECT_PREMIUM);
|
||||
})
|
||||
->addCode(function () use ($version) {
|
||||
$this->translationsPrepareLanguagePacks($version);
|
||||
})
|
||||
@ -882,9 +1019,23 @@ class RoboFile extends \Robo\Tasks {
|
||||
->addCode(function () use ($version) {
|
||||
return $this->releasePublishSlack($version);
|
||||
})
|
||||
->addCode(function () {
|
||||
return $this->releaseMergePullRequest(\MailPoetTasks\Release\GitHubController::RELEASE_SOURCE_BRANCH);
|
||||
})
|
||||
->run();
|
||||
}
|
||||
|
||||
public function releaseMergePullRequest(string $branch) {
|
||||
try {
|
||||
$this->createGitHubController()
|
||||
->mergePullRequest(\MailPoetTasks\Release\CircleCiController::PROJECT_MAILPOET, $branch);
|
||||
} catch (\Exception $e) {
|
||||
$this->yell($e->getMessage(), 40, 'red');
|
||||
exit(1);
|
||||
}
|
||||
$this->say("Pull request for branch: '{$branch}' was successfully merged");
|
||||
}
|
||||
|
||||
/**
|
||||
* This command displays how many pull request each person did recently
|
||||
*/
|
||||
@ -1063,6 +1214,18 @@ class RoboFile extends \Robo\Tasks {
|
||||
$this->say("Release '$version[name]' info was published on Slack.");
|
||||
}
|
||||
|
||||
public function releaseRerunCircleWorkflow(string $project = null) {
|
||||
$circleciController = $this->createCircleCiController();
|
||||
$result = $circleciController->rerunLatestWorkflow($project);
|
||||
// Sometimes can be useful to know which Circle project workflow was restarted
|
||||
$project = $project ? " for the project '{$project}'" : '';
|
||||
if (!$result) {
|
||||
$this->yell("Circle Workflow{$project} was not restarted", 40, 'red');
|
||||
} else {
|
||||
$this->say("Circle Workflow{$project} was started from the beginning");
|
||||
}
|
||||
}
|
||||
|
||||
public function downloadWooCommerceBlocksZip($tag = null) {
|
||||
$this->createWpOrgDownloader('woo-gutenberg-products-block')
|
||||
->downloadPluginZip('woo-gutenberg-products-block.zip', __DIR__ . '/tests/plugins/', $tag);
|
||||
@ -1086,19 +1249,18 @@ class RoboFile extends \Robo\Tasks {
|
||||
->downloadReleaseZip('woocommerce-subscriptions.zip', __DIR__ . '/tests/plugins/', $tag);
|
||||
}
|
||||
|
||||
public function downloadWooCommerceZip($tag = null) {
|
||||
if ($tag === 'woo-cot-beta') {
|
||||
$this->downloadWooCommerceCotZip();
|
||||
return;
|
||||
public function downloadAutomateWooZip($tag = null) {
|
||||
if (!getenv('WP_GITHUB_USERNAME') && !getenv('WP_GITHUB_TOKEN')) {
|
||||
$this->yell("Skipping download of Automate Woo", 40, 'red');
|
||||
exit(0); // Exit with 0 since it is a valid state for some environments
|
||||
}
|
||||
$this->createWpOrgDownloader('woocommerce')
|
||||
->downloadPluginZip('woocommerce.zip', __DIR__ . '/tests/plugins/', $tag);
|
||||
$this->createGithubClient('woocommerce/automatewoo')
|
||||
->downloadReleaseZip('automatewoo.zip', __DIR__ . '/tests/plugins/', $tag);
|
||||
}
|
||||
|
||||
public function downloadWooCommerceCotZip() {
|
||||
$cotBuildUrl = 'https://github.com/woocommerce/woocommerce/files/9706609/woocommerce.zip';
|
||||
file_put_contents(__DIR__ . '/tests/plugins/woocommerce.zip', file_get_contents($cotBuildUrl));
|
||||
file_put_contents(__DIR__ . '/tests/plugins/woocommerce.zip-info', $cotBuildUrl);
|
||||
public function downloadWooCommerceZip($tag = null) {
|
||||
$this->createWpOrgDownloader('woocommerce')
|
||||
->downloadPluginZip('woocommerce.zip', __DIR__ . '/tests/plugins/', $tag);
|
||||
}
|
||||
|
||||
public function generateData($generatorName = null, $threads = 1) {
|
||||
@ -1290,7 +1452,8 @@ class RoboFile extends \Robo\Tasks {
|
||||
(isset($opts['xml']) && $opts['xml'] ? '--xml ' : '') .
|
||||
(isset($opts['group']) && $opts['group'] ? '--group ' . $opts['group'] . ' ' : '') .
|
||||
(isset($opts['skip-group']) && $opts['skip-group'] ? '--skip-group ' . $opts['skip-group'] . ' ' : '') .
|
||||
'-f ' . (isset($opts['file']) && $opts['file'] ? $opts['file'] : '')
|
||||
(isset($opts['stop-on-fail']) && $opts['stop-on-fail'] ? '-f ' : '') .
|
||||
(isset($opts['file']) && $opts['file'] ? $opts['file'] : '')
|
||||
)->dir(__DIR__ . '/tests/docker')->run();
|
||||
}
|
||||
}
|
||||
|
BIN
mailpoet/assets/audio/0.mp3
Normal file
BIN
mailpoet/assets/audio/0.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/1.mp3
Normal file
BIN
mailpoet/assets/audio/1.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/2.mp3
Normal file
BIN
mailpoet/assets/audio/2.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/3.mp3
Normal file
BIN
mailpoet/assets/audio/3.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/4.mp3
Normal file
BIN
mailpoet/assets/audio/4.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/5.mp3
Normal file
BIN
mailpoet/assets/audio/5.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/6.mp3
Normal file
BIN
mailpoet/assets/audio/6.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/7.mp3
Normal file
BIN
mailpoet/assets/audio/7.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/8.mp3
Normal file
BIN
mailpoet/assets/audio/8.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/9.mp3
Normal file
BIN
mailpoet/assets/audio/9.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/a.mp3
Normal file
BIN
mailpoet/assets/audio/a.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/b.mp3
Normal file
BIN
mailpoet/assets/audio/b.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/c.mp3
Normal file
BIN
mailpoet/assets/audio/c.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/d.mp3
Normal file
BIN
mailpoet/assets/audio/d.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/e.mp3
Normal file
BIN
mailpoet/assets/audio/e.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/f.mp3
Normal file
BIN
mailpoet/assets/audio/f.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/g.mp3
Normal file
BIN
mailpoet/assets/audio/g.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/h.mp3
Normal file
BIN
mailpoet/assets/audio/h.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/i.mp3
Normal file
BIN
mailpoet/assets/audio/i.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/j.mp3
Normal file
BIN
mailpoet/assets/audio/j.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/k.mp3
Normal file
BIN
mailpoet/assets/audio/k.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/l.mp3
Normal file
BIN
mailpoet/assets/audio/l.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/m.mp3
Normal file
BIN
mailpoet/assets/audio/m.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/n.mp3
Normal file
BIN
mailpoet/assets/audio/n.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/o.mp3
Normal file
BIN
mailpoet/assets/audio/o.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/p.mp3
Normal file
BIN
mailpoet/assets/audio/p.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/q.mp3
Normal file
BIN
mailpoet/assets/audio/q.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/r.mp3
Normal file
BIN
mailpoet/assets/audio/r.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/s.mp3
Normal file
BIN
mailpoet/assets/audio/s.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/t.mp3
Normal file
BIN
mailpoet/assets/audio/t.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/u.mp3
Normal file
BIN
mailpoet/assets/audio/u.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/v.mp3
Normal file
BIN
mailpoet/assets/audio/v.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/w.mp3
Normal file
BIN
mailpoet/assets/audio/w.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/x.mp3
Normal file
BIN
mailpoet/assets/audio/x.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/y.mp3
Normal file
BIN
mailpoet/assets/audio/y.mp3
Normal file
Binary file not shown.
BIN
mailpoet/assets/audio/z.mp3
Normal file
BIN
mailpoet/assets/audio/z.mp3
Normal file
Binary file not shown.
@ -1,4 +1,4 @@
|
||||
.mailpoet-automation-workflow-add-trigger {
|
||||
.mailpoet-automation-add-trigger {
|
||||
align-items: center;
|
||||
border: 1px dashed #c3c4c7;
|
||||
border-radius: 4px;
|
||||
|
@ -0,0 +1,37 @@
|
||||
.mailpoet-automation-editor-automation {
|
||||
background: #fbfbfb;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-automation-wrapper {
|
||||
display: grid;
|
||||
padding: 50px 20px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-automation-end {
|
||||
background: #8c8f94;
|
||||
border-radius: 999999px;
|
||||
fill: white;
|
||||
height: 18px;
|
||||
margin: 4px auto;
|
||||
padding: 3px;
|
||||
width: 18px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-stats {
|
||||
margin: 0 auto 32px;
|
||||
max-width: 480px;
|
||||
width: 100%;
|
||||
|
||||
.mailpoet-automation-stats-item {
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-stats-label {
|
||||
color: #787c82;
|
||||
}
|
||||
|
||||
.mailpoet-automation-stats-value {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
.mailpoet-automatoin-deactivate-modal {
|
||||
color: #1d2327;
|
||||
font-size: 13px;
|
||||
line-height: 21px;
|
||||
max-width: 480px;
|
||||
|
||||
.mailpoet-automation-options {
|
||||
li {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-option {
|
||||
border: 2px solid #dcdcde;
|
||||
border-radius: 4px;
|
||||
color: #646970;
|
||||
display: grid;
|
||||
font-size: 12px;
|
||||
grid-gap: 8px;
|
||||
grid-template-columns: 20px auto;
|
||||
line-height: 16px;
|
||||
padding: 8px;
|
||||
|
||||
&.active {
|
||||
border-color: #2271b1;
|
||||
}
|
||||
|
||||
strong {
|
||||
color: #1d2327;
|
||||
display: block;
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
line-height: 21px;
|
||||
}
|
||||
}
|
||||
|
||||
.components-button {
|
||||
float: right;
|
||||
|
||||
&.is-tertiary {
|
||||
margin-right: 12px;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
.mailpoet-automation-editor-empty-workflow {
|
||||
.mailpoet-automation-editor-empty-automation {
|
||||
align-items: center;
|
||||
display: grid;
|
||||
height: 100%;
|
@ -30,3 +30,32 @@
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-field__error {
|
||||
position: relative;
|
||||
|
||||
input:not([type='radio'])
|
||||
select,
|
||||
textarea,
|
||||
input[type='text'].components-form-token-field__input {
|
||||
background: right top/26px no-repeat url('../../img/icons/alert.svg');
|
||||
padding-right: 26px;
|
||||
}
|
||||
|
||||
select,
|
||||
input[type=number] {
|
||||
background-position-x: calc(100% - 26px);
|
||||
padding-right: 8px !important;
|
||||
}
|
||||
|
||||
.components-base-control__help,
|
||||
.mailpoet-automation-field-message {
|
||||
color: #d63638;
|
||||
}
|
||||
|
||||
.components-button.mailpoet-automation-button-sidebar-primary,
|
||||
.components-button.mailpoet-automation-button-sidebar-primary.has-text,
|
||||
.components-button.mailpoet-automation-button-sidebar-primary.has-icon {
|
||||
background: #d63638;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,35 @@
|
||||
button.components-button.mailpoet-automation-filters-panel-add-filter {
|
||||
padding-right: 12px;
|
||||
|
||||
&.has-icon > svg {
|
||||
margin-right: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-filters-list {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-filters-list-item {
|
||||
align-items: center;
|
||||
background: #f0f0f0;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
|
||||
.mailpoet-automation-filters-list-item-content {
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-filters-list-item-remove {
|
||||
color: #757575;
|
||||
margin: 4px;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-filters-list-item-field,
|
||||
.mailpoet-automation-filters-list-item-value {
|
||||
font-weight: 600;
|
||||
}
|
@ -2,9 +2,19 @@
|
||||
padding-bottom: 100px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-panel-description {
|
||||
color: #646970;
|
||||
font-size: 13px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.components-panel__body-title.mailpoet-automation-panel-plain-body-title {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr auto;
|
||||
|
||||
&:hover {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-panel-plain-body-title-text {
|
||||
@ -12,6 +22,10 @@
|
||||
font-weight: 500;
|
||||
line-height: normal;
|
||||
padding: 16px 48px 16px 16px;
|
||||
|
||||
label & {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-panel-plain-body-title-action {
|
||||
@ -57,3 +71,78 @@
|
||||
color: #757575;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel {
|
||||
animation: mailpoet-automation-activate-panel-animation .1s forwards;
|
||||
background: #fff;
|
||||
border-left: 1px solid #ddd;
|
||||
bottom: 0;
|
||||
height: 100%;
|
||||
left: auto;
|
||||
overflow: auto;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
transform: translateX(100%);
|
||||
width: 281px;
|
||||
z-index: 999999;
|
||||
|
||||
button {
|
||||
justify-content: center;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__header {
|
||||
align-content: space-between;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
height: 61px;
|
||||
|
||||
.has-icon {
|
||||
margin-left: auto;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__header,
|
||||
.mailpoet-automation-activate-panel__section {
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__header,
|
||||
.mailpoet-automation-activate-panel__body {
|
||||
padding-left: 16px;
|
||||
padding-right: 16px;
|
||||
|
||||
.components-spinner {
|
||||
display: block;
|
||||
margin: 100px auto 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__section {
|
||||
margin-left: -16px;
|
||||
margin-right: -16px;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__header-activate-button,
|
||||
.mailpoet-automation-activate-panel__header-cancel-button {
|
||||
flex-grow: 1;
|
||||
max-width: 160px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__header-activate-button {
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-activate-panel__header-cancel-button {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
@keyframes mailpoet-automation-activate-panel-animation {
|
||||
100% {
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +54,10 @@
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-step-title {
|
||||
align-items: center;
|
||||
color: $color-wordpress-grey-dark;
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-step-subtitle {
|
||||
|
@ -1,19 +0,0 @@
|
||||
.mailpoet-automation-editor-workflow {
|
||||
background: #fbfbfb;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-workflow-wrapper {
|
||||
display: grid;
|
||||
padding: 50px 20px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-editor-workflow-end {
|
||||
background: #8c8f94;
|
||||
border-radius: 999999px;
|
||||
fill: white;
|
||||
height: 18px;
|
||||
margin: 4px auto;
|
||||
padding: 3px;
|
||||
width: 18px;
|
||||
}
|
@ -1,3 +1,4 @@
|
||||
@import './mailpoet/button';
|
||||
@import './mailpoet/edit';
|
||||
@import './mailpoet/thumbnail';
|
||||
@import './mailpoet/steps';
|
||||
|
@ -0,0 +1 @@
|
||||
@import './send-email';
|
@ -0,0 +1,15 @@
|
||||
.mailpoet-sendmail-description {
|
||||
display: grid;
|
||||
grid-gap: 4px;
|
||||
grid-template-columns: 14px auto;
|
||||
grid-template-rows: auto auto;
|
||||
}
|
||||
|
||||
.mailpoet-sendemail-description-main {
|
||||
grid-column-end: -1;
|
||||
grid-column-start: 1;
|
||||
}
|
||||
|
||||
.mailpoet-sendmail-description-type {
|
||||
color: #787c82;
|
||||
}
|
@ -4,18 +4,64 @@
|
||||
.mailpoet-add-new-button {
|
||||
padding-right: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-listing {
|
||||
/* Prevent border radius beneath tabs */
|
||||
border-radius: 0 0 1px 1px;
|
||||
.mailpoet-automation-is-onboarding {
|
||||
.notice {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-listing-heading {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.mailpoet-automation-listing {
|
||||
box-shadow: none;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.mailpoet-automation-listing-cell-name {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
> a:only-child {
|
||||
bottom: 2px;
|
||||
display: flex;
|
||||
left: 0;
|
||||
padding: 16px 24px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-filter-tab-panel {
|
||||
background-color: #fff;
|
||||
border-radius: 1px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, .1);
|
||||
outline: none;
|
||||
border: 1px solid #dcdcde;
|
||||
border-radius: 2px;
|
||||
|
||||
.components-tab-panel__tabs {
|
||||
box-shadow: inset 0 -1px 0 0 #dcdcde;
|
||||
}
|
||||
|
||||
.components-tab-panel__tabs-item:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.components-tab-panel__tabs-item.is-active {
|
||||
box-shadow: inset 0 -4px 0 0 var(--wp-admin-theme-color);
|
||||
}
|
||||
|
||||
.components-tab-panel__tabs-item:focus-visible {
|
||||
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
|
||||
}
|
||||
|
||||
.components-tab-panel__tabs-item.is-active:focus-visible {
|
||||
box-shadow:
|
||||
inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),
|
||||
inset 0 -4px 0 0 var(--wp-admin-theme-color);
|
||||
}
|
||||
|
||||
.count {
|
||||
background-color: #f0f0f1;
|
||||
@ -27,6 +73,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-listing-heading {
|
||||
margin-bottom: 16px;
|
||||
.mailpoet-automation-listing-more-button button.components-button {
|
||||
height: 36px;
|
||||
padding: 0;
|
||||
width: 36px;
|
||||
|
||||
svg {
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,201 @@
|
||||
@mixin full-width {
|
||||
margin-left: -20px;
|
||||
padding-left: 104px;
|
||||
padding-right: 104px;
|
||||
width: calc(100% + 60px);
|
||||
|
||||
@media screen and (max-width: 782px) {
|
||||
margin-left: -10px;
|
||||
width: calc(100% + 34px);
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-section {
|
||||
@include full-width;
|
||||
}
|
||||
|
||||
.mailpoet-automation-white-background {
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.mailpoet-automation-section-content {
|
||||
display: block;
|
||||
margin: auto;
|
||||
max-width: 1072px;
|
||||
padding: 65px 0;
|
||||
|
||||
h2 {
|
||||
font-size: 23px;
|
||||
font-weight: 400;
|
||||
line-height: 32px;
|
||||
margin: 0;
|
||||
padding: 0 0 8px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 22px;
|
||||
margin: 0;
|
||||
padding: 0 0 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-section-hero {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin-top: -20px;
|
||||
|
||||
h1 {
|
||||
font-size: 32px;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
}
|
||||
|
||||
p {
|
||||
font-size: 14px;
|
||||
line-height: 22px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
> div {
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-top: 16px;
|
||||
max-width: 100%;
|
||||
width: 532px;
|
||||
|
||||
@media screen and (min-width: 1305px) {
|
||||
height: 100%;
|
||||
margin-top: 0;
|
||||
max-height: 294px;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-preheading {
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
letter-spacing: .2px;
|
||||
line-height: 16px;
|
||||
margin-bottom: 32px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.mailpoet-section-templates {
|
||||
padding: 48px 0;
|
||||
|
||||
.components-button {
|
||||
display: block;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 25px;
|
||||
text-align: center;
|
||||
text-underline-offset: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-section-template-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 40px;
|
||||
|
||||
> li {
|
||||
flex-grow: 1;
|
||||
margin-right: 8px;
|
||||
max-width: 336px;
|
||||
|
||||
&:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
background: #fff;
|
||||
border: 1px solid #dcdcde;
|
||||
border-radius: 0;
|
||||
color: #1d2327;
|
||||
cursor: pointer;
|
||||
padding: 24px;
|
||||
text-align: left;
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-section-build-list-button {
|
||||
background: transparent;
|
||||
border: 0;
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
padding: 0;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.mailpoet-section-build-your-own {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
|
||||
ol {
|
||||
list-style: decimal-leading-zero inside;
|
||||
margin: 0;
|
||||
max-width: 373px;
|
||||
padding: 0;
|
||||
|
||||
> li {
|
||||
border-bottom: 1px solid #dcdcde;
|
||||
display: grid;
|
||||
grid-gap: 16px;
|
||||
grid-template-columns: 16px auto;
|
||||
margin-bottom: 16px;
|
||||
padding-bottom: 16px;
|
||||
|
||||
&.open {
|
||||
p {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mailpoet-section-build-list-button {
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.marker {
|
||||
color: #ff5301;
|
||||
display: inline-block;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
line-height: 24px;
|
||||
}
|
||||
|
||||
p {
|
||||
display: none;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
height: auto;
|
||||
max-width: 400px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
.mailpoet-automation-listing-cell-actions {
|
||||
align-items: center;
|
||||
display: grid;
|
||||
gap: 8px;
|
||||
grid-auto-flow: column;
|
||||
white-space: nowrap;
|
||||
}
|
@ -1,6 +1,8 @@
|
||||
.mailpoet-automation-listing-cell-status {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
white-space: nowrap;
|
||||
|
||||
> div.components-base-control > div.components-base-control__field {
|
||||
margin-bottom: 0;
|
||||
|
@ -0,0 +1,33 @@
|
||||
.mailpoet-option-button {
|
||||
display: flex;
|
||||
margin-top: 8px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mailpoet-option-button-main {
|
||||
border-radius: 2px 0 0 2px;
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
||||
.mailpoet-option-button-opener {
|
||||
background: var(--wp-admin-theme-color);
|
||||
border-radius: 0 2px 2px 0;
|
||||
color: white;
|
||||
}
|
||||
|
||||
.mailpoet-option-button-opener svg {
|
||||
fill: white;
|
||||
}
|
||||
|
||||
.mailpoet-option-button-opener .is-opened svg {
|
||||
transform: scale(-1, -1);
|
||||
transform-origin: center 12.5px;
|
||||
}
|
||||
|
||||
.mailpoet-option-button-opener.is-busy {
|
||||
animation: components-button__busy-animation 2500ms infinite linear;
|
||||
background-color: var(--wp-admin-theme-color);
|
||||
background-image: linear-gradient(-45deg, var(--wp-admin-theme-color) 33%, var(--wp-admin-theme-color-darker-20) 33%, var(--wp-admin-theme-color-darker-20) 70%, var(--wp-admin-theme-color) 70%);
|
||||
background-size: 100px 100%;
|
||||
border-color: var(--wp-admin-theme-color);
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
.mailpoet-automation-stats {
|
||||
display: grid;
|
||||
grid-auto-flow: column;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.mailpoet-automation-stats-item {
|
||||
color: $color-wordpress-heading;
|
||||
display: grid;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mailpoet-automation-stats-label {
|
||||
color: #646970;
|
||||
display: block;
|
||||
|
||||
&.display-after {
|
||||
order: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-automation-stats-value {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.mailpoet-automation-stats-item-separator {
|
||||
color: #a7aaad;
|
||||
font-size: 20px;
|
||||
margin: 0 16px;
|
||||
}
|
@ -145,11 +145,11 @@
|
||||
|
||||
/* Sidepanel overrides */
|
||||
.mailpoet_panel_body {
|
||||
margin: 19px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.mailpoet_editor_settings h3 {
|
||||
margin-top: 0;
|
||||
margin: 19px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
.admin_page_mailpoet-newsletter-editor {
|
||||
.mailpoet_form_field {
|
||||
margin-bottom: 15px;
|
||||
margin-top: 15px;
|
||||
margin: 19px 15px;
|
||||
}
|
||||
|
||||
.mailpoet_form_field_title {
|
||||
@ -51,4 +50,8 @@
|
||||
.mailpoet_form_field_block {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mailpoet_form_field_input_nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
@ -12,6 +12,12 @@
|
||||
font-size: 1.4em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.components-panel__row {
|
||||
align-items: flex-start;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet_sidepanel_field {
|
||||
|
@ -0,0 +1,90 @@
|
||||
.mailpoet_coupon_block {
|
||||
.mailpoet_editor_coupon {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mailpoet_editor_coupon_overlay {
|
||||
background: rgba(255, 255, 255, .5);
|
||||
color: #000;
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
font-size: 18px;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
:hover {
|
||||
.mailpoet_editor_coupon {
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.mailpoet_editor_coupon_overlay {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.coupon_amount_wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.amount_percentage_sign {
|
||||
font-size: 18px;
|
||||
font-weight: bold;
|
||||
left: 150px; // .mailpoet_input_medium width
|
||||
line-height: 30px;
|
||||
margin-left: 10px;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.mailpoet_coupon_block_coupon {
|
||||
background: $color-white;
|
||||
font-size: 13px;
|
||||
height: auto;
|
||||
line-height: 21px;
|
||||
margin-bottom: 16px;
|
||||
padding: 16px 0;
|
||||
width: 100%;
|
||||
|
||||
input[type='radio'] {
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
div {
|
||||
padding: 0 16px 0 40px;
|
||||
|
||||
&.discount_type {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet_coupon_block_settings,
|
||||
.mailpoet_coupon_block_display_options {
|
||||
@include animation-slide-open-downwards();
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.mailpoet_editor_settings {
|
||||
.components-panel__header.edit-post-sidebar__panel-tabs {
|
||||
background: $color-primary-background;
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.components-base-control {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.components-panel {
|
||||
background: $color-primary-background;
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
.components-search-control input[type=search].components-search-control__input {
|
||||
background: $color-white;
|
||||
}
|
||||
}
|
@ -24,6 +24,7 @@
|
||||
.mailpoet_settings_posts_selection {
|
||||
@include animation-slide-open-downwards();
|
||||
overflow-x: hidden;
|
||||
padding: 0 19px;
|
||||
}
|
||||
|
||||
.mailpoet_settings_posts_show_display_options,
|
||||
|
@ -24,6 +24,7 @@
|
||||
.mailpoet_settings_products_selection {
|
||||
@include animation-slide-open-downwards();
|
||||
overflow-x: hidden;
|
||||
padding: 0 19px;
|
||||
}
|
||||
|
||||
.mailpoet_settings_products_show_display_options,
|
||||
|
@ -22,8 +22,23 @@
|
||||
// We don't use any default block (WP Post editor has paragraph)
|
||||
// and CSS distributed within packages is works only with the paragraph block
|
||||
// We want to display it in center
|
||||
.block-editor .block-editor-inserter {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.block-editor .block-editor-inserter .block-editor-button-block-appender.block-list-appender__toggle {
|
||||
align-items: center;
|
||||
box-shadow: inset 0 0 0 1px #1e1e1e;
|
||||
display: flex;
|
||||
height: auto;
|
||||
justify-content: center;
|
||||
margin: 0 auto;
|
||||
padding: 12px;
|
||||
width: 100%;
|
||||
|
||||
&:hover {
|
||||
box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color)
|
||||
}
|
||||
}
|
||||
|
||||
// Html blocks contains iframe which captures clicks and in some cases prevents selecting block.
|
||||
@ -86,16 +101,19 @@ h2 {
|
||||
// Adjustments for family-font-select in popover
|
||||
.mailpoet_toolbar_item {
|
||||
.mailpoet-font-family-select {
|
||||
height: 48px;
|
||||
|
||||
.components-input-control__container .components-custom-select-control__button {
|
||||
height: 48px;
|
||||
width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
// Force rendering of select arrow on the right
|
||||
.components-custom-select-control__button svg {
|
||||
margin-right: initial;
|
||||
// Backdrop is displayed over the select button so we need to disable pointer events so that we can click the select
|
||||
.components-input-control__backdrop {
|
||||
pointer-events: none !important;
|
||||
}
|
||||
|
||||
.components-input-control__suffix * {
|
||||
pointer-events: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -111,10 +129,29 @@ h2 {
|
||||
|
||||
.edit-post-visual-editor {
|
||||
background-color: $color-white;
|
||||
padding: 10px;
|
||||
padding: 10px 10px 100px;
|
||||
}
|
||||
|
||||
// Unify padding o wp-block-columns with background with front end rendering
|
||||
.wp-block-columns.has-background {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
// Close button animation
|
||||
.edit-post-header-toolbar.edit-post-header-toolbar__left > .edit-post-header-toolbar__inserter-toggle {
|
||||
svg {
|
||||
transition: transform cubic-bezier(.165, .84, .44, 1) .2s;
|
||||
}
|
||||
|
||||
&.is-pressed svg {
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
}
|
||||
|
||||
// Hide block selector header with close button on desktops
|
||||
|
||||
@include respond-to(not-small-screen) {
|
||||
.edit-post-editor__inserter-panel-header {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
@ -1,28 +0,0 @@
|
||||
// Override CSS for HelpScout beacon on form editor page
|
||||
.admin_page_mailpoet-form-editor {
|
||||
.BeaconFabButtonFrame,
|
||||
.BeaconContainer {
|
||||
left: 175px;
|
||||
}
|
||||
|
||||
&.folded {
|
||||
.BeaconFabButtonFrame,
|
||||
.BeaconContainer {
|
||||
left: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
@include respond-to(medium-screen) {
|
||||
.BeaconFabButtonFrame,
|
||||
.BeaconContainer {
|
||||
left: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
.BeaconFabButtonFrame,
|
||||
.BeaconContainer {
|
||||
left: 15px;
|
||||
}
|
||||
}
|
||||
}
|
@ -3,19 +3,17 @@
|
||||
grid-auto-flow: row;
|
||||
grid-row-gap: 20px;
|
||||
|
||||
.components-base-control {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.components-radio-control {
|
||||
.components-flex {
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.components-base-control__label {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.components-radio-control__option {
|
||||
display: inline-block;
|
||||
margin-right: 1em;
|
||||
width: auto;
|
||||
.components-radio-control__option {
|
||||
display: inline-block;
|
||||
margin-right: 1em;
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-size-settings-control .components-range-control__number {
|
||||
@ -43,10 +41,6 @@
|
||||
.components-input-control__container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.components-custom-select-control__label {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -101,25 +95,6 @@
|
||||
}
|
||||
|
||||
.mailpoet-color-gradient-picker {
|
||||
.block-editor-color-gradient-control__color-indicator {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.component-color-indicator {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
}
|
||||
|
||||
// Styles for labels and headings for style setting components
|
||||
// We override some styles from @wordpress/components to have unified labels appearance
|
||||
.mailpoet-styles-settings .components-base-control__label,
|
||||
.mailpoet-styles-settings .components-input-control__label,
|
||||
.mailpoet-styles-settings .components-custom-select-control__label,
|
||||
.mailpoet-styles-settings .components-font-size-picker label {
|
||||
font-size: 13px;
|
||||
font-weight: normal;
|
||||
margin-bottom: .5em;
|
||||
|
||||
.component-color-indicator {
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
@ -30,8 +30,13 @@
|
||||
}
|
||||
}
|
||||
|
||||
.components-base-control.mailpoet-form-success-types__control {
|
||||
margin-bottom: 0;
|
||||
.components-base-control.mailpoet-form-inline-radios__control {
|
||||
.components-flex {
|
||||
flex-direction: row;
|
||||
gap: $grid-gap-half;
|
||||
justify-content: flex-start;
|
||||
margin-bottom: $grid-gap-half;
|
||||
}
|
||||
|
||||
.components-base-control__label {
|
||||
display: block;
|
||||
@ -39,7 +44,6 @@
|
||||
|
||||
.components-radio-control__option {
|
||||
display: inline-block;
|
||||
margin-right: 1em;
|
||||
|
||||
input {
|
||||
margin-right: 6px;
|
||||
@ -123,4 +127,5 @@
|
||||
// This style hides the horizontal scrollbar in Firefox browser
|
||||
.interface-interface-skeleton__sidebar {
|
||||
overflow-x: hidden;
|
||||
padding-bottom: 100px;
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
.mailpoet-homepage-section__container {
|
||||
background-color: $color-white;
|
||||
box-shadow: rgb(0 0 0 / 10%) 0 0 0 1px;
|
||||
margin: $grid-gap-xl 0 $grid-gap-medium;
|
||||
}
|
||||
|
||||
.mailpoet-homepage-section__heading {
|
||||
align-items: center;
|
||||
border-bottom: 1px solid $color-homepage-borders;
|
||||
display: grid;
|
||||
grid-template-columns: auto 100px;
|
||||
padding: $grid-gap $grid-gap-medium;
|
||||
position: relative;
|
||||
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
font-weight: normal;
|
||||
line-height: 28px;
|
||||
margin: 0;
|
||||
|
||||
span {
|
||||
color: $color-text-light;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-homepage-section__heading-after {
|
||||
display: grid;
|
||||
justify-items: end;
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $grid-gap-half $grid-gap-medium;
|
||||
}
|
||||
}
|
5
mailpoet/assets/css/src/components-homepage/_layout.scss
Normal file
5
mailpoet/assets/css/src/components-homepage/_layout.scss
Normal file
@ -0,0 +1,5 @@
|
||||
.mailpoet-homepage__container {
|
||||
margin: 0 auto;
|
||||
margin-top: $grid-gap-xl;
|
||||
max-width: 680px;
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
.mailpoet-homepage-product-discovery {
|
||||
ul {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-product-discovery__task {
|
||||
align-items: center;
|
||||
border-bottom: 1px solid $color-homepage-borders;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: grid;
|
||||
font-weight: 600;
|
||||
grid-template-columns: (124px + $grid-gap-medium) auto $grid-gap-xl;
|
||||
margin: 0;
|
||||
padding: $grid-gap-medium;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
grid-template-columns: auto $grid-gap-xl;
|
||||
|
||||
img {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
box-shadow: inset 5px 0 0 0 var(--wp-admin-theme-color);
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-product-discovery__task--completed {
|
||||
cursor: inherit;
|
||||
|
||||
&:hover {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-product-discovery__task-content {
|
||||
h3 {
|
||||
color: var(--wp-admin-theme-color);
|
||||
font-size: 14px;
|
||||
line-height: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
color: $color-text-light;
|
||||
font-weight: normal;
|
||||
margin: 3px 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-product-discovery__task-after {
|
||||
.mailpoet-task-list__task-icon {
|
||||
background-color: var(--wp-admin-theme-color);
|
||||
|
||||
svg {
|
||||
fill: $color-white;
|
||||
}
|
||||
}
|
||||
}
|
55
mailpoet/assets/css/src/components-homepage/_resources.scss
Normal file
55
mailpoet/assets/css/src/components-homepage/_resources.scss
Normal file
@ -0,0 +1,55 @@
|
||||
.mailpoet-homepage-resources__posts {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-resource-post {
|
||||
@include animation-fade-in();
|
||||
display: block;
|
||||
padding: $grid-gap-medium;
|
||||
text-decoration: none;
|
||||
|
||||
h3 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
p {
|
||||
color: $color-text-light;
|
||||
font-size: 13px;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
img {
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-homepage-resources__pagination {
|
||||
border-top: 1px solid $color-homepage-borders;
|
||||
color: $color-text-light;
|
||||
display: flex;
|
||||
font-size: 13px;
|
||||
padding: $grid-gap-medium;
|
||||
|
||||
a {
|
||||
height: 20px;
|
||||
margin-left: $grid-gap;
|
||||
|
||||
svg {
|
||||
margin: 0;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: $color-text-light;
|
||||
height: 20px;
|
||||
margin-left: $grid-gap;
|
||||
opacity: .4;
|
||||
width: 20px;
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
.mailpoet-subscribers-stats {
|
||||
.mailpoet-homepage-section__heading-after span {
|
||||
color: darken($color-stats-excellent, 10%);
|
||||
display: grid;
|
||||
font-size: 20px;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
justify-items: end;
|
||||
line-height: 28px;
|
||||
|
||||
svg {
|
||||
fill: darken($color-stats-excellent, 10%);
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
}
|
||||
|
||||
&.mailpoet-decrease {
|
||||
color: darken($color-stats-critical, 10%);
|
||||
|
||||
svg {
|
||||
fill: darken($color-stats-critical, 10%);
|
||||
transform: scale(1, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-subscribers-stats-global-change {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
width: 100%;
|
||||
|
||||
div {
|
||||
color: $color-text-light;
|
||||
padding: $grid-gap-medium;
|
||||
text-transform: uppercase;
|
||||
|
||||
&:first-child {
|
||||
border-right: 1px solid $color-homepage-borders;
|
||||
}
|
||||
|
||||
span {
|
||||
color: $color-homepage-dark-grey;
|
||||
font-size: 20px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-subscribers-stats-list-change-table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
|
||||
thead {
|
||||
background: $color-homepage-light-grey;
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
border: none;
|
||||
border-top: 1px solid $color-homepage-borders;
|
||||
color: $color-homepage-dark-grey;
|
||||
padding: $grid-gap $grid-gap-medium;
|
||||
text-align: left;
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $grid-gap $grid-gap-half;
|
||||
|
||||
&:first-child {
|
||||
padding-left: $grid-gap-medium;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
padding-right: $grid-gap-medium;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
td:nth-child(2),
|
||||
th:nth-child(2) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-subscribers-stats-empty {
|
||||
align-items: center;
|
||||
color: $color-text-light;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 13px;
|
||||
justify-content: center;
|
||||
padding: $grid-gap-large;
|
||||
|
||||
svg {
|
||||
background: $color-homepage-light-grey;
|
||||
border-radius: 50%;
|
||||
fill: $color-secondary;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
p {
|
||||
max-width: 340px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
126
mailpoet/assets/css/src/components-homepage/_task-list.scss
Normal file
126
mailpoet/assets/css/src/components-homepage/_task-list.scss
Normal file
@ -0,0 +1,126 @@
|
||||
$task-icon-size: 32px;
|
||||
|
||||
.mailpoet-task-list__task {
|
||||
background-color: $color-white;
|
||||
border-bottom: 1px solid $color-homepage-borders;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
display: grid;
|
||||
font-weight: 600;
|
||||
grid-template-columns: $grid-gap-xl auto $grid-gap-xl;
|
||||
margin: 0;
|
||||
padding: $grid-gap $grid-gap-medium;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
|
||||
&:hover {
|
||||
background-color: $color-grey-0;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-task-list__task-content {
|
||||
align-content: center;
|
||||
color: var(--wp-admin-theme-color);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 14px;
|
||||
justify-content: center;
|
||||
line-height: 20px;
|
||||
|
||||
p {
|
||||
color: $color-text-light;
|
||||
font-weight: normal;
|
||||
margin: 3px 0 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--wp-admin-theme-color);
|
||||
|
||||
&:hover {
|
||||
color: var(--wp-admin-theme-color-darker-20);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-task-list__task-before {
|
||||
color: var(--wp-admin-theme-color);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.mailpoet-task-list__task-icon {
|
||||
border: 1px solid var(--wp-admin-theme-color);
|
||||
border-radius: 50%;
|
||||
box-sizing: border-box;
|
||||
height: $task-icon-size;
|
||||
line-height: $task-icon-size;
|
||||
text-align: center;
|
||||
width: $task-icon-size;
|
||||
|
||||
svg {
|
||||
fill: var(--wp-admin-theme-color);
|
||||
margin: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-task-list__task--completed {
|
||||
cursor: inherit;
|
||||
|
||||
&:hover {
|
||||
background-color: $color-white;
|
||||
}
|
||||
|
||||
.mailpoet-task-list__task-icon {
|
||||
background-color: var(--wp-admin-theme-color);
|
||||
|
||||
svg {
|
||||
fill: $color-white;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-task-list__task--active {
|
||||
box-shadow: inset 5px 0 0 0 var(--wp-admin-theme-color);
|
||||
|
||||
&:after {
|
||||
background-color: var(--wp-admin-theme-color);
|
||||
content: '';
|
||||
height: 100%;
|
||||
left: 0;
|
||||
opacity: .1;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-task-list__heading p,
|
||||
.mailpoet-task-list__all-set {
|
||||
color: $color-text-light;
|
||||
font-size: $heading-font-size-h4;
|
||||
line-height: 1.5;
|
||||
margin-top: $grid-gap-large;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mailpoet-task-list__heading {
|
||||
margin-bottom: $grid-gap-large;
|
||||
position: relative;
|
||||
|
||||
h1 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: $grid-gap-half;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.components-dropdown {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 6px;
|
||||
}
|
||||
}
|
64
mailpoet/assets/css/src/components-homepage/_upsell.scss
Normal file
64
mailpoet/assets/css/src/components-homepage/_upsell.scss
Normal file
@ -0,0 +1,64 @@
|
||||
.mailpoet-homepage-upsell {
|
||||
background: bottom right/290px no-repeat url('../../img/homepage/upsell-illustration.png') #fffaf2;
|
||||
min-height: 288px;
|
||||
|
||||
.mailpoet-homepage-section__heading {
|
||||
border: none;
|
||||
height: auto;
|
||||
padding: 0;
|
||||
|
||||
h2 {
|
||||
background-color: $color-white;
|
||||
max-width: 330px;
|
||||
padding: 32px 20px 0 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-homepage-section__heading-after {
|
||||
bottom: 20px;
|
||||
position: relative;
|
||||
right: 20px;
|
||||
}
|
||||
|
||||
.mailpoet-homepage-upsell__content {
|
||||
background-color: $color-white;
|
||||
max-width: 330px;
|
||||
padding: 8px 20px 32px 40px;
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0 0 8px;
|
||||
|
||||
li {
|
||||
line-height: 16px;
|
||||
margin: 4px 0;
|
||||
|
||||
svg {
|
||||
fill: $color-secondary-middle;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
span {
|
||||
line-height: 18px;
|
||||
padding-left: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
.mailpoet-homepage-upsell {
|
||||
background: $color-white;
|
||||
|
||||
.mailpoet-homepage-section__heading {
|
||||
h2 {
|
||||
max-width: 270px;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-homepage-upsell__content {
|
||||
max-width: 270px;
|
||||
}
|
||||
}
|
||||
}
|
@ -56,6 +56,7 @@ p.sender_email_address_warning:first-child {
|
||||
// Fix for select 2 placeholder padding rendering issue in Chrome
|
||||
.select2-container .select2-search--inline,
|
||||
.select2-container .select2-search--inline .select2-search__field {
|
||||
height: 22px;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
@ -122,3 +123,21 @@ body .components-modal__screen-overlay {
|
||||
justify-content: flex-end;
|
||||
margin-top: $grid-gap-half;
|
||||
}
|
||||
|
||||
.mailpoet-locked-badge {
|
||||
align-items: center;
|
||||
background: #fcf9e8;
|
||||
border: .5px solid #f5e6ab;
|
||||
border-radius: 4px;
|
||||
color: #bd8600;
|
||||
display: flex;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
gap: 4px;
|
||||
height: 20px;
|
||||
letter-spacing: .2px;
|
||||
line-height: 16px;
|
||||
padding: 2px 8px 2px 4px;
|
||||
text-transform: uppercase;
|
||||
width: 82px;
|
||||
}
|
||||
|
@ -27,10 +27,6 @@ input.select2-search__field:-ms-input-placeholder {
|
||||
color: $color-placeholder-select2;
|
||||
}
|
||||
|
||||
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
||||
border: 1px solid #aaa; /* default Select2 border for single dropdown */
|
||||
}
|
||||
|
||||
textarea.regular-text {
|
||||
width: 25em !important;
|
||||
}
|
||||
@ -232,3 +228,7 @@ progress::-moz-progress-bar {
|
||||
.mailpoet-form-field-tags label.components-form-token-field__label {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.mailpoet-form-field-disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
202
mailpoet/assets/css/src/components-plugin/_landingpage.scss
Normal file
202
mailpoet/assets/css/src/components-plugin/_landingpage.scss
Normal file
@ -0,0 +1,202 @@
|
||||
#mailpoet_landingpage_container {
|
||||
$content-padding: 32px 65px;
|
||||
$mobile-content-padding: 25px;
|
||||
$landingpage-max-width: 1460px;
|
||||
|
||||
.mailpoet-content-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.mailpoet-content-padding {
|
||||
padding: $content-padding;
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $mobile-content-padding
|
||||
}
|
||||
}
|
||||
|
||||
.landing-header {
|
||||
padding: $content-padding;
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $mobile-content-padding
|
||||
}
|
||||
}
|
||||
|
||||
.landing-footer {
|
||||
background-color: $color-landingpage-background-light;
|
||||
padding: $content-padding;
|
||||
|
||||
.landing-footer-content {
|
||||
box-shadow: 0 -1px 0 0 $color-tertiary-light;
|
||||
padding: 25px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.landing-faq {
|
||||
background-color: $color-landingpage-background-light;
|
||||
padding: $content-padding;
|
||||
|
||||
.mailpoet-faq-accordion {
|
||||
margin: 25px 0;
|
||||
}
|
||||
|
||||
.landing-faq-mobile {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $mobile-content-padding;
|
||||
|
||||
.landing-faq-header {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.landing-faq-mobile {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.landing-content {
|
||||
.hero-section {
|
||||
$hero-image-offset: 6rem;
|
||||
background-color: $color-landingpage-background-light;
|
||||
margin-top: $hero-image-offset;
|
||||
padding: $content-padding;
|
||||
|
||||
.hero-image {
|
||||
margin-top: -($hero-image-offset + 2rem);
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $mobile-content-padding
|
||||
}
|
||||
}
|
||||
|
||||
.landingpage-images {
|
||||
@include respond-to(medium-screen) {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.landingpage-general-features {
|
||||
p:last-child {
|
||||
margin: 10px auto;
|
||||
width: 60%;
|
||||
}
|
||||
|
||||
.landingpage-feature-icon {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
padding: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@include respond-to(medium-screen) {
|
||||
p:last-child {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.landingpage-wooCommerce-features {
|
||||
margin-top: 30px;
|
||||
padding: 2rem 10rem;
|
||||
|
||||
.landingpage-wooCommerce-feature-item {
|
||||
padding: 30px;
|
||||
|
||||
@media screen and (min-width: 960px) and (max-width: 1460px) {
|
||||
.landingpage-images {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
div:last-child {
|
||||
margin: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
padding: $mobile-content-padding;
|
||||
|
||||
.landingpage-wooCommerce-feature-item {
|
||||
padding: 25px 0;
|
||||
|
||||
div:last-child {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
margin: 0 auto;
|
||||
max-width: $landingpage-max-width;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-faq-accordion {
|
||||
details {
|
||||
overflow: hidden;
|
||||
|
||||
&:not(:first-child) {
|
||||
border-top: 1px solid $color-editor-border-structure;
|
||||
}
|
||||
|
||||
summary {
|
||||
cursor: pointer;
|
||||
padding: 20px 5px;
|
||||
position: relative;
|
||||
|
||||
&::-webkit-details-marker { // remove default marker
|
||||
content: '';
|
||||
display: none;
|
||||
}
|
||||
|
||||
&::marker { // remove default marker
|
||||
content: '';
|
||||
display: none;
|
||||
}
|
||||
|
||||
&:after {
|
||||
content: '›';
|
||||
font-size: 30px;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
top: 0;
|
||||
transform: rotate(90deg);
|
||||
transform-origin: center;
|
||||
transition: .2s transform ease;
|
||||
}
|
||||
|
||||
@include respond-to(small-screen) {
|
||||
&:after {
|
||||
right: -1px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
padding: 10px 5px;
|
||||
transition: max-height .3s ease;
|
||||
}
|
||||
|
||||
// when accordion is opened
|
||||
&[open] {
|
||||
summary:after {
|
||||
transform: rotate(-90deg);
|
||||
transition: .5s transform ease;
|
||||
}
|
||||
|
||||
.content {
|
||||
max-height: 400px;
|
||||
transition: max-height .5s ease-in;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -202,6 +202,19 @@ h1.title.mailpoet-newsletter-listing-heading {
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-listing-status-corrupt {
|
||||
flex-direction: column;
|
||||
padding-left: 0;
|
||||
|
||||
.mailpoet-listing-status-label {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.mailpoet-listing-status-message {
|
||||
color: $color-destructive;
|
||||
}
|
||||
}
|
||||
|
||||
.mailpoet-listing-status-percentage {
|
||||
stroke-width: 2px;
|
||||
}
|
||||
|
@ -4,6 +4,6 @@
|
||||
}
|
||||
|
||||
// Fix for 3rd party plugins icons in menu that might display broken because we block loading 3rd party CSS on mailepoet pages
|
||||
#adminmenu .wp-menu-image img {
|
||||
#adminmenu :not(.toplevel_page_site-card) .wp-menu-image img {
|
||||
max-width: 20px;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user