add sppd to git repo
@@ -0,0 +1,283 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<!--
|
||||
2015-1-20: Created.
|
||||
-->
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>
|
||||
Created by FontForge 20120731 at Tue Jan 20 14:13:11 2015
|
||||
By Iulian Galciuc,,,
|
||||
Created by Iulian Galciuc,,, with FontForge 2.0 (http://fontforge.sf.net)
|
||||
</metadata>
|
||||
<defs>
|
||||
<font id="jquery-filer" horiz-adv-x="512" >
|
||||
<font-face
|
||||
font-family="jquery-filer"
|
||||
font-weight="500"
|
||||
font-stretch="normal"
|
||||
units-per-em="512"
|
||||
panose-1="2 0 6 9 0 0 0 0 0 0"
|
||||
ascent="448"
|
||||
descent="-64"
|
||||
bbox="-0.361328 -64.8438 512.331 448.844"
|
||||
underline-thickness="25.6"
|
||||
underline-position="-51.2"
|
||||
unicode-range="U+F2F6-F344"
|
||||
/>
|
||||
<missing-glyph />
|
||||
<glyph glyph-name="uniF32B" unicode=""
|
||||
d="M480 192c0 -29 -10 -55.7917 -30 -80.375c-20 -24.5833 -47.1667 -44 -81.5 -58.25s-71.8333 -21.375 -112.5 -21.375c-11.6667 0 -23.75 0.666668 -36.25 2c-33 -29.1667 -71.3333 -49.3333 -115 -60.5c-8.16666 -2.33333 -17.6667 -4.16667 -28.5 -5.5
|
||||
c-2.83334 -0.333454 -5.375 0.416546 -7.625 2.25c-2.25 1.83333 -3.70834 4.25 -4.375 7.25v0.25c-0.5 0.666666 -0.541668 1.66667 -0.125 3c0.416664 1.3333 0.583336 2.16663 0.5 2.5c-0.0833359 0.333303 0.291664 1.12497 1.125 2.375l1.5 2.25l1.75 2.125l2 2.25
|
||||
c1.16666 1.33333 3.75 4.20833 7.75 8.625s6.875 7.58333 8.625 9.5s4.33334 5.20833 7.75 9.875s6.125 8.91667 8.125 12.75c2 3.83333 4.25 8.75 6.75 14.75s4.66666 12.3333 6.5 19c-26.1667 14.8334 -46.7917 33.1667 -61.875 55
|
||||
c-15.0833 21.8333 -22.625 45.25 -22.625 70.25c0 21.6667 5.91667 42.375 17.75 62.125s27.75 36.7917 47.75 51.125c20.0001 14.3333 43.8334 25.7083 71.5 34.125c27.6667 8.41666 56.6667 12.625 87 12.625c40.6667 0 78.1667 -7.125 112.5 -21.375
|
||||
s61.5 -33.6667 81.5 -58.25c20 -24.5833 30 -51.375 30 -80.375z" />
|
||||
<glyph glyph-name="uniF30C" unicode=""
|
||||
d="M385 232.5c0 4.66667 -1.5 8.5 -4.5 11.5l-22.75 22.5c-3.16666 3.16666 -6.91666 4.75 -11.25 4.75s-8.08334 -1.58334 -11.25 -4.75l-102 -101.75l-56.5 56.5c-3.16667 3.16667 -6.91667 4.75 -11.25 4.75s-8.08333 -1.58333 -11.25 -4.75l-22.75 -22.5
|
||||
c-3 -3 -4.5 -6.83333 -4.5 -11.5c0 -4.5 1.5 -8.25 4.5 -11.25l90.5 -90.5c3.16667 -3.16666 6.91667 -4.75 11.25 -4.75c4.5 0 8.33333 1.58334 11.5 4.75l135.75 135.75c3 3 4.5 6.75 4.5 11.25zM448 192c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375
|
||||
c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375
|
||||
c0 34.8333 8.58334 66.9583 25.75 96.375s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375z" />
|
||||
<glyph glyph-name="uniF33F" unicode=""
|
||||
d="M288 72v48c0 2.33334 -0.75 4.25 -2.25 5.75s-3.41666 2.25 -5.75 2.25h-48c-2.33333 0 -4.25 -0.75 -5.75 -2.25s-2.25 -3.41666 -2.25 -5.75v-48c0 -2.33334 0.75 -4.25 2.25 -5.75s3.41667 -2.25 5.75 -2.25h48c2.33334 0 4.25 0.75 5.75 2.25s2.25 3.41666 2.25 5.75
|
||||
zM352 240c0 14.6667 -4.625 28.25 -13.875 40.75s-20.7917 22.1667 -34.625 29s-28 10.25 -42.5 10.25c-40.5 0 -71.4167 -17.75 -92.75 -53.25c-2.5 -4 -1.83333 -7.5 2 -10.5l33 -25c1.16667 -1 2.75 -1.5 4.75 -1.5c2.66667 0 4.75 1 6.25 3
|
||||
c8.83333 11.3333 16 19 21.5 23c5.66713 4 12.8338 6 21.5 6c8 0 15.125 -2.16666 21.375 -6.5c6.25 -4.33333 9.375 -9.25 9.375 -14.75c0 -6.33356 -1.66666 -11.4169 -5 -15.25c-3.33334 -3.83333 -9 -7.58333 -17 -11.25
|
||||
c-10.5 -4.66667 -20.125 -11.875 -28.875 -21.625s-13.125 -20.2083 -13.125 -31.375v-9c0 -2.33333 0.75 -4.25 2.25 -5.75s3.41667 -2.25 5.75 -2.25h48c2.33334 0 4.25 0.75 5.75 2.25s2.25 3.41667 2.25 5.75c0 3.16667 1.79166 7.29167 5.375 12.375
|
||||
s8.125 9.20833 13.625 12.375c5.33572 3 9.41907 5.375 12.25 7.125c2.83456 1.75 6.66791 4.66667 11.5 8.75c4.83591 4.08333 8.54425 8.08333 11.125 12c2.58859 3.91747 4.92194 8.95914 7 15.125c2.08334 6.16667 3.125 12.9167 3.125 20.25zM448 192
|
||||
c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875
|
||||
c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375c0 34.8333 8.58334 66.9583 25.75 96.375s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875
|
||||
c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375z" />
|
||||
<glyph glyph-name="uniF2F8" unicode=""
|
||||
d="M340.8 365v0c59.1006 0 107.2 -48.2998 107.2 -107.7c0 -29.5996 -11.7998 -57.2002 -32.7998 -77.5l-148.3 -149.8l-10.9004 -11l-10.9004 11l-151.199 152.7c-19.3008 20.2002 -29.9004 46.7002 -29.9004 74.5996c0 59.4004 48.0996 107.7 107.2 107.7
|
||||
c33.7998 0 64.7998 -15.7998 84.7998 -41.7998c20 26 51 41.7998 84.7998 41.7998z" />
|
||||
<glyph glyph-name="uniF30D" unicode=""
|
||||
d="M256 320c-34 0 -65.7917 -5.79166 -95.375 -17.375c-29.5834 -11.5833 -53.0834 -27.2083 -70.5 -46.875c-17.4167 -19.6667 -26.125 -40.9167 -26.125 -63.75c0 -18.6667 5.95834 -36.4583 17.875 -53.375c11.9167 -16.9167 28.7083 -31.5417 50.375 -43.875
|
||||
l21.75 -12.5l-6.75 -24c-4 -15.1667 -9.83333 -29.5 -17.5 -43c25.3333 10.5 48.25 24.75 68.75 42.75l10.75 9.5l14.25 -1.5c11.5 -1.33334 22.3333 -2 32.5 -2c34 -3.8147e-06 65.7917 5.79166 95.375 17.375s53.0833 27.2083 70.5 46.875
|
||||
c17.4167 19.6667 26.125 40.9167 26.125 63.75s-8.70834 44.0833 -26.125 63.75c-17.4167 19.6667 -40.9167 35.2917 -70.5 46.875s-61.375 17.375 -95.375 17.375zM480 192c0 -29 -10 -55.7917 -30 -80.375c-20 -24.5833 -47.1667 -44 -81.5 -58.25
|
||||
s-71.8333 -21.375 -112.5 -21.375c-11.6667 0 -23.75 0.666668 -36.25 2c-33 -29.1667 -71.3333 -49.3333 -115 -60.5c-8.16666 -2.33333 -17.6667 -4.16667 -28.5 -5.5h-1.25c-2.5 0 -4.75 0.875 -6.75 2.625s-3.33334 4.04167 -4 6.875v0.25
|
||||
c-0.5 0.666666 -0.541668 1.66667 -0.125 3c0.416664 1.3333 0.583336 2.16663 0.5 2.5c-0.0833359 0.333303 0.291664 1.12497 1.125 2.375l1.5 2.25l1.75 2.125l2 2.25c1.16666 1.33333 3.75 4.20833 7.75 8.625s6.875 7.58333 8.625 9.5s4.33334 5.20833 7.75 9.875
|
||||
s6.125 8.91667 8.125 12.75c2 3.83333 4.25 8.75 6.75 14.75s4.66666 12.3333 6.5 19c-26.1667 14.8334 -46.7917 33.1667 -61.875 55c-15.0833 21.8333 -22.625 45.25 -22.625 70.25c0 29 10 55.7917 30 80.375c20 24.5833 47.1667 44 81.5 58.25
|
||||
s71.8333 21.375 112.5 21.375c40.6667 0 78.1667 -7.125 112.5 -21.375s61.5 -33.6667 81.5 -58.25c20 -24.5833 30 -51.375 30 -80.375z" />
|
||||
<glyph glyph-name="uniF330" unicode=""
|
||||
d="M384 184v-80c0 -19.8333 -7.04166 -36.7917 -21.125 -50.875s-31.0417 -21.125 -50.875 -21.125h-208c-19.8333 0 -36.7917 7.04167 -50.875 21.125c-14.0833 14.0834 -21.125 31.0417 -21.125 50.875v208c0 19.834 7.04167 36.7923 21.125 50.875
|
||||
c14.0834 14.0833 31.0417 21.125 50.875 21.125h176c2.33334 0 4.25 -0.75 5.75 -2.25s2.25 -3.41666 2.25 -5.75v-16c0 -2.33334 -0.75 -4.25 -2.25 -5.75s-3.41666 -2.25 -5.75 -2.25h-176c-11 0 -20.4167 -3.91666 -28.25 -11.75s-11.75 -17.25 -11.75 -28.25v-208
|
||||
c-3.8147e-06 -11 3.91666 -20.4167 11.75 -28.25s17.25 -11.75 28.25 -11.75h208c11 -3.8147e-06 20.4167 3.91666 28.25 11.75s11.75 17.25 11.75 28.25v80c0 2.33333 0.75 4.25 2.25 5.75s3.41666 2.25 5.75 2.25h16c2.33334 0 4.25 -0.75 5.75 -2.25
|
||||
s2.25 -3.41667 2.25 -5.75zM480 400v-128c0 -4.33334 -1.58334 -8.08334 -4.75 -11.25c-3.16666 -3.16669 -6.91666 -4.75002 -11.25 -4.75c-4.33334 0 -8.08334 1.58334 -11.25 4.75l-44 44l-163 -163c-1.66667 -1.66667 -3.58333 -2.5 -5.75 -2.5
|
||||
s-4.08333 0.833328 -5.75 2.5l-28.5 28.5c-1.66667 1.66798 -2.5 3.58466 -2.5 5.75c0 2.16803 0.833328 4.0847 2.5 5.75l163 163l-44 44c-3.16666 3.16666 -4.75 6.91666 -4.75 11.25s1.58334 8.08334 4.75 11.25s6.91666 4.75 11.25 4.75h128
|
||||
c4.33334 0 8.08334 -1.58334 11.25 -4.75s4.75 -6.91666 4.75 -11.25z" />
|
||||
<glyph glyph-name="uniF342" unicode=""
|
||||
d="M0 237.177v210.823h210.823v-210.823h-210.823zM30.1172 417.883v-150.589h150.589v150.589h-150.589zM301.177 448h210.823v-210.823h-210.823v210.823zM481.883 267.294v150.589h-150.589v-150.589h150.589zM0 -64v210.823h210.823v-210.823h-210.823zM30.1172 116.706
|
||||
v-150.589h150.589v150.589h-150.589zM301.177 -64v210.823h210.823v-210.823h-210.823zM331.294 116.706v-150.589h150.589v150.589h-150.589z" />
|
||||
<glyph glyph-name="uniF31F" unicode=""
|
||||
d="M291.147 448l160.617 -159.864v-352.136h-391.529v512h230.912zM301.177 395.535v-98.123h98.5752zM90.3525 -33.8828h331.295v301.177h-150.589v150.589h-180.706v-451.766zM273.581 291.056v108.06h58.3184v-108.06h-58.3184zM289.876 286.768v46.3115h112.349
|
||||
v-46.3115h-112.349zM320.75 317.642v51.457h44.5967v-51.457h-44.5967z" />
|
||||
<glyph glyph-name="uniF30B" unicode=""
|
||||
d="M421.647 387.765h90.3525v-451.765h-512v451.765h90.3525v30.1182h90.3535v-30.1182h150.588v30.1182h90.3535v-30.1182zM361.412 387.765v-60.2354h30.1172v60.2354h-30.1172zM120.471 387.765v-60.2354h30.1172v60.2354h-30.1172zM481.883 -33.8828v268.68h-451.766
|
||||
v-268.68h451.766zM30.1172 264.915h451.766v92.7324h-60.2354v-60.2354h-90.3535v60.2354h-150.588v-60.2354h-90.3535v60.2354h-60.2354v-92.7324z" />
|
||||
<glyph glyph-name="uniF307" unicode=""
|
||||
d="M512 -48.5801l0.331055 -15.4199h-512.692l0.361328 15.4199c1.89746 81.8604 84.9014 151.673 199.288 169.412v38.6406c-16.6846 14.9082 -28.1895 38.8818 -35.5088 59.1816c-8.94434 4.90918 -16.9863 14.3662 -22.5576 26.8652
|
||||
c-9.78809 22.0459 -7.40918 43.2783 5.39062 52.3135c-0.511719 6.62598 -0.782227 13.0713 -0.782227 19.2451l-0.0908203 11.1143c-0.391602 34.2734 -0.842773 76.9199 50.7178 81.5283c0 0.150391 1.3252 2.68066 2.31934 4.54785
|
||||
c7.95117 15.5107 19.8174 32.165 59.3623 33.5811l7.95117 0.150391c56.9521 0 95.6533 -21.1123 108.965 -59.4521c3.70508 -10.6621 0 -20.1191 -3.19238 -28.4609c-3.88477 -9.93945 -8.22168 -21.2334 -5.84277 -41.2012
|
||||
c0.933594 -7.28809 0.391602 -14.6074 -0.451172 -21.7754c10.6006 -9.21582 13.3721 -28.3408 6.2041 -49.0615c-5.12012 -14.9688 -13.915 -26.1123 -23.9141 -31.1113c-6.89648 -18.8535 -17.4375 -40.96 -32.2559 -55.2061v-41.3818
|
||||
c112.73 -18.3711 194.5 -88.0029 196.397 -168.93zM31.7441 -33.8828v-0.0292969h448.542c-11.7158 62.3135 -84.9014 114.176 -181.609 126.253l-13.1914 1.65625v82.1006l5.96289 4.51758c10.8125 8.16211 21.8652 27.5576 30.3887 53.248l3.43359 10.3008h10.8428
|
||||
c-0.151367 0.481445 4.21582 4.96875 7.1377 13.6729c2.13867 6.11426 2.5 11.084 2.25879 14.2158l-13.2822 -1.44531l2.68066 24.2441c0.994141 7.55957 1.92773 14.668 1.20508 20.3301c-3.31348 27.5273 3.28223 44.5439 7.64941 55.8076
|
||||
c1.14453 2.95117 2.71094 6.9873 2.71094 8.28223c-11.7461 33.5215 -55.417 38.6113 -80.3838 38.6113l-6.83691 -0.121094c-25.2988 -0.933594 -29.2139 -8.49316 -33.7324 -17.2871c-3.73438 -7.22852 -9.96875 -19.3057 -26.3828 -20.751
|
||||
c-21.7451 -1.95801 -23.7324 -10.7822 -23.2803 -51.1699l0.0898438 -11.4453c0 -9.00488 0.663086 -18.6729 1.92773 -28.6113l2.89062 -22.5586l-15.3594 4.30762c0.241211 -3.10254 1.11426 -7.43945 3.37305 -12.499c3.6748 -8.28223 8.34277 -12.3184 9.93848 -12.8906
|
||||
l8.85449 -1.53613l2.5 -8.46289c9.00586 -27.2266 20.9922 -47.5557 32.8281 -55.748l6.50586 -4.51758v-80.293l-13.2822 -1.56641c-98.2734 -11.5352 -172.574 -63.5488 -184.38 -126.615z" />
|
||||
<glyph glyph-name="uniF2F6" unicode=""
|
||||
d="M449.75 274.5c0 -6.6687 -2.33334 -12.3354 -7 -17l-181 -181l-34 -34c-4.66667 -4.66667 -10.3333 -7 -17 -7s-12.3333 2.33333 -17 7l-34 34l-90.5 90.5c-4.66679 4.66733 -7.00012 10.334 -7 17c0 6.6674 2.33334 12.3341 7 17l34 34c4.66666 4.66667 10.3333 7 17 7
|
||||
s12.3333 -2.33333 17 -7l73.5 -73.75l164 164.25c4.66666 4.66666 10.3333 7 17 7s12.3333 -2.33334 17 -7l34 -34c4.66666 -4.66776 7 -10.3344 7 -17z" />
|
||||
<glyph glyph-name="uniF32D" unicode=""
|
||||
d="M304 104v-56c0 -4.33333 -1.58334 -8.08333 -4.75 -11.25s-6.91666 -4.75 -11.25 -4.75h-64c-4.33333 -1.90735e-06 -8.08333 1.58333 -11.25 4.75s-4.75 6.91667 -4.75 11.25v56c0 4.33334 1.58333 8.08334 4.75 11.25s6.91667 4.75 11.25 4.75h64
|
||||
c4.33334 0 8.08334 -1.58334 11.25 -4.75s4.75 -6.91666 4.75 -11.25zM311.5 368l-7 -192c-0.166656 -4.33333 -1.875 -8.08333 -5.125 -11.25s-7.04166 -4.75 -11.375 -4.75h-64c-4.33333 0 -8.125 1.58333 -11.375 4.75s-4.95833 6.91667 -5.125 11.25l-7 192
|
||||
c-0.166672 4.33334 1.29167 8.08334 4.375 11.25s6.79167 4.75 11.125 4.75h80c4.33563 0 8.04398 -1.58334 11.125 -4.75c3.08807 -3.16666 4.54642 -6.91666 4.375 -11.25z" />
|
||||
<glyph glyph-name="uniF33D" unicode=""
|
||||
d="M481.883 161.883c0 -124.567 -101.316 -225.883 -225.883 -225.883s-225.883 101.315 -225.883 225.883c0 105.352 74.5713 198.144 177.333 220.642l6.44531 -29.4248c-89.0273 -19.4863 -153.66 -99.9004 -153.66 -191.217
|
||||
c0 -107.942 87.8232 -195.766 195.765 -195.766s195.765 87.8232 195.765 195.766c0 91.1953 -64.542 171.61 -153.479 191.187l6.47559 29.4248c102.641 -22.6182 177.122 -115.381 177.122 -220.611zM271.059 448v-301.177h-30.1172v301.177h30.1172z" />
|
||||
<glyph glyph-name="uniF2F7" unicode=""
|
||||
d="M448 176c-25.3333 39.3333 -57.0833 68.75 -95.25 88.25c10.1667 -17.3333 15.25 -36.0833 15.25 -56.25c0 -30.8333 -10.9583 -57.2083 -32.875 -79.125c-21.9167 -21.9167 -48.2917 -32.875 -79.125 -32.875c-30.8333 0 -57.2083 10.9583 -79.125 32.875
|
||||
c-21.9167 21.9167 -32.875 48.2917 -32.875 79.125c0 20.1667 5.08333 38.9167 15.25 56.25c-38.1667 -19.5 -69.9167 -48.9167 -95.25 -88.25c22.1667 -34.1667 49.9583 -61.375 83.375 -81.625s69.625 -30.375 108.625 -30.375s75.2083 10.125 108.625 30.375
|
||||
c33.4167 20.2501 61.2083 47.4584 83.375 81.625zM268 272c0 3.33755 -1.16666 6.1709 -3.5 8.5c-2.33334 2.33334 -5.16666 3.5 -8.5 3.5c-20.8333 0 -38.7083 -7.45834 -53.625 -22.375c-14.9167 -14.9167 -22.375 -32.7917 -22.375 -53.625
|
||||
c0 -3.33488 1.16667 -6.16821 3.5 -8.5c2.33333 -2.33333 5.16667 -3.5 8.5 -3.5s6.16667 1.16667 8.5 3.5s3.5 5.16667 3.5 8.5c0 14.3333 5.08333 26.5833 15.25 36.75s22.4167 15.25 36.75 15.25c3.33731 0 6.17065 1.16666 8.5 3.5c2.33334 2.3374 3.5 5.17075 3.5 8.5z
|
||||
M480 176c0 -5.66667 -1.66666 -11.4167 -5 -17.25c-23.3333 -38.3333 -54.7083 -69.0417 -94.125 -92.125s-81.0417 -34.625 -124.875 -34.625c-43.8333 0 -85.4583 11.5833 -124.875 34.75s-70.7917 53.8333 -94.125 92c-3.33334 5.83333 -5 11.5833 -5 17.25
|
||||
c0 5.66667 1.66667 11.4167 5 17.25c23.3334 38.1667 54.7084 68.8333 94.125 92c39.4167 23.1667 81.0417 34.75 124.875 34.75c43.8333 0 85.4583 -11.5833 124.875 -34.75s70.7917 -53.8333 94.125 -92c3.33334 -5.83333 5 -11.5833 5 -17.25z" />
|
||||
<glyph glyph-name="uniF344" unicode=""
|
||||
d="M291.147 448l160.617 -159.864v-352.136h-391.529v512h230.912zM301.177 395.535v-98.123h98.5752zM90.3525 -33.8828h331.295v301.177h-150.589v150.589h-60.2354v-30.1182h-30.1172v30.1182h-90.3535v-451.766zM150.588 207.059h30.1182v-30.1172h-30.1182v30.1172z
|
||||
M180.706 207.059v30.1182h30.1172v-30.1182h-30.1172zM180.706 267.294v30.1182h30.1172v-30.1182h-30.1172zM150.588 267.294h30.1182v-30.1172h-30.1182v30.1172zM150.588 327.529h30.1182v-30.1172h-30.1182v30.1172zM180.706 327.529v30.1182h30.1172v-30.1182h-30.1172
|
||||
zM150.588 387.765h30.1182v-30.1172h-30.1182v30.1172zM180.706 165.226c33.2197 0 60.2354 -27.0156 60.2354 -60.2354c0 -9.93848 -2.53027 -19.6064 -7.5293 -28.7324c-9.42676 -17.1973 -26.6543 -28.7627 -46.1104 -30.9004
|
||||
c-2.95117 -0.391602 -4.72852 -0.602539 -6.5957 -0.602539c-33.2197 0 -60.2354 27.0156 -60.2354 60.2354s27.0156 60.2354 60.2354 60.2354zM206.999 90.6846c2.5293 4.66797 3.82422 9.48633 3.82422 14.2754c0 16.5947 -13.5225 30.1182 -30.1172 30.1182
|
||||
s-30.1182 -13.5234 -30.1182 -30.1182s13.4932 -30.1172 30.0879 -30.1172l3.37305 0.420898c9.66797 1.05469 18.251 6.83691 22.9502 15.4209z" />
|
||||
<glyph glyph-name="uniF32E" unicode=""
|
||||
d="M256 384c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875
|
||||
c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375c0 34.8333 8.58334 66.9583 25.75 96.375
|
||||
s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75zM288 72.25v47.5c0 2.3338 -0.75 4.29214 -2.25 5.875c-1.5 1.58334 -3.33334 2.375 -5.5 2.375h-48c-2.16667 0 -4.08333 -0.833336 -5.75 -2.5c-1.66667 -1.66714 -2.5 -3.5838 -2.5 -5.75v-47.5
|
||||
c0 -2.16693 0.833328 -4.0836 2.5 -5.75c1.66841 -1.66667 3.58508 -2.5 5.75 -2.5h48c2.16666 -3.8147e-06 4 0.791664 5.5 2.375c1.5 1.5836 2.25 3.54193 2.25 5.875zM287.5 158.25l4.5 155.25c0 2 -0.833344 3.5 -2.5 4.5c-1.66666 1.33334 -3.66666 2 -6 2h-55
|
||||
c-2.33333 0 -4.33333 -0.666656 -6 -2c-1.66667 -1 -2.5 -2.5 -2.5 -4.5l4.25 -155.25c0 -1.66667 0.833328 -3.125 2.5 -4.375s3.66667 -1.875 6 -1.875h46.25c2.33765 0 4.29599 0.625 5.875 1.875c1.58334 1.25 2.45834 2.70833 2.625 4.375z" />
|
||||
<glyph glyph-name="uniF33E" unicode=""
|
||||
d="M304 102v-60c0 -2.66667 -1 -5 -3 -7s-4.33334 -3 -7 -3h-60c-2.66667 0 -5 1 -7 3s-3 4.33333 -3 7v60c0 2.66666 1 5 3 7s4.33333 3 7 3h60c2.66666 0 5 -1 7 -3s3 -4.33334 3 -7zM383 252c0 -9 -1.29166 -17.4167 -3.875 -25.25s-5.5 -14.2083 -8.75 -19.125
|
||||
s-7.83334 -9.875 -13.75 -14.875c-5.918 -5 -10.7097 -8.625 -14.375 -10.875c-3.66666 -2.25 -8.75 -5.20833 -15.25 -8.875c-6.83334 -3.83333 -12.5417 -9.25 -17.125 -16.25s-6.875 -12.5833 -6.875 -16.75c0 -2.83347 -1 -5.54179 -3 -8.125
|
||||
c-2 -2.58334 -4.33334 -3.87501 -7 -3.875h-60c-2.5 0 -4.625 1.54167 -6.375 4.625s-2.625 6.20833 -2.625 9.375v11.25c0 13.8333 5.41667 26.875 16.25 39.125s22.75 21.2917 35.75 27.125c9.83334 4.5 16.8333 9.16667 21 14s6.25 11.1667 6.25 19
|
||||
c0 7 -3.875 13.1667 -11.625 18.5s-16.7083 8 -26.875 8c-10.8333 0 -19.8333 -2.41666 -27 -7.25c-5.83333 -4.16666 -14.75 -13.75 -26.75 -28.75c-2.16667 -2.66667 -4.75 -4 -7.75 -4c-2 0 -4.08333 0.666672 -6.25 2l-41 31.25
|
||||
c-2.16667 1.66666 -3.45833 3.75 -3.875 6.25s0.0416718 4.83334 1.375 7c26.6668 44.3333 65.3334 66.5 116 66.5c13.3333 0 26.75 -2.58334 40.25 -7.75c13.5 -5.16699 25.6667 -12.0836 36.5 -20.75c10.8347 -8.66666 19.6681 -19.2917 26.5 -31.875
|
||||
c6.83334 -12.5833 10.25 -25.7917 10.25 -39.625z" />
|
||||
<glyph glyph-name="uniF343" unicode=""
|
||||
d="M150.588 448h361.412v-120.471h-361.412v120.471zM481.883 357.647v60.2354h-301.177v-60.2354h301.177zM150.588 146.823v120.471h361.412v-120.471h-361.412zM180.706 237.177v-60.2354h301.177v60.2354h-301.177zM150.588 -33.8828v120.471h361.412v-120.471h-361.412
|
||||
zM180.706 56.4707v-60.2354h301.177v60.2354h-301.177zM0 327.529v120.471h120.471v-120.471h-120.471zM30.1172 417.883v-60.2354h60.2354v60.2354h-60.2354zM0 146.823v120.471h120.471v-120.471h-120.471zM30.1172 237.177v-60.2354h60.2354v60.2354h-60.2354z
|
||||
M0 -33.8828v120.471h120.471v-120.471h-120.471zM30.1172 56.4707v-60.2354h60.2354v60.2354h-60.2354z" />
|
||||
<glyph glyph-name="uniF33C" unicode=""
|
||||
d="M431 69.75c0 -19.5 -6.58334 -35.8333 -19.75 -49c-13.1667 -13.1667 -29.5 -19.75 -49 -19.75c-22.5 0 -42.0833 8.33333 -58.75 25l-194.25 194c-18.8333 19.1667 -28.25 41.75 -28.25 67.75c0 26.5 9.16666 49 27.5 67.5s40.75 27.75 67.25 27.75
|
||||
c26.3333 0 49.0833 -9.41666 68.25 -28.25l151.25 -151.5c1.66666 -1.66667 2.5 -3.5 2.5 -5.5c0 -2.66667 -2.54166 -6.54167 -7.625 -11.625s-8.95834 -7.625 -11.625 -7.625c-2.17239 0 -4.08905 0.833328 -5.75 2.5l-151.5 151.75
|
||||
c-13.1667 12.8333 -28.25 19.25 -45.25 19.25c-17.6667 0 -32.5833 -6.25 -44.75 -18.75c-12.1667 -12.5 -18.25 -27.5833 -18.25 -45.25c0 -17.5 6.33334 -32.5833 19 -45.25l194 -194.25c10.5 -10.5 22.5833 -15.75 36.25 -15.75c10.6667 0 19.5 3.5 26.5 10.5
|
||||
s10.5 15.8333 10.5 26.5c0 13.6667 -5.25 25.75 -15.75 36.25l-145.25 145.25c-4.33333 4 -9.33333 6 -15 6c-4.83333 0 -8.83333 -1.58333 -12 -4.75s-4.75 -7.16667 -4.75 -12c0 -5.33333 2.08333 -10.25 6.25 -14.75l102.5 -102.5c1.66666 -1.66666 2.5 -3.5 2.5 -5.5
|
||||
c0 -2.66689 -2.58334 -6.58355 -7.75 -11.75c-5.16898 -5.16666 -9.08563 -7.75 -11.75 -7.75c-2 0 -3.83334 0.833336 -5.5 2.5l-102.5 102.5c-10.5 10.1671 -15.75 22.5838 -15.75 37.25c0 13.6667 4.75 25.25 14.25 34.75s21.0833 14.25 34.75 14.25
|
||||
c14.6671 0 27.0838 -5.25 37.25 -15.75l145.25 -145.25c16.6667 -16.3333 25 -35.9167 25 -58.75z" />
|
||||
<glyph glyph-name="uniF31E" unicode=""
|
||||
d="M430.1 256c17.7002 0 18.6006 -7 17.7002 -18.2002l-12.0996 -185.3c-1 -11.2998 -3.10059 -20.5 -21.1006 -20.5h-316.199c-17.6006 0 -20.2002 9.2998 -21.1006 20.5l-13 183c-1 11.2998 -0.0996094 20.5 17.6006 20.5h348.199zM426.2 304.7l1.59961 -32.7002h-343.399
|
||||
c0.5 6.2002 4 46.7002 5.5 63.4004c1.59961 18.0996 7.7998 16.5996 25.1992 16.5996h75.3008c28.2998 0 22.8994 0.200195 36.5996 -14.5996c16.5 -17.7002 19.0996 -17.4004 40.9004 -17.4004h143.199c10.6006 0 14.6006 -2.90039 15.1006 -15.2998z" />
|
||||
<glyph glyph-name="uniF318" unicode=""
|
||||
d="M288 0c-8.83203 0 -16 7.16797 -16 16v192c0 8.83203 7.16797 16 16 16s16 -7.16797 16 -16v-192c0 -8.83203 -7.16797 -16 -16 -16zM384 384c17.6797 0 32 -14.3203 32 -32v-32c0 -17.6641 -14.3203 -32 -32 -32v-288c0 -35.3438 -28.6562 -64 -64 -64h-224
|
||||
c-35.3438 0 -64 28.6562 -64 64v288c-17.6797 0 -32 14.3359 -32 32v32c0 17.6797 14.3203 32 32 32h96v32c0 17.6797 14.3203 32 32 32h96c17.6797 0 32 -14.3203 32 -32v-32h96zM160 400v-16h96v16c0 8.83203 -7.16797 16 -16 16h-64c-8.83203 0 -16 -7.16797 -16 -16z
|
||||
M352 0v288h-288v-288c0 -17.6641 14.3203 -32 32 -32h224c17.6797 0 32 14.3359 32 32zM368 320c8.83203 0 16 7.16797 16 16s-7.16797 16 -16 16h-320c-8.83203 0 -16 -7.16797 -16 -16s7.16797 -16 16 -16h320zM128 0c-8.83203 0 -16 7.16797 -16 16v192
|
||||
c0 8.83203 7.16797 16 16 16s16 -7.16797 16 -16v-192c0 -8.83203 -7.16797 -16 -16 -16zM208 0c-8.83203 0 -16 7.16797 -16 16v192c0 8.83203 7.16797 16 16 16s16 -7.16797 16 -16v-192c0 -8.83203 -7.16797 -16 -16 -16z" />
|
||||
<glyph glyph-name="uniF331" unicode=""
|
||||
d="M180.706 440.019l331.294 -64.8125v-353.461l-0.210938 0.0605469c-1.05371 -47.4658 -39.8154 -85.8057 -87.5518 -85.8057c-48.3994 0 -87.7627 39.3936 -87.7627 87.7627s39.3633 87.7627 87.7627 87.7627c22.166 0 42.1943 -8.52344 57.6455 -22.1064v140.529
|
||||
l-271.06 53.0371v-183.537c0.0302734 -1.02344 0.271484 -1.95703 0.271484 -3.04199c0 -1.08398 -0.271484 -2.04785 -0.301758 -3.07129v-0.180664v0c-1.74609 -46.8633 -40.1465 -84.541 -87.4307 -84.541c-48.3994 0 -87.7637 39.3945 -87.7637 87.7637
|
||||
c0 48.3682 39.3643 87.7627 87.7637 87.7627c22.0156 0 41.9229 -8.43359 57.3438 -21.8662v277.745zM123.362 38.7314c30.75 0 55.7168 24.2441 57.3438 54.6035v6.11328c-1.62695 30.3291 -26.5938 54.5732 -57.3438 54.5732
|
||||
c-31.8047 0 -57.6455 -25.8408 -57.6455 -57.6445c0 -31.8047 25.8408 -57.6455 57.6455 -57.6455zM210.823 313.646l271.06 -53.0078v89.751l-271.06 53.0674v-89.8105zM424.237 -33.8828c31.8037 0 57.6455 25.8418 57.6455 57.6455
|
||||
c0 31.8047 -25.8418 57.6455 -57.6455 57.6455c-31.8047 0 -57.6455 -25.8408 -57.6455 -57.6455c0 -31.8037 25.8408 -57.6455 57.6455 -57.6455z" />
|
||||
<glyph glyph-name="uniF303" unicode=""
|
||||
d="M384 144c0 -4.33333 -1.58334 -8.08333 -4.75 -11.25l-112 -112c-3.16666 -3.16667 -6.91666 -4.75 -11.25 -4.75c-4.33333 0 -8.08333 1.58333 -11.25 4.75l-112 112c-3.16667 3.16667 -4.75 6.91667 -4.75 11.25c-7.62939e-06 4.33333 1.58333 8.08333 4.75 11.25
|
||||
s6.91667 4.75 11.25 4.75h224c4.33334 0 8.08334 -1.58333 11.25 -4.75s4.75 -6.91667 4.75 -11.25zM384 240c0 -4.33333 -1.58334 -8.08333 -4.75 -11.25s-6.91666 -4.75 -11.25 -4.75h-224c-4.33333 0 -8.08333 1.58333 -11.25 4.75s-4.75 6.91667 -4.75 11.25
|
||||
c-7.62939e-06 4.33333 1.58333 8.08333 4.75 11.25l112 112c3.16667 3.16666 6.91667 4.75 11.25 4.75c4.33334 0 8.08334 -1.58334 11.25 -4.75l112 -112c3.16666 -3.16667 4.75 -6.91667 4.75 -11.25z" />
|
||||
<glyph glyph-name="uniF2FF" unicode=""
|
||||
d="M467.697 361.954c17.6182 -17.6191 17.6182 -46.291 -0.0302734 -63.8799l-272.716 -272.745l-158.057 -53.1582l51.8623 159.263l272.775 272.806c17.0771 17.0459 46.8936 17.0459 63.9092 0zM93.1836 47.6162l18.5527 -18.5527l59.1211 19.8779l-58.2471 58.2773z
|
||||
M131.162 131.223l63.5488 -63.5781l165.466 165.466l-63.5781 63.5488zM317.892 317.982l63.5781 -63.5488l21.9561 21.9561l-63.5781 63.5479zM446.403 319.367c5.87305 5.87305 5.87305 15.3906 -0.0292969 21.2939l-42.2559 42.2852
|
||||
c-5.69141 5.69141 -15.6006 5.69141 -21.293 0l-21.6846 -21.7148l63.5781 -63.5488z" />
|
||||
<glyph glyph-name="uniF339" unicode=""
|
||||
d="M320 72v40c0 2.33334 -0.75 4.25 -2.25 5.75s-3.41666 2.25 -5.75 2.25h-24v128c0 2.33333 -0.75 4.25 -2.25 5.75s-3.41666 2.25 -5.75 2.25h-80c-2.33333 0 -4.25 -0.75 -5.75 -2.25s-2.25 -3.41667 -2.25 -5.75v-40c0 -2.33333 0.75 -4.25 2.25 -5.75
|
||||
s3.41667 -2.25 5.75 -2.25h24v-80h-24c-2.33333 0 -4.25 -0.75 -5.75 -2.25s-2.25 -3.41666 -2.25 -5.75v-40c0 -2.33334 0.75 -4.25 2.25 -5.75s3.41667 -2.25 5.75 -2.25h112c2.33334 0 4.25 0.75 5.75 2.25s2.25 3.41666 2.25 5.75zM288 296v40
|
||||
c0 2.33334 -0.75 4.25 -2.25 5.75s-3.41666 2.25 -5.75 2.25h-48c-2.33333 0 -4.25 -0.75 -5.75 -2.25s-2.25 -3.41666 -2.25 -5.75v-40c0 -2.33334 0.75 -4.25 2.25 -5.75s3.41667 -2.25 5.75 -2.25h48c2.33334 0 4.25 0.75 5.75 2.25s2.25 3.41666 2.25 5.75zM448 192
|
||||
c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875
|
||||
c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375c0 34.8333 8.58334 66.9583 25.75 96.375s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875
|
||||
c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375z" />
|
||||
<glyph glyph-name="uniF317" unicode=""
|
||||
d="M351.25 135.5c0 4.33333 -1.58334 8.08333 -4.75 11.25l-45.25 45.25l45.25 45.25c3.16666 3.16667 4.75 6.91667 4.75 11.25c0 4.5 -1.58334 8.33334 -4.75 11.5l-22.5 22.5c-3.16666 3.16666 -7 4.75 -11.5 4.75c-4.33334 0 -8.08334 -1.58334 -11.25 -4.75
|
||||
l-45.25 -45.25l-45.25 45.25c-3.16667 3.16666 -6.91667 4.75 -11.25 4.75c-4.5 0 -8.33333 -1.58334 -11.5 -4.75l-22.5 -22.5c-3.16667 -3.16763 -4.75 -7.00096 -4.75 -11.5c0 -4.33333 1.58333 -8.08333 4.75 -11.25l45.25 -45.25l-45.25 -45.25
|
||||
c-3.16667 -3.16667 -4.75 -6.91667 -4.75 -11.25c0 -4.5 1.58333 -8.33334 4.75 -11.5l22.5 -22.5c3.16667 -3.16666 7 -4.75 11.5 -4.75c4.33333 0 8.08333 1.58334 11.25 4.75l45.25 45.25l45.25 -45.25c3.16666 -3.16666 6.91666 -4.75 11.25 -4.75
|
||||
c4.5 0 8.33334 1.58334 11.5 4.75l22.5 22.5c3.16666 3.16666 4.75 7 4.75 11.5zM448 192c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75
|
||||
c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375c0 34.8333 8.58334 66.9583 25.75 96.375s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75
|
||||
c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375z" />
|
||||
<glyph glyph-name="uniF336" unicode=""
|
||||
d="M340.8 349.6c-38.2002 0 -71 -23.5 -84.7002 -56.7998c-13.8994 33.4004 -46.5996 56.7998 -84.7998 56.7998c-50.7998 0 -91.8994 -41.2998 -91.8994 -92.2998c0 -24.7998 9.7998 -47.2998 25.5996 -63.8994l151 -152.5l148.4 149.8
|
||||
c17.3994 16.7998 28.2998 40.3994 28.2998 66.5996c0 51 -41.2002 92.2998 -91.9004 92.2998zM340.8 365v0c59.1006 0 107.2 -48.2998 107.2 -107.7c0 -29.5996 -11.7998 -57.2002 -32.7998 -77.5l-148.3 -149.8l-10.9004 -11l-10.9004 11l-151.199 152.7
|
||||
c-19.3008 20.2002 -29.9004 46.7002 -29.9004 74.5996c0 59.4004 48.0996 107.7 107.2 107.7c33.7998 0 64.7998 -15.7998 84.7998 -41.7998c20 26 51 41.7998 84.7998 41.7998z" />
|
||||
<glyph glyph-name="uniF312" unicode=""
|
||||
d="M368 176v32c0 4.33333 -1.58334 8.08333 -4.75 11.25s-6.91666 4.75 -11.25 4.75h-64v64c0 4.33334 -1.58334 8.08334 -4.75 11.25s-6.91666 4.75 -11.25 4.75h-32c-4.33333 0 -8.08333 -1.58334 -11.25 -4.75s-4.75 -6.91666 -4.75 -11.25v-64h-64
|
||||
c-4.33333 0 -8.08333 -1.58333 -11.25 -4.75s-4.75 -6.91667 -4.75 -11.25v-32c0 -4.33333 1.58333 -8.08333 4.75 -11.25s6.91667 -4.75 11.25 -4.75h64v-64c0 -4.33334 1.58333 -8.08334 4.75 -11.25s6.91667 -4.75 11.25 -4.75h32c4.33334 0 8.08334 1.58334 11.25 4.75
|
||||
s4.75 6.91666 4.75 11.25v64h64c4.33334 0 8.08334 1.58333 11.25 4.75s4.75 6.91667 4.75 11.25zM448 192c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75
|
||||
c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375c0 34.8333 8.58334 66.9583 25.75 96.375s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75
|
||||
c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375z" />
|
||||
<glyph glyph-name="uniF333" unicode=""
|
||||
d="M351.383 448l160.617 -159.864v-352.136h-376.471v30.1172h346.354v301.177h-150.589v150.589h-210.342v-29.6367h14.126c24.9072 0 45.1758 -20.2686 45.1758 -45.1758v-258.561l-74.21 -149.354l-75.9268 149.264v258.65c0 24.9072 20.2695 45.1758 45.1768 45.1758
|
||||
h15.541v59.7539h260.548zM117.7 26.293l32.4062 65.2646v176.219h-29.6357v-181.52h-30.1182v181.52h-30.1172v-176.128l33.25 -65.3555h24.2148zM150.106 343.07c0 8.28223 -6.74609 15.0586 -15.0586 15.0586h-59.7539c-8.28223 0 -15.0586 -6.77637 -15.0586 -15.0586
|
||||
v-45.1768h89.8711v45.1768zM361.412 395.535v-98.123h98.5742z" />
|
||||
<glyph glyph-name="uniF328" unicode=""
|
||||
d="M392 192.75c0 26.8333 -7.25 51.4167 -21.75 73.75l-188.5 -188.25c22.8333 -14.8333 47.5833 -22.25 74.25 -22.25c18.5 0 36.125 3.625 52.875 10.875s31.2083 16.9583 43.375 29.125s21.8333 26.7083 29 43.625c7.16666 16.9167 10.75 34.625 10.75 53.125z
|
||||
M142.25 118l188.75 188.5c-22.5 15.1667 -47.5 22.75 -75 22.75c-24.6667 0 -47.4167 -6.08334 -68.25 -18.25s-37.3333 -28.75 -49.5 -49.75c-12.1667 -21 -18.25 -43.8333 -18.25 -68.5c0 -27 7.41666 -51.9167 22.25 -74.75zM448 192.75
|
||||
c0 -26.1667 -5.08334 -51.1667 -15.25 -75c-10.1667 -23.8333 -23.7917 -44.3333 -40.875 -61.5c-17.0833 -17.1667 -37.5 -30.8333 -61.25 -41c-23.75 -10.1667 -48.625 -15.25 -74.625 -15.25c-26 -4.76837e-07 -50.875 5.08333 -74.625 15.25
|
||||
c-23.75 10.1667 -44.1667 23.8333 -61.25 41c-17.0833 17.1667 -30.7083 37.6667 -40.875 61.5c-10.1667 23.8333 -15.25 48.8333 -15.25 75c0 26.1667 5.08334 51.125 15.25 74.875s23.7917 44.2083 40.875 61.375c17.0833 17.1667 37.5 30.8333 61.25 41
|
||||
s48.625 15.25 74.625 15.25s50.875 -5.08334 74.625 -15.25c23.75 -10.1668 44.1667 -23.8335 61.25 -41c17.0833 -17.1667 30.7083 -37.625 40.875 -61.375s15.25 -48.7083 15.25 -74.875z" />
|
||||
<glyph glyph-name="uniF335" unicode=""
|
||||
d="M376.38 448l135.62 -125.952v-295.695h-151.101v30.1182h120.983v240.941h-120.471v120.471h-150.589v-30.4189h-30.1172v60.5361h195.674zM391.529 392.824v-65.2949h70.3252zM0 357.647h195.675l135.619 -125.952v-295.695h-331.294v421.647zM210.823 302.472v-65.2949
|
||||
h70.3252zM30.1172 -33.8828h271.06v240.941h-120.471v120.471h-150.589v-361.412z" />
|
||||
<glyph glyph-name="uniF2FB" unicode=""
|
||||
d="M512 207.059c0 -66.4395 -54.0312 -120.471 -120.471 -120.471c-36.0508 0 -69.5713 16.0225 -92.582 43.7314l-0.0595703 -0.0302734l-0.421875 0.541992c-0.331055 0.421875 -0.783203 0.692383 -1.14453 1.14453l0.120117 0.0898438l-109.447 134.987
|
||||
c-17.1367 19.2754 -41.7432 30.3594 -67.5234 30.3594c-49.8145 0 -90.3535 -40.5391 -90.3535 -90.3535s40.5391 -90.3525 90.3535 -90.3525c27.5576 0 53.2783 12.3477 70.5352 33.8818l0.271484 -0.210938l24.6055 30.4795l23.4316 -18.9141l-24.7861 -30.6895
|
||||
l-0.301758 0.240234c-22.9795 -28.5205 -57.1328 -44.9053 -93.7559 -44.9053c-66.4395 0 -120.471 54.0312 -120.471 120.471s54.0312 120.471 120.471 120.471c33.7314 0 65.8369 -14.3662 88.6357 -39.1826l0.241211 0.180664l1.26465 -1.56641l111.375 -137.337
|
||||
c17.2578 -20.8711 42.4365 -32.918 69.542 -32.918c49.8145 0 90.3535 40.5381 90.3535 90.3525s-40.5391 90.3535 -90.3535 90.3535c-25.4795 0 -49.6943 -10.9033 -66.8613 -29.7871l-28.5518 -35.3877l-23.4307 18.9141l28.5508 35.3877l-0.120117 0.0908203
|
||||
c22.8896 25.9912 55.8682 40.8994 90.4131 40.8994c66.4395 0 120.471 -54.0312 120.471 -120.471z" />
|
||||
<glyph glyph-name="uniF329" unicode=""
|
||||
d="M384 312.471c70.5654 0 128 -57.4346 128 -128s-57.4346 -128 -128 -128h-286.117c-53.9717 0 -97.8828 43.9111 -97.8828 97.8818c0 55.0254 46.6826 100.051 100.984 97.8223c21.4736 54.5732 73.2158 90.4131 132.428 90.4131
|
||||
c37.165 0 72.8848 -14.8779 99.6592 -41.1709c16.4141 7.34863 33.5205 11.0537 50.9287 11.0537zM384 86.5879c53.9707 0 97.8828 43.9121 97.8828 97.8828s-43.9121 97.8818 -97.8828 97.8818c-16.0527 0 -31.834 -4.24609 -46.9834 -12.5889l-10.6621 -5.87305
|
||||
l-7.98047 9.21582c-21.6553 24.998 -52.6465 39.3643 -84.9619 39.3643c-50.0254 0 -93.3047 -32.5273 -107.701 -80.9561l-3.79492 -12.71l-13.1006 2.16895c-3.58398 0.571289 -7.16797 1.14355 -10.9326 1.14355c-37.376 0 -67.7656 -30.3887 -67.7656 -67.7646
|
||||
s30.3896 -67.7646 67.7656 -67.7646h286.117z" />
|
||||
<glyph glyph-name="uniF338" unicode=""
|
||||
d="M320 80v-32c0 -4.33301 -1.58301 -8.08301 -4.75 -11.25s-6.91699 -4.75 -11.25 -4.75h-128c-4.33301 0 -8.08301 1.58301 -11.25 4.75s-4.75 6.91699 -4.75 11.25v32c0 4.33301 1.58301 8.08301 4.75 11.25s6.91699 4.75 11.25 4.75h16v96h-16
|
||||
c-4.33301 0 -8.08301 1.58301 -11.25 4.75s-4.75 6.91699 -4.75 11.25v32c0 4.33301 1.58301 8.08301 4.75 11.25s6.91699 4.75 11.25 4.75h96c4.33301 0 8.08301 -1.58301 11.25 -4.75s4.75 -6.91699 4.75 -11.25v-144h16c4.33301 0 8.08301 -1.58301 11.25 -4.75
|
||||
s4.75 -6.91699 4.75 -11.25zM288 368v-48c0 -4.33301 -1.58301 -8.08301 -4.75 -11.25s-6.91699 -4.75 -11.25 -4.75h-64c-4.33301 0 -8.08301 1.58301 -11.25 4.75s-4.75 6.91699 -4.75 11.25v48c0 4.33301 1.58301 8.08301 4.75 11.25s6.91699 4.75 11.25 4.75h64
|
||||
c4.33301 0 8.08301 -1.58301 11.25 -4.75s4.75 -6.91699 4.75 -11.25z" />
|
||||
<glyph glyph-name="uniF33B" unicode=""
|
||||
d="M368 176v32c0 4.33333 -1.58334 8.08333 -4.75 11.25s-6.91666 4.75 -11.25 4.75h-192c-4.33333 0 -8.08333 -1.58333 -11.25 -4.75s-4.75 -6.91667 -4.75 -11.25v-32c0 -4.33333 1.58333 -8.08333 4.75 -11.25s6.91667 -4.75 11.25 -4.75h192
|
||||
c4.33334 0 8.08334 1.58333 11.25 4.75s4.75 6.91667 4.75 11.25zM448 192c0 -34.8333 -8.58334 -66.9583 -25.75 -96.375c-17.1674 -29.4167 -40.4591 -52.7083 -69.875 -69.875c-29.4167 -17.1667 -61.5417 -25.75 -96.375 -25.75
|
||||
c-34.8333 0 -66.9583 8.58333 -96.375 25.75c-29.4167 17.1667 -52.7083 40.4583 -69.875 69.875c-17.1667 29.4167 -25.75 61.5417 -25.75 96.375c0 34.8333 8.58334 66.9583 25.75 96.375s40.4583 52.7083 69.875 69.875s61.5417 25.75 96.375 25.75
|
||||
c34.8333 0 66.9583 -8.58334 96.375 -25.75c29.4167 -17.1673 52.7083 -40.459 69.875 -69.875c17.1667 -29.4168 25.75 -61.5418 25.75 -96.375z" />
|
||||
<glyph glyph-name="uniF341" unicode=""
|
||||
d="M512 244.706c0 -70.5654 -57.4043 -128 -128 -128h-83.0342v30.1172h83.0342c53.9707 0 97.8828 43.9121 97.8828 97.8828s-43.9121 97.8818 -97.8828 97.8818c-16.0225 0 -31.834 -4.24609 -46.9834 -12.5586l-10.6621 -5.87305l-7.98047 9.21582
|
||||
c-21.6553 24.9678 -52.6465 39.334 -84.9619 39.334c-50.0254 0 -93.335 -32.5273 -107.701 -80.9561l-3.79492 -12.71l-13.1006 2.16797c-3.58398 0.572266 -7.16797 1.14453 -10.9326 1.14453c-37.3467 0 -67.7656 -30.3887 -67.7656 -67.7646
|
||||
s30.4189 -67.7646 67.7656 -67.7646h111.404v-30.1172h-111.404c-53.9717 0 -97.8828 43.9111 -97.8828 97.8818c0 54.9951 46.0498 100.442 100.984 97.8223c21.4736 54.5732 73.2158 90.4131 132.428 90.4131c37.165 0 72.8848 -14.8779 99.6592 -41.1709
|
||||
c16.4443 7.34863 33.5205 11.0537 50.9287 11.0537c70.5957 0 128 -57.4346 128 -128zM320.633 181.338l-49.5742 49.6045v-234.707h-30.1172v234.707l-49.6035 -49.5742l-21.2939 21.2939l85.9561 85.9248l85.9258 -85.9551z" />
|
||||
<glyph glyph-name="uniF32F" unicode=""
|
||||
d="M288 72.25v47.5c0 2.3338 -0.791656 4.29214 -2.375 5.875c-1.58334 1.58334 -3.45834 2.375 -5.625 2.375h-48c-2.16667 0 -4.04167 -0.791664 -5.625 -2.375s-2.375 -3.54166 -2.375 -5.875v-47.5c0 -2.33334 0.791672 -4.29166 2.375 -5.875
|
||||
s3.45833 -2.375 5.625 -2.375h48c2.16666 -3.8147e-06 4.04166 0.791664 5.625 2.375c1.58334 1.5836 2.375 3.54193 2.375 5.875zM287.5 165.75l4.5 114.75c0 2 -0.833344 3.58334 -2.5 4.75c-2.16666 1.83334 -4.16666 2.75 -6 2.75h-55
|
||||
c-1.83333 0 -3.83333 -0.916656 -6 -2.75c-1.66667 -1.16666 -2.5 -2.91666 -2.5 -5.25l4.25 -114.25c0 -1.66667 0.833328 -3.04167 2.5 -4.125s3.66667 -1.625 6 -1.625h46.25c2.33765 0 4.29599 0.541672 5.875 1.625c1.58334 1.08333 2.45834 2.45833 2.625 4.125z
|
||||
M284 399.25l192 -352c5.83331 -10.5 5.66666 -21 -0.5 -31.5c-2.83334 -4.83333 -6.70834 -8.66667 -11.625 -11.5c-4.91754 -2.83333 -10.2092 -4.25 -15.875 -4.25h-384c-5.66667 0 -10.9583 1.41667 -15.875 4.25c-4.91667 2.83333 -8.79167 6.66667 -11.625 11.5
|
||||
c-6.16678 10.5 -6.33345 21 -0.5 31.5l192 352c2.83333 5.16666 6.75 9.25 11.75 12.25s10.4167 4.5 16.25 4.5c5.83334 0 11.25 -1.5 16.25 -4.5s8.91666 -7.08334 11.75 -12.25z" />
|
||||
<glyph glyph-name="uniF340" unicode=""
|
||||
d="M256 268.138c41.502 0 75.2939 -33.792 75.2939 -75.2939c0 -41.5029 -33.792 -75.2949 -75.2939 -75.2949s-75.2939 33.792 -75.2939 75.2949c0 41.502 33.792 75.2939 75.2939 75.2939zM256 147.667c24.9072 0 45.1768 20.2686 45.1768 45.1768
|
||||
c0 24.9072 -20.2695 45.1758 -45.1768 45.1758s-45.1768 -20.2686 -45.1768 -45.1758c0 -24.9082 20.2695 -45.1768 45.1768 -45.1768zM510.193 163.509l-77.9453 -23.3711c-3.61328 -12.1074 -8.37207 -23.7334 -14.2754 -34.6357l38.4902 -71.5596
|
||||
c-12.2275 -15.3896 -26.1719 -29.334 -41.5625 -41.5928l-71.5596 38.5205c-10.9023 -5.90234 -22.5273 -10.6611 -34.6348 -14.2754l-23.3711 -77.9443c-9.6377 -1.11426 -19.4258 -1.80664 -29.335 -1.80664c-9.9082 0 -19.667 0.692383 -29.335 1.80664l-23.3711 77.9443
|
||||
c-12.1074 3.61426 -23.7324 8.37305 -34.6348 14.2754l-71.5898 -38.5205c-15.3906 12.2285 -29.335 26.1729 -41.5625 41.5625l38.5205 71.5596c-5.90332 10.9033 -10.6621 22.5283 -14.2754 34.666l-77.9453 23.3711c-1.11426 9.6377 -1.80664 19.3955 -1.80664 29.335
|
||||
c0 9.93848 0.692383 19.6963 1.80664 29.334l77.9746 23.4316c3.61426 12.1074 8.37305 23.7324 14.2764 34.6357l-38.5205 71.5293c12.1973 15.3896 26.1416 29.334 41.5322 41.5625l71.5898 -38.5508c10.8721 5.93262 22.4971 10.7217 34.6348 14.3057l23.3711 77.9443
|
||||
c9.6377 1.11426 19.3965 1.80762 29.335 1.80762s19.6973 -0.693359 29.335 -1.80762l23.3711 -77.9443c12.1074 -3.61426 23.7021 -8.37305 34.6348 -14.2754l71.5898 38.5498c15.3906 -12.2578 29.335 -26.2021 41.5625 -41.5615l-38.5205 -71.5898
|
||||
c5.90332 -10.9023 10.6914 -22.498 14.2754 -34.6055l77.9453 -23.4316c1.11426 -9.66797 1.80664 -19.4258 1.80664 -29.334c0 -9.90918 -0.692383 -19.667 -1.80664 -29.335zM408.034 164.322l73.7275 22.1064c0.0908203 2.16797 0.121094 4.30664 0.121094 6.41504
|
||||
c0 2.10742 -0.0302734 4.24609 -0.0605469 6.41504l-58.1875 17.498l-15.6006 4.66797l-4.63867 15.6016c-3.01172 10.0889 -6.9873 19.7871 -11.8965 28.8223l-7.74023 14.3057l7.68066 14.3057l28.7021 53.3086c-2.98242 3.16211 -6.08398 6.23438 -9.2168 9.21582
|
||||
l-67.584 -36.3818l-14.3057 7.67969c-9.06543 4.90918 -18.8232 8.91504 -28.9131 11.9268l-15.6006 4.6377l-4.66797 15.6016l-17.4385 58.1875c-2.16895 0.0595703 -4.30664 0.0898438 -6.41504 0.0898438s-4.24609 -0.0302734 -6.44531 -0.0605469l-17.4375 -58.1865
|
||||
l-4.66895 -15.6016l-15.6006 -4.6377c-10.1494 -3.01172 -19.8477 -7.01758 -28.793 -11.8965l-14.3359 -7.80078l-67.6738 36.4424c-3.13281 -2.98145 -6.2041 -6.08398 -9.18652 -9.21582l36.3828 -67.6143l-7.70996 -14.3057
|
||||
c-4.90918 -9.00488 -8.91504 -18.7334 -11.9268 -28.8828l-4.63867 -15.6006l-73.7275 -22.1064c-0.0908203 -2.16895 -0.121094 -4.30762 -0.121094 -6.41504c0 -2.07812 0.0302734 -4.2168 0.121094 -6.38574l73.7578 -22.1064l4.6084 -15.5703
|
||||
c3.04199 -10.1494 7.04688 -19.8779 11.9268 -28.9131l7.70996 -14.3057l-36.3828 -67.584c2.98242 -3.16211 6.08398 -6.23438 9.2168 -9.21582l67.6133 36.3516l14.3066 -7.70996c9.03516 -4.90918 18.7627 -8.91504 28.8828 -11.9268l15.6006 -4.6377l4.66797 -15.6016
|
||||
l17.4385 -58.1865c2.16895 -0.0605469 4.30664 -0.0908203 6.41504 -0.0908203s4.24707 0.0302734 6.41504 0.0908203l17.4385 58.1865l4.66797 15.6016l15.6006 4.6377c10.1201 3.04199 19.8477 7.01758 28.9131 11.9268l14.3057 7.70996l67.5547 -36.4121
|
||||
c3.16211 2.98145 6.23438 6.05371 9.21582 9.21582l-28.6719 53.3086l-7.68066 14.3057l7.70996 14.3057c4.90918 9.00586 8.91504 18.7334 11.9268 28.8828z" />
|
||||
<glyph glyph-name="uniF332" unicode=""
|
||||
d="M30.1172 417.883h451.766v-451.766h-451.766v451.766zM451.765 -3.76465v60.2354h-391.529v-60.2354h391.529zM60.2354 86.5879h391.529v301.177h-391.529v-301.177zM427.761 141.854l-20.9922 -21.5947l-72.7939 70.7461l-46.8027 -50.4766l-74.873 132.969
|
||||
l-102.43 -149.835l-24.877 16.9863l129.807 189.831l78.4268 -139.203l39.665 42.8271z" />
|
||||
<glyph glyph-name="uniF316" unicode=""
|
||||
d="M404.5 85.5c0 -6.66674 -2.33334 -12.3334 -7 -17l-34 -34c-4.66803 -4.66667 -10.3347 -7 -17 -7c-6.66925 0 -12.3359 2.33333 -17 7l-73.5 73.5l-73.5 -73.5c-4.66667 -4.66667 -10.3333 -7 -17 -7s-12.3333 2.33333 -17 7l-34 34c-4.66666 4.66666 -7 10.3333 -7 17
|
||||
s2.33334 12.3333 7 17l73.5 73.5l-73.5 73.5c-4.66666 4.66667 -7 10.3333 -7 17s2.33334 12.3333 7 17l34 34c4.66696 4.66666 10.3336 7 17 7c6.66733 0 12.334 -2.33334 17 -7l73.5 -73.5l73.5 73.5c4.66666 4.66666 10.3333 7 17 7s12.3333 -2.33334 17 -7l34 -34
|
||||
c4.66666 -4.66772 7 -10.3344 7 -17c0 -6.66666 -2.33334 -12.3333 -7 -17l-73.5 -73.5l73.5 -73.5c4.66666 -4.66685 7 -10.3335 7 -17z" />
|
||||
<glyph glyph-name="uniF300" unicode=""
|
||||
d="M180.706 207.059h-180.706v180.706h30.1172v-123.753c30.5098 96.165 121.556 165.165 225.883 165.165c105.593 0 199.409 -71.0781 228.111 -172.846l-29.0039 -8.16211c-25.0576 88.8477 -106.947 150.92 -199.107 150.92
|
||||
c-97.1592 -0.0302734 -181.188 -68.5479 -202.029 -161.912h126.735v-30.1182zM331.294 176.941h180.706v-180.706h-30.1172v123.724c-30.8711 -96.4375 -121.706 -165.105 -225.883 -165.105c-105.623 0 -199.439 71.0781 -228.111 172.846l29.0039 8.16113
|
||||
c25.0273 -88.8467 106.887 -150.919 199.107 -150.919c97.25 0 181.157 68.4873 202.029 161.882h-126.735v30.1182z" />
|
||||
<glyph glyph-name="uniF32C" unicode=""
|
||||
d="M512 244.706c0 -70.5654 -57.4043 -128 -128 -128h-83.0342v30.1172h83.0342c53.9707 0 97.8828 43.9121 97.8828 97.8828s-43.9121 97.8818 -97.8828 97.8818c-16.0225 0 -31.834 -4.24609 -46.9834 -12.5586l-10.6621 -5.87305l-7.98047 9.21582
|
||||
c-21.6553 24.9678 -52.6465 39.334 -84.9619 39.334c-50.0254 0 -93.335 -32.5273 -107.701 -80.9561l-3.79492 -12.71l-13.1006 2.16797c-3.58398 0.572266 -7.16797 1.14453 -10.9326 1.14453c-37.3467 0 -67.7656 -30.3887 -67.7656 -67.7646
|
||||
s30.4189 -67.7646 67.7656 -67.7646h111.404v-30.1172h-111.404c-53.9717 0 -97.8828 43.9111 -97.8828 97.8818c0 54.9951 45.5078 100.442 100.984 97.8223c21.4736 54.5732 73.2158 90.4131 132.428 90.4131c37.165 0 72.8848 -14.8779 99.6592 -41.1709
|
||||
c16.4443 7.34863 33.5205 11.0537 50.9287 11.0537c70.5957 0 128 -57.4346 128 -128zM271.059 34.4844l49.6035 49.6045l21.2939 -21.2939l-85.9561 -85.9551l-85.9258 85.9258l21.293 21.293l49.5742 -49.5742v232.81h30.1172v-232.81z" />
|
||||
<glyph glyph-name="uniF311" unicode=""
|
||||
d="M416 232v-48c0 -6.66699 -2.33301 -12.333 -7 -17c-4.66992 -4.66699 -10.3369 -7 -17 -7h-104v-104c0 -6.66699 -2.33301 -12.333 -7 -17c-4.66895 -4.66699 -10.3359 -7 -17 -7h-48c-6.66699 0 -12.333 2.33301 -17 7s-7 10.333 -7 17v104h-104
|
||||
c-6.66699 0 -12.334 2.33301 -17 7c-4.66699 4.66699 -7 10.334 -7 17v48c0 6.66797 2.33301 12.334 7 17c4.66699 4.66699 10.333 7 17 7h104v104c0 6.66699 2.33301 12.333 7 17c4.66797 4.66699 10.334 7 17 7h48c6.66699 0 12.333 -2.33301 17 -7
|
||||
c4.66699 -4.66992 7 -10.3359 7 -17v-104h104c6.66699 0 12.333 -2.33301 17 -7s7 -10.333 7 -17z" />
|
||||
<glyph glyph-name="uniF31D" unicode=""
|
||||
d="M291.147 448l160.617 -159.864v-352.136h-391.529v512h230.912zM301.177 395.535v-98.123h98.5752zM90.3525 -33.8828h331.295v301.177h-150.589v150.589h-180.706v-451.766z" />
|
||||
<glyph glyph-name="uniF32A" unicode=""
|
||||
d="M193.3 187.6l-11.5996 11.6006l74.5 74.2998l74.5 -74.2998l-11.7002 -11.6006l-54.5996 54.6006v-241.8h-16.5v241.8zM399.3 264.4c45.2002 -0.100586 80.7002 -40.1006 80.7002 -85.6006s-37 -82.7998 -82 -82.7998v0h-101v16h97.2998h3.2002
|
||||
c36.7002 0.200195 66.5 30.2998 66.5 67.0996c0 36.9004 -29 69.8008 -65.5996 70.3008l-15.2002 0.0996094s0.200195 7 0.200195 20.2998c0 55.6006 -45.6006 98.9004 -100.9 98.9004c-38.2998 0 -73.7998 -22.5 -90.4004 -57.4004l-6.5 -13.7002l-13.5 6.80078
|
||||
c-6.19922 3.19922 -13 4.7998 -19.8994 4.7998c-21.7998 0 -40.2998 -17.7002 -43.9004 -39.2998l-1.5 -8.80078l-8.39941 -2.89941c-30 -10.4004 -50.2002 -39.7998 -50.2002 -71.6006c0 -41.0996 33.2998 -74.5996 74.2002 -74.5996h90.5996v-16h-91.4004
|
||||
c-49.5 0 -89.5996 40.5 -89.5996 90.2002c0 39.5996 25.4004 74.2002 60.5996 86.2998c4.80078 28.4004 29.3008 52 58.9004 52c9.7002 0 18.7002 -2.2998 26.7998 -6.40039c18.6006 39.2002 58.2998 66.3008 104.4 66.3008c64 0 116.8 -52.1006 116.8 -116.4
|
||||
c0 -1.2002 -0.200195 -2.40039 -0.200195 -3.59961z" />
|
||||
<glyph glyph-name="uniF334" unicode=""
|
||||
d="M391.259 244.706l120.741 83.8174v-303.134l-120.712 83.8174v-67.7949c0 -24.9072 -20.4189 -45.1768 -45.5371 -45.1768h-239.857c-24.9072 0 -45.1768 20.2695 -45.1768 45.1768v165.616h-15.1787c-25.1182 0 -45.5381 20.2695 -45.5381 45.1768v60.2656
|
||||
c0 24.9072 20.4199 45.1768 45.5381 45.1768h44.8145v15.0586c0 24.9072 20.2695 45.1768 45.1768 45.1768h166.882v-30.1182h-166.882c-8.28223 0 -15.0586 -6.74609 -15.0586 -15.0586v-15.0586h225.25c25.1182 0 45.5381 -20.2695 45.5381 -45.1768v-67.7646z
|
||||
M481.883 82.9443v187.994l-120.712 -83.8477v125.38c0 8.3125 -6.92676 15.0586 -15.4199 15.0586h-300.213c-8.52344 0 -15.4209 -6.74609 -15.4209 -15.0586v-60.2656c0 -8.3125 6.89746 -15.0586 15.4209 -15.0586h45.2969v-195.734
|
||||
c0 -8.3125 6.77637 -15.0596 15.0586 -15.0596h239.827c8.52344 0 15.4199 6.74707 15.4199 15.0596v125.35z" />
|
||||
<glyph glyph-name="uniF33A" unicode=""
|
||||
d="M416 232v-48c0 -6.66699 -2.33301 -12.333 -7 -17c-4.66992 -4.66699 -10.3369 -7 -17 -7h-304c-6.66699 0 -12.334 2.33301 -17 7c-4.66699 4.66699 -7 10.334 -7 17v48c0 6.66797 2.33301 12.334 7 17c4.66699 4.66699 10.333 7 17 7h304
|
||||
c6.66699 0 12.333 -2.33301 17 -7s7 -10.333 7 -17z" />
|
||||
<glyph glyph-name="uniF337" unicode=""
|
||||
d="M448 192c0 -26 -5.08334 -50.8333 -15.25 -74.5c-10.1669 -23.6667 -23.8335 -44.0834 -41 -61.25c-17.1674 -17.1667 -37.584 -30.8333 -61.25 -41c-23.6667 -10.1667 -48.5 -15.25 -74.5 -15.25c-28.6667 0 -55.9167 6.04167 -81.75 18.125
|
||||
c-25.8333 12.0833 -47.8333 29.125 -66 51.125c-1.1683 1.66666 -1.70996 3.54166 -1.625 5.625c0.0837402 2.08363 0.792076 3.79196 2.125 5.125l34.25 34.5c1.66667 1.5 3.75 2.25 6.25 2.25c2.66783 -0.333336 4.5845 -1.33334 5.75 -3
|
||||
c12.1668 -15.8333 27.0835 -28.0833 44.75 -36.75c17.6667 -8.66667 36.4167 -13 56.25 -13c17.3333 0 33.875 3.375 49.625 10.125s29.375 15.875 40.875 27.375s20.625 25.125 27.375 40.875s10.125 32.2917 10.125 49.625s-3.375 33.875 -10.125 49.625
|
||||
s-15.875 29.375 -27.375 40.875s-25.125 20.625 -40.875 27.375s-32.2917 10.125 -49.625 10.125c-16.3333 0 -32 -2.95834 -47 -8.875s-28.3333 -14.375 -40 -25.375l34.25 -34.5c5.16826 -5 6.33493 -10.75 3.5 -17.25c-2.83333 -6.66667 -7.75 -10 -14.75 -10h-112
|
||||
c-4.33334 0 -8.08334 1.58333 -11.25 4.75c-3.16667 3.16667 -4.75 6.91667 -4.75 11.25v112c0 7 3.33334 11.9167 10 14.75c6.5 2.8277 12.25 1.66104 17.25 -3.5l32.5 -32.25c17.8333 16.8333 38.2083 29.875 61.125 39.125s46.625 13.875 71.125 13.875
|
||||
c26 0 50.8333 -5.08334 74.5 -15.25c23.6667 -10.1668 44.0833 -23.8335 61.25 -41c17.1667 -17.1672 30.8333 -37.5839 41 -61.25c10.1667 -23.6667 15.25 -48.5 15.25 -74.5zM288 264v-112c0 -2.33333 -0.75 -4.25 -2.25 -5.75s-3.41666 -2.25 -5.75 -2.25h-80
|
||||
c-2.33333 0 -4.25 0.75 -5.75 2.25s-2.25 3.41667 -2.25 5.75v16c0 2.33333 0.75 4.25 2.25 5.75s3.41667 2.25 5.75 2.25h56v88c0 2.33334 0.75 4.25 2.25 5.75s3.41666 2.25 5.75 2.25h16c2.33334 0 4.25 -0.75 5.75 -2.25s2.25 -3.41666 2.25 -5.75z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 46 KiB |
438
plugins/jquery.filer/css/jquery.filer.css
Normal file
@@ -0,0 +1,438 @@
|
||||
/*!
|
||||
* CSS jQuery.filer
|
||||
* Copyright (c) 2015 CreativeDream
|
||||
* Version: 1.0.5 (19-Nov-2015)
|
||||
*/
|
||||
@import url('../assets/fonts/jquery.filer-icons/jquery-filer.css');
|
||||
|
||||
/*-------------------------
|
||||
Basic configurations
|
||||
-------------------------*/
|
||||
.jFiler * {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.jFiler {
|
||||
font-family: sans-serif;
|
||||
font-size: 14px;
|
||||
color: #494949;
|
||||
}
|
||||
|
||||
/* Helpers */
|
||||
.jFiler ul.list-inline li {
|
||||
display: inline-block;
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.jFiler .pull-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.jFiler .pull-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/* File Icons */
|
||||
span.jFiler-icon-file {
|
||||
position: relative;
|
||||
width: 57px;
|
||||
height: 70px;
|
||||
display: inline-block;
|
||||
line-height: 70px;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
color: #fff;
|
||||
font-family: sans-serif;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
overflow: hidden;
|
||||
box-shadow: 42px -55px 0 0 #A4A7AC inset;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file:after {
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
right: -1px;
|
||||
display: inline-block;
|
||||
content: '';
|
||||
border-style: solid;
|
||||
border-width: 16px 0 0 16px;
|
||||
border-color: transparent transparent transparent #DADDE1;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file i[class*="icon-jfi-"] {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file.f-image {
|
||||
box-shadow: 42px -55px 0 0 #e15955 inset;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file.f-image:after {
|
||||
border-left-color: #c6393f;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file.f-video {
|
||||
box-shadow: 42px -55px 0 0 #4183d7 inset;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file.f-video:after {
|
||||
border-left-color: #446cb3;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file.f-audio {
|
||||
box-shadow: 42px -55px 0 0 #5bab6e inset;
|
||||
}
|
||||
|
||||
span.jFiler-icon-file.f-audio:after {
|
||||
border-left-color: #448353;
|
||||
}
|
||||
|
||||
|
||||
/* Progress Bar */
|
||||
.jFiler-jProgressBar {
|
||||
height: 8px;
|
||||
background: #f1f1f1;
|
||||
margin-top: 3px;
|
||||
margin-bottom: 0;
|
||||
overflow: hidden;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.jFiler-jProgressBar .bar {
|
||||
float: left;
|
||||
width: 0;
|
||||
height: 100%;
|
||||
font-size: 12px;
|
||||
color: #ffffff;
|
||||
text-align: center;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
||||
background-color: #50A1E9;
|
||||
box-sizing: border-box;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-webkit-transition: width 0.3s ease;
|
||||
-moz-transition: width 0.3s ease;
|
||||
-o-transition: width 0.3s ease;
|
||||
transition: width 0.3s ease;
|
||||
}
|
||||
|
||||
.jFiler-jProgressBar .bar.dark {
|
||||
background-color: #555;
|
||||
}
|
||||
|
||||
.jFiler-jProgressBar .bar.blue {
|
||||
background-color: #428bca;
|
||||
}
|
||||
|
||||
.jFiler-jProgressBar .bar.green {
|
||||
background-color: #5cb85c;
|
||||
}
|
||||
|
||||
.jFiler-jProgressBar .bar.orange {
|
||||
background-color: #f7a923;
|
||||
}
|
||||
|
||||
.jFiler-jProgressBar .bar.red {
|
||||
background-color: #d9534f;
|
||||
}
|
||||
|
||||
/* Thumbs */
|
||||
.jFiler-row:after,
|
||||
.jFiler-item:after {
|
||||
display: table;
|
||||
line-height: 0;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.jFiler-items ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
/*-------------------------
|
||||
Default Theme
|
||||
-------------------------*/
|
||||
.jFiler-theme-default .jFiler-input {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 400px;
|
||||
height: 35px;
|
||||
margin: 0 0 15px 0;
|
||||
background: #fefefe;
|
||||
border: 1px solid #cecece;
|
||||
font-size: 12px;
|
||||
font-family: sans-serif;
|
||||
color: #888;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
-webkit-box-shadow: rgba(0,0,0,.25) 0 4px 5px -5px inset;
|
||||
-moz-box-shadow: rgba(0,0,0,.25) 0 4px 5px -5px inset;
|
||||
box-shadow: rgba(0,0,0,.25) 0 4px 5px -5px inset;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler-input.focused {
|
||||
outline: none;
|
||||
-webkit-box-shadow: 0 0 7px rgba(0,0,0,0.1);
|
||||
-moz-box-shadow: 0 0 7px rgba(0,0,0,0.1);
|
||||
box-shadow: 0 0 7px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler.dragged .jFiler-input {
|
||||
border: 1px dashed #aaaaaa;
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler.dragged .jFiler-input:hover {
|
||||
background: #FFF8D0;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler.dragged .jFiler-input * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler.dragged .jFiler-input .jFiler-input-caption {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler.dragged .jFiler-input .jFiler-input-button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler-input-caption {
|
||||
display: block;
|
||||
float: left;
|
||||
height: 100%;
|
||||
padding-top: 8px;
|
||||
padding-left: 10px;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler-input-button {
|
||||
display: block;
|
||||
float: right;
|
||||
height: 100%;
|
||||
padding-top: 8px;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
border-left: 1px solid #ccc;
|
||||
color: #666666;
|
||||
text-align: center;
|
||||
background-color: #fefefe;
|
||||
background-image: -webkit-gradient(linear,0 0,0 100%,from(#fefefe),to(#f1f1f1));
|
||||
background-image: -webkit-linear-gradient(top,#fefefe,#f1f1f1);
|
||||
background-image: -o-linear-gradient(top,#fefefe,#f1f1f1);
|
||||
background-image: linear-gradient(to bottom,#fefefe,#f1f1f1);
|
||||
background-image: -moz-linear-gradient(top,#fefefe,#f1f1f1);
|
||||
-webkit-transition: all .1s ease-out;
|
||||
-moz-transition: all .1s ease-out;
|
||||
-o-transition: all .1s ease-out;
|
||||
transition: all .1s ease-out;
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler-input-button:hover {
|
||||
-moz-box-shadow: inset 0 0 10px rgba(0,0,0,0.07);
|
||||
-webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.07);
|
||||
box-shadow: inset 0 0 10px rgba(0,0,0,0.07);
|
||||
}
|
||||
|
||||
.jFiler-theme-default .jFiler-input-button:active {
|
||||
background-image: -webkit-gradient(linear,0 0,0 100%,from(#f1f1f1),to(#fefefe));
|
||||
background-image: -webkit-linear-gradient(top,#f1f1f1,#fefefe);
|
||||
background-image: -o-linear-gradient(top,#f1f1f1,#fefefe);
|
||||
background-image: linear-gradient(to bottom,#f1f1f1,#fefefe);
|
||||
background-image: -moz-linear-gradient(top,#f1f1f1,#fefefe);
|
||||
}
|
||||
|
||||
/*-------------------------
|
||||
Thumbnails
|
||||
-------------------------*/
|
||||
.jFiler-items-default .jFiler-items {
|
||||
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item {
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
margin-bottom: 16px;
|
||||
background: #f7f7f7;
|
||||
color: #4d4d4c;
|
||||
}
|
||||
|
||||
|
||||
.jFiler-items-default .jFiler-item .jFiler-item-icon {
|
||||
font-size: 32px;
|
||||
color: #f5871f;
|
||||
|
||||
margin-right: 15px;
|
||||
margin-top: -3px;
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item .jFiler-item-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item .jFiler-item-others {
|
||||
font-size: 12px;
|
||||
color: #777;
|
||||
margin-left: -5px;
|
||||
margin-right: -5px;
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item .jFiler-item-others span {
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item-assets {
|
||||
position: absolute;
|
||||
display: block;
|
||||
right: 16px;
|
||||
top: 50%;
|
||||
margin-top: -10px;
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item-assets a {
|
||||
padding: 8px 9px 8px 12px;
|
||||
cursor: pointer;
|
||||
background: #fafafa;
|
||||
color: #777;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #e3e3e3
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item-assets .jFiler-item-trash-action:hover,
|
||||
.jFiler-items-default .jFiler-item-assets .jFiler-item-trash-action:active {
|
||||
color: #d9534f;
|
||||
}
|
||||
|
||||
.jFiler-items-default .jFiler-item-assets .jFiler-item-trash-action:active {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* Thumbnails: Grid */
|
||||
.jFiler-items-grid .jFiler-item {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container {
|
||||
position: relative;
|
||||
margin: 0 20px 30px 0;
|
||||
padding: 10px;
|
||||
border: 1px solid #e1e1e1;
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
-webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.06);
|
||||
-moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.06);
|
||||
box-shadow: 0px 0px 3px rgba(0,0,0,0.06);
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-thumb {
|
||||
position: relative;
|
||||
width: 160px;
|
||||
height: 115px;
|
||||
min-height: 115px;
|
||||
border: 1px solid #e1e1e1;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-thumb .jFiler-item-thumb-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.jFiler-item .jFiler-item-container .jFiler-item-thumb img {
|
||||
max-width: none;
|
||||
max-height: 100%;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-thumb span.jFiler-icon-file {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item-thumb-image.fi-loading {
|
||||
background: url('data:image/gif;base64,R0lGODlhIwAjAMQAAP////f39+/v7+bm5t7e3tbW1s7OzsXFxb29vbW1ta2traWlpZycnJSUlIyMjISEhHt7e3Nzc2tra2NjY1paWlJSUkpKSkJCQjo6OjExMSkpKRkZGRAQEAAAAP///wAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFBAAeACwAAAAAIwAjAAAF5CAgjmRpnmiqrmzrvnAsz3Rto4Fwm4EYLIweQHcTKAiAQOPRI0QKRcYiEGA4qI8K9HZoGAIOSOBgCdIGBeLCMUgoBJSJjsBAxAiKRSFAQBCVBwMKGRsNQi8DBwsJhyQVGxMKjTCJk0kPjDI5AlQqBAcICFstBQqmmScFGh0dHBaWKAIEBQQDKQEKDxEQCTMBA5Y/o5oDoZYCHB1PMgIHCQacwCPACRStDTEDBrYABQg5wAgGIg4YYjQCogEGB3wI3J2+oD0G42PfN2Pc7D2JRDb/+In4t8MHwYIIEypcyLChQ4YhAAAh+QQFBAAeACwIAAgAEwATAAAFlqAnjiKSjAFJBscgLos4NIQ6JggAKLHXSDWbp6CoLRgeg0ShGwkIKQ9iITggPJFHaqA4eAYIRK0a9SwK0spl0TQkvEIJJnIlCdDCRk4lEJIGBgcHRn4jBBkciROFKgkNDg51jCJBJJU2ARocD4xNAQsGCBMcGz2FAxwZKQwVDYVwEhwOI02MAxsceJMeOgwaJ7skCX0jIQAh+QQFBAAeACwAAAAAAQABAAAFA6AXAgAh+QQFBAAeACwAAAAAAQABAAAFA6AXAgAh+QQFBAAeACwJAAcAEgAVAAAFjqAnjmJAnihgHChqCACAJKMyoMHBeggSJ40baoC4zTwFB6IlOiwLhkCDMUIYUAUSgiA4RCZLAXPkoDQOsfFosVNjDYaBQiRmWjaaDMTdXDAYbWMJQnwiGBoOBEwmIwVeGhhzKAJ+BBsXIgoSVCcEAxkbAw8enEwAARkaYqluAqliChlLY64aQrNjAT2MKCEAIfkEBQQAHgAsBwAIABQAFAAABZqgJ45jUQBkqorGgQqIsKqteCjyTLbAsBg6UoBA8CgSIoGhGGQNAoXG4zAaNBcPxalJQhS4KwGhUCQgRYHZQGKxVBpgD8CQUCiAYEQTpZpcGFYrBgw5HgkEBg4XFHoqFx10CwMZFCIIDwl8IwscFAQXGR4NGQo6BBocRRUYHgIWGEwqBxoPHgEWoYYXVCsBCTIBqzkHaVwHvCshACH5BAUEAB4ALAAAAAABAAEAAAUDoBcCACH5BAUEAB4ALAcACAAVABQAAAWaoCeOpDECZKqKgRcY7bqanoHI6+EKSIHjCJ2oMPidCgIPQbHwGUkIBoLwJAEM1OpqQBgkC0yjwBGRRBQokfdXOASzo0MjqTrQUwQIpwM/QSYJKQoaHRUKHgtQSgwTEUIeDRcPSRQcHgiBFREiB1IkdAkaEgMUGAILFoE4AxkaRRIVLRIURTIGGQ0iExWcEzQyBzGwI05PV78rIQAh+QQFBAAeACwAAAAAAQABAAAFA6AXAgAh+QQFBAAeACwHAAgAFAAUAAAFlaAnjmRBnmgqCip6kEGbDnJqvmJAsLVIDwgEoTc6JAy0k05VSIoKiSgipgoIaIFKZ8tBVBeNBgORkEwkDt6sYECSBosUwJRybDiqxuOgTmTwCAUKIwAHAwMJDw10CxUNMRIaBQcIAmhPCgYjVAcZDx4REx5lOCoWGCIPER4Bqi0FFwwiEBIxBg9DKpqpEVS5PQUFACohACH5BAUEAB4ALAAAAAABAAEAAAUDoBcCACH5BAUEAB4ALAcACAAUABQAAAWRoCeOpEGeaCoGKmqOQlvKXgId4usR6DA+HA6kQDsxMB0Nr0hSTHxFAgJxIABogpiEI9rgVAiF2ICARCANVovAjsESKoKaNGBkMqrEojA/WDYSHgMIJAVZBwsKSwoSCyIOFx4FJg4LVwQHRCgVDQIOEAEHDi9XJwISFAIADA4iDJ1xEwoiDa2SDFA0rCO5NGwtIQAh+QQFBAAeACwAAAAAAQABAAAFA6AXAgAh+QQFBAAeACwHAAgAEwAUAAAFj6AnisNonqeBLWg7GpwmtAENcc8s6ifyGKJMp1DyIFqNjecxUEiKLpGi4slATcBW4hkdDQ6HbHd048TELtah8XCwxqjAsXXdKSyWuuiAILwmGBBABzUiBDUFCQglCBAJIgsTBAQFAQpzAwZ1BREsCwweBQt+Lg8QNQpvCAqFJwMQc6mGjy6kHrI7cB4DeiIhACH5BAUEAB4ALAAAAAABAAEAAAUDoBcCACH5BAUEAB4ALAcABwASABUAAAWXoCeOI0GQaBpUl5CSRZV4QrYN71hoWBBkGpdISAI4No2BhoNLHRijy8YQmQwOpJMC2BAgIh5fgJZKSDYWYg4FWZMMhkLT7XHYeAW6wrBgLGZ0KQZjgR4IEhFqJIAeBQ8UDQUCeSNzIwcNCCIJDwMDJwgGawSZAQgzBAiWIwELDSIHmh6xOQyiAKciV4oeAHO0IwB0ArweIQAh+QQFBAAeACwAAAAAAQABAAAFA6AXAgAh+QQFBAAeACwHAAcAEAAVAAAFjKAnjuMwkKgnjFJVosSEeMGVrcc1j8TlehVMIIDh7EaMzMKDuTE4k4DHsCiIKJnCI0LYcE6ehMWyPDxGgshyZL5MUqID6uCAowsEwsouWlTGFAR8HgUJCglHgyNWigF0dXYzBAwPCoJgcAUKBnELAgKYcAObHgdyfIYiBQcAdgIJjAanrq0AsoojQyghACH5BAUEAB4ALAAAAAABAAEAAAUDoBcCACH5BAUEAB4ALAcACAAUABQAAAWYoCeKwQhF5aiqA3SIlDVW7yoOlCRKlVhtNZtHYUkIKBfPYoNaFRADUUTWeAwyGYHHAFmIDhIJImBorBIFB6cDSZUnEGEA08k0UiPDQrsSTB58HgEDhEIqAHgIERESVoY2BAcIBwaPlh5Rl04KCnhnKwMJDFCelgMIBAAeT3hBNqoeAggFIgiaX7ZblZoBB5lbqoG3wzbCKyEAIfkEBQQAHgAsBwAHABUAEwAABZygJ46jIJBoSjZPqa6GGEmBZ0zx60Gt90QiSSb3QkgOHskkkMj0UAOkyCEhLBiey2X0SIwMLKRVAPAEHggCY8N5egiKB6OGAmwtC1UhQScFIgt9JAKCKQUICQkxBw2NCycqBhsdlBgBAwUGBgRlKgMPExMSgSSdKmQvBAgIOqwoAgeKkDopBgMiMbOutCgGSLe8IlIeSKbBI1LAKCEAIfkEBQQAHgAsAAAAAAEAAQAABQOgFwIAIfkEBQQAHgAsAAAAAAEAAQAABQOgFwIAIfkECQQAHgAsAAAAACMAIwAABbWgJ45kaZ5oqq5s675wLM90baPBvS6MTgoKgqjxEBEihZuAsRAxHKJHJXk7NAwBB8RzsPRqBYFo4RgkFALKxMhAxAiKBdXtAXgah4Eis2nIBgcLCSgVGxMKNYAoD4MzAgI5KgQHCAhULQUKmgmRJgUaIhwWLwIEBQQDKQEKDxEQCXYxnSUBcjapKAIcHUg+JgkUHRx+YB6zIw4YEMc2QiMBzDB0HgbGvifR19rb3N3e3+Dh4ikhADs=') no-repeat center;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-info {
|
||||
position: absolute;
|
||||
bottom: -10%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
color: #fff;
|
||||
padding: 6px 10px;
|
||||
background: -moz-linear-gradient(bottom,rgba(0,0,0,1) 0,rgba(0,0,0,0) 100%);
|
||||
background: -webkit-linear-gradient(bottom,rgba(0,0,0,1) 0,rgba(0,0,0,0) 100%);
|
||||
background: -o-linear-gradient(bottom,rgba(0,0,0,1) 0,rgba(0,0,0,0) 100%);
|
||||
background: -ms-linear-gradient(bottom,rgba(0,0,0,1) 0,rgba(0,0,0,0) 100%);
|
||||
background: linear-gradient(to top,rgba(0,0,0,1) 0,rgba(0,0,0,0) 100%);
|
||||
z-index: 9;
|
||||
opacity: 0;
|
||||
filter: alpha(opacity(0));
|
||||
-webkit-transition: all 0.12s;
|
||||
-moz-transition: all 0.12s;
|
||||
transition: all 0.12s;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-no-thumbnail.jFiler-item .jFiler-item-container .jFiler-item-info {
|
||||
background: rgba(0,0,0,0.55);
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-thumb:hover .jFiler-item-info {
|
||||
bottom: 0;
|
||||
opacity: 1;
|
||||
filter: aplpha(opacity(100));
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-info .jFiler-item-title {
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
word-break: break-all;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-info .jFiler-item-others {
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-assets {
|
||||
margin-top: 10px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-assets .text-success {
|
||||
color: #3C763D
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-assets .text-error {
|
||||
color: #A94442
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-assets .jFiler-jProgressBar {
|
||||
width: 120px;
|
||||
margin-left: -5px;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item .jFiler-item-container .jFiler-item-assets .jFiler-item-others {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.jFiler-items-grid .jFiler-item-trash-action:hover {
|
||||
cursor: pointer;
|
||||
color: #d9534f;
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
/*!
|
||||
* CSS jQuery.filer
|
||||
* Theme: DragDropBox
|
||||
* Copyright (c) 2015 CreativeDream
|
||||
* Version: 1.0.5 (15-Nov-2015)
|
||||
*/
|
||||
|
||||
/*-------------------------
|
||||
Input
|
||||
-------------------------*/
|
||||
.jFiler-input-dragDrop {
|
||||
display: block;
|
||||
width: 343px;
|
||||
margin: 0 auto 25px auto;
|
||||
padding: 25px;
|
||||
color: #8d9499;
|
||||
color: #97A1A8;
|
||||
background: #fff;
|
||||
border: 2px dashed #C8CBCE;
|
||||
text-align: center;
|
||||
-webkit-transition: box-shadow 0.3s,
|
||||
border-color 0.3s;
|
||||
-moz-transition: box-shadow 0.3s,
|
||||
border-color 0.3s;
|
||||
transition: box-shadow 0.3s,
|
||||
border-color 0.3s;
|
||||
}
|
||||
|
||||
.jFiler.dragged .jFiler-input-dragDrop {
|
||||
border-color: #aaa;
|
||||
box-shadow: inset 0 0 20px rgba(0,0,0,.08);
|
||||
}
|
||||
|
||||
.jFiler.dragged .jFiler-input-dragDrop * {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.jFiler.dragged .jFiler-input-icon {
|
||||
-webkit-transform: rotate(180deg);
|
||||
-ms-transform: rotate(180deg);
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.jFiler.dragged .jFiler-input-text,
|
||||
.jFiler.dragged .jFiler-input-choose-btn {
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.jFiler-input-dragDrop .jFiler-input-icon {
|
||||
font-size: 48px;
|
||||
margin-top: -10px;
|
||||
-webkit-transition: all 0.3s ease;
|
||||
-moz-transition: all 0.3s ease;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.jFiler-input-text h3 {
|
||||
margin: 0;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
.jFiler-input-text span {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn {
|
||||
display: inline-block;
|
||||
padding: 8px 14px;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
color: #8d9496;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #c6c6c6;
|
||||
vertical-align: middle;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 1px 5px rgba(0,0,0,0.05);
|
||||
-webkit-transition: all 0.2s;
|
||||
-moz-transition: all 0.2s;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn:hover,
|
||||
.jFiler-input-choose-btn:active {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn:active {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
/* gray */
|
||||
.jFiler-input-choose-btn.gray {
|
||||
background-image: -webkit-gradient(linear,0 0,0 100%,from(#fcfcfc),to(#f5f5f5));
|
||||
background-image: -webkit-linear-gradient(top,#fcfcfc,#f5f5f5);
|
||||
background-image: -o-linear-gradient(top,#fcfcfc,#f5f5f5);
|
||||
background-image: linear-gradient(to bottom,#fcfcfc,#f5f5f5);
|
||||
background-image: -moz-linear-gradient(top,#fcfcfc,#f5f5f5);
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.gray:hover {
|
||||
filter: alpha(opacity=87);
|
||||
opacity: 0.87;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.gray:active {
|
||||
background-color: #f5f5f5;
|
||||
background-image: -webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#fcfcfc));
|
||||
background-image: -webkit-linear-gradient(top,#f5f5f5,#fcfcfc);
|
||||
background-image: -o-linear-gradient(top,#f5f5f5,#fcfcfc);
|
||||
background-image: linear-gradient(to bottom,#f5f5f5,#fcfcfc);
|
||||
background-image: -moz-linear-gradient(top,#f5f5f5,#fcfcfc);
|
||||
}
|
||||
|
||||
/* blue */
|
||||
.jFiler-input-choose-btn.blue {
|
||||
color: #008BFF;
|
||||
border: 1px solid #008BFF;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.blue:hover {
|
||||
background: #008BFF;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.blue:active {
|
||||
background: #008BFF;
|
||||
}
|
||||
|
||||
/* green */
|
||||
.jFiler-input-choose-btn.green {
|
||||
color: #27ae60;
|
||||
border: 1px solid #27ae60;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.green:hover {
|
||||
background: #27ae60;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.green:active {
|
||||
background: #27ae60;
|
||||
}
|
||||
|
||||
/* red */
|
||||
.jFiler-input-choose-btn.red {
|
||||
color: #ed5a5a;
|
||||
border: 1px solid #ed5a5a;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.red:hover {
|
||||
background: #ed5a5a;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.red:active {
|
||||
background: #E05252;
|
||||
}
|
||||
|
||||
/* black */
|
||||
.jFiler-input-choose-btn.black {
|
||||
color: #555;
|
||||
border: 1px solid #555;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.black:hover {
|
||||
background: #555;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.black:active {
|
||||
background: #333;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.blue:hover,
|
||||
.jFiler-input-choose-btn.green:hover,
|
||||
.jFiler-input-choose-btn.red:hover,
|
||||
.jFiler-input-choose-btn.black:hover {
|
||||
border-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.jFiler-input-choose-btn.blue:active,
|
||||
.jFiler-input-choose-btn.green:active,
|
||||
.jFiler-input-choose-btn.red:active,
|
||||
.jFiler-input-choose-btn.black:active {
|
||||
border-color: transparent;
|
||||
color: #fff;
|
||||
filter: alpha(opacity=87);
|
||||
opacity: 0.87;
|
||||
}
|
||||
130
plugins/jquery.filer/js/custom.js
Normal file
@@ -0,0 +1,130 @@
|
||||
$(document).ready(function() {
|
||||
|
||||
//Example 1
|
||||
$('#filer_input').filer({
|
||||
showThumbs: true
|
||||
});
|
||||
|
||||
//Example 2
|
||||
$("#filer_input2").filer({
|
||||
limit: null,
|
||||
maxSize: null,
|
||||
extensions: null,
|
||||
changeInput: '<div class="jFiler-input-dragDrop"><div class="jFiler-input-inner"><div class="jFiler-input-icon"><i class="icon-jfi-cloud-up-o"></i></div><div class="jFiler-input-text"><h3>Drag&Drop files here</h3> <span style="display:inline-block; margin: 15px 0">or</span></div><a class="jFiler-input-choose-btn blue">Browse Files</a></div></div>',
|
||||
showThumbs: true,
|
||||
theme: "dragdropbox",
|
||||
templates: {
|
||||
box: '<ul class="jFiler-items-list jFiler-items-grid"></ul>',
|
||||
item: '<li class="jFiler-item">\
|
||||
<div class="jFiler-item-container">\
|
||||
<div class="jFiler-item-inner">\
|
||||
<div class="jFiler-item-thumb">\
|
||||
<div class="jFiler-item-status"></div>\
|
||||
<div class="jFiler-item-info">\
|
||||
<span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
|
||||
<span class="jFiler-item-others">{{fi-size2}}</span>\
|
||||
</div>\
|
||||
{{fi-image}}\
|
||||
</div>\
|
||||
<div class="jFiler-item-assets jFiler-row">\
|
||||
<ul class="list-inline pull-left">\
|
||||
<li>{{fi-progressBar}}</li>\
|
||||
</ul>\
|
||||
<ul class="list-inline pull-right">\
|
||||
<li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
|
||||
</ul>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</li>',
|
||||
itemAppend: '<li class="jFiler-item">\
|
||||
<div class="jFiler-item-container">\
|
||||
<div class="jFiler-item-inner">\
|
||||
<div class="jFiler-item-thumb">\
|
||||
<div class="jFiler-item-status"></div>\
|
||||
<div class="jFiler-item-info">\
|
||||
<span class="jFiler-item-title"><b title="{{fi-name}}">{{fi-name | limitTo: 25}}</b></span>\
|
||||
<span class="jFiler-item-others">{{fi-size2}}</span>\
|
||||
</div>\
|
||||
{{fi-image}}\
|
||||
</div>\
|
||||
<div class="jFiler-item-assets jFiler-row">\
|
||||
<ul class="list-inline pull-left">\
|
||||
<li><span class="jFiler-item-others">{{fi-icon}}</span></li>\
|
||||
</ul>\
|
||||
<ul class="list-inline pull-right">\
|
||||
<li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li>\
|
||||
</ul>\
|
||||
</div>\
|
||||
</div>\
|
||||
</div>\
|
||||
</li>',
|
||||
progressBar: '<div class="bar"></div>',
|
||||
itemAppendToEnd: false,
|
||||
removeConfirmation: true,
|
||||
_selectors: {
|
||||
list: '.jFiler-items-list',
|
||||
item: '.jFiler-item',
|
||||
progressBar: '.bar',
|
||||
remove: '.jFiler-item-trash-action'
|
||||
}
|
||||
},
|
||||
dragDrop: {
|
||||
dragEnter: null,
|
||||
dragLeave: null,
|
||||
drop: null,
|
||||
},
|
||||
uploadFile: {
|
||||
url: "./php/upload.php",
|
||||
data: null,
|
||||
type: 'POST',
|
||||
enctype: 'multipart/form-data',
|
||||
beforeSend: function(){},
|
||||
success: function(data, el){
|
||||
var parent = el.find(".jFiler-jProgressBar").parent();
|
||||
el.find(".jFiler-jProgressBar").fadeOut("slow", function(){
|
||||
$("<div class=\"jFiler-item-others text-success\"><i class=\"icon-jfi-check-circle\"></i> Success</div>").hide().appendTo(parent).fadeIn("slow");
|
||||
});
|
||||
},
|
||||
error: function(el){
|
||||
var parent = el.find(".jFiler-jProgressBar").parent();
|
||||
el.find(".jFiler-jProgressBar").fadeOut("slow", function(){
|
||||
$("<div class=\"jFiler-item-others text-error\"><i class=\"icon-jfi-minus-circle\"></i> Error</div>").hide().appendTo(parent).fadeIn("slow");
|
||||
});
|
||||
},
|
||||
statusCode: null,
|
||||
onProgress: null,
|
||||
onComplete: null
|
||||
},
|
||||
files: null,
|
||||
addMore: false,
|
||||
clipBoardPaste: true,
|
||||
excludeName: null,
|
||||
beforeRender: null,
|
||||
afterRender: null,
|
||||
beforeShow: null,
|
||||
beforeSelect: null,
|
||||
onSelect: null,
|
||||
afterShow: null,
|
||||
onRemove: function(itemEl, file, id, listEl, boxEl, newInputEl, inputEl){
|
||||
var file = file.name;
|
||||
$.post('./php/remove_file.php', {file: file});
|
||||
},
|
||||
onEmpty: null,
|
||||
options: null,
|
||||
captions: {
|
||||
button: "Choose Files",
|
||||
feedback: "Choose files To Upload",
|
||||
feedback2: "files were chosen",
|
||||
drop: "Drop file here to Upload",
|
||||
removeConfirmation: "Are you sure you want to remove this file?",
|
||||
errors: {
|
||||
filesLimit: "Only {{fi-limit}} files are allowed to be uploaded.",
|
||||
filesType: "Only Images are allowed to be uploaded.",
|
||||
filesSize: "{{fi-name}} is too large! Please upload file up to {{fi-maxSize}} MB.",
|
||||
filesSizeAll: "Files you've choosed are too large! Please upload files up to {{fi-maxSize}} MB."
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
991
plugins/jquery.filer/js/jquery.filer.js
Normal file
@@ -0,0 +1,991 @@
|
||||
/*!
|
||||
* jQuery.filer
|
||||
* Copyright (c) 2015 CreativeDream
|
||||
* Website: https://github.com/CreativeDream/jquery.filer
|
||||
* Version: 1.0.5 (19-Nov-2015)
|
||||
* Requires: jQuery v1.7.1 or later
|
||||
*/
|
||||
(function($) {
|
||||
"use strict";
|
||||
$.fn.filer = function(q) {
|
||||
return this.each(function(t, r) {
|
||||
var s = $(r),
|
||||
b = '.jFiler',
|
||||
p = $(),
|
||||
o = $(),
|
||||
l = $(),
|
||||
sl = [],
|
||||
n_f = $.isFunction(q) ? q(s, $.fn.filer.defaults) : q,
|
||||
n = n_f && $.isPlainObject(n_f) ? $.extend(true, {}, $.fn.filer.defaults, n_f) : $.fn.filer.defaults,
|
||||
f = {
|
||||
init: function() {
|
||||
s.wrap('<div class="jFiler"></div>');
|
||||
f._set('props');
|
||||
s.prop("jFiler").boxEl = p = s.closest(b);
|
||||
f._changeInput();
|
||||
},
|
||||
_bindInput: function() {
|
||||
if(n.changeInput && o.size() > 0) {
|
||||
o.bind("click", f._clickHandler);
|
||||
}
|
||||
s.on({
|
||||
"focus": function() {
|
||||
o.addClass('focused');
|
||||
},
|
||||
"blur": function() {
|
||||
o.removeClass('focused');
|
||||
},
|
||||
"change": function() {
|
||||
f._onChange();
|
||||
}
|
||||
});
|
||||
if(n.dragDrop) {
|
||||
(o.length > 0 ? o : s)
|
||||
.bind("drop", f._dragDrop.drop)
|
||||
.bind("dragover", f._dragDrop.dragEnter)
|
||||
.bind("dragleave", f._dragDrop.dragLeave);
|
||||
}
|
||||
if(n.uploadFile && n.clipBoardPaste) {
|
||||
$(window)
|
||||
.on("paste", f._clipboardPaste);
|
||||
}
|
||||
},
|
||||
_unbindInput: function() {
|
||||
if(n.changeInput && o.size() > 0) {
|
||||
o.unbind("click", f._clickHandler);
|
||||
}
|
||||
},
|
||||
_clickHandler: function() {
|
||||
s.click()
|
||||
},
|
||||
_applyAttrSettings: function() {
|
||||
var d = ["name", "limit", "maxSize", "extensions", "changeInput", "showThumbs", "appendTo", "theme", "addMore", "excludeName", "files", "uploadUrl", "uploadData", "options"];
|
||||
for(var k in d) {
|
||||
var j = "data-jfiler-" + d[k];
|
||||
if(f._assets.hasAttr(j)) {
|
||||
switch(d[k]) {
|
||||
case "changeInput":
|
||||
case "showThumbs":
|
||||
case "addMore":
|
||||
n[d[k]] = (["true", "false"].indexOf(s.attr(j)) > -1 ? s.attr(j) == "true" : s.attr(j));
|
||||
break;
|
||||
case "extensions":
|
||||
n[d[k]] = s.attr(j)
|
||||
.replace(/ /g, '')
|
||||
.split(",");
|
||||
break;
|
||||
case "uploadUrl":
|
||||
if(n.uploadFile) n.uploadFile.url = s.attr(j);
|
||||
break;
|
||||
case "uploadData":
|
||||
if(n.uploadFile) n.uploadFile.data = JSON.parse(s.attr(j));
|
||||
break;
|
||||
case "files":
|
||||
case "options":
|
||||
n[d[k]] = JSON.parse(s.attr(j));
|
||||
break;
|
||||
default:
|
||||
n[d[k]] = s.attr(j);
|
||||
}
|
||||
s.removeAttr(j);
|
||||
}
|
||||
}
|
||||
},
|
||||
_changeInput: function() {
|
||||
f._applyAttrSettings();
|
||||
n.beforeRender != null && typeof n.beforeRender == "function" ? n.beforeRender(p, s) : null;
|
||||
if(n.theme) {
|
||||
p.addClass('jFiler-theme-' + n.theme);
|
||||
}
|
||||
if(s.get(0)
|
||||
.tagName.toLowerCase() != "input" && s.get(0)
|
||||
.type != "file") {
|
||||
o = s;
|
||||
s = $("<input type=\"file\" name=\"" + n.name + "\" />");
|
||||
s.css({
|
||||
position: "absolute",
|
||||
left: "-9999px",
|
||||
top: "-9999px",
|
||||
"z-index": "-9999"
|
||||
});
|
||||
p.prepend(s);
|
||||
f._isGn = s;
|
||||
} else {
|
||||
if(n.changeInput) {
|
||||
switch(typeof n.changeInput) {
|
||||
case "boolean":
|
||||
o = $('<div class="jFiler-input"><div class="jFiler-input-caption"><span>' + n.captions.feedback + '</span></div><div class="jFiler-input-button">' + n.captions.button + '</div></div>"');
|
||||
break;
|
||||
case "string":
|
||||
case "object":
|
||||
o = $(n.changeInput);
|
||||
break;
|
||||
case "function":
|
||||
o = $(n.changeInput(p, s, n));
|
||||
break;
|
||||
}
|
||||
s.after(o);
|
||||
s.css({
|
||||
position: "absolute",
|
||||
left: "-9999px",
|
||||
top: "-9999px",
|
||||
"z-index": "-9999"
|
||||
});
|
||||
}
|
||||
}
|
||||
s.prop("jFiler").newInputEl = o;
|
||||
if(!n.limit || (n.limit && n.limit >= 2)) {
|
||||
s.attr("multiple", "multiple");
|
||||
s.attr("name")
|
||||
.slice(-2) != "[]" ? s.attr("name", s.attr("name") + "[]") : null;
|
||||
}
|
||||
f._bindInput();
|
||||
if(n.files) {
|
||||
f._append(false, {
|
||||
files: n.files
|
||||
});
|
||||
}
|
||||
n.afterRender != null && typeof n.afterRender == "function" ? n.afterRender(l, p, o, s) : null;
|
||||
},
|
||||
_clear: function() {
|
||||
f.files = null;
|
||||
s.prop("jFiler")
|
||||
.files = null;
|
||||
if(!n.uploadFile && !n.addMore) {
|
||||
f._reset();
|
||||
}
|
||||
f._set('feedback', (f._itFl && f._itFl.length > 0 ? f._itFl.length + ' ' + n.captions.feedback2 : n.captions.feedback));
|
||||
n.onEmpty != null && typeof n.onEmpty == "function" ? n.onEmpty(p, o, s) : null
|
||||
},
|
||||
_reset: function(a) {
|
||||
if(!a) {
|
||||
if(!n.uploadFile && n.addMore) {
|
||||
for(var i = 0; i < sl.length; i++) {
|
||||
sl[i].remove();
|
||||
}
|
||||
sl = [];
|
||||
f._unbindInput();
|
||||
if(f._isGn) {
|
||||
s = f._isGn;
|
||||
} else {
|
||||
s = $(r);
|
||||
}
|
||||
f._bindInput();
|
||||
}
|
||||
f._set('input', '');
|
||||
}
|
||||
f._itFl = [];
|
||||
f._itFc = null;
|
||||
f._ajFc = 0;
|
||||
f._set('props');
|
||||
s.prop("jFiler")
|
||||
.files_list = f._itFl;
|
||||
s.prop("jFiler")
|
||||
.current_file = f._itFc;
|
||||
if(!f._prEr) {
|
||||
f._itFr = [];
|
||||
p.find("input[name^='jfiler-items-exclude-']:hidden")
|
||||
.remove();
|
||||
}
|
||||
l.fadeOut("fast", function() {
|
||||
$(this)
|
||||
.remove();
|
||||
});
|
||||
s.prop("jFiler").listEl = l = $();
|
||||
},
|
||||
_set: function(element, value) {
|
||||
switch(element) {
|
||||
case 'input':
|
||||
s.val("");
|
||||
break;
|
||||
case 'feedback':
|
||||
if(o.length > 0) {
|
||||
o.find('.jFiler-input-caption span')
|
||||
.html(value);
|
||||
}
|
||||
break;
|
||||
case 'props':
|
||||
if(!s.prop("jFiler")){
|
||||
s.prop("jFiler", {
|
||||
options: n,
|
||||
listEl: l,
|
||||
boxEl: p,
|
||||
newInputEl: o,
|
||||
inputEl: s,
|
||||
files: f.files,
|
||||
files_list: f._itFl,
|
||||
current_file: f._itFc,
|
||||
append: function(data) {
|
||||
return f._append(false, {
|
||||
files: [data]
|
||||
});
|
||||
},
|
||||
remove: function(id) {
|
||||
f._remove(null, {
|
||||
binded: true,
|
||||
data: {
|
||||
id: id
|
||||
}
|
||||
});
|
||||
return true;
|
||||
},
|
||||
reset: function() {
|
||||
f._reset();
|
||||
f._clear();
|
||||
return true;
|
||||
},
|
||||
retry: function(data) {
|
||||
return f._retryUpload(data);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
_filesCheck: function() {
|
||||
var s = 0;
|
||||
if(n.limit && f.files.length + f._itFl.length > n.limit) {
|
||||
alert(f._assets.textParse(n.captions.errors.filesLimit));
|
||||
return false
|
||||
}
|
||||
for(var t = 0; t < f.files.length; t++) {
|
||||
var x = f.files[t].name.split(".")
|
||||
.pop()
|
||||
.toLowerCase(),
|
||||
file = f.files[t],
|
||||
m = {
|
||||
name: file.name,
|
||||
size: file.size,
|
||||
size2: f._assets.bytesToSize(file.size),
|
||||
type: file.type,
|
||||
ext: x
|
||||
};
|
||||
if(n.extensions != null && $.inArray(x, n.extensions) == -1) {
|
||||
alert(f._assets.textParse(n.captions.errors.filesType, m));
|
||||
return false;
|
||||
break
|
||||
}
|
||||
if(n.maxSize != null && f.files[t].size > n.maxSize * 1048576) {
|
||||
alert(f._assets.textParse(n.captions.errors.filesSize, m));
|
||||
return false;
|
||||
break
|
||||
}
|
||||
if(file.size == 4096 && file.type.length == 0) {
|
||||
return false;
|
||||
break
|
||||
}
|
||||
s += f.files[t].size
|
||||
}
|
||||
if(n.maxSize != null && s >= Math.round(n.maxSize * 1048576)) {
|
||||
alert(f._assets.textParse(n.captions.errors.filesSizeAll));
|
||||
return false
|
||||
}
|
||||
if((n.addMore || n.uploadFile)) {
|
||||
var m = f._itFl.filter(function(a, b) {
|
||||
if(a.file.name == file.name && a.file.size == file.size && a.file.type == file.type && (file.lastModified ? a.file.lastModified == file.lastModified : true)) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
if(m.length > 0) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
_thumbCreator: {
|
||||
create: function(i) {
|
||||
var file = f.files[i],
|
||||
id = (f._itFc ? f._itFc.id : i),
|
||||
name = file.name,
|
||||
size = file.size,
|
||||
type = file.type.split("/", 1)
|
||||
.toString()
|
||||
.toLowerCase(),
|
||||
ext = name.indexOf(".") != -1 ? name.split(".")
|
||||
.pop()
|
||||
.toLowerCase() : "",
|
||||
progressBar = n.uploadFile ? '<div class="jFiler-jProgressBar">' + n.templates.progressBar + '</div>' : '',
|
||||
opts = {
|
||||
id: id,
|
||||
name: name,
|
||||
size: size,
|
||||
size2: f._assets.bytesToSize(size),
|
||||
type: type,
|
||||
extension: ext,
|
||||
icon: f._assets.getIcon(ext, type),
|
||||
icon2: f._thumbCreator.generateIcon({
|
||||
type: type,
|
||||
extension: ext
|
||||
}),
|
||||
image: '<div class="jFiler-item-thumb-image fi-loading"></div>',
|
||||
progressBar: progressBar,
|
||||
_appended: file._appended
|
||||
},
|
||||
html = "";
|
||||
if(file.opts) {
|
||||
opts = $.extend({}, file.opts, opts);
|
||||
}
|
||||
html = $(f._thumbCreator.renderContent(opts))
|
||||
.attr("data-jfiler-index", id);
|
||||
html.get(0)
|
||||
.jfiler_id = id;
|
||||
f._thumbCreator.renderFile(file, html, opts);
|
||||
if(file.forList) {
|
||||
return html;
|
||||
}
|
||||
f._itFc.html = html;
|
||||
html.hide()[n.templates.itemAppendToEnd ? "appendTo" : "prependTo"](l.find(n.templates._selectors.list))
|
||||
.show();
|
||||
if(!file._appended) {
|
||||
f._onSelect(i);
|
||||
}
|
||||
},
|
||||
renderContent: function(opts) {
|
||||
return f._assets.textParse((opts._appended ? n.templates.itemAppend : n.templates.item), opts);
|
||||
},
|
||||
renderFile: function(file, html, opts) {
|
||||
if(html.find('.jFiler-item-thumb-image')
|
||||
.size() == 0) {
|
||||
return false;
|
||||
}
|
||||
if(file.file && opts.type == "image") {
|
||||
var g = '<img src="' + file.file + '" draggable="false" />',
|
||||
m = html.find('.jFiler-item-thumb-image.fi-loading');
|
||||
$(g)
|
||||
.error(function() {
|
||||
g = f._thumbCreator.generateIcon(opts);
|
||||
html.addClass('jFiler-no-thumbnail');
|
||||
m.removeClass('fi-loading')
|
||||
.html(g);
|
||||
})
|
||||
.load(function() {
|
||||
m.removeClass('fi-loading')
|
||||
.html(g);
|
||||
});
|
||||
return true;
|
||||
}
|
||||
if(window.File && window.FileList && window.FileReader && opts.type == "image" && opts.size < 6e+6) {
|
||||
var y = new FileReader;
|
||||
y.onload = function(e) {
|
||||
var g = '<img src="' + e.target.result + '" draggable="false" />',
|
||||
m = html.find('.jFiler-item-thumb-image.fi-loading');
|
||||
$(g)
|
||||
.error(function() {
|
||||
g = f._thumbCreator.generateIcon(opts);
|
||||
html.addClass('jFiler-no-thumbnail');
|
||||
m.removeClass('fi-loading')
|
||||
.html(g);
|
||||
})
|
||||
.load(function() {
|
||||
m.removeClass('fi-loading')
|
||||
.html(g);
|
||||
});
|
||||
};
|
||||
y.readAsDataURL(file);
|
||||
} else {
|
||||
var g = f._thumbCreator.generateIcon(opts),
|
||||
m = html.find('.jFiler-item-thumb-image.fi-loading');
|
||||
html.addClass('jFiler-no-thumbnail');
|
||||
m.removeClass('fi-loading')
|
||||
.html(g);
|
||||
}
|
||||
},
|
||||
generateIcon: function(obj) {
|
||||
var m = new Array(3);
|
||||
if(obj && obj.type && obj.extension) {
|
||||
switch(obj.type) {
|
||||
case "image":
|
||||
m[0] = "f-image";
|
||||
m[1] = "<i class=\"icon-jfi-file-image\"></i>"
|
||||
break;
|
||||
case "video":
|
||||
m[0] = "f-video";
|
||||
m[1] = "<i class=\"icon-jfi-file-video\"></i>"
|
||||
break;
|
||||
case "audio":
|
||||
m[0] = "f-audio";
|
||||
m[1] = "<i class=\"icon-jfi-file-audio\"></i>"
|
||||
break;
|
||||
default:
|
||||
m[0] = "f-file f-file-ext-" + obj.extension;
|
||||
m[1] = (obj.extension.length > 0 ? "." + obj.extension : "");
|
||||
m[2] = 1
|
||||
}
|
||||
} else {
|
||||
m[0] = "f-file";
|
||||
m[1] = (obj.extension && obj.extension.length > 0 ? "." + obj.extension : "");
|
||||
m[2] = 1
|
||||
}
|
||||
var el = '<span class="jFiler-icon-file ' + m[0] + '">' + m[1] + '</span>';
|
||||
if(m[2] == 1) {
|
||||
var c = f._assets.text2Color(obj.extension);
|
||||
if(c) {
|
||||
var j = $(el)
|
||||
.appendTo("body"),
|
||||
h = j.css("box-shadow");
|
||||
h = c + h.substring(h.replace(/^.*(rgba?\([^)]+\)).*$/, '$1')
|
||||
.length, h.length);
|
||||
j.css({
|
||||
'-webkit-box-shadow': h,
|
||||
'-moz-box-shadow': h,
|
||||
'box-shadow': h
|
||||
})
|
||||
.attr('style', '-webkit-box-shadow: ' + h + '; -moz-box-shadow: ' + h + '; box-shadow: ' + h + ';');
|
||||
el = j.prop('outerHTML');
|
||||
j.remove();
|
||||
}
|
||||
}
|
||||
return el;
|
||||
},
|
||||
_box: function(params) {
|
||||
if(n.beforeShow != null && typeof n.beforeShow == "function" ? !n.beforeShow(f.files, l, p, o, s) : false) {
|
||||
return false
|
||||
}
|
||||
if(l.length < 1) {
|
||||
if(n.appendTo) {
|
||||
var appendTo = $(n.appendTo);
|
||||
} else {
|
||||
var appendTo = p;
|
||||
}
|
||||
appendTo.find('.jFiler-items')
|
||||
.remove();
|
||||
l = $('<div class="jFiler-items jFiler-row"></div>');
|
||||
s.prop("jFiler").listEl = l;
|
||||
l.append(f._assets.textParse(n.templates.box))
|
||||
.appendTo(appendTo);
|
||||
l.on('click', n.templates._selectors.remove, function(e) {
|
||||
e.preventDefault();
|
||||
var cf = n.templates.removeConfirmation ? confirm(n.captions.removeConfirmation) : true;
|
||||
if(cf) {
|
||||
f._remove(params ? params.remove.event : e, params ? params.remove.el : $(this)
|
||||
.closest(n.templates._selectors.item));
|
||||
}
|
||||
});
|
||||
}
|
||||
for(var i = 0; i < f.files.length; i++) {
|
||||
if(!f.files[i]._appended) f.files[i]._choosed = true;
|
||||
f._addToMemory(i);
|
||||
f._thumbCreator.create(i);
|
||||
}
|
||||
}
|
||||
},
|
||||
_upload: function(i) {
|
||||
var el = f._itFc.html,
|
||||
formData = new FormData();
|
||||
formData.append(s.attr('name'), f._itFc.file, (f._itFc.file.name ? f._itFc.file.name : false));
|
||||
if(n.uploadFile.data != null && $.isPlainObject(n.uploadFile.data)) {
|
||||
for(var k in n.uploadFile.data) {
|
||||
formData.append(k, n.uploadFile.data[k])
|
||||
}
|
||||
}
|
||||
f._ajax.send(el, formData, f._itFc);
|
||||
},
|
||||
_ajax: {
|
||||
send: function(el, formData, c) {
|
||||
c.ajax = $.ajax({
|
||||
url: n.uploadFile.url,
|
||||
data: formData,
|
||||
type: n.uploadFile.type,
|
||||
enctype: n.uploadFile.enctype,
|
||||
xhr: function() {
|
||||
var myXhr = $.ajaxSettings.xhr();
|
||||
if(myXhr.upload) {
|
||||
myXhr.upload.addEventListener("progress", function(e) {
|
||||
f._ajax.progressHandling(e, el)
|
||||
}, false)
|
||||
}
|
||||
return myXhr
|
||||
},
|
||||
complete: function(jqXHR, textStatus) {
|
||||
c.ajax = false;
|
||||
f._ajFc++;
|
||||
if(f._ajFc >= f.files.length) {
|
||||
f._ajFc = 0;
|
||||
n.uploadFile.onComplete != null && typeof n.uploadFile.onComplete == "function" ? n.uploadFile.onComplete(l, p, o, s, jqXHR, textStatus) : null;
|
||||
}
|
||||
},
|
||||
beforeSend: function(jqXHR, settings) {
|
||||
return n.uploadFile.beforeSend != null && typeof n.uploadFile.beforeSend == "function" ? n.uploadFile.beforeSend(el, l, p, o, s, c.id, jqXHR, settings) : true;
|
||||
},
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
c.uploaded = true;
|
||||
n.uploadFile.success != null && typeof n.uploadFile.success == "function" ? n.uploadFile.success(data, el, l, p, o, s, c.id, textStatus, jqXHR) : null
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
c.uploaded = false;
|
||||
n.uploadFile.error != null && typeof n.uploadFile.error == "function" ? n.uploadFile.error(el, l, p, o, s, c.id, jqXHR, textStatus, errorThrown) : null
|
||||
},
|
||||
statusCode: n.uploadFile.statusCode,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
processData: false
|
||||
});
|
||||
return c.ajax;
|
||||
},
|
||||
progressHandling: function(e, el) {
|
||||
if(e.lengthComputable) {
|
||||
var t = Math.round(e.loaded * 100 / e.total)
|
||||
.toString();
|
||||
n.uploadFile.onProgress != null && typeof n.uploadFile.onProgress == "function" ? n.uploadFile.onProgress(t, el, l, p, o, s) : null;
|
||||
el.find('.jFiler-jProgressBar')
|
||||
.find(n.templates._selectors.progressBar)
|
||||
.css("width", t + "%")
|
||||
}
|
||||
}
|
||||
},
|
||||
_dragDrop: {
|
||||
dragEnter: function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
p.addClass('dragged');
|
||||
f._set('feedback', n.captions.drop);
|
||||
n.dragDrop.dragEnter != null && typeof n.dragDrop.dragEnter == "function" ? n.dragDrop.dragEnter(e, o, s, p) : null;
|
||||
},
|
||||
dragLeave: function(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
if(!f._dragDrop._dragLeaveCheck(e)) {
|
||||
return false
|
||||
}
|
||||
p.removeClass('dragged');
|
||||
f._set('feedback', n.captions.feedback);
|
||||
n.dragDrop.dragLeave != null && typeof n.dragDrop.dragLeave == "function" ? n.dragDrop.dragLeave(e, o, s, p) : null;
|
||||
},
|
||||
drop: function(e) {
|
||||
e.preventDefault();
|
||||
p.removeClass('dragged');
|
||||
f._set('feedback', n.captions.feedback);
|
||||
if(e && e.originalEvent && e.originalEvent.dataTransfer && e.originalEvent.dataTransfer.files && e.originalEvent.dataTransfer.files.length > 0) {
|
||||
f._onChange(e, e.originalEvent.dataTransfer.files);
|
||||
}
|
||||
n.dragDrop.drop != null && typeof n.dragDrop.drop == "function" ? n.dragDrop.drop(e.originalEvent.dataTransfer.files, e, o, s, p) : null;
|
||||
},
|
||||
_dragLeaveCheck: function(e) {
|
||||
var related = e.relatedTarget,
|
||||
inside = false;
|
||||
if(related !== o) {
|
||||
if(related) {
|
||||
inside = $.contains(o, related);
|
||||
}
|
||||
if(inside) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
},
|
||||
_clipboardPaste: function(e, fromDrop) {
|
||||
if(!fromDrop && (!e.originalEvent.clipboardData && !e.originalEvent.clipboardData.items)) {
|
||||
return
|
||||
}
|
||||
if(fromDrop && (!e.originalEvent.dataTransfer && !e.originalEvent.dataTransfer.items)) {
|
||||
return
|
||||
}
|
||||
if(f._clPsePre) {
|
||||
return
|
||||
}
|
||||
var items = (fromDrop ? e.originalEvent.dataTransfer.items : e.originalEvent.clipboardData.items),
|
||||
b64toBlob = function(b64Data, contentType, sliceSize) {
|
||||
contentType = contentType || '';
|
||||
sliceSize = sliceSize || 512;
|
||||
var byteCharacters = atob(b64Data);
|
||||
var byteArrays = [];
|
||||
for(var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
|
||||
var slice = byteCharacters.slice(offset, offset + sliceSize);
|
||||
var byteNumbers = new Array(slice.length);
|
||||
for(var i = 0; i < slice.length; i++) {
|
||||
byteNumbers[i] = slice.charCodeAt(i);
|
||||
}
|
||||
var byteArray = new Uint8Array(byteNumbers);
|
||||
byteArrays.push(byteArray);
|
||||
}
|
||||
var blob = new Blob(byteArrays, {
|
||||
type: contentType
|
||||
});
|
||||
return blob;
|
||||
};
|
||||
if(items) {
|
||||
for(var i = 0; i < items.length; i++) {
|
||||
if(items[i].type.indexOf("image") !== -1 || items[i].type.indexOf("text/uri-list") !== -1) {
|
||||
if(fromDrop) {
|
||||
try {
|
||||
window.atob(e.originalEvent.dataTransfer.getData("text/uri-list")
|
||||
.toString()
|
||||
.split(',')[1]);
|
||||
} catch(e) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
var blob = (fromDrop ? b64toBlob(e.originalEvent.dataTransfer.getData("text/uri-list")
|
||||
.toString()
|
||||
.split(',')[1], "image/png") : items[i].getAsFile());
|
||||
blob.name = Math.random()
|
||||
.toString(36)
|
||||
.substring(5);
|
||||
blob.name += blob.type.indexOf("/") != -1 ? "." + blob.type.split("/")[1].toString()
|
||||
.toLowerCase() : ".png";
|
||||
f._onChange(e, [blob]);
|
||||
f._clPsePre = setTimeout(function() {
|
||||
delete f._clPsePre
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_onSelect: function(i) {
|
||||
if(n.uploadFile && !$.isEmptyObject(n.uploadFile)) {
|
||||
f._upload(i)
|
||||
}
|
||||
n.onSelect != null && typeof n.onSelect == "function" ? n.onSelect(f.files[i], f._itFc.html, l, p, o, s) : null;
|
||||
if(i + 1 >= f.files.length) {
|
||||
n.afterShow != null && typeof n.afterShow == "function" ? n.afterShow(l, p, o, s) : null
|
||||
}
|
||||
},
|
||||
_onChange: function(e, d) {
|
||||
if(!d) {
|
||||
if(!s.get(0)
|
||||
.files || typeof s.get(0)
|
||||
.files == "undefined" || s.get(0)
|
||||
.files.length == 0) {
|
||||
if(!n.uploadFile && !n.addMore) {
|
||||
f._set('input', '');
|
||||
f._clear();
|
||||
}
|
||||
return false
|
||||
}
|
||||
f.files = s.get(0)
|
||||
.files;
|
||||
} else {
|
||||
if(!d || d.length == 0) {
|
||||
f._set('input', '');
|
||||
f._clear();
|
||||
return false
|
||||
}
|
||||
f.files = d;
|
||||
}
|
||||
if(!n.uploadFile && !n.addMore) {
|
||||
f._reset(true);
|
||||
}
|
||||
s.prop("jFiler")
|
||||
.files = f.files;
|
||||
if(!f._filesCheck() || (n.beforeSelect != null && typeof n.beforeSelect == "function" ? !n.beforeSelect(f.files, l, p, o, s) : false)) {
|
||||
f._set('input', '');
|
||||
f._clear();
|
||||
return false
|
||||
}
|
||||
f._set('feedback', f.files.length + f._itFl.length + ' ' + n.captions.feedback2);
|
||||
if(n.showThumbs) {
|
||||
f._thumbCreator._box();
|
||||
} else {
|
||||
for(var i = 0; i < f.files.length; i++) {
|
||||
f.files[i]._choosed = true;
|
||||
f._addToMemory(i);
|
||||
f._onSelect(i);
|
||||
}
|
||||
}
|
||||
if(!n.uploadFile && n.addMore) {
|
||||
var elem = $('<input type="file" />');
|
||||
var attributes = s.prop("attributes");
|
||||
$.each(attributes, function() {
|
||||
elem.attr(this.name, this.value);
|
||||
});
|
||||
s.after(elem);
|
||||
f._unbindInput();
|
||||
sl.push(elem);
|
||||
s = elem;
|
||||
f._bindInput();
|
||||
f._set('props');
|
||||
}
|
||||
},
|
||||
_append: function(e, data) {
|
||||
var files = (!data ? false : data.files);
|
||||
if(!files || files.length <= 0) {
|
||||
return;
|
||||
}
|
||||
f.files = files;
|
||||
s.prop("jFiler")
|
||||
.files = f.files;
|
||||
if(n.showThumbs) {
|
||||
for(var i = 0; i < f.files.length; i++) {
|
||||
f.files[i]._appended = true;
|
||||
}
|
||||
f._thumbCreator._box();
|
||||
}
|
||||
},
|
||||
_getList: function(e, data) {
|
||||
var files = (!data ? false : data.files);
|
||||
if(!files || files.length <= 0) {
|
||||
return;
|
||||
}
|
||||
f.files = files;
|
||||
s.prop("jFiler")
|
||||
.files = f.files;
|
||||
if(n.showThumbs) {
|
||||
var returnData = [];
|
||||
for(var i = 0; i < f.files.length; i++) {
|
||||
f.files[i].forList = true;
|
||||
returnData.push(f._thumbCreator.create(i));
|
||||
}
|
||||
if(data.callback) {
|
||||
data.callback(returnData, l, p, o, s);
|
||||
}
|
||||
}
|
||||
},
|
||||
_retryUpload: function(e, data) {
|
||||
var id = parseInt(typeof data == "object" ? data.attr("data-jfiler-index") : data),
|
||||
obj = f._itFl.filter(function(value, key) {
|
||||
return value.id == id;
|
||||
});
|
||||
if(obj.length > 0) {
|
||||
if(n.uploadFile && !$.isEmptyObject(n.uploadFile) && !obj[0].uploaded) {
|
||||
f._itFc = obj[0];
|
||||
s.prop("jFiler")
|
||||
.current_file = f._itFc;
|
||||
f._upload(id);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
_remove: function(e, el) {
|
||||
if(el.binded) {
|
||||
if(typeof(el.data.id) != "undefined") {
|
||||
el = l.find(n.templates._selectors.item + "[data-jfiler-index='" + el.data.id + "']");
|
||||
if(el.size() == 0) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
if(el.data.el) {
|
||||
el = el.data.el;
|
||||
}
|
||||
}
|
||||
var attrId = el.get(0)
|
||||
.jfiler_id || el.attr('data-jfiler-index'),
|
||||
id = null,
|
||||
excl_input = function(id) {
|
||||
var input = p.find("input[name^='jfiler-items-exclude-']:hidden")
|
||||
.first(),
|
||||
item = f._itFl[id],
|
||||
val = [];
|
||||
if(input.size() == 0) {
|
||||
input = $('<input type="hidden" name="jfiler-items-exclude-' + (n.excludeName ? n.excludeName : (s.attr("name")
|
||||
.slice(-2) != "[]" ? s.attr("name") : s.attr("name")
|
||||
.substring(0, s.attr("name")
|
||||
.length - 2)) + "-" + t) + '">');
|
||||
input.appendTo(p);
|
||||
}
|
||||
if(item.file._choosed || item.file._appended || item.uploaded) {
|
||||
f._prEr = true;
|
||||
f._itFr.push(item);
|
||||
if(n.addMore) {
|
||||
var current_input = item.input,
|
||||
count_same_input = 0;
|
||||
f._itFl.filter(function(val, index) {
|
||||
if(val.file._choosed && val.input.get(0) == current_input.get(0)) count_same_input++;
|
||||
});
|
||||
if(count_same_input == 1) {
|
||||
f._itFr = f._itFr.filter(function(val, index) {
|
||||
return val.file._choosed ? val.input.get(0) != current_input.get(0) : true;
|
||||
});
|
||||
current_input.val("");
|
||||
f._prEr = false;
|
||||
}
|
||||
}
|
||||
for(var i = 0; i < f._itFr.length; i++) {
|
||||
val.push(f._itFr[i].file.name);
|
||||
}
|
||||
val = JSON.stringify(val);
|
||||
input.val(val);
|
||||
}
|
||||
},
|
||||
callback = function(el, id) {
|
||||
excl_input(id);
|
||||
f._itFl.splice(id, 1);
|
||||
if(f._itFl.length < 1) {
|
||||
f._reset();
|
||||
f._clear();
|
||||
} else {
|
||||
f._set('feedback', f._itFl.length + ' ' + n.captions.feedback2);
|
||||
}
|
||||
el.fadeOut("fast", function() {
|
||||
$(this)
|
||||
.remove();
|
||||
});
|
||||
};
|
||||
for(var key in f._itFl) {
|
||||
if(key === 'length' || !f._itFl.hasOwnProperty(key)) continue;
|
||||
if(f._itFl[key].id == attrId) {
|
||||
id = key;
|
||||
}
|
||||
}
|
||||
if(!f._itFl.hasOwnProperty(id)) {
|
||||
return false
|
||||
}
|
||||
if(f._itFl[id].ajax) {
|
||||
f._itFl[id].ajax.abort();
|
||||
callback(el, id);
|
||||
return;
|
||||
}
|
||||
n.onRemove != null && typeof n.onRemove == "function" ? n.onRemove(el, f._itFl[id].file, id, l, p, o, s) : null;
|
||||
callback(el, id);
|
||||
},
|
||||
_addToMemory: function(i) {
|
||||
f._itFl.push({
|
||||
id: f._itFl.length,
|
||||
file: f.files[i],
|
||||
html: $(),
|
||||
ajax: false,
|
||||
uploaded: false,
|
||||
});
|
||||
if(n.addMore && !f.files[i]._appended) f._itFl[f._itFl.length - 1].input = s;
|
||||
f._itFc = f._itFl[f._itFl.length - 1];
|
||||
s.prop("jFiler")
|
||||
.files_list = f._itFl;
|
||||
s.prop("jFiler")
|
||||
.current_file = f._itFc;
|
||||
},
|
||||
_assets: {
|
||||
bytesToSize: function(bytes) {
|
||||
if(bytes == 0) return '0 Byte';
|
||||
var k = 1000;
|
||||
var sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||
var i = Math.floor(Math.log(bytes) / Math.log(k));
|
||||
return(bytes / Math.pow(k, i))
|
||||
.toPrecision(3) + ' ' + sizes[i];
|
||||
},
|
||||
hasAttr: function(attr, el) {
|
||||
var el = (!el ? s : el),
|
||||
a = el.attr(attr);
|
||||
if(!a || typeof a == "undefined") {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
getIcon: function(ext, type) {
|
||||
var types = ["audio", "image", "text", "video"];
|
||||
if($.inArray(type, types) > -1) {
|
||||
return '<i class="icon-jfi-file-' + type + ' jfi-file-ext-' + ext + '"></i>';
|
||||
}
|
||||
return '<i class="icon-jfi-file-o jfi-file-type-' + type + ' jfi-file-ext-' + ext + '"></i>';
|
||||
},
|
||||
textParse: function(text, opts) {
|
||||
opts = $.extend({}, {
|
||||
limit: n.limit,
|
||||
maxSize: n.maxSize,
|
||||
extensions: n.extensions ? n.extensions.join(',') : null,
|
||||
}, (opts && $.isPlainObject(opts) ? opts : {}), n.options);
|
||||
switch(typeof(text)) {
|
||||
case "string":
|
||||
return text.replace(/\{\{fi-(.*?)\}\}/g, function(match, a) {
|
||||
a = a.replace(/ /g, '');
|
||||
if(a.match(/(.*?)\|limitTo\:(\d+)/)) {
|
||||
return a.replace(/(.*?)\|limitTo\:(\d+)/, function(match, a, b) {
|
||||
var a = (opts[a] ? opts[a] : ""),
|
||||
str = a.substring(0, b);
|
||||
str = (a.length > str.length ? str.substring(0, str.length - 3) + "..." : str);
|
||||
return str;
|
||||
});
|
||||
} else {
|
||||
return(opts[a] ? opts[a] : "");
|
||||
}
|
||||
});
|
||||
break;
|
||||
case "function":
|
||||
return text(opts);
|
||||
break;
|
||||
default:
|
||||
return text;
|
||||
}
|
||||
},
|
||||
text2Color: function(str) {
|
||||
if(!str || str.length == 0) {
|
||||
return false
|
||||
}
|
||||
for(var i = 0, hash = 0; i < str.length; hash = str.charCodeAt(i++) + ((hash << 5) - hash));
|
||||
for(var i = 0, colour = "#"; i < 3; colour += ("00" + ((hash >> i++ * 2) & 0xFF)
|
||||
.toString(16))
|
||||
.slice(-2));
|
||||
return colour;
|
||||
}
|
||||
},
|
||||
files: null,
|
||||
_itFl: [],
|
||||
_itFc: null,
|
||||
_itFr: [],
|
||||
_ajFc: 0,
|
||||
_prEr: false
|
||||
}
|
||||
|
||||
s.on("filer.append", function(e, data) {
|
||||
f._append(e, data)
|
||||
}).on("filer.remove", function(e, data) {
|
||||
data.binded = true;
|
||||
f._remove(e, data);
|
||||
}).on("filer.reset", function(e) {
|
||||
f._reset();
|
||||
f._clear();
|
||||
return true;
|
||||
}).on("filer.generateList", function(e, data) {
|
||||
return f._getList(e, data)
|
||||
}).on("filer.retry", function(e, data) {
|
||||
return f._retryUpload(e, data)
|
||||
});
|
||||
|
||||
f.init();
|
||||
|
||||
return this;
|
||||
});
|
||||
};
|
||||
$.fn.filer.defaults = {
|
||||
limit: null,
|
||||
maxSize: null,
|
||||
extensions: null,
|
||||
changeInput: true,
|
||||
showThumbs: false,
|
||||
appendTo: null,
|
||||
theme: 'default',
|
||||
templates: {
|
||||
box: '<ul class="jFiler-items-list jFiler-items-default"></ul>',
|
||||
item: '<li class="jFiler-item"><div class="jFiler-item-container"><div class="jFiler-item-inner"><div class="jFiler-item-icon pull-left">{{fi-icon}}</div><div class="jFiler-item-info pull-left"><div class="jFiler-item-title" title="{{fi-name}}">{{fi-name | limitTo:30}}</div><div class="jFiler-item-others"><span>size: {{fi-size2}}</span><span>type: {{fi-extension}}</span><span class="jFiler-item-status">{{fi-progressBar}}</span></div><div class="jFiler-item-assets"><ul class="list-inline"><li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li></ul></div></div></div></div></li>',
|
||||
itemAppend: '<li class="jFiler-item"><div class="jFiler-item-container"><div class="jFiler-item-inner"><div class="jFiler-item-icon pull-left">{{fi-icon}}</div><div class="jFiler-item-info pull-left"><div class="jFiler-item-title">{{fi-name | limitTo:35}}</div><div class="jFiler-item-others"><span>size: {{fi-size2}}</span><span>type: {{fi-extension}}</span><span class="jFiler-item-status"></span></div><div class="jFiler-item-assets"><ul class="list-inline"><li><a class="icon-jfi-trash jFiler-item-trash-action"></a></li></ul></div></div></div></div></li>',
|
||||
progressBar: '<div class="bar"></div>',
|
||||
itemAppendToEnd: false,
|
||||
removeConfirmation: true,
|
||||
_selectors: {
|
||||
list: '.jFiler-items-list',
|
||||
item: '.jFiler-item',
|
||||
progressBar: '.bar',
|
||||
remove: '.jFiler-item-trash-action'
|
||||
}
|
||||
},
|
||||
files: null,
|
||||
uploadFile: null,
|
||||
dragDrop: null,
|
||||
addMore: false,
|
||||
clipBoardPaste: true,
|
||||
excludeName: null,
|
||||
beforeRender: null,
|
||||
afterRender: null,
|
||||
beforeShow: null,
|
||||
beforeSelect: null,
|
||||
onSelect: null,
|
||||
afterShow: null,
|
||||
onRemove: null,
|
||||
onEmpty: null,
|
||||
options: null,
|
||||
captions: {
|
||||
button: "Choose Files",
|
||||
feedback: "Choose files To Upload",
|
||||
feedback2: "files were chosen",
|
||||
drop: "Drop file here to Upload",
|
||||
removeConfirmation: "Are you sure you want to remove this file?",
|
||||
errors: {
|
||||
filesLimit: "Only {{fi-limit}} files are allowed to be uploaded.",
|
||||
filesType: "Only Images are allowed to be uploaded.",
|
||||
filesSize: "{{fi-name}} is too large! Please upload file up to {{fi-maxSize}} MB.",
|
||||
filesSizeAll: "Files you've choosed are too large! Please upload files up to {{fi-maxSize}} MB."
|
||||
}
|
||||
}
|
||||
}
|
||||
})(jQuery);
|
||||
8
plugins/jquery.filer/js/jquery.filer.min.js
vendored
Normal file
437
plugins/jquery.filer/php/class.uploader.php
Normal file
@@ -0,0 +1,437 @@
|
||||
<?php
|
||||
# ======================================================================== #
|
||||
#
|
||||
# Title [PHP] Uploader
|
||||
# Author: CreativeDream
|
||||
# Website: https://github.com/CreativeDream/php-uploader
|
||||
# Version: 0.2
|
||||
# Date: 26-Aug-2015
|
||||
# Purpose: Validate, Remove, Upload, Download files to server.
|
||||
#
|
||||
# ======================================================================== #
|
||||
|
||||
class Uploader {
|
||||
|
||||
protected $options = array(
|
||||
'limit' => 10,
|
||||
'maxSize' => 10,
|
||||
'extensions' => null,
|
||||
'required' => false,
|
||||
'uploadDir' => 'uploads/',
|
||||
'title' => array('auto', 10),
|
||||
'removeFiles' => true,
|
||||
'perms' => null,
|
||||
'onCheck' => null,
|
||||
'onError' => null,
|
||||
'onSuccess' => null,
|
||||
'onUpload' => null,
|
||||
'onComplete' => null,
|
||||
'onRemove' => null
|
||||
);
|
||||
|
||||
public $error_messages = array(
|
||||
1 => "The uploaded file exceeds the upload_max_filesize directive in php.ini.",
|
||||
2 => "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.",
|
||||
3 => "The uploaded file was only partially uploaded.",
|
||||
4 => "No file was uploaded.",
|
||||
6 => "Missing a temporary folder.",
|
||||
7 => "Failed to write file to disk.",
|
||||
8 => "A PHP extension stopped the file upload.",
|
||||
'accept_file_types' => "Filetype not allowed",
|
||||
'file_uploads' => "File uploading option in disabled in php.ini",
|
||||
'post_max_size' => "The uploaded file exceeds the post_max_size directive in php.ini",
|
||||
'max_file_size' => "File is too big",
|
||||
'max_number_of_files' => "Maximum number of files exceeded",
|
||||
'required_and_no_file' => "No file was choosed. Please select one.",
|
||||
'no_download_content' => "File could't be download."
|
||||
);
|
||||
|
||||
private $field = null;
|
||||
private $data = array(
|
||||
"hasErrors" => false,
|
||||
"hasWarnings" => false,
|
||||
"isSuccess" => false,
|
||||
"isComplete" => false,
|
||||
"data" => array(
|
||||
"files" => array(),
|
||||
"metas" => array()
|
||||
)
|
||||
);
|
||||
|
||||
public function __construct(){
|
||||
// __construct function
|
||||
|
||||
$this->cache_data = $this->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* upload method
|
||||
*
|
||||
* Return the initialize method
|
||||
* @param $field {Array, String}
|
||||
* @param $options {Array, null}
|
||||
* @return array
|
||||
*/
|
||||
public function upload($field, $options = null){
|
||||
$this->data = $this->cache_data;
|
||||
return $this->initialize($field, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* initialize method
|
||||
*
|
||||
* Initialize field values and properties.
|
||||
* Merge options
|
||||
* Prepare files
|
||||
* @param $field {Array, String}
|
||||
* @param $options {Array, null}
|
||||
* @return array
|
||||
*/
|
||||
private function initialize($field, $options){
|
||||
if(is_array($field) && in_array($field, $_FILES)){
|
||||
$this->field = $field;
|
||||
$this->field['Field_Name'] = array_search($field, $_FILES);
|
||||
$this->field['Field_Type'] = 'input';
|
||||
|
||||
if(!is_array($this->field['name'])){
|
||||
$this->field = array_merge($this->field, array("name" => array($this->field['name']), "tmp_name"=>array($this->field['tmp_name']), "type"=>array($this->field['type']), "error"=>array($this->field['error']), "size"=>array($this->field['size'])));
|
||||
}
|
||||
|
||||
foreach($this->field['name'] as $key=>$value){ if(empty($value)){ unset($this->field['name'][$key]); unset($this->field['type'][$key]); unset($this->field['tmp_name'][$key]); unset($this->field['error'][$key]); unset($this->field['size'][$key]); } }
|
||||
|
||||
$this->field['length'] = count($this->field['name']);
|
||||
}elseif(is_string($field) && $this->isURL($field)){
|
||||
$this->field = array("name" => array($field), "size"=>array(), "type"=>array(), "error"=>array());
|
||||
$this->field['Field_Type'] = 'link';
|
||||
$this->field['length'] = 1;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
if($options != null){
|
||||
$this->setOptions($options);
|
||||
}
|
||||
|
||||
return $this->prepareFiles();
|
||||
}
|
||||
|
||||
/**
|
||||
* setOptions method
|
||||
*
|
||||
* Merge options
|
||||
* @param $options {Array}
|
||||
*/
|
||||
private function setOptions($options){
|
||||
if(!is_array($options)){return false;}
|
||||
$this->options = array_merge($this->options, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* validation method
|
||||
*
|
||||
* Check the field and files
|
||||
* @return boolean
|
||||
*/
|
||||
private function validate($file = null){
|
||||
$field = $this->field;
|
||||
$errors = array();
|
||||
$options = $this->options;
|
||||
|
||||
if($file == null){
|
||||
$ini = array(ini_get('file_uploads'),((int) ini_get('upload_max_filesize')),((int) ini_get('post_max_size')), ((int) ini_get('max_file_uploads')));
|
||||
|
||||
if(!isset($field) || empty($field)) return false;
|
||||
if(!$ini[0]) $errors[] = $this->error_messages['file_uploads'];
|
||||
|
||||
if($options['required'] && $field['length'] == 0) $errors[] = $this->error_messages['required_and_no_file'];
|
||||
if(($options['limit'] && $field['length'] > $options['limit']) || ($field['length']) > $ini[3]) $errors[] = $this->error_messages['max_number_of_files'];
|
||||
if(!file_exists($options['uploadDir']) && !is_dir($options['uploadDir']) && mkdir($options['uploadDir'], 750, true)){
|
||||
$this->data['hasWarnings'] = true;
|
||||
$this->data['warnings'] = "A new directory was created in " . realpath($options['uploadDir']);
|
||||
}
|
||||
if(!is_writable($options['uploadDir'])) @chmod($options['uploadDir'], 750);
|
||||
|
||||
if($field['Field_Type'] == "input"){
|
||||
$total_size = 0; foreach($this->field['size'] as $key=>$value){ $total_size += $value; } $total_size = $total_size/1048576;
|
||||
if($options['maxSize'] && $total_size > $options['maxSize']) $errors[] = $this->error_messages['max_file_size'];
|
||||
|
||||
if($total_size > $ini[1]) $errors[] = $this->error_messages[1];
|
||||
if($total_size > $ini[2]) $errors[] = $this->error_messages['post_max_size'];
|
||||
}
|
||||
}else{
|
||||
if(@$field['error'][$file['index']] > 0 && array_key_exists($field['error'][$file['index']], $this->error_messages)) $errors[] = $this->error_messages[$field['error'][$file['index']]];
|
||||
if($options['extensions'] && !in_array($file['extension'], $options['extensions'])) $errors[] = $this->error_messages['accept_file_types'];
|
||||
if($file['type'][0] == "image" && @!is_array(getimagesize($file['tmp']))) $errors[] = $this->error_messages['accept_file_types'];
|
||||
if($options['maxSize'] && $file['size'][0] > $options['maxSize']) $errors[] = $this->error_messages['max_file_size'];
|
||||
|
||||
if($field['Field_Type'] == 'link' && empty($this->cache_download_content)) $errors[] = "";
|
||||
}
|
||||
|
||||
$custom = $this->_onCheck($file); if($custom) $errors = array_merge($errors, $custom);
|
||||
|
||||
if(!empty($errors)){
|
||||
$this->data['hasErrors'] = true;
|
||||
if(!isset($this->data['errors'])) $this->data['errors'] = array();
|
||||
|
||||
$this->data['errors'][] = $errors;
|
||||
$custom = $this->_onError($errors, $file);
|
||||
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* prepareFiles method
|
||||
*
|
||||
* Prepare files for upload/download and generate meta infos
|
||||
* @return $this->data
|
||||
*/
|
||||
private function prepareFiles(){
|
||||
$field = $this->field;
|
||||
$validate = $this->validate();
|
||||
|
||||
if($validate){
|
||||
$files = array();
|
||||
$removed_files = $this->removeFiles();
|
||||
|
||||
for($i = 0; $i < count($field['name']); $i++){
|
||||
|
||||
$metas = array();
|
||||
|
||||
if($field['Field_Type'] == 'input'){
|
||||
$tmp_name = $field['tmp_name'][$i];
|
||||
}elseif($field['Field_Type'] == 'link'){
|
||||
$link = $this->downloadFile($field['name'][0], false, true);
|
||||
|
||||
$tmp_name = $field['name'][0];
|
||||
$field['name'][0] = pathinfo($field['name'][0], PATHINFO_BASENAME);
|
||||
$field['type'][0] = $link['type'];
|
||||
$field['size'][0] = $link['size'];
|
||||
$field['error'][0] = 0;
|
||||
}
|
||||
|
||||
$metas['extension'] = substr(strrchr(strtolower($field['name'][$i]), "."),1);
|
||||
$metas['type'] = preg_split('[/]', $field['type'][$i]);
|
||||
$metas['extension'] = $field['Field_Type'] == 'link' && empty($metas['extension']) ? $metas['type'][1] : $metas['extension'];
|
||||
$metas['old_name'] = substr($field['name'][$i], 0, -(strlen(strrchr($field['name'][$i], $metas['extension']))+1));
|
||||
$metas['size'] = $field['size'][$i];
|
||||
$metas['size2'] = $this->formatSize($metas['size']);
|
||||
$metas['name'] = $this->generateFileName($this->options['title'], array('name'=>$metas['old_name'], 'size'=>$metas['size'])) . (!empty($metas['extension']) ? "." . $metas['extension'] : "");
|
||||
$metas['file'] = $this->options['uploadDir'] . $metas['name'];
|
||||
$metas['replaced'] = file_exists($metas['file']);
|
||||
$metas['date'] = date('r');
|
||||
|
||||
if(!in_array($field['name'][$i], $removed_files) && $this->validate(array_merge($metas, array('index'=>$i, 'tmp'=>$tmp_name))) && $this->uploadFile($tmp_name, $metas['file'])){
|
||||
if($this->options['perms']) @chmod($metas['file'], $this->options['perms']);
|
||||
|
||||
$custom = $this->_onUpload($metas, $this->field); if($custom && is_array($custom)) $metas = array_merge($custom, $metas);
|
||||
|
||||
ksort($metas);
|
||||
|
||||
$files[] = $metas['file'];
|
||||
$this->data['data']['metas'][] = $metas;
|
||||
}
|
||||
}
|
||||
|
||||
$this->data['isSuccess'] = count($field['name']) - count($removed_files) == count($files);
|
||||
$this->data['data']['files'] = $files;
|
||||
|
||||
if($this->data['isSuccess']) $custom = $this->_onSuccess($this->data['data']['files'], $this->data['data']['metas']);
|
||||
|
||||
$this->data['isComplete'] = true;
|
||||
$custom = $this->_onComplete($this->data['data']['files'], $this->data['data']['metas']);
|
||||
}
|
||||
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* uploadFile method
|
||||
*
|
||||
* Upload/Download files to server
|
||||
* @return boolean
|
||||
*/
|
||||
private function uploadFile($source, $destination){
|
||||
if($this->field['Field_Type'] == 'input'){
|
||||
return @move_uploaded_file($source, $destination);
|
||||
}elseif($this->field['Field_Type'] == 'link'){
|
||||
return $this->downloadFile($source, $destination);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* removeFiles method
|
||||
*
|
||||
* Remove files or cancel upload for them
|
||||
* @return array
|
||||
*/
|
||||
private function removeFiles(){
|
||||
$removed_files = array();
|
||||
if($this->options['removeFiles'] !== false){
|
||||
foreach($_POST as $key=>$value){
|
||||
preg_match((is_string($this->options['removeFiles']) ? $this->options['removeFiles'] : '/jfiler-items-exclude-'.$this->field['Field_Name'].'-(\d+)/'), $key, $matches);
|
||||
|
||||
if(isset($matches) && !empty($matches)){
|
||||
$input = $_POST[$matches[0]];
|
||||
if($this->isJson($input)) $removed_files = json_decode($input, true);
|
||||
|
||||
$custom = $this->_onRemove($removed_files, $this->field); if($custom && is_array($custom)) $removed_files = $custom;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $removed_files;
|
||||
}
|
||||
|
||||
/**
|
||||
* downloadFile method
|
||||
*
|
||||
* Download file to server
|
||||
* @return boolean
|
||||
*/
|
||||
private function downloadFile($source, $destination, $info = false){
|
||||
set_time_limit(80);
|
||||
|
||||
$forInfo = array(
|
||||
"size" => 1,
|
||||
"type" => "text/plain"
|
||||
);
|
||||
|
||||
if(!isset($this->cache_download_content)){
|
||||
$file_content = file_get_contents($source);
|
||||
if($info){
|
||||
$headers = implode(" ", $http_response_header);
|
||||
if(preg_match('/Content-Length: (\d+)/', $headers, $matches)) $forInfo['size'] = $matches[1];
|
||||
if(preg_match('/Content-Type: (\w+\/\w+)/', $headers, $matches)) $forInfo['type'] = $matches[1];
|
||||
|
||||
$this->cache_download_content = $file_content;
|
||||
|
||||
return $forInfo;
|
||||
}
|
||||
}else{
|
||||
$file_content = $this->cache_download_content;
|
||||
}
|
||||
|
||||
$downloaded_file = @fopen($destination, 'w');
|
||||
$written = @fwrite($downloaded_file, $file_content);
|
||||
@fclose($downloaded_file);
|
||||
|
||||
return $written;
|
||||
}
|
||||
|
||||
/**
|
||||
* generateFileName method
|
||||
*
|
||||
* Generated a file name by uploading
|
||||
* @return boolean
|
||||
*/
|
||||
private function generateFileName($conf, $file){
|
||||
$type = is_array($conf) && isset($conf[0]) ? $conf[0] : $conf;
|
||||
$type = $type ? $type : 'name';
|
||||
$length = is_array($conf) && isset($conf[1]) ? $conf[1] : null;
|
||||
$random_string = substr(str_shuffle("_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length ? $length : 10);
|
||||
$string = "";
|
||||
|
||||
switch($type){
|
||||
case "auto":
|
||||
$string = $random_string;
|
||||
break;
|
||||
case "name":
|
||||
$string = $file['name'];
|
||||
break;
|
||||
default:
|
||||
$string = $type;
|
||||
|
||||
if(strpos($string, "{{random}}") !== false){
|
||||
$string = str_replace("{{random}}", $random_string, $string);
|
||||
}
|
||||
if(strpos($string, "{{file_name}}") !== false){
|
||||
$string = str_replace("{{file_name}}", $file['name'], $string);
|
||||
}
|
||||
if(strpos($string, "{{file_size}}") !== false){
|
||||
$string = str_replace("{{file_size}}", $file['size'], $string);
|
||||
}
|
||||
if(strpos($string, "{{timestamp}}") !== false){
|
||||
$string = str_replace("{{timestamp}}", time(), $string);
|
||||
}
|
||||
if(strpos($string, "{{date}}") !== false){
|
||||
$string = str_replace("{{date}}", date('Y-n-d_H:i:s'), $string);
|
||||
}
|
||||
}
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* isJson method
|
||||
*
|
||||
* Check if string is a valid json
|
||||
* @return boolean
|
||||
*/
|
||||
function isJson($string) {
|
||||
json_decode($string);
|
||||
return (json_last_error() == JSON_ERROR_NONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* isURL method
|
||||
*
|
||||
* Check if string $url is a link
|
||||
* @return boolean
|
||||
*/
|
||||
private function isURL($url){
|
||||
return preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url);
|
||||
}
|
||||
|
||||
/**
|
||||
* formatSize method
|
||||
*
|
||||
* Convert file size
|
||||
* @return float
|
||||
*/
|
||||
private function formatSize($bytes){
|
||||
if ($bytes >= 1073741824){
|
||||
$bytes = number_format($bytes / 1073741824, 2) . ' GB';
|
||||
}elseif ($bytes >= 1048576){
|
||||
$bytes = number_format($bytes / 1048576, 2) . ' MB';
|
||||
}elseif ($bytes > 0){
|
||||
$bytes = number_format($bytes / 1024, 2) . ' KB';
|
||||
}else{
|
||||
$bytes = '0 bytes';
|
||||
}
|
||||
|
||||
return $bytes;
|
||||
}
|
||||
|
||||
private function _onCheck(){
|
||||
$arguments = func_get_args();
|
||||
return $this->options['onCheck'] != null && function_exists($this->options['onCheck']) ? $this->options['onCheck'](@$arguments[0]) : null;
|
||||
}
|
||||
|
||||
private function _onSuccess(){
|
||||
$arguments = func_get_args();
|
||||
return $this->options['onSuccess'] != null && function_exists($this->options['onSuccess']) ? $this->options['onSuccess'](@$arguments[0], @$arguments[1]) : null;
|
||||
}
|
||||
|
||||
private function _onError(){
|
||||
$arguments = func_get_args();
|
||||
return $this->options['onError'] && function_exists($this->options['onError']) ? $this->options['onError'](@$arguments[0], @$arguments[1]) : null;
|
||||
}
|
||||
|
||||
private function _onUpload(){
|
||||
$arguments = func_get_args();
|
||||
return $this->options['onUpload'] && function_exists($this->options['onUpload']) ? $this->options['onUpload'](@$arguments[0], @$arguments[1]) : null;
|
||||
}
|
||||
|
||||
private function _onComplete(){
|
||||
$arguments = func_get_args();
|
||||
return $this->options['onComplete'] != null && function_exists($this->options['onComplete']) ? $this->options['onComplete'](@$arguments[0], @$arguments[1]) : null;
|
||||
}
|
||||
|
||||
private function _onRemove(){
|
||||
$arguments = func_get_args();
|
||||
return $this->options['onRemove'] && function_exists($this->options['onRemove']) ? $this->options['onRemove'](@$arguments[0], @$arguments[1]) : null;
|
||||
}
|
||||
}
|
||||
?>
|
||||
2
plugins/jquery.filer/php/readme.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
[PHP] Uploader 0.2
|
||||
https://github.com/CreativeDream/php-uploader
|
||||
8
plugins/jquery.filer/php/remove_file.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
if(isset($_POST['file'])){
|
||||
$file = '../uploads/' . $_POST['file'];
|
||||
if(file_exists($file)){
|
||||
unlink($file);
|
||||
}
|
||||
}
|
||||
?>
|
||||
42
plugins/jquery.filer/php/upload.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
include('class.uploader.php');
|
||||
|
||||
$uploader = new Uploader();
|
||||
$data = $uploader->upload($_FILES['files'], array(
|
||||
'limit' => 10, //Maximum Limit of files. {null, Number}
|
||||
'maxSize' => 10, //Maximum Size of files {null, Number(in MB's)}
|
||||
'extensions' => null, //Whitelist for file extension. {null, Array(ex: array('jpg', 'png'))}
|
||||
'required' => false, //Minimum one file is required for upload {Boolean}
|
||||
'uploadDir' => '../uploads/', //Upload directory {String}
|
||||
'title' => array('name'), //New file name {null, String, Array} *please read documentation in README.md
|
||||
'removeFiles' => true, //Enable file exclusion {Boolean(extra for jQuery.filer), String($_POST field name containing json data with file names)}
|
||||
'perms' => null, //Uploaded file permisions {null, Number}
|
||||
'onCheck' => null, //A callback function name to be called by checking a file for errors (must return an array) | ($file) | Callback
|
||||
'onError' => null, //A callback function name to be called if an error occured (must return an array) | ($errors, $file) | Callback
|
||||
'onSuccess' => null, //A callback function name to be called if all files were successfully uploaded | ($files, $metas) | Callback
|
||||
'onUpload' => null, //A callback function name to be called if all files were successfully uploaded (must return an array) | ($file) | Callback
|
||||
'onComplete' => null, //A callback function name to be called when upload is complete | ($file) | Callback
|
||||
'onRemove' => 'onFilesRemoveCallback' //A callback function name to be called by removing files (must return an array) | ($removed_files) | Callback
|
||||
));
|
||||
|
||||
if($data['isComplete']){
|
||||
$files = $data['data'];
|
||||
print_r($files);
|
||||
}
|
||||
|
||||
if($data['hasErrors']){
|
||||
$errors = $data['errors'];
|
||||
print_r($errors);
|
||||
}
|
||||
|
||||
function onFilesRemoveCallback($removed_files){
|
||||
foreach($removed_files as $key=>$value){
|
||||
$file = '../uploads/' . $value;
|
||||
if(file_exists($file)){
|
||||
unlink($file);
|
||||
}
|
||||
}
|
||||
|
||||
return $removed_files;
|
||||
}
|
||||
?>
|
||||
BIN
plugins/jquery.filer/uploads/1.jpg
Normal file
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 158 KiB |
BIN
plugins/jquery.filer/uploads/2.jpg
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
plugins/jquery.filer/uploads/3.jpg
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
plugins/jquery.filer/uploads/5.jpg
Normal file
|
After Width: | Height: | Size: 163 KiB |
BIN
plugins/jquery.filer/uploads/6.jpg
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
plugins/jquery.filer/uploads/7.jpg
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
plugins/jquery.filer/uploads/8.jpg
Normal file
|
After Width: | Height: | Size: 118 KiB |
BIN
plugins/jquery.filer/uploads/AppleSansAdjectives..ttf
Normal file
BIN
plugins/jquery.filer/uploads/AppleSansAdjectives.eot
Normal file
BIN
plugins/jquery.filer/uploads/AppleSansAdjectives.woff
Normal file
BIN
plugins/jquery.filer/uploads/Copy_Screenshots.pdf
Normal file
|
After Width: | Height: | Size: 461 KiB |
BIN
plugins/jquery.filer/uploads/Hardik_Pro.jpg
Normal file
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 1.8 MiB |
BIN
plugins/jquery.filer/uploads/bus_ticket_invoice_1956703410.pdf
Normal file
BIN
plugins/jquery.filer/uploads/css_1.png
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
plugins/jquery.filer/uploads/cubana_590.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
plugins/jquery.filer/uploads/cubana_750.png
Normal file
|
After Width: | Height: | Size: 360 KiB |
BIN
plugins/jquery.filer/uploads/cubana_80.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
plugins/jquery.filer/uploads/desktop_hd.png
Normal file
|
After Width: | Height: | Size: 2.5 MiB |
BIN
plugins/jquery.filer/uploads/favicon_1.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
plugins/jquery.filer/uploads/features.png
Normal file
|
After Width: | Height: | Size: 258 KiB |
BIN
plugins/jquery.filer/uploads/flacto_WB.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
plugins/jquery.filer/uploads/landing.jpg
Normal file
|
After Width: | Height: | Size: 20 KiB |
132
plugins/jquery.filer/uploads/preview.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
AppleSansAdjectives
|
||||
- Web font preview
|
||||
</title>
|
||||
<style type='text/css'>
|
||||
|
||||
@font-face {
|
||||
font-family: 'AppleSansAdjectives';
|
||||
src: url('AppleSansAdjectives.eot?#iefix') format('embedded-opentype'), url('AppleSansAdjectives.woff') format('woff'), url('AppleSansAdjectives.ttf') format('truetype'), url('AppleSansAdjectives.svg#AppleSansAdjectives') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
body { font-family: 'AppleSansAdjectives' !important; }
|
||||
h1, h2, h3, h4 { font-weight: normal; }
|
||||
.reg { color:black; background:white; }
|
||||
.inverse { color:white; background:black; }
|
||||
div { padding: 10px 15px; }
|
||||
.right { background:white; width:30%; float: right; font-family: sans-serif; border: 1px solid black; border-width: 0 0 1px 1px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class='right'>
|
||||
<h3>How to Install</h3>
|
||||
<h4>Step 1</h4>
|
||||
<div>
|
||||
Upload contents of the zip file to your web server's public directory. For example:
|
||||
<code>www.yourdomain.com/css/webfont/</code>
|
||||
</div>
|
||||
<h4>Step 2</h4>
|
||||
<div>
|
||||
Add contents of
|
||||
<code>styles.css</code>
|
||||
to your site's style sheet.
|
||||
</div>
|
||||
<h4>Step 3</h4>
|
||||
<div>
|
||||
Make sure you adjust the paths in code from
|
||||
<code>styles.css</code>
|
||||
to reflect the relative path on your server.
|
||||
</div>
|
||||
<div>
|
||||
For this example you need to prepend
|
||||
<code>/css/webfont/</code>
|
||||
to all
|
||||
<code>src url</code>
|
||||
definitions. Like this:
|
||||
</div>
|
||||
<div>
|
||||
<code style='font-size:11px;'>@font-face {
|
||||
font-family: 'AppleSansAdjectives';
|
||||
src: url('/css/webfont/AppleSansAdjectives.eot?#iefix') format('embedded-opentype'), url('/css/webfont/AppleSansAdjectives.woff') format('woff'), url('/css/webfont/AppleSansAdjectives.ttf') format('truetype'), url('/css/webfont/AppleSansAdjectives.svg#AppleSansAdjectives') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}</code>
|
||||
</div>
|
||||
</div>
|
||||
<div class='reg'>
|
||||
<h1>
|
||||
H1
|
||||
AppleSansAdjectives
|
||||
</h1>
|
||||
<h2>
|
||||
H2
|
||||
Donec lacinia, felis nec sagittis feugiat
|
||||
</h2>
|
||||
<h3>
|
||||
H3
|
||||
Sed ullamcorper tincidunt libero, sed tempus sem rhoncus non.
|
||||
</h3>
|
||||
<h4>
|
||||
H4
|
||||
Etiam in nulla eros, quis laoreet orci. Morbi ullamcorper tempor nunc sed ullamcorper.
|
||||
</h4>
|
||||
<div>
|
||||
DEFAULT
|
||||
In hac habitasse platea dictumst. Sed hendrerit scelerisque pellentesque. Suspendisse id eros quis sem tristique varius sed eget velit. Phasellus pellentesque ipsum non quam vulputate euismod. Nullam eget viverra lorem. Ut eu tortor metus. Mauris eget quam nulla, eu suscipit magna. Nullam vitae lectus quam, a consequat tortor. Ut sed arcu arcu. Aliquam aliquet lacinia lorem, id tristique nunc pulvinar eget.
|
||||
</div>
|
||||
<div>
|
||||
SMALL
|
||||
<small>
|
||||
Proin volutpat, magna at vehicula blandit, massa lectus aliquam dolor, ut porta magna odio eu nunc. Nam nisi diam, commodo vitae hendrerit non, consequat sed est. Proin fringilla, nunc non vulputate hendrerit, turpis purus vestibulum diam, a venenatis nunc lectus nec quam. Quisque euismod fermentum mauris, at accumsan mi pulvinar in. Fusce libero lectus, fringilla non congue vel, cursus nec metus. Nunc ac ante quam.
|
||||
</small>
|
||||
</div>
|
||||
<div>
|
||||
BIG
|
||||
<big>
|
||||
Curabitur auctor orci vel felis sodales porttitor. Aenean non neque auctor tellus suscipit vulputate ut quis nunc. Integer tellus purus, venenatis a cursus nec, vestibulum eget turpis. Nulla pulvinar dictum elit, vulputate sodales nunc laoreet eget. Aliquam vitae urna ac risus scelerisque iaculis.
|
||||
</big>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class='inverse'>
|
||||
<h1>
|
||||
H1
|
||||
AppleSansAdjectives
|
||||
</h1>
|
||||
<h2>
|
||||
H2
|
||||
Donec lacinia, felis nec sagittis feugiat
|
||||
</h2>
|
||||
<h3>
|
||||
H3
|
||||
Sed ullamcorper tincidunt libero, sed tempus sem rhoncus non.
|
||||
</h3>
|
||||
<h4>
|
||||
H4
|
||||
Etiam in nulla eros, quis laoreet orci. Morbi ullamcorper tempor nunc sed ullamcorper.
|
||||
</h4>
|
||||
<div>
|
||||
DEFAULT
|
||||
In hac habitasse platea dictumst. Sed hendrerit scelerisque pellentesque. Suspendisse id eros quis sem tristique varius sed eget velit. Phasellus pellentesque ipsum non quam vulputate euismod. Nullam eget viverra lorem. Ut eu tortor metus. Mauris eget quam nulla, eu suscipit magna. Nullam vitae lectus quam, a consequat tortor. Ut sed arcu arcu. Aliquam aliquet lacinia lorem, id tristique nunc pulvinar eget.
|
||||
</div>
|
||||
<div>
|
||||
SMALL
|
||||
<small>
|
||||
Proin volutpat, magna at vehicula blandit, massa lectus aliquam dolor, ut porta magna odio eu nunc. Nam nisi diam, commodo vitae hendrerit non, consequat sed est. Proin fringilla, nunc non vulputate hendrerit, turpis purus vestibulum diam, a venenatis nunc lectus nec quam. Quisque euismod fermentum mauris, at accumsan mi pulvinar in. Fusce libero lectus, fringilla non congue vel, cursus nec metus. Nunc ac ante quam.
|
||||
</small>
|
||||
</div>
|
||||
<div>
|
||||
BIG
|
||||
<big>
|
||||
Curabitur auctor orci vel felis sodales porttitor. Aenean non neque auctor tellus suscipit vulputate ut quis nunc. Integer tellus purus, venenatis a cursus nec, vestibulum eget turpis. Nulla pulvinar dictum elit, vulputate sodales nunc laoreet eget. Aliquam vitae urna ac risus scelerisque iaculis.
|
||||
</big>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
After Width: | Height: | Size: 1.4 MiB |
7
plugins/jquery.filer/uploads/styles.css
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
@font-face {
|
||||
font-family: 'AppleSansAdjectives';
|
||||
src: url('AppleSansAdjectives.eot?#iefix') format('embedded-opentype'), url('AppleSansAdjectives.woff') format('woff'), url('AppleSansAdjectives.ttf') format('truetype'), url('AppleSansAdjectives.svg#AppleSansAdjectives') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||