Compare commits
1071 Commits
0.0.43
...
3.0.0-beta
Author | SHA1 | Date | |
---|---|---|---|
5293589eea | |||
07f4c0bc1e | |||
7d9a072545 | |||
67ffcb5485 | |||
02098a3cf0 | |||
eab8065154 | |||
fb8ecef1c3 | |||
14955e5022 | |||
e83c0ff0bd | |||
09db1aac22 | |||
5fa1eb643a | |||
898913a517 | |||
3a4b364bcd | |||
d373d10f6c | |||
c07e1eff3c | |||
f5e985baa4 | |||
2c93a105cc | |||
cbf0a7684f | |||
2632feba31 | |||
c96bc755c7 | |||
bbad772d7a | |||
520a3c43be | |||
eb70df1466 | |||
5977b8b4bc | |||
2bb7d95e37 | |||
c64959dce0 | |||
ead0792b32 | |||
7bd52d456c | |||
8517896660 | |||
c78933f7c4 | |||
707d5efec1 | |||
acfb3aefba | |||
cb6f4046a2 | |||
667aa91581 | |||
b7f7dc6728 | |||
ad1e8feb23 | |||
486b382c88 | |||
472be3b071 | |||
37a9fd9e1b | |||
c984ac7a66 | |||
a1ea56f505 | |||
dd7f959731 | |||
09f4f2e78a | |||
502250a1a3 | |||
48e37f6797 | |||
420058a86d | |||
6c777ca074 | |||
a481debb77 | |||
c91f8ccc7a | |||
6a2b5e28c2 | |||
bc51b6efc8 | |||
152edda03f | |||
5029b73027 | |||
35c25d3337 | |||
ae25e95d51 | |||
5b8d0c63a1 | |||
94fb8c6096 | |||
93ef1d0197 | |||
501d00b0cc | |||
9af3dc1f9d | |||
3705ed7da0 | |||
5b99e66d8d | |||
cbedd5ff40 | |||
bfcd6f10fc | |||
79362e9955 | |||
fcf272b44a | |||
b80683a9a1 | |||
5349f3a59a | |||
95072a9ac5 | |||
8c372b0909 | |||
580dd38b3a | |||
47d4e98aae | |||
7ebb7bac17 | |||
6cbce2fc97 | |||
e8a950f32c | |||
4f722ecd8a | |||
478359f9ff | |||
a1720a5cf1 | |||
3f0ef3ded7 | |||
dcb25c1a6b | |||
c5dd575324 | |||
6eca26a4e2 | |||
e10fa065bd | |||
49673fabbd | |||
1c1a210542 | |||
30277d92cd | |||
fb940065ea | |||
afa06342a5 | |||
03d2ff5f26 | |||
ec71dff40d | |||
58faf64a5c | |||
65ff14a81d | |||
f7efe44f09 | |||
cf22e81ae1 | |||
7aa0f21d11 | |||
2e31e3d37c | |||
3e988b7a56 | |||
ce3eb06924 | |||
a37ff8d398 | |||
d0bdb1a47b | |||
855f2a55d4 | |||
fc7ec9bded | |||
028de860a2 | |||
5af91d028d | |||
a4bcf870bb | |||
e06f2f5f0b | |||
c101645d93 | |||
b8904c2d51 | |||
099db4e1c8 | |||
cdf36ccb20 | |||
79b6ab1d15 | |||
95114774da | |||
7f566fb672 | |||
d27968a215 | |||
344990d59e | |||
ea831ef160 | |||
8314b05fce | |||
fd33cc7068 | |||
92e4cc6a24 | |||
dd4bebb570 | |||
99aed2cb01 | |||
92616063ec | |||
c56b56f4aa | |||
33d6533c64 | |||
55d7a0dd01 | |||
8b2ac99eda | |||
dba21c68fd | |||
5b40652737 | |||
7f0396747d | |||
e9dfff8e66 | |||
040c4da6c3 | |||
80a237504d | |||
4e2e09ea24 | |||
87b9fbdc16 | |||
a071a14eec | |||
5ae006b10f | |||
9d21ebd26e | |||
fcff6de3c3 | |||
3d2168856d | |||
a6eb1b06da | |||
21d0c3518e | |||
3532a3c8e9 | |||
79cba4cace | |||
a5dee8da12 | |||
3783384ea6 | |||
766c0dfcfc | |||
83e9de8e95 | |||
0a512f6349 | |||
a4c1095db7 | |||
87a6c7100e | |||
fc51d5f98c | |||
a1b3aaf1f8 | |||
3a1bf88c22 | |||
bd39c34f03 | |||
73121c2ca5 | |||
5e23fa4295 | |||
5e34bbf9d5 | |||
cedd94550f | |||
8b13889c7a | |||
3c7ac5488a | |||
398d7d3d80 | |||
b727ba423e | |||
45b9550293 | |||
d2e520e2fd | |||
b9c3ae97cd | |||
b90c0b173b | |||
f498f4df0c | |||
2f10f89fc5 | |||
a49f9d9c80 | |||
e71e23bbb5 | |||
adc86ef247 | |||
765b2bad21 | |||
2354cac719 | |||
7f509f66ff | |||
d8ff251c71 | |||
12979cc2c0 | |||
e974c06a89 | |||
f2ceff8252 | |||
cd5f3165c7 | |||
6e700b0cfa | |||
5b41fc212c | |||
2b7a5452b8 | |||
cfed133fb6 | |||
0beff9a090 | |||
d6e707fb85 | |||
a3e8d47199 | |||
cab3f3a96e | |||
5f0d4abe7f | |||
ff5f87eeca | |||
e85b969e11 | |||
2eb98905b6 | |||
ac1274c6fd | |||
94f91afce1 | |||
73d5fb8cff | |||
90b2b46db4 | |||
f2bf61240a | |||
3f151fd235 | |||
7598363cae | |||
4b1f216cd3 | |||
3d5f13a2b8 | |||
98eab956e9 | |||
a7260cba3d | |||
787e022382 | |||
d8e1c76155 | |||
3cb08e3c09 | |||
0474985866 | |||
8d15ef6d06 | |||
0fbc7fb7eb | |||
1379bdbbeb | |||
64d3e659a4 | |||
19458546a0 | |||
bba7460423 | |||
956fdd5cff | |||
a0289775cb | |||
4c785902bc | |||
e29ae4d7c9 | |||
1ea915017a | |||
6441c781a5 | |||
589c54e205 | |||
e10b99eaac | |||
0316f3ea3e | |||
166fef899f | |||
4e850408fc | |||
6e2494831c | |||
38a7d8f80a | |||
abfebc8643 | |||
40a3487d3d | |||
a93865e594 | |||
4e76286b44 | |||
fbe57e96c6 | |||
950bfb04d6 | |||
6d43b7b6a9 | |||
e1991deafd | |||
2f1b31aeb2 | |||
ca29eefd7f | |||
1421407a23 | |||
36e4bf468d | |||
5cd3917f4d | |||
586470e8f9 | |||
b02e9f5ab3 | |||
4a538e677d | |||
cc2fdbe5be | |||
3833688115 | |||
1639741e55 | |||
ab0d573a66 | |||
26c582b19f | |||
3bc53f9f09 | |||
bb220baf6a | |||
121a78f42a | |||
4257aa634e | |||
95ff83557f | |||
e9070de9c4 | |||
72aa087411 | |||
fbc0a3ad8d | |||
afedc409f5 | |||
0360f16dc8 | |||
f4800dbbae | |||
15ddc8454e | |||
f8df4de711 | |||
a0cb18e1a1 | |||
509ec7d3d3 | |||
aa2416f353 | |||
167a605658 | |||
592f11bd5f | |||
92b128039a | |||
5efe611b2d | |||
477e2737b1 | |||
dc8bacc27d | |||
0b8c787cda | |||
4f5c464659 | |||
4f432645b1 | |||
5fa7930896 | |||
f9efd536d9 | |||
6a65ff5e5d | |||
b549f83422 | |||
a9c80c031f | |||
405bea3049 | |||
6954acd0b3 | |||
efd15d5d18 | |||
6566622167 | |||
8157780b68 | |||
975546915e | |||
319d591662 | |||
1dd6c91529 | |||
c4f0426775 | |||
53f5a122bd | |||
a7142ed21b | |||
771a1bfc44 | |||
53169bba78 | |||
e3b8c1836b | |||
a4b091dc32 | |||
448c9ddaa8 | |||
ac574acf8e | |||
aa15b9420a | |||
2b7f5c321e | |||
bee9bfcfcc | |||
b7d73dcfaa | |||
5b4fa4ea2b | |||
12e5fe77de | |||
2dca10c539 | |||
ceba5b3d0b | |||
c05cf3cad4 | |||
d6f5a39829 | |||
30d67508cb | |||
63b8d892f7 | |||
10137d8551 | |||
9ef74e0951 | |||
89ff93958f | |||
8d870e85eb | |||
0cdb426712 | |||
b9f7a5673f | |||
7ffbf6c378 | |||
3a9c006cf9 | |||
a9edb383b4 | |||
ec23a73edb | |||
10a164ee0c | |||
37fcd5699b | |||
66d969cc2f | |||
9d358f74dd | |||
57e00e3097 | |||
53afbea6ec | |||
2c2c0b3db4 | |||
e235ee66eb | |||
0ef430567b | |||
74aef73f75 | |||
99eb72428f | |||
065b160155 | |||
6811d8e38d | |||
5f75efddf1 | |||
822a7ac5f5 | |||
06e1ac9bb5 | |||
a3530c3367 | |||
ec35bfb2d4 | |||
ed3e46bebb | |||
87b270482b | |||
d22ba55858 | |||
835f25cc82 | |||
11944283b0 | |||
dc704a92de | |||
dca1e9e1a7 | |||
00781be077 | |||
ac80148f5b | |||
ff36833270 | |||
612c7d76a0 | |||
32097b4512 | |||
d686f75222 | |||
bcc01df0b8 | |||
ee12f4d304 | |||
16c1607850 | |||
e2864e2243 | |||
16dc81150d | |||
ed4d3d52ed | |||
37a6a74b6e | |||
136a531047 | |||
bef0097f5b | |||
a0d2be50e8 | |||
18e2d26587 | |||
810a7bf544 | |||
1010c6f4f0 | |||
8dd698ec75 | |||
95e66f1f29 | |||
ac0460ab04 | |||
2d059debb7 | |||
df0ad2df37 | |||
0f7725e6af | |||
eda346c582 | |||
94060a6443 | |||
1cd7c5e876 | |||
b369cadde0 | |||
5321a136e7 | |||
d4c04f29bf | |||
20798d8957 | |||
3cde437628 | |||
8db7af48cd | |||
d05d033727 | |||
ccba1925b1 | |||
b590586d4c | |||
44c742402c | |||
3a9db95c37 | |||
5d88938d94 | |||
67e0f1776d | |||
5b68febb05 | |||
9bf65ca798 | |||
d95aa40502 | |||
a59bf76fb4 | |||
51fdc7f1df | |||
aa51b751d0 | |||
aff522c5cd | |||
66d039ace3 | |||
ed5e6cdd8c | |||
47f5e1e7b4 | |||
626d6c0fa9 | |||
2b45d64695 | |||
c27446666e | |||
7f0195378c | |||
6caa3a069b | |||
baaf73b584 | |||
b2a92feb50 | |||
c11b9677d5 | |||
0e5a26ce1f | |||
40ec5569d0 | |||
d14ecc982b | |||
9c27384ba3 | |||
2268f0ffa6 | |||
bfc04bfa87 | |||
37ac31cdac | |||
15096d483f | |||
16724affad | |||
384d59abe0 | |||
027414b7a2 | |||
a1cd56c419 | |||
6ee1c23f9a | |||
44a223eba1 | |||
7c66754541 | |||
bb80fc0860 | |||
6c7cc5de0d | |||
063cc9edc3 | |||
76c283502e | |||
554add0882 | |||
689c340081 | |||
01e4ed7efc | |||
59f408846a | |||
64606e69cf | |||
e8e0c1e0b3 | |||
953c124ef0 | |||
2e1be55bf9 | |||
33125f2ce7 | |||
e99d2b380c | |||
bcf89f0dfe | |||
3d64a42126 | |||
97eb772ab8 | |||
bc40bbb44b | |||
ed117e53d9 | |||
b74f40c7a8 | |||
bf4023c0ad | |||
c98cdb3e57 | |||
a01b094f9f | |||
e75bb7ee59 | |||
563c62855a | |||
8a15424a62 | |||
8eb04534bc | |||
b3abf46604 | |||
6f19a1593e | |||
883711698e | |||
bdcfd77d42 | |||
2cd503e0e0 | |||
c9519f0b3d | |||
0daa3057e7 | |||
0ac5129e0e | |||
a3aa347fdf | |||
a40d1122a5 | |||
9955b8fda1 | |||
c994438fa8 | |||
3085ae575a | |||
793b8ce29e | |||
5d447cdec3 | |||
e7698b0131 | |||
f86121b656 | |||
45c223c14b | |||
66990d62c2 | |||
4439111a44 | |||
440b7e4e6c | |||
b90d7894ca | |||
a0b37eb08c | |||
44b83436bc | |||
0d75ee0e12 | |||
50d77f2aff | |||
cb813171ce | |||
3f188e3690 | |||
e74938df90 | |||
93f7739f46 | |||
a918091977 | |||
b539eae7f9 | |||
228a671749 | |||
70fe253db3 | |||
bdb97261fd | |||
8507c77699 | |||
771ff134a8 | |||
9c1cbba163 | |||
f51122b58f | |||
e8fd992235 | |||
e126278e32 | |||
9d2651083d | |||
1e1ae4c3cf | |||
385f5ab535 | |||
dc371d76ca | |||
be0c9b71d8 | |||
6e250d9317 | |||
afeaa00fc7 | |||
6575d1579d | |||
282199d362 | |||
3e5c46e8f3 | |||
71515f3ff0 | |||
934a8d5bf8 | |||
6be2464c86 | |||
ace8a52262 | |||
7d37d279cd | |||
5525a959a8 | |||
a421dbd674 | |||
bedfc4f80c | |||
af2a6b2559 | |||
cb8c32e171 | |||
8abec208fc | |||
5264cb1cf4 | |||
47e0e1a836 | |||
e602612cd6 | |||
9f7ae122e3 | |||
22caba31e3 | |||
82ab4acb8d | |||
9466be4793 | |||
a2e2090cbb | |||
d100d61403 | |||
d781ef6d01 | |||
1dafc4da04 | |||
063c271e40 | |||
a53007e30b | |||
c616b3299a | |||
86eab0d8f8 | |||
bfd35b1cdc | |||
461203279b | |||
b9c45b46ba | |||
1a42ae4cca | |||
f2ad7ee34c | |||
37017ef69d | |||
157725c300 | |||
98d6f55a6e | |||
425d45a862 | |||
438b4fb1ec | |||
1f91d40def | |||
c5e1def2f9 | |||
65ba834742 | |||
19dc048858 | |||
938279bf8f | |||
dd2df429ef | |||
c4e05912ff | |||
bb34e8477f | |||
32f7d7771f | |||
e77717c4c2 | |||
d27d5ae5dd | |||
168263f0ea | |||
f1ced11809 | |||
c2546e8aed | |||
b7ef191641 | |||
2220a13399 | |||
31ec7475c8 | |||
bfdc13a8d1 | |||
9a3c4ff7de | |||
25410eb09c | |||
122f88668a | |||
9c35eb9723 | |||
fa528ed1ff | |||
1a7623bc4a | |||
3a4a37e1af | |||
888a566dda | |||
3567779faf | |||
cb5b0bd753 | |||
88d0511adb | |||
a4a654cfd5 | |||
4d3c90ce0d | |||
f51aba4dbd | |||
f651c06cb9 | |||
940328c608 | |||
ce85600753 | |||
5666116645 | |||
815461a851 | |||
1102467e39 | |||
a5ee865271 | |||
59bda6cf6c | |||
a4d9d55b09 | |||
8cf918013d | |||
7789a10026 | |||
ce0ad33c32 | |||
63d1fe17a9 | |||
da92795635 | |||
915f8b5865 | |||
8ae939080b | |||
610f74343c | |||
4de03db125 | |||
f734d47b26 | |||
9e879d0539 | |||
ff6dffd626 | |||
efe187953c | |||
ab8a503a48 | |||
81d91188ac | |||
d3353b793f | |||
625f828cce | |||
c90dd94cf3 | |||
a851527ff5 | |||
76e292f494 | |||
ed886280de | |||
f3b2db48c4 | |||
b60c758281 | |||
b758284df7 | |||
c6d43099a1 | |||
fde283dd56 | |||
5800883416 | |||
39a6318105 | |||
4196d35e35 | |||
c0653ce26c | |||
131f12d19e | |||
3e734b5c44 | |||
76a41d53d6 | |||
43cb03105b | |||
3647f70daa | |||
5956a200ea | |||
449eb28b2a | |||
912fca0e73 | |||
a3f2c32a6d | |||
e175e63a7c | |||
bfe898aae8 | |||
099c2a390d | |||
8fe57ff57f | |||
6dc9f9d2ab | |||
5463dd10e2 | |||
b8c56623a6 | |||
a6b00e1ba7 | |||
aa0078e5e4 | |||
714f81d936 | |||
497c2fb595 | |||
c291fada74 | |||
e4166cecba | |||
3a1568a31d | |||
02a5de0cd6 | |||
f5dce907ff | |||
2692c7c7dd | |||
4cfe3c534c | |||
f8d78d87af | |||
3b6e06eccb | |||
09b2246186 | |||
af83b02129 | |||
093fd2f082 | |||
c24d8135aa | |||
41fdc3af13 | |||
ec9417d293 | |||
6eb78b5bf7 | |||
877e110188 | |||
e6d909da21 | |||
c26a3f704b | |||
9425e390c5 | |||
698cdecbfe | |||
d5a1d94bca | |||
4f37a44363 | |||
95f8f130ea | |||
fb29800c7d | |||
d2b41a5b90 | |||
71db3e569d | |||
9a8f028a01 | |||
2c5e73305a | |||
90e7026355 | |||
d63ab6a927 | |||
e5cf57e4f8 | |||
6beada63de | |||
6699b52184 | |||
c651a8bbe8 | |||
4a171dca2d | |||
f821a60a2c | |||
24a3866e2a | |||
fc54f31d3d | |||
616883ed63 | |||
b6ce513927 | |||
456152b5cb | |||
0be790971a | |||
e255484bc8 | |||
fc53aca31d | |||
31116a7cf6 | |||
ee0c824126 | |||
9ee66160ec | |||
bc91b12cf3 | |||
457c43cd77 | |||
949d6033d7 | |||
cad6391fc6 | |||
e5e5e7b426 | |||
9095482af2 | |||
9698cf2d2e | |||
707afc2ae0 | |||
3b795a3e58 | |||
062f849fc8 | |||
98c6c29716 | |||
b4da3ecfb3 | |||
709f45941a | |||
9ac4c3de72 | |||
eee22227b3 | |||
edcce542c3 | |||
a354a380ba | |||
54eb667654 | |||
10207112bc | |||
892eea238f | |||
e6bb1666ee | |||
2be9985d20 | |||
f4b7acca1e | |||
de9d3655f0 | |||
dfa13726e7 | |||
61ab583030 | |||
6954501915 | |||
45a8103322 | |||
c4896f4662 | |||
71711b4a0d | |||
2634b606f6 | |||
0aa48b9121 | |||
1157cc8b9a | |||
88599963e0 | |||
57706dc1b3 | |||
694402e9f2 | |||
891239bf4e | |||
232494e1a2 | |||
4ae55230da | |||
eda4a9edcc | |||
5fb699fd5b | |||
7c5e0212ad | |||
44a77e097b | |||
22fd9e31f7 | |||
bbe3d48ec1 | |||
449978d7c1 | |||
0535e1eaeb | |||
4dfe4e4997 | |||
33a184fc4a | |||
19b34ed838 | |||
ca17e0c4da | |||
347e491865 | |||
59b6877675 | |||
6728203672 | |||
058ba53622 | |||
8a1450d7d6 | |||
49f2b147be | |||
8f3b2e6c0b | |||
baf0d374ae | |||
465665271d | |||
663f39d749 | |||
62349900b9 | |||
9ccf2a9294 | |||
b2f662c1d5 | |||
43b23994a9 | |||
9708019ab6 | |||
8819d9154a | |||
5e23aacdca | |||
398109dcf7 | |||
b7c1594cf6 | |||
3d24f0c77b | |||
13001008c4 | |||
4b8caccb46 | |||
04ae6efaf6 | |||
98812834f6 | |||
732ea59e34 | |||
9b9e31fcc8 | |||
9b44becc7d | |||
82e153a2e8 | |||
dc981b23e4 | |||
eb3f872dc6 | |||
3f9b41f042 | |||
9e4762cbd7 | |||
249824b83c | |||
0b89a6d2ff | |||
b074b01b9f | |||
9a0bb52860 | |||
bf36deccb2 | |||
f77e24105d | |||
f90ba712ee | |||
c658778476 | |||
c221e52cc4 | |||
556803af5d | |||
5bc17f5e76 | |||
fe537a0445 | |||
08ec4e83c8 | |||
e72a8efbd4 | |||
c49d96d63a | |||
36b935b9ae | |||
f1985f7e81 | |||
8c14df6c1f | |||
181c0cab36 | |||
2a04c3c054 | |||
80efc3c12d | |||
8b96806b11 | |||
a2f7fbac33 | |||
981cb91a13 | |||
89545ba104 | |||
709b76d01e | |||
da2d6dd405 | |||
28f5375609 | |||
37a259f73b | |||
cdb3b94cbd | |||
72f696e834 | |||
57dff5ff00 | |||
90a0061233 | |||
2955b6d5a0 | |||
1d03482463 | |||
d1def923f8 | |||
8a278360f4 | |||
5d12de8ec0 | |||
daa36c833f | |||
a9e02f745f | |||
a04f5a2d25 | |||
71fbc1a7b0 | |||
677060491d | |||
03fec11947 | |||
a0817a1e97 | |||
1926b7ba29 | |||
aec6d241e8 | |||
75602be304 | |||
299c922cef | |||
29673d0799 | |||
7c236e6209 | |||
8e438e1819 | |||
0c8cc27ea2 | |||
6f49201393 | |||
7bf9e8b06e | |||
96eaafe012 | |||
9a82e718ce | |||
f9e4f3f584 | |||
d8b1be9ccc | |||
7c61fa2c81 | |||
0af99c771e | |||
c5488571be | |||
e0aeeb29d9 | |||
d5a9b84ca3 | |||
fd417d8d95 | |||
0291c3a9a0 | |||
fd6e6de547 | |||
bf54eeb345 | |||
697afcbeba | |||
5773fa7994 | |||
b59785c4b6 | |||
fbf9f6f902 | |||
adc232fc3f | |||
e3c1ff6c8c | |||
77edd93965 | |||
7d15c391ea | |||
8fb29e2418 | |||
b348c350c0 | |||
fbeddb8af2 | |||
54f6ab0c79 | |||
8c3525589c | |||
58f97ea43d | |||
8e4c3ea7ea | |||
3865a8e8cd | |||
02221f6833 | |||
b63ef8cca0 | |||
aabe71d473 | |||
1405249712 | |||
16ee5e934a | |||
74276b45c5 | |||
b046c9ea4b | |||
8bd7f5f169 | |||
ee119215c0 | |||
c22d3c8957 | |||
0dd7a3990f | |||
1a6b032943 | |||
1220f47d87 | |||
583b34a5c1 | |||
b36d13a087 | |||
1a3aa7a4e4 | |||
70a13a4774 | |||
6ce13df2f3 | |||
4eb85c5d7e | |||
6eb6636e8b | |||
9635fb5365 | |||
d4b39cb1f4 | |||
af36e7a0d9 | |||
1db8626e35 | |||
61c255564f | |||
7e5047d98f | |||
4698d5a4db | |||
864c9cbe95 | |||
011b6f9b3c | |||
e45fc0c0a0 | |||
6bebdd6e95 | |||
8df4da768a | |||
67f4c21aa8 | |||
5eba0e2731 | |||
3efa429a1b | |||
3a78441a83 | |||
c05be7d987 | |||
b8cb1da777 | |||
ac8d1d808f | |||
9cd7b1a204 | |||
0d32c09df3 | |||
9f288ae11a | |||
e87ccd6b92 | |||
8a2b6ac69b | |||
43bd2d4413 | |||
9fdb99a06b | |||
f3c69c8353 | |||
29a32d3da9 | |||
8412cc852d | |||
b4e4320508 | |||
dbd6e6f310 | |||
bdcb7f0e58 | |||
85c9b121f5 | |||
069bc95297 | |||
0b711e6341 | |||
2a961cca01 | |||
e855fdbbaf | |||
288464e8cb | |||
1331ed70f1 | |||
411188c345 | |||
ee275532b1 | |||
b2eef93516 | |||
40ca54c447 | |||
b65db1afbf | |||
c258b1c3a2 | |||
7a5a726400 | |||
e553922eca | |||
04e9e8a45d | |||
f037e1271d | |||
f4563e18cd | |||
feaac5eb54 | |||
a6059d5bc3 | |||
f2104ef30f | |||
e7f760328e | |||
c09bcd51ad | |||
01af4d3401 | |||
2ba9d95a2e | |||
b2d4bfc760 | |||
57f5f16bb6 | |||
7d2e13b9a3 | |||
6d39f9fa78 | |||
a4395f2350 | |||
411969b3eb | |||
1868ca3155 | |||
e765471f5d | |||
bdce7c5e5a | |||
773be9f5c8 | |||
6ae46b05e5 | |||
217894745d | |||
a03891895c | |||
3368e84a99 | |||
e90df2f08d | |||
2391ae1cad | |||
83114a8be4 | |||
d08d5a3b6c | |||
8330bfc884 | |||
ef21a8cca7 | |||
e32c46a755 | |||
092f69538a | |||
7a75367d75 | |||
0b2701ade2 | |||
1ac288d286 | |||
516bc73092 | |||
4088abef68 | |||
f6cefc3f5c | |||
202e4b90e1 | |||
ee89bf0722 | |||
876d21300a | |||
0ca5b7a79f | |||
5d0ee43921 | |||
cc523a3c0b | |||
2787998d32 | |||
38f6c95059 | |||
cc03b631ff | |||
a3c77fb685 | |||
3817e28960 | |||
c3a78b1ea3 | |||
42877236c8 | |||
6e87f3539c | |||
7704ea4b68 | |||
12a3931b7b | |||
25a55dbb67 | |||
6758f60a81 | |||
5e9e53ec41 | |||
1285252a8c | |||
98f95f72ad | |||
09ca788371 | |||
b48cc5a959 | |||
812d138c4e | |||
07bc35d4cd | |||
90b95a2c25 | |||
78c50c41e3 | |||
7eee7def63 | |||
9ba6e9806f | |||
8c28dc3d8a | |||
9197e39fb4 | |||
37f59814e5 | |||
bf894fc26f | |||
0b2b42cf4d | |||
542015a4f6 | |||
f5a8323f5d | |||
55942cd88b | |||
f26a2cbd26 | |||
4402f826c3 | |||
b9745b555a | |||
f923a8063b | |||
f4367b9146 | |||
a3395e41c9 | |||
be61135daf | |||
21b4187a11 | |||
1c3c1e35e7 | |||
ded373557e | |||
280c4762bb | |||
bbd02260be | |||
1b1e9abd68 | |||
b0ab9e0408 | |||
d32abff78d | |||
7fbf84db1f | |||
8c5aebc7d6 | |||
42202f676a | |||
ba6198f956 | |||
120af4170b | |||
1faa53b978 | |||
e565a7a234 | |||
90b6b57a8d | |||
548253d68e | |||
e1c5f609ff | |||
226befdef6 | |||
a9d57654b4 | |||
ed00ae0516 | |||
48d738e8c4 | |||
132b4ed2e8 | |||
9a513cb27b | |||
5d692c0395 | |||
991ab67fff | |||
dd00640119 | |||
fa04173cfb | |||
a328d3b48a | |||
d5cff4f0d3 | |||
52bf24b6db | |||
50e134d696 | |||
ea5c73721b | |||
4799882b80 | |||
2e4c5ca39a | |||
13ed3aa3b9 | |||
6091751a4b | |||
c4d9e85dff | |||
1a85914c1b | |||
0ba48234de | |||
1c2a532949 | |||
9087be6ee8 | |||
5b2ede8b83 | |||
2fa5e5ead2 | |||
d5107be65e | |||
379dfb5f6e | |||
8360377992 | |||
4538cab6c8 | |||
1bf0988297 | |||
e1caf49ea5 | |||
0dfae97b32 | |||
ef2187c175 | |||
6157d17c5b | |||
8e879047c2 | |||
bff6aecd0d | |||
a121583c2d | |||
e11fd66fec | |||
b37e85eeb5 | |||
f88dabffe8 | |||
8c436180d9 | |||
b834a6af4d | |||
1bd8aed192 | |||
cfdf72867e | |||
5888620fc1 | |||
55ba605eb0 | |||
7a73ca7d1a | |||
1918894c5c | |||
0c5589a3e3 | |||
d6eaa4ac8a | |||
b0571b97f5 | |||
6d51ca8011 | |||
d3289dfb84 | |||
bfffdd7274 | |||
c5b8b2aef0 | |||
d7bcf1b817 | |||
f30ed153ce | |||
f436088a16 | |||
db8cb7499d | |||
49c4adc754 | |||
405e743171 | |||
3508ac36b4 | |||
f17c8228cd | |||
3dd5ac0536 | |||
4ebdff49e0 | |||
4a72995bf4 | |||
f650455a90 | |||
afbe25e215 | |||
d93249f077 |
@ -8,8 +8,7 @@ Listen 8080
|
|||||||
LogLevel notice
|
LogLevel notice
|
||||||
|
|
||||||
<Directory /home/ubuntu/mailpoet/wordpress>
|
<Directory /home/ubuntu/mailpoet/wordpress>
|
||||||
AllowOverride All
|
Require all granted
|
||||||
Allow from All
|
|
||||||
</Directory>
|
</Directory>
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
|
|
||||||
|
8
.circle_ci/fake-sendmail.rb
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/ruby
|
||||||
|
path = "/tmp"
|
||||||
|
Dir.mkdir(path) if !File.exists?(path)
|
||||||
|
File.open("#{path}/mailpoet-#{Time.now.to_f}.txt", "w") do |f|
|
||||||
|
sleep 5
|
||||||
|
f.puts ARGV.inspect
|
||||||
|
$stdin.each_line { |line| f.puts line }
|
||||||
|
end
|
3
.circle_ci/mailpoet_php.ini
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
|
||||||
|
; http://php.net/sendmail-path
|
||||||
|
sendmail_path = /home/ubuntu/mailpoet/.circle_ci/fake-sendmail.rb
|
@ -13,4 +13,7 @@ WP_TEST_MAILER_MAILPOET_API=""
|
|||||||
WP_TEST_MAILER_SENDGRID_API=""
|
WP_TEST_MAILER_SENDGRID_API=""
|
||||||
WP_TEST_MAILER_SMTP_HOST=""
|
WP_TEST_MAILER_SMTP_HOST=""
|
||||||
WP_TEST_MAILER_SMTP_LOGIN=""
|
WP_TEST_MAILER_SMTP_LOGIN=""
|
||||||
WP_TEST_MAILER_SMTP_PASSWORD=""
|
WP_TEST_MAILER_SMTP_PASSWORD=""
|
||||||
|
WP_SVN_USERNAME=""
|
||||||
|
WP_SVN_PASSWORD=""
|
||||||
|
WP_TRANSIFEX_API_TOKEN=""
|
41
.gitignore
vendored
@ -1,19 +1,22 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
TODO
|
TODO
|
||||||
composer.phar
|
composer.phar
|
||||||
/vendor
|
/vendor
|
||||||
tests/_output/*
|
tests/_output/*
|
||||||
tests/acceptance.suite.yml
|
tests/acceptance.suite.yml
|
||||||
tests/_support/_generated/*
|
tests/_support/_generated/*
|
||||||
node_modules
|
node_modules
|
||||||
.env
|
.env
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
!tasks/**
|
!tasks/**
|
||||||
/views/cache/**
|
/views/cache/**
|
||||||
temp
|
temp
|
||||||
.idea
|
.idea
|
||||||
mailpoet.zip
|
mailpoet.zip
|
||||||
tests/javascript/testBundles
|
tests/javascript/testBundles
|
||||||
assets/css/*.css
|
assets/css/*.css
|
||||||
assets/js/*.js
|
assets/js/*.js
|
||||||
.vagrant
|
.vagrant
|
||||||
|
lang
|
||||||
|
.mp_svn
|
||||||
|
/nbproject/
|
9
.tx/config
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[main]
|
||||||
|
host = https://www.transifex.com
|
||||||
|
|
||||||
|
[mp3.mailpoet]
|
||||||
|
source_file = lang/mailpoet.pot
|
||||||
|
file_filter = lang/mailpoet-<lang>.po
|
||||||
|
source_lang = en_US
|
||||||
|
type = PO
|
||||||
|
minimum_perc = 75
|
@ -5,30 +5,32 @@
|
|||||||
- CamelCase for classes.
|
- CamelCase for classes.
|
||||||
- camelCase for methods.
|
- camelCase for methods.
|
||||||
- snake_case for variables and class properties.
|
- snake_case for variables and class properties.
|
||||||
- Max line length at 80 chars.
|
|
||||||
- Classes can be no longer than 100 LOC.
|
|
||||||
- Methods can be no longer than 5 LOC.
|
|
||||||
- Pass no more than 4 parameters/hash keys into a method.
|
|
||||||
- Composition over Inheritance.
|
- Composition over Inheritance.
|
||||||
- Comments are a code smell.
|
- Comments are a code smell. If you need to use a comment - see if same idea can be achieved by more clearly expressing code.
|
||||||
- Routes can instantiate only one object.
|
|
||||||
- Require other classes with 'use' at the beginning of the class file.
|
- Require other classes with 'use' at the beginning of the class file.
|
||||||
- Do not specify 'public' if method is public, it's implicit.
|
- Do not specify 'public' if method is public, it's implicit.
|
||||||
- Always use guard clauses.
|
- Always use guard clauses.
|
||||||
|
- Ensure compatibility with PHP 5.3 and newer versions.
|
||||||
|
- Cover your code in tests.
|
||||||
|
|
||||||
|
Recommendations:
|
||||||
|
- Max line length at 80 chars.
|
||||||
|
- Keep classes under 100 LOC.
|
||||||
|
- Keep methods under 10 LOC.
|
||||||
|
- Pass no more than 4 parameters/hash keys into a method.
|
||||||
|
- Keep Pull Requests small, under 100 LOC changed.
|
||||||
|
|
||||||
## Git flow.
|
## Git flow.
|
||||||
- Do not commit to master.
|
- Do not commit to master.
|
||||||
- Open a short-living feature branch.
|
- Open a short-living feature branch.
|
||||||
- Open a pull request.
|
- Open a pull request.
|
||||||
- Add close #issue in pull request description.
|
- Add Jira issue reference in the title of the Pull Request.
|
||||||
- Work on the pull request.
|
- Work on the pull request.
|
||||||
- Wait for confirmation before merging to master.
|
- Wait for review and confirmation from another developer before merging to master.
|
||||||
- No one will accept a pull request that doesn't have 100% test coverage.
|
|
||||||
- Commit title no more than 80 chars, empty line after.
|
- Commit title no more than 80 chars, empty line after.
|
||||||
- Commit description as long as you want, 80 chars wrap.
|
- Commit description as long as you want, 80 chars wrap.
|
||||||
- Keep the GitHub open issues count at less than 10.
|
|
||||||
|
|
||||||
## Issues creation.
|
## Issues creation.
|
||||||
|
- Issues are managed on Jira.
|
||||||
- Discuss issues on public Slack chats, discuss code in pull requests.
|
- Discuss issues on public Slack chats, discuss code in pull requests.
|
||||||
- Organize features on Trello.
|
- Open a small Jira issue only when it has been discussed.
|
||||||
- Open a small github issue only when it has been discussed.
|
|
||||||
|
47
README.md
@ -46,11 +46,21 @@ $ ./do compile:all
|
|||||||
$ ./do test:unit
|
$ ./do test:unit
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- JS tests (using Mocha):
|
||||||
|
```sh
|
||||||
|
$ ./do test:javascript
|
||||||
|
```
|
||||||
|
|
||||||
- Debug tests:
|
- Debug tests:
|
||||||
```sh
|
```sh
|
||||||
$ ./do test:debug
|
$ ./do test:debug
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- Code linters and quality checkers:
|
||||||
|
```sh
|
||||||
|
$ ./do qa
|
||||||
|
```
|
||||||
|
|
||||||
# CSS
|
# CSS
|
||||||
- [Stylus](https://learnboost.github.io/stylus/)
|
- [Stylus](https://learnboost.github.io/stylus/)
|
||||||
- [Nib extension](http://tj.github.io/nib/)
|
- [Nib extension](http://tj.github.io/nib/)
|
||||||
@ -109,6 +119,7 @@ Once javascript is compiled with `./do compile:javascript`, your module will be
|
|||||||
```php
|
```php
|
||||||
__()
|
__()
|
||||||
_n()
|
_n()
|
||||||
|
_x()
|
||||||
```
|
```
|
||||||
|
|
||||||
```html
|
```html
|
||||||
@ -128,3 +139,39 @@ _n()
|
|||||||
- Handlebars.
|
- Handlebars.
|
||||||
|
|
||||||
You can use Twig i18n functions in Handlebars, just load your template from a Twig view.
|
You can use Twig i18n functions in Handlebars, just load your template from a Twig view.
|
||||||
|
|
||||||
|
# Build
|
||||||
|
|
||||||
|
To build a plugin , run `./build.sh`.
|
||||||
|
|
||||||
|
Some build process steps are described below (their dependencies etc.).
|
||||||
|
|
||||||
|
## packtranslations step
|
||||||
|
|
||||||
|
This step imports translations from Transifex and generates MO files. It requires:
|
||||||
|
* `tx` client: https://docs.transifex.com/client/installing-the-client
|
||||||
|
* `msgfmt` command (from Gettext package)
|
||||||
|
Finally , a `WP_TRANSIFEX_API_TOKEN` environment variable should be initialized with a valid key.
|
||||||
|
|
||||||
|
# Publish
|
||||||
|
|
||||||
|
The `publish` command currently does the following:
|
||||||
|
* Pushes translations POT file to Transifex;
|
||||||
|
* Publishes the release in SVN.
|
||||||
|
|
||||||
|
Before you run it, you need to:
|
||||||
|
1. Ensure there is an up-to-date local copy of MailPoet SVN repository in `.mp_svn` directory by running `./do svn:checkout`.
|
||||||
|
2. Have all your features merged in Git `master`, your `mailpoet.php` and `readme.txt` tagged with a new version.
|
||||||
|
3. Run `./build.sh` to produce a `mailpoet.zip` distributable archive.
|
||||||
|
|
||||||
|
Everything's ready? Then run `./do publish`.
|
||||||
|
If the job goes fine, you'll get a message like this:
|
||||||
|
```
|
||||||
|
Go to '.mp_svn' and run 'svn ci -m "Release 3.0.0-beta.9"' to publish the
|
||||||
|
release
|
||||||
|
|
||||||
|
Run 'svn copy ...' to tag the release
|
||||||
|
```
|
||||||
|
It's quite literal: you can review the changes to be pushed and if you're satisfied, run the suggested command to finish the release publishing process.
|
||||||
|
|
||||||
|
If you're confident, execute `./do publish --force` and your release will be published to the remote SVN repository without manual intervention (automatically). For easier authentication you might want to set `WP_SVN_USERNAME` and `WP_SVN_PASSWORD` environment variables.
|
||||||
|
225
RoboFile.php
@ -3,14 +3,21 @@
|
|||||||
class RoboFile extends \Robo\Tasks {
|
class RoboFile extends \Robo\Tasks {
|
||||||
|
|
||||||
function install() {
|
function install() {
|
||||||
$this->_exec('./composer.phar install');
|
return $this->taskExecStack()
|
||||||
$this->_exec('npm install');
|
->stopOnFail()
|
||||||
|
->exec('./composer.phar install')
|
||||||
|
->exec('npm install')
|
||||||
|
->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
function update() {
|
function update() {
|
||||||
$this->say(getenv('WP_TEST_URL'));
|
$this->say(getenv('WP_TEST_URL'));
|
||||||
$this->_exec('./composer.phar update');
|
|
||||||
$this->_exec('npm update');
|
return $this->taskExecStack()
|
||||||
|
->stopOnFail()
|
||||||
|
->exec('./composer.phar update')
|
||||||
|
->exec('npm update')
|
||||||
|
->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function rsearch($folder, $extensions = array()) {
|
protected function rsearch($folder, $extensions = array()) {
|
||||||
@ -61,12 +68,14 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function compileAll() {
|
function compileAll() {
|
||||||
$this->compileJs();
|
$collection = $this->collectionBuilder();
|
||||||
$this->compileCss();
|
$collection->addCode(array($this, 'compileJs'));
|
||||||
|
$collection->addCode(array($this, 'compileCss'));
|
||||||
|
return $collection->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
function compileJs() {
|
function compileJs() {
|
||||||
$this->_exec('./node_modules/webpack/bin/webpack.js');
|
return $this->_exec('./node_modules/webpack/bin/webpack.js --bail');
|
||||||
}
|
}
|
||||||
|
|
||||||
function compileCss() {
|
function compileCss() {
|
||||||
@ -78,7 +87,7 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
'assets/css/src/importExport.styl'
|
'assets/css/src/importExport.styl'
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->_exec(join(' ', array(
|
return $this->_exec(join(' ', array(
|
||||||
'./node_modules/stylus/bin/stylus',
|
'./node_modules/stylus/bin/stylus',
|
||||||
'--include ./node_modules',
|
'--include ./node_modules',
|
||||||
'--include-css',
|
'--include-css',
|
||||||
@ -89,17 +98,30 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function makepot() {
|
function makepot() {
|
||||||
$this->_exec('./node_modules/.bin/grunt makepot'.
|
return $this->_exec('./node_modules/.bin/grunt makepot'.
|
||||||
' --gruntfile '.__DIR__.'/tasks/makepot/makepot.js'.
|
' --gruntfile='.__DIR__.'/tasks/makepot/makepot.js'.
|
||||||
' --base_path '.__DIR__
|
' --base_path='.__DIR__
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function pushpot() {
|
function pushpot() {
|
||||||
$this->_exec('./node_modules/.bin/grunt pushpot'.
|
return $this->collectionBuilder()
|
||||||
' --gruntfile '.__DIR__.'/tasks/makepot/makepot.js'.
|
->addCode(array($this, 'txinit'))
|
||||||
' --base_path '.__DIR__
|
->taskExec('tx push -s')
|
||||||
);
|
->run();
|
||||||
|
}
|
||||||
|
|
||||||
|
function packtranslations() {
|
||||||
|
return $this->collectionBuilder()
|
||||||
|
->addCode(array($this, 'txinit'))
|
||||||
|
->taskExec('./tasks/pack_translations.sh')
|
||||||
|
->run();
|
||||||
|
}
|
||||||
|
|
||||||
|
function txinit() {
|
||||||
|
// Define WP_TRANSIFEX_API_TOKEN env. variable
|
||||||
|
$this->loadEnv();
|
||||||
|
return $this->_exec('./tasks/transifex_init.sh');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testUnit($opts=['file' => null, 'xml' => false]) {
|
function testUnit($opts=['file' => null, 'xml' => false]) {
|
||||||
@ -152,22 +174,26 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
function testDebug() {
|
function testDebug() {
|
||||||
$this->_exec('vendor/bin/codecept build');
|
$this->_exec('vendor/bin/codecept build');
|
||||||
$this->loadEnv();
|
$this->loadEnv();
|
||||||
$this->_exec('vendor/bin/codecept run unit --debug');
|
return $this->_exec('vendor/bin/codecept run unit --debug');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testFailed() {
|
function testFailed() {
|
||||||
$this->loadEnv();
|
$this->loadEnv();
|
||||||
$this->_exec('vendor/bin/codecept build');
|
$this->_exec('vendor/bin/codecept build');
|
||||||
$this->_exec('vendor/bin/codecept run -g failed');
|
return $this->_exec('vendor/bin/codecept run -g failed');
|
||||||
}
|
}
|
||||||
|
|
||||||
function qa() {
|
function qa() {
|
||||||
$this->qaLint();
|
$collection = $this->collectionBuilder();
|
||||||
$this->qaCodeSniffer('all');
|
$collection->addCode(array($this, 'qaLint'));
|
||||||
|
$collection->addCode(function() {
|
||||||
|
return $this->qaCodeSniffer('all');
|
||||||
|
});
|
||||||
|
return $collection->run();
|
||||||
}
|
}
|
||||||
|
|
||||||
function qaLint() {
|
function qaLint() {
|
||||||
$this->_exec('./tasks/php_lint.sh lib/ tests/ mailpoet.php');
|
return $this->_exec('./tasks/php_lint.sh lib/ tests/ mailpoet.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
function qaCodeSniffer($severity='errors') {
|
function qaCodeSniffer($severity='errors') {
|
||||||
@ -176,18 +202,173 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
} else {
|
} else {
|
||||||
$severityFlag = '-n';
|
$severityFlag = '-n';
|
||||||
}
|
}
|
||||||
$this->_exec(
|
return $this->_exec(
|
||||||
'./vendor/bin/phpcs '.
|
'./vendor/bin/phpcs '.
|
||||||
'--standard=./tasks/code_sniffer/MailPoet '.
|
'--standard=./tasks/code_sniffer/MailPoet '.
|
||||||
'--ignore=./lib/Util/Sudzy/*,./lib/Util/CSS.php,./lib/Util/XLSXWriter.php,'.
|
'--ignore=./lib/Util/Sudzy/*,./lib/Util/CSS.php,./lib/Util/XLSXWriter.php,'.
|
||||||
'./lib/Config/PopulatorData/Templates/* '.
|
'./lib/Util/pQuery/*,./lib/Config/PopulatorData/Templates/* '.
|
||||||
'lib/ '.
|
'lib/ '.
|
||||||
$severityFlag
|
$severityFlag
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function svnCheckout() {
|
||||||
|
$svn_dir = ".mp_svn";
|
||||||
|
|
||||||
|
$collection = $this->collectionBuilder();
|
||||||
|
|
||||||
|
// Clean up the SVN dir for faster shallow checkout
|
||||||
|
if(file_exists($svn_dir)) {
|
||||||
|
$collection->taskExecStack()
|
||||||
|
->exec('rm -rf ' . $svn_dir);
|
||||||
|
}
|
||||||
|
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->mkdir($svn_dir);
|
||||||
|
|
||||||
|
return $collection->taskExecStack()
|
||||||
|
->stopOnFail()
|
||||||
|
->dir($svn_dir)
|
||||||
|
->exec('svn co https://plugins.svn.wordpress.org/mailpoet/ -N .')
|
||||||
|
->exec('svn up trunk')
|
||||||
|
->exec('svn up assets')
|
||||||
|
->run();
|
||||||
|
}
|
||||||
|
|
||||||
|
function svnPublish($opts = ['force' => false]) {
|
||||||
|
$this->loadWPFunctions();
|
||||||
|
|
||||||
|
$svn_dir = ".mp_svn";
|
||||||
|
$plugin_data = get_plugin_data('mailpoet.php', false, false);
|
||||||
|
$plugin_version = $plugin_data['Version'];
|
||||||
|
$plugin_dist_name = sanitize_title_with_dashes($plugin_data['Name']);
|
||||||
|
$plugin_dist_file = $plugin_dist_name . '.zip';
|
||||||
|
|
||||||
|
$this->say('Publishing version: ' . $plugin_version);
|
||||||
|
|
||||||
|
// Sanity checks
|
||||||
|
if(!is_readable($plugin_dist_file)) {
|
||||||
|
$this->say("Failed to access " . $plugin_dist_file);
|
||||||
|
return;
|
||||||
|
} elseif(!file_exists($svn_dir . "/.svn/")) {
|
||||||
|
$this->say("$svn_dir/.svn/ dir not found, is it a SVN repository?");
|
||||||
|
return;
|
||||||
|
} elseif(file_exists($svn_dir . "/tags/" . $plugin_version)) {
|
||||||
|
$this->say("A SVN tag already exists: " . $plugin_version);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$collection = $this->collectionBuilder();
|
||||||
|
|
||||||
|
// Clean up tmp dirs if the previous run was halted
|
||||||
|
if(file_exists("$svn_dir/trunk_new") || file_exists("$svn_dir/trunk_old")) {
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->stopOnFail()
|
||||||
|
->remove(array("$svn_dir/trunk_new", "$svn_dir/trunk_old"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Extract the distributable zip to tmp trunk dir
|
||||||
|
$collection->taskExtract($plugin_dist_file)
|
||||||
|
->to("$svn_dir/trunk_new")
|
||||||
|
->preserveTopDirectory(false);
|
||||||
|
|
||||||
|
// Rename current trunk
|
||||||
|
if(file_exists("$svn_dir/trunk")) {
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->rename("$svn_dir/trunk", "$svn_dir/trunk_old");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace old trunk with a new one
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->stopOnFail()
|
||||||
|
->rename("$svn_dir/trunk_new", "$svn_dir/trunk")
|
||||||
|
->remove("$svn_dir/trunk_old");
|
||||||
|
|
||||||
|
// Add new repository assets
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->mirror('./plugin_repository/assets', "$svn_dir/assets_new");
|
||||||
|
|
||||||
|
// Rename current assets folder
|
||||||
|
if(file_exists("$svn_dir/assets")) {
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->rename("$svn_dir/assets", "$svn_dir/assets_old");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Replace old assets with new ones
|
||||||
|
$collection->taskFileSystemStack()
|
||||||
|
->stopOnFail()
|
||||||
|
->rename("$svn_dir/assets_new", "$svn_dir/assets")
|
||||||
|
->remove("$svn_dir/assets_old");
|
||||||
|
|
||||||
|
// Windows compatibility
|
||||||
|
$awkCmd = '{print " --force \""$2"\""}';
|
||||||
|
// Mac OS X compatibility
|
||||||
|
$xargsFlag = (stripos(PHP_OS, 'Darwin') !== false) ? '' : '-r';
|
||||||
|
|
||||||
|
$collection->taskExecStack()
|
||||||
|
->stopOnFail()
|
||||||
|
// Set SVN repo as working directory
|
||||||
|
->dir($svn_dir)
|
||||||
|
// Remove files from SVN repo that have already been removed locally
|
||||||
|
->exec("svn st | grep ^! | awk '$awkCmd' | xargs $xargsFlag svn rm")
|
||||||
|
// Recursively add files to SVN that haven't been added yet
|
||||||
|
->exec("svn add --force * --auto-props --parents --depth infinity -q");
|
||||||
|
|
||||||
|
$result = $collection->run();
|
||||||
|
|
||||||
|
if($result->wasSuccessful()) {
|
||||||
|
// Run or suggest release command depending on a flag
|
||||||
|
$repo_url = "https://plugins.svn.wordpress.org/$plugin_dist_name";
|
||||||
|
$release_cmd = "svn ci -m \"Release $plugin_version\"";
|
||||||
|
$tag_cmd = "svn copy $repo_url/trunk $repo_url/tags/$plugin_version -m \"Tag $plugin_version\"";
|
||||||
|
if(!empty($opts['force'])) {
|
||||||
|
$svn_login = getenv('WP_SVN_USERNAME');
|
||||||
|
$svn_password = getenv('WP_SVN_PASSWORD');
|
||||||
|
if ($svn_login && $svn_password) {
|
||||||
|
$release_cmd .= " --username $svn_login --password $svn_password";
|
||||||
|
} else {
|
||||||
|
$release_cmd .= ' --force-interactive';
|
||||||
|
}
|
||||||
|
$result = $this->taskExecStack()
|
||||||
|
->stopOnFail()
|
||||||
|
->dir($svn_dir)
|
||||||
|
->exec($release_cmd)
|
||||||
|
->exec($tag_cmd)
|
||||||
|
->run();
|
||||||
|
} else {
|
||||||
|
$this->yell(
|
||||||
|
"Go to '$svn_dir' and run '$release_cmd' to publish the release"
|
||||||
|
);
|
||||||
|
$this->yell(
|
||||||
|
"Run '$tag_cmd' to tag the release"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function publish($opts = ['force' => false]) {
|
||||||
|
return $this->collectionBuilder()
|
||||||
|
->addCode(array($this, 'pushpot'))
|
||||||
|
->addCode(function () use ($opts) {
|
||||||
|
return $this->svnPublish($opts);
|
||||||
|
})
|
||||||
|
->run();
|
||||||
|
}
|
||||||
|
|
||||||
protected function loadEnv() {
|
protected function loadEnv() {
|
||||||
$dotenv = new Dotenv\Dotenv(__DIR__);
|
$dotenv = new Dotenv\Dotenv(__DIR__);
|
||||||
$dotenv->load();
|
$dotenv->load();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function loadWPFunctions() {
|
||||||
|
$this->loadEnv();
|
||||||
|
define('ABSPATH', getenv('WP_TEST_PATH') . '/');
|
||||||
|
define('WPINC', 'wp-includes');
|
||||||
|
require_once(ABSPATH . WPINC . '/functions.php');
|
||||||
|
require_once(ABSPATH . WPINC . '/formatting.php');
|
||||||
|
require_once(ABSPATH . WPINC . '/plugin.php');
|
||||||
|
require_once(ABSPATH . 'wp-admin/includes/plugin.php');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,3 +22,5 @@
|
|||||||
@require 'progress_bar'
|
@require 'progress_bar'
|
||||||
|
|
||||||
@require 'subscribers'
|
@require 'subscribers'
|
||||||
|
|
||||||
|
@require 'mp2migrator'
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
$box-width = 425px
|
||||||
|
$box-height = 150px
|
||||||
|
$thumbnail-width = $box-height
|
||||||
|
$thumbnail-height = $thumbnail-width
|
||||||
|
$box-description-space-between-heading-and-paragraph = 5px
|
||||||
|
$box-description-height = 110px
|
||||||
|
$box-description-text-height = $box-description-height - $box-description-space-between-heading-and-paragraph
|
||||||
|
$box-heading-line-height = $box-description-text-height / 4
|
||||||
|
$box-heading-font-size = $box-heading-line-height * 5/7
|
||||||
|
$box-description-line-height = $box-heading-line-height / 2
|
||||||
|
$box-description-font-size = $box-description-line-height
|
||||||
|
|
||||||
.mailpoet_boxes.mailpoet_boxes_loading
|
.mailpoet_boxes.mailpoet_boxes_loading
|
||||||
opacity: 0.2
|
opacity: 0.2
|
||||||
|
|
||||||
@ -6,8 +18,8 @@
|
|||||||
position: relative
|
position: relative
|
||||||
padding: 15px
|
padding: 15px
|
||||||
margin: 15px 25px 0 0
|
margin: 15px 25px 0 0
|
||||||
width: 425px
|
width: $box-width
|
||||||
height: 150px
|
height: $box-height
|
||||||
border: 1px solid #dedede
|
border: 1px solid #dedede
|
||||||
background-color: #fff
|
background-color: #fff
|
||||||
|
|
||||||
@ -18,15 +30,15 @@
|
|||||||
background-position: center
|
background-position: center
|
||||||
color: #222
|
color: #222
|
||||||
border: 1px solid #ccc
|
border: 1px solid #ccc
|
||||||
width: 150px
|
width: $thumbnail-height
|
||||||
height: 150px
|
height: $thumbnail-width
|
||||||
margin-right: 15px
|
margin-right: 15px
|
||||||
float: left
|
float: left
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
position: relative
|
position: relative
|
||||||
|
|
||||||
img
|
img
|
||||||
min-width: 150px
|
min-width: $thumbnail-width
|
||||||
height: auto
|
height: auto
|
||||||
width: 110%
|
width: 110%
|
||||||
position: relative
|
position: relative
|
||||||
@ -60,20 +72,21 @@
|
|||||||
.mailpoet_boxes .mailpoet_description
|
.mailpoet_boxes .mailpoet_description
|
||||||
float:left
|
float:left
|
||||||
width: 245px
|
width: 245px
|
||||||
max-height: calc(115px - 2em)
|
max-height: $box-description-height
|
||||||
padding-bottom: 2em
|
padding-bottom: 0
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
|
|
||||||
h3
|
h3
|
||||||
margin: 0 0 0.7em 0
|
margin: 0 0 $box-description-space-between-heading-and-paragraph 0
|
||||||
overflow: hidden
|
overflow: hidden
|
||||||
max-width: 210px
|
max-width: 210px
|
||||||
line-height: 1.4em
|
line-height: $box-heading-line-height
|
||||||
|
font-size: $box-heading-font-size
|
||||||
|
|
||||||
p
|
p
|
||||||
font-size: 13px
|
font-size: $box-description-font-size
|
||||||
line-height: 1.5
|
line-height: $box-description-line-height
|
||||||
margin: 1em 0
|
margin: 0
|
||||||
|
|
||||||
.mailpoet_boxes .mailpoet_actions
|
.mailpoet_boxes .mailpoet_actions
|
||||||
position: absolute
|
position: absolute
|
||||||
|
@ -1,3 +1,53 @@
|
|||||||
|
$excellent-badge-color = #2993ab
|
||||||
|
$good-badge-color = #f0b849
|
||||||
|
$bad-badge-color = #d54e21
|
||||||
|
$green-badge-color = #55bd56
|
||||||
|
|
||||||
#newsletters_container
|
#newsletters_container
|
||||||
h2.nav-tab-wrapper
|
h2.nav-tab-wrapper
|
||||||
margin-bottom: 1rem
|
margin-bottom: 1rem
|
||||||
|
|
||||||
|
.mailpoet_stats_text
|
||||||
|
font-size: 14px
|
||||||
|
font-weight: 600;
|
||||||
|
|
||||||
|
.mailpoet_stat
|
||||||
|
|
||||||
|
&_excellent
|
||||||
|
color: $excellent-badge-color
|
||||||
|
|
||||||
|
&_good
|
||||||
|
color: $good-badge-color
|
||||||
|
|
||||||
|
&_bad
|
||||||
|
color: $bad-badge-color
|
||||||
|
|
||||||
|
&_hidden
|
||||||
|
display: none
|
||||||
|
|
||||||
|
&_link_small
|
||||||
|
text-decoration: underline !important
|
||||||
|
font-size: 0.75rem
|
||||||
|
|
||||||
|
.mailpoet_badge
|
||||||
|
padding: 4px 6px 3px 6px
|
||||||
|
color: #FFFFFF
|
||||||
|
margin-right: 4px
|
||||||
|
text-transform: uppercase
|
||||||
|
font-size: 0.5625rem
|
||||||
|
font-weight: 500
|
||||||
|
border-radius: 3px
|
||||||
|
letter-spacing: 1px
|
||||||
|
vertical-align: middle
|
||||||
|
|
||||||
|
&_excellent
|
||||||
|
background: $excellent-badge-color
|
||||||
|
|
||||||
|
&_good
|
||||||
|
background: $good-badge-color
|
||||||
|
|
||||||
|
&_bad
|
||||||
|
background: $bad-badge-color
|
||||||
|
|
||||||
|
&_green
|
||||||
|
background: $green-badge-color
|
||||||
|
33
assets/css/src/mp2migrator.styl
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
#logger
|
||||||
|
width: 100%
|
||||||
|
height: 300px
|
||||||
|
background-color: transparent
|
||||||
|
border: 0
|
||||||
|
border-top: 1px #aba9a9 solid
|
||||||
|
padding: 2px
|
||||||
|
overflow: scroll
|
||||||
|
resize: both
|
||||||
|
font-size: 0.85em
|
||||||
|
margin-top: 20px
|
||||||
|
|
||||||
|
#progressbar
|
||||||
|
width: 50%
|
||||||
|
background-color: #d8d8d8
|
||||||
|
border-radius: 5px
|
||||||
|
|
||||||
|
progressbar_color = #fecf23
|
||||||
|
progressbar_gradient_to_color = #fd9215
|
||||||
|
|
||||||
|
.ui-progressbar .ui-progressbar-value
|
||||||
|
height: 100%
|
||||||
|
background-color: progressbar_color
|
||||||
|
background-image: linear-gradient(to bottom, progressbar_color, progressbar_gradient_to_color)
|
||||||
|
border-radius: 3px
|
||||||
|
box-shadow: 0 1px 0 rgba(255,255,255,0.5) inset
|
||||||
|
border 0
|
||||||
|
|
||||||
|
.mailpoet_progress_label
|
||||||
|
font-size: 15px
|
||||||
|
|
||||||
|
.error_msg
|
||||||
|
color: #f00
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
.mailpoet_input_title,
|
.mailpoet_input_title,
|
||||||
.mailpoet_input_preheader
|
.mailpoet_input_preheader
|
||||||
width: 400px
|
width: 500px
|
||||||
padding: 3px
|
padding: 3px
|
||||||
line-height: normal
|
line-height: normal
|
||||||
|
|
||||||
|
@ -9,12 +9,13 @@
|
|||||||
background: rgba(255, 255, 255, 0)
|
background: rgba(255, 255, 255, 0)
|
||||||
transition: background .15s ease-out
|
transition: background .15s ease-out
|
||||||
|
|
||||||
&:hover
|
.mailpoet_automated_latest_content_block:hover &
|
||||||
background: rgba(255, 255, 255, 0.7)
|
background: rgba(255, 255, 255, 0.7)
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
|
|
||||||
.mailpoet_automated_latest_content_block_posts
|
.mailpoet_automated_latest_content_block_posts
|
||||||
overflow: auto
|
overflow: auto
|
||||||
|
pointer-events: none
|
||||||
|
|
||||||
& > .mailpoet_block
|
& > .mailpoet_block
|
||||||
width: 100%
|
width: 100%
|
||||||
|
@ -34,7 +34,7 @@ $block-text-line-height = $text-line-height
|
|||||||
position: relative
|
position: relative
|
||||||
line-height: $block-text-line-height
|
line-height: $block-text-line-height
|
||||||
|
|
||||||
p, h1, h2, h3, h4, h5, h6
|
h1, h2, h3, h4, h5, h6
|
||||||
line-height: $block-text-line-height
|
line-height: $block-text-line-height
|
||||||
padding: 0
|
padding: 0
|
||||||
margin: 0
|
margin: 0
|
||||||
@ -44,9 +44,15 @@ $block-text-line-height = $text-line-height
|
|||||||
h1, h2, h3, h4, h5, h6
|
h1, h2, h3, h4, h5, h6
|
||||||
margin-bottom: 0.3em
|
margin-bottom: 0.3em
|
||||||
|
|
||||||
p
|
p:not(.mailpoet_wp_post)
|
||||||
margin-top: 0
|
margin-top: 0
|
||||||
margin-bottom: 0
|
margin-bottom: 0
|
||||||
|
padding: 0
|
||||||
|
margin: 0
|
||||||
|
|
||||||
|
p
|
||||||
|
line-height: $block-text-line-height
|
||||||
|
font-style: normal
|
||||||
font-weight: normal
|
font-weight: normal
|
||||||
|
|
||||||
ul
|
ul
|
||||||
|
@ -131,6 +131,7 @@ body
|
|||||||
display: none
|
display: none
|
||||||
|
|
||||||
.wrap > .mailpoet_notice,
|
.wrap > .mailpoet_notice,
|
||||||
|
.notice
|
||||||
.update-nag
|
.update-nag
|
||||||
margin-left: 2px + 15px !important
|
margin-left: 2px + 15px !important
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
padding: 0
|
padding: 0
|
||||||
width: 100%
|
width: 100%
|
||||||
margin: 0
|
margin: 0
|
||||||
|
margin-bottom: 10px
|
||||||
border-radius: 5px
|
border-radius: 5px
|
||||||
position: relative
|
position: relative
|
||||||
|
|
||||||
@ -25,5 +26,5 @@
|
|||||||
|
|
||||||
.mailpoet_progress_complete
|
.mailpoet_progress_complete
|
||||||
.mailpoet_progress_bar
|
.mailpoet_progress_bar
|
||||||
background-color: #fecf23
|
background-color: hsla(191, 78%, 80%, 1)
|
||||||
background-image: linear-gradient(top, #fecf23, #fd9215)
|
background-image: linear-gradient(top, hsla(191, 78%, 80%, 1), hsla(191, 76%, 67%, 1))
|
||||||
|
@ -15,13 +15,12 @@
|
|||||||
padding 15px 15px 0 15px
|
padding 15px 15px 0 15px
|
||||||
margin 0 25px 25px 0
|
margin 0 25px 25px 0
|
||||||
width 300px
|
width 300px
|
||||||
height 250px
|
height 300px
|
||||||
border 1px solid #dedede
|
border 1px solid #dedede
|
||||||
background-color #fff
|
background-color #fff
|
||||||
h3
|
h3
|
||||||
text-align center
|
text-align center
|
||||||
height 54px
|
height 54px
|
||||||
line-height 54px
|
|
||||||
font-size 1.5em
|
font-size 1.5em
|
||||||
.mailpoet_description
|
.mailpoet_description
|
||||||
font-size 14px
|
font-size 14px
|
||||||
@ -39,6 +38,7 @@
|
|||||||
font-weight bold
|
font-weight bold
|
||||||
.mailpoet_active
|
.mailpoet_active
|
||||||
.mailpoet_status
|
.mailpoet_status
|
||||||
|
background-color #088b00
|
||||||
span
|
span
|
||||||
visibility visible
|
visibility visible
|
||||||
#mailpoet_mta_activate
|
#mailpoet_mta_activate
|
||||||
@ -52,6 +52,15 @@
|
|||||||
.button-secondary
|
.button-secondary
|
||||||
margin 0 -6px -4px 0
|
margin 0 -6px -4px 0
|
||||||
|
|
||||||
|
// premium key
|
||||||
|
.mailpoet_key
|
||||||
|
&_valid
|
||||||
|
&::before
|
||||||
|
content '✔ '
|
||||||
|
&_invalid
|
||||||
|
&::before
|
||||||
|
content: '✗ '
|
||||||
|
|
||||||
// responsive
|
// responsive
|
||||||
@media screen and (max-width: 782px)
|
@media screen and (max-width: 782px)
|
||||||
.form-table th
|
.form-table th
|
||||||
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 779 B |
BIN
assets/img/datepicker/animated-overlay.gif
Executable file → Normal file
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 985 B |
BIN
assets/img/datepicker/ui-bg_diagonals-thick_18_b81900_40x40.png
Executable file → Normal file
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 140 B |
BIN
assets/img/datepicker/ui-bg_diagonals-thick_20_666666_40x40.png
Executable file → Normal file
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 140 B |
BIN
assets/img/datepicker/ui-bg_flat_10_000000_40x100.png
Executable file → Normal file
Before Width: | Height: | Size: 205 B After Width: | Height: | Size: 83 B |
BIN
assets/img/datepicker/ui-bg_glass_100_f6f6f6_1x400.png
Executable file → Normal file
Before Width: | Height: | Size: 262 B After Width: | Height: | Size: 85 B |
BIN
assets/img/datepicker/ui-bg_glass_100_fdf5ce_1x400.png
Executable file → Normal file
Before Width: | Height: | Size: 348 B After Width: | Height: | Size: 139 B |
BIN
assets/img/datepicker/ui-bg_glass_65_ffffff_1x400.png
Executable file → Normal file
Before Width: | Height: | Size: 207 B After Width: | Height: | Size: 74 B |
BIN
assets/img/datepicker/ui-bg_gloss-wave_35_f6a828_500x100.png
Executable file → Normal file
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
assets/img/datepicker/ui-bg_highlight-soft_100_eeeeee_1x100.png
Executable file → Normal file
Before Width: | Height: | Size: 278 B After Width: | Height: | Size: 79 B |
BIN
assets/img/datepicker/ui-bg_highlight-soft_75_ffe45c_1x100.png
Executable file → Normal file
Before Width: | Height: | Size: 328 B After Width: | Height: | Size: 161 B |
BIN
assets/img/datepicker/ui-icons_222222_256x240.png
Executable file → Normal file
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
assets/img/datepicker/ui-icons_228ef1_256x240.png
Executable file → Normal file
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
assets/img/datepicker/ui-icons_454545_256x240.png
Executable file → Normal file
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 3.7 KiB |
BIN
assets/img/datepicker/ui-icons_ef8c08_256x240.png
Executable file → Normal file
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
assets/img/datepicker/ui-icons_ffd27a_256x240.png
Executable file → Normal file
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
assets/img/datepicker/ui-icons_ffffff_256x240.png
Executable file → Normal file
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
assets/img/mailpoet_logo_newsletter.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 925 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 1016 B After Width: | Height: | Size: 542 B |
Before Width: | Height: | Size: 767 B After Width: | Height: | Size: 423 B |
Before Width: | Height: | Size: 397 B After Width: | Height: | Size: 274 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 735 B |
Before Width: | Height: | Size: 678 B After Width: | Height: | Size: 403 B |
Before Width: | Height: | Size: 634 B After Width: | Height: | Size: 389 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 601 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 835 B |
Before Width: | Height: | Size: 683 B After Width: | Height: | Size: 434 B |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 435 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 272 B |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 733 B |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 400 B |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 603 B |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 832 B |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 460 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 687 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 524 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 527 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 687 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 618 B |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 718 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 566 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 662 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 248 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 751 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 552 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 344 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 776 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 536 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 848 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 471 B |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 753 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 522 B After Width: | Height: | Size: 335 B |
BIN
assets/img/post_notifications_template/ALC-widget-icon.png
Executable file → Normal file
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
assets/img/post_notifications_template/settings-icon-highlight.png
Executable file → Normal file
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 143 KiB |