ÿØÿà JFIF    ÿÛ „  ( %!1"%)+...383-7(-.+  -%%--------+------------/----------------------------ÿÀ  ¶" ÿÄ     ÿÄ @    !1AQaq‘¡"±ÁÑð2’BRráS‚ñ3b¢CT²Ò #cÿÄ    ÿÄ '   1!AQ2a"‘±#ÿÚ   ? ò(/p‘—–¢·,M|¯G»R£üešT. ôŸEoCFñ‡ 4ÔkåóxR|µÁ¨ÓDà!Ç´µ˜‡p ÍQ‹§!þž^õWsŒy  åÁ§$á«%ºq˜™JyyË0y«^Ϗ -3ÃÏËÈ£Æ\P’ä„s&•‹Üs üô'àWt¹pñCp$bÚF`·7.^)¾!)ÒÙ˜–ÅÏš^h¾ø³·ìe±ŒaeÖ—Í,e=B}Jéߦ$$½—šÙÜCC¯¶è8β–Åkèwx LÉngT±æ¹£Ócœ¿Í/©Éÿ ‰ÚCÒ­mq;Tt¶–}0"zÖPcd1š­¤tˆ„ÐÓâqú[™öUCŠ2޿د­É(¸ßúçšmW,Ò ºf‹Ån™ÄLêÁ8üÁkÁ€L¥ÍuJ1œôrÂSŒÓöt!7EUíïb)AËi¬â-ÙHk8òÁiXYwÅ)O^"ÇØriÛô{»wRUKÙÏÚlÓ¬€‚’שT ] ªb—ÊîKC^×M“xùäñz¬zJ× {4[¹M'IÆeH1LCWÕ]œûº WDæà°OÅ‚¹c²ÞuA–rL`HšpCez‡V’— Ž‚Ë„–ñ­'µR0ÕÖ=À:±G»C\nÆÉ5*¢ †3šhQ4ýÒi$Õ1"Ü]¢p-q3zcQ$ªö¨¥æf›‘»´ÝÚHá„e²JÇ–iÊ:·à¬Øc5Åk»Laª*wi [0Ówk ¦a¦0Õ²ÅÅ‚T¸’³q:Æ<¹ú Ò˜Æ}2VE•Ѐp¡Ô3Úº …h³^LJºçì¥Ánó|˜ÖˆÎˆ+« ¦dø‘Mº–d\ªDðÛ„Ì×LÝ——Ð9Ç|•FèçVm™¨€™3õS–9Äå¢<̉Ìm¢±`·º˜&Z²ž Ë®D«¶»6™‰©­HÈ Àá«h­i³04æ’hxœi3ï¨(ÓL·†‹¶ËpŒ ƒÜÒ? :õdsÀ –3æÓ·Üjâ¬9—]8n¼&]I F£¼…ì–—Œ0v°LǐÅfÛ2TÖ’aµ˜N@ÖBSÏ^à´4-±°b×nÈÈœÆD=KdŒø…ÄÈK,›ÖR§fjü$^ÔÎ!„6^ s:Üun\ôkCÞò÷<—Lúl Í›G¹ÀPá¼Nc¡šÒ…ÙWͳœ±vÊáЄ×9‹P‰cEØ‘™›µŸP<×g1 º©Ø¬wiÁ^l5× I/';Ë+´Z‡ÓÄFÕp[Èð’ HÄ ó 9¬Dl4“é±Ï”V=^Hð;žLädÉa‚°Ë,#/Ž~²BÔÛ QãñQtIeórVB,ÏÂf‹4#Μc‹É3ZIÖ Œ¢¥·üxa‡Ãçè„jŠ[5 Ä!U?,3žÎ×…ðdÓ÷háŠA‰ìÄ4÷ÃÜZÃE{‰®+W\ZÍE[‰»µk»MÝ­`¢©†˜ÃV‹-f¢¡†¢a«eŠ%«Y¨©q%jâd,Ôq`) ¤¦…šˆ ¦E>0Ùb²t–Ÿ  ÷jsςҒKÈcø(é›;k(’#ôŒQ ™C> õ³M9óºÆµ¤çâ;uÀ)5>RÔ¸fÓ~Ȧ—’-$fe«"FâUˆÊwµPÏu w+"åÉó¨6s™Û9(À¨ù©hE°½†n`m~“@©›p!Vkhµ Á1šbEqqÊ@ºèl›2 –Yã%‘‚hÛ{a¶‡ÅÞM²¬çL34®Çl]®‹ŽØŒm'RÜe35æöˆ­Á­ cP9šeÁköo´L³Ì=p8]”‡B¶,šº|ɏdzXˆØk*ÇÚ{#ñ‰pã(€¶‡9ý'šÜ³½¯kƒ†Â’ëSOƒ•Å®H6+a¢µˆ‹Y¨b˜b+XˆÖ!°u!¢"µˆˆn2ˆ Å0Ä`Å Ô®c(ÓÜGº•Ä»Œ âWî%q.áÐÄ÷î%umÍ£+ÜQ,Vn¦-GphU¸¢X­&,Gt ·K¢ÅÅ·¥RÄÊÉbKn N­R2g$VµÕó Qr#–ÓZUÏð0ÎtÙÀœz ëöo“Îk¯n„T°"SÞ+³/…€½"ižãO%Í%&Δâ‘ËØ´IˆÓ°Ë‰ÞM3.™yçÁzit›`4C`k¢¼á!álÄï sÂ[×!¤l¾æo"ƒIÔ'@ªu)3›ô®“@Z à¾] üœ'‡4¸PÞkÁ-qÄH‰ÓÍBd´ÿ —¹°ÄA&ÊUC„öz‚‚RæŠtf¬>˜ÑidšEçÑL÷áý¡V±h§­c¿¥¨ƒ@g¼…Ýö^ÞËc.ž„æ“I[ ª+·zÐÒÚ,½Ð»¶€C›7jk$๖€Ž¾ÅÙpp¶ÍþéΤ ½ØÎŒq ñpæžÅ¥#Øâ49ÃÂK^MYV“,¶Éz_òæ:…;Õ«¦I3âJ£¤û5$7Èxün\â]Êe¯(Ÿ&Ž‹¶2<6Ćf× æ¢ƱqWı[(ÙÂŽç‚T7¨@ÈÉÍß‚ïÙ"&3TYlGށ†)†#5ŠA©^T2ÆÁ†)©†©†¤yGXÁ†©"†)©¼ÅV WS†#©]R–r‹q5ÕbâWþBh¯u+ªÅÄ×ü„nÑ^êkªÁj‰jeœWˆÕÕ`µDµ2Ì+Ä µDµµ5Ô{¤Þ0RF’H÷AÛ<ÊÁ§ ƈæ0Ñ£ê4 öÚµ[¬/1²€â<-¬šö²r×0o×w ´xÐÒË„ g01¬„åEM蛇Ã\6µE›‘fÙO k÷CºnÓ1`iîÒ² áÂ!ÑLÄÿ ³¬\õ*:M=Ç»c‹2[‰ØsÕLò\ŒK L^™üÄN\¶#» Ç\……ßïIœÉ$¸ÎñÍ®ÔHÇ Ûí/´>Li”„†g^$ 7NÍÑÑ2M2ªNg=k½Ð}Ÿl6‡ —JWˆ”ÞéT·+µ¦üÂFè¢Vs6ýÆ4»2+2IÝ9ô9®ÇGÙÇ1+Ä8;*Õ§ž½D*îÑWÚçá3Ma¤·ˆ¥t}š²Ü…Q+Æüµ8HíS”üxGéÁˆ¦Ël„éÈ 5 µÄƒ6äÜ(kIš¯S†fÖ&¸®×v|Äyˆ*禌Éù@7-®Ä[]ÎÖ¿ê`º…=:…žJVnݳvðÖKE¼‚ »mà ÷f®:Ë ™–4rð¡4` ܹçž~‹C=œ…¾Ïj|VDtK.ƒ"9 Ï ­–éXá³6WÒïIL-Ї Ç PK\XYfonts/dropify.svgnu[ Copyright (C) 2015 by original authors @ fontello.com PK\a<<fonts/dropify.ttfnu[`OS/2>IlVcmapDJcvt D fpgmYP pgasp<glyf? headK6hheaV$hmtx  locamaxp  name@postQA6prepk{zz1PfEd@RjZFD(\, -+%264/01'012?265%.'&#3264&+.'46?'>727>7#";>7.     )ZU" !BX"%gN ?T"F5#}OR~ IZnS `c    TcZNXBJ+Lf  S?%@ 4G KX\N  iJSn aSyvVF-7V M@3. -+4'&/&/&'4&+"!27>76'4'6#.'1!'&/#56'?6;23U>>#D  %& #$&ZHY%:+ >>  \ &   \2"##'&1?,:L?Fz_< ѥ?ѥvFRjZ]s p55<CJ Q\ +c  j    ' 5 C Y Vg &Copyright (C) 2015 by original authors @ fontello.comdropifyRegulardropifydropifyVersion 1.0dropifyGenerated by svg2ttf from Fontello project.http://fontello.comCopyright (C) 2015 by original authors @ fontello.comdropifyRegulardropifydropifyVersion 1.0dropifyGenerated by svg2ttf from Fontello project.http://fontello.com uploadfile, UXEY KQKSZX4(Y`f UX%acc#b!!YC#DC`B-, `f-, d P&Z( CEcER[X!#!X PPX!@Y 8PX!8YY  CEcEad(PX! CEcE 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #B CEc C`Ec*! C +0%&QX`PaRYX#Y! @SX+!@Y#PXeY-,C+C`B-,#B# #Babfc`*-, E Ccb PX@`Yfc`D`-, CEB*!C`B- ,C#DC`B- , E +#C%` E#a d PX!0PX @YY#PXeY%#aDD`- , E +#C%` E#a d$PX@Y#PXeY%#aDD`- , #B EX!#!Y*!- ,EdaD-,` CJPX #BY CJRX #BY-, bfc c#aC` ` #B#-,KTXdDY$ e#x-,KQXKSXdDY!Y$e#x-,CUXCaB+YC%B %B %B# %PXC`%B #a*!#a #a*!C`%B%a*!Y CG CG`b PX@`Yfc Ccb PX@`Yfc`#DC>C`B-,ETX#B E #B #`B `aBB`+r+"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-, +ETX#B E #B #`B `aBB`+r+"Y-,+- ,+-!,+-",+-#,+-$,+-%,+-&,+-',+-(, +-), <`-*, `` C#`C%a`)*!-+,*+**-,, G Ccb PX@`Yfc`#a8# UX G Ccb PX@`Yfc`#a8!Y--,ETX,*0"Y-., +ETX,*0"Y-/, 5`-0,Ecb PX@`Yfc+ Ccb PX@`Yfc+D>#8/*-1, < G Ccb PX@`Yfc`Ca8-2,.<-3, < G Ccb PX@`Yfc`CaCc8-4,% . G#B%IG#G#a Xb!Y#B3*-5,%%G#G#a C+e.# <8-6,%% .G#G#a #B C+ `PX @QX  &YBB# C #G#G#a#F`Cb PX@`Yfc` + a C`d#CadPXCaC`Y%b PX@`Yfca# &#Fa8#CF%CG#G#a` Cb PX@`Yfc`# +#C`+%a%b PX@`Yfc&a %`d#%`dPX!#!Y# &#Fa8Y-7, & .G#G#a#<8-8, #B F#G+#a8-9,%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%acc# Xb!Ycb PX@`Yfc`#.# <8#!Y-:, C .G#G#a ` `fb PX@`Yfc# <8-;,# .F%FRX ,5+# .F%FRX +-S,>+-T,>+-U,>+-V,@+-W,@+-X,@+-Y,@+-Z,C+-[,C+-\,C+-],C+-^,?+-_,?+-`,?+-a,?+-b,7+.++-c,7+;+-d,7+<+-e,7+=+-f,8+.++-g,8+;+-h,8+<+-i,8+=+-j,9+.++-k,9+;+-l,9+<+-m,9+=+-n,:+.++-o,:+;+-p,:+<+-q,:+=+-r, EX!#!YB+e$Px0-KRXYcpB*B*B*B *B *D$QX@XdD&QX@cTXDYYYY *DPK\Z fonts/dropify.woffnu[wOFF <OS/2DDV>Ilcmap:Jcvt  fpgm pYgaspdglyfl ?head P56Khhea $Vhmtx loca maxp  name ~post \%6QAprep e{kxc`d~8iCf|`̀08`x?!ٍ ( xc```f`Fp| ^0RDK0B#ÈdxVisGa6>6YrvVJB]KvO^To`'UT(JL^В^X|)6idIH7lZC )SL.hԾ8$"u%$C2Z%jRnIwQ %5C-¨E2푒6-_IZ+| %$ƛa gVvEMED3<"Zb\1A@R^4|{ qv%?ο$z%@vd{+" 㦝lGt}'#Q^hvE'WX ej|ʗ<ՒZ/sb_GLk&ȂNc],!8JF)a$m9EzGL:--aNKgI;1x4LNєQJ:<$ʣil3c$Psi*e'4<ћakעEy0*a \{MLeǙ c0o $L])`)CTop{}kWMmFP['@U!MŸK#ja\F2N ˲GwJe HGG?BԹ(n;Aib⠔weVmSSךūͣ{'r4tOUYL.ͥe\v0,0ߡWq/r_FK.6@x%k`_/Iak2+k$Hn6HƐS+m҃2P(xPtAOz$#d/~<}$qz-դ}X:'5w"gDMzVFT}QJl6lB$C苧/@3 6bʬPɺK:.JcgD^@ow>yu uK='5_'9qrS>gZ,NSOr^AF;{$0 ٽc t2 0uzzwH!IC+t(olo"k5э57ʿW֢SFOY?nva;HS፼ѷzI!BK Rտ}ŬpNhPp)u^O/T,Ȍ+I=Y6[a,4 EmWghM!%_ 07["En/Rxc`d``bm2p30\\zBg`_ ``g Mxc`d``202fexc`d```fb`bb )]xuJPOjhnVjF\ -&+in,`~sܙ 3|s=rAʇԟOprxc}hwe^WET> _+c.!',X+cjʦqfړ`8J 42 v.1D&waekk4anЖeTyhkIlVcmapDJcvt D fpgmYP pgasp<glyf? headK6hheaV$hmtx  locamaxp  name@postQA6prepk{zz1PfEd@RjZFD(\, -+%264/01'012?265%.'&#3264&+.'46?'>727>7#";>7.     )ZU" !BX"%gN ?T"F5#}OR~ IZnS `c    TcZNXBJ+Lf  S?%@ 4G KX\N  iJSn aSyvVF-7V M@3. -+4'&/&/&'4&+"!27>76'4'6#.'1!'&/#56'?6;23U>>#D  %& #$&ZHY%:+ >>  \ &   \2"##'&1?,:L?Fz_< ѥ?ѥvFRjZ]s p55<CJ Q\ +c  j    ' 5 C Y Vg &Copyright (C) 2015 by original authors @ fontello.comdropifyRegulardropifydropifyVersion 1.0dropifyGenerated by svg2ttf from Fontello project.http://fontello.comCopyright (C) 2015 by original authors @ fontello.comdropifyRegulardropifydropifyVersion 1.0dropifyGenerated by svg2ttf from Fontello project.http://fontello.com uploadfile, UXEY KQKSZX4(Y`f UX%acc#b!!YC#DC`B-, `f-, d P&Z( CEcER[X!#!X PPX!@Y 8PX!8YY  CEcEad(PX! CEcE 0PX!0Y PX f a PX` PX! ` 6PX!6``YYY+YY#PXeYY-, E %ad CPX#B#B!!Y`-,#!#! dbB #B CEc C`Ec*! C +0%&QX`PaRYX#Y! @SX+!@Y#PXeY-,C+C`B-,#B# #Babfc`*-, E Ccb PX@`Yfc`D`-, CEB*!C`B- ,C#DC`B- , E +#C%` E#a d PX!0PX @YY#PXeY%#aDD`- , E +#C%` E#a d$PX@Y#PXeY%#aDD`- , #B EX!#!Y*!- ,EdaD-,` CJPX #BY CJRX #BY-, bfc c#aC` ` #B#-,KTXdDY$ e#x-,KQXKSXdDY!Y$e#x-,CUXCaB+YC%B %B %B# %PXC`%B #a*!#a #a*!C`%B%a*!Y CG CG`b PX@`Yfc Ccb PX@`Yfc`#DC>C`B-,ETX#B E #B #`B `aBB`+r+"Y-,+-,+-,+-,+-,+-,+-,+-,+-,+-, +-, +ETX#B E #B #`B `aBB`+r+"Y-,+- ,+-!,+-",+-#,+-$,+-%,+-&,+-',+-(, +-), <`-*, `` C#`C%a`)*!-+,*+**-,, G Ccb PX@`Yfc`#a8# UX G Ccb PX@`Yfc`#a8!Y--,ETX,*0"Y-., +ETX,*0"Y-/, 5`-0,Ecb PX@`Yfc+ Ccb PX@`Yfc+D>#8/*-1, < G Ccb PX@`Yfc`Ca8-2,.<-3, < G Ccb PX@`Yfc`CaCc8-4,% . G#B%IG#G#a Xb!Y#B3*-5,%%G#G#a C+e.# <8-6,%% .G#G#a #B C+ `PX @QX  &YBB# C #G#G#a#F`Cb PX@`Yfc` + a C`d#CadPXCaC`Y%b PX@`Yfca# &#Fa8#CF%CG#G#a` Cb PX@`Yfc`# +#C`+%a%b PX@`Yfc&a %`d#%`dPX!#!Y# &#Fa8Y-7, & .G#G#a#<8-8, #B F#G+#a8-9,%%G#G#aTX. <#!%%G#G#a %%G#G#a%%I%acc# Xb!Ycb PX@`Yfc`#.# <8#!Y-:, C .G#G#a ` `fb PX@`Yfc# <8-;,# .F%FRX ,5+# .F%FRX +-S,>+-T,>+-U,>+-V,@+-W,@+-X,@+-Y,@+-Z,C+-[,C+-\,C+-],C+-^,?+-_,?+-`,?+-a,?+-b,7+.++-c,7+;+-d,7+<+-e,7+=+-f,8+.++-g,8+;+-h,8+<+-i,8+=+-j,9+.++-k,9+;+-l,9+<+-m,9+=+-n,:+.++-o,:+;+-p,:+<+-q,:+=+-r, EX!#!YB+e$Px0-KRXYcpB*B*B*B *B *D$QX@XdD&QX@cTXDYYYY *DPK\U22css/dropify.cssnu[/*! * ============================================================= * dropify v0.2.2 - Override your input files with style. * https://github.com/JeremyFagis/dropify * * (c) 2017 - Jeremy FAGIS (http://fagis.fr) * ============================================================= */ @charset "UTF-8"; @font-face { font-family: 'dropify'; src: url("../fonts/dropify.eot"); src: url("../fonts/dropify.eot#iefix") format("embedded-opentype"), url("../fonts/dropify.woff") format("woff"), url("../fonts/dropify.ttf") format("truetype"), url("../fonts/dropify.svg#dropify") format("svg"); font-weight: normal; font-style: normal; } [class^="dropify-font-"]:before, [class*=" dropify-font-"]:before, .dropify-font:before, .dropify-wrapper .dropify-message span.file-icon:before { font-family: "dropify"; font-style: normal; font-weight: normal; speak: none; display: inline-block; text-decoration: inherit; width: 1em; margin-left: .2em; margin-right: .2em; text-align: center; font-variant: normal; text-transform: none; line-height: 1em; } .dropify-font-upload:before, .dropify-wrapper .dropify-message span.file-icon:before { content: '\e800'; } .dropify-font-file:before { content: '\e801'; } .dropify-wrapper { display: block; position: relative; cursor: pointer; overflow: hidden; width: 100%; max-width: 100%; height: 200px; padding: 5px 10px; font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial"; font-size: 14px; line-height: 22px; color: #777; background-color: #FFF; background-image: none; text-align: center; border: 2px solid #E5E5E5; -webkit-transition: border-color 0.15s linear; transition: border-color 0.15s linear; } .dropify-wrapper:hover { background-size: 30px 30px; background-image: -webkit-linear-gradient(135deg, #F6F6F6 25%, transparent 25%, transparent 50%, #F6F6F6 50%, #F6F6F6 75%, transparent 75%, transparent); background-image: linear-gradient(-45deg, #F6F6F6 25%, transparent 25%, transparent 50%, #F6F6F6 50%, #F6F6F6 75%, transparent 75%, transparent); -webkit-animation: stripes 2s linear infinite; animation: stripes 2s linear infinite; } .dropify-wrapper.has-preview .dropify-clear { display: block; } .dropify-wrapper.has-error { border-color: #F34141; } .dropify-wrapper.has-error .dropify-message .dropify-error { display: block; } .dropify-wrapper.has-error:hover .dropify-errors-container  { visibility: visible; opacity: 1; -webkit-transition-delay: 0s; transition-delay: 0s; } .dropify-wrapper.disabled input { cursor: not-allowed; } .dropify-wrapper.disabled:hover { background-image: none; -webkit-animation: none; animation: none; } .dropify-wrapper.disabled .dropify-message { opacity: 0.5; text-decoration: line-through; } .dropify-wrapper.disabled .dropify-infos-message { display: none; } .dropify-wrapper input { position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%; width: 100%; opacity: 0; cursor: pointer; z-index: 5; } .dropify-wrapper .dropify-message { position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .dropify-wrapper .dropify-message span.file-icon { font-size: 50px; color: #CCC; } .dropify-wrapper .dropify-message p { margin: 5px 0 0 0; } .dropify-wrapper .dropify-message p.dropify-error { color: #F34141; font-weight: bold; display: none; } .dropify-wrapper .dropify-clear { display: none; position: absolute; opacity: 0; z-index: 7; top: 10px; right: 10px; background: none; border: 2px solid #FFF; text-transform: uppercase; font-family: "Roboto", "Helvetica Neue", "Helvetica", "Arial"; font-size: 11px; padding: 4px 8px; font-weight: bold; color: #FFF; -webkit-transition: all 0.15s linear; transition: all 0.15s linear; } .dropify-wrapper .dropify-clear:hover { background: rgba(255, 255, 255, 0.2); } .dropify-wrapper .dropify-preview { display: none; position: absolute; z-index: 1; background-color: #FFF; padding: 5px; width: 100%; height: 100%; top: 0; right: 0; bottom: 0; left: 0; overflow: hidden; text-align: center; } .dropify-wrapper .dropify-preview .dropify-render img { top: 50%; -webkit-transform: translate(0, -50%); transform: translate(0, -50%); position: relative; max-width: 100%; max-height: 100%; background-color: #FFF; -webkit-transition: border-color 0.15s linear; transition: border-color 0.15s linear; } .dropify-wrapper .dropify-preview .dropify-render i { font-size: 70px; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); position: absolute; color: #777; } .dropify-wrapper .dropify-preview .dropify-render .dropify-extension { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); transform: translate(-50%, -50%); margin-top: 10px; text-transform: uppercase; font-weight: 900; letter-spacing: -0.03em; font-size: 13px; width: 42px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .dropify-wrapper .dropify-preview .dropify-infos { position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 3; background: rgba(0, 0, 0, 0.7); opacity: 0; -webkit-transition: opacity 0.15s linear; transition: opacity 0.15s linear; } .dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner { position: absolute; top: 50%; -webkit-transform: translate(0, -40%); transform: translate(0, -40%); -webkit-backface-visibility: hidden; backface-visibility: hidden; width: 100%; padding: 0 20px; -webkit-transition: all 0.2s ease; transition: all 0.2s ease; } .dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p { padding: 0; margin: 0; position: relative; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #FFF; text-align: center; line-height: 25px; font-weight: bold; } .dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message { margin-top: 15px; padding-top: 15px; font-size: 12px; position: relative; opacity: 0.5; } .dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message::before { content: ''; position: absolute; top: 0; left: 50%; -webkit-transform: translate(-50%, 0); transform: translate(-50%, 0); background: #FFF; width: 30px; height: 2px; } .dropify-wrapper:hover .dropify-clear { opacity: 1; } .dropify-wrapper:hover .dropify-preview .dropify-infos { opacity: 1; } .dropify-wrapper:hover .dropify-preview .dropify-infos .dropify-infos-inner { margin-top: -5px; } .dropify-wrapper.touch-fallback { height: auto !important; } .dropify-wrapper.touch-fallback:hover { background-image: none; -webkit-animation: none; animation: none; } .dropify-wrapper.touch-fallback .dropify-preview { position: relative; padding: 0; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-render { display: block; position: relative; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-render .dropify-font-file { position: relative; -webkit-transform: translate(0, 0); transform: translate(0, 0); top: 0; left: 0; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-render .dropify-font-file::before { margin-top: 30px; margin-bottom: 30px; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-render img { position: relative; -webkit-transform: translate(0, 0); transform: translate(0, 0); } .dropify-wrapper.touch-fallback .dropify-preview .dropify-infos { position: relative; opacity: 1; background: transparent; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner { position: relative; top: 0; -webkit-transform: translate(0, 0); transform: translate(0, 0); padding: 5px 90px 5px 0; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p { padding: 0; margin: 0; position: relative; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #777; text-align: left; line-height: 25px; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-filename { font-weight: bold; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message { margin-top: 0; padding-top: 0; font-size: 11px; position: relative; opacity: 1; } .dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message::before { display: none; } .dropify-wrapper.touch-fallback .dropify-message { -webkit-transform: translate(0, 0); transform: translate(0, 0); padding: 40px 0; } .dropify-wrapper.touch-fallback .dropify-clear { top: auto; bottom: 23px; opacity: 1; border-color: rgba(119, 119, 119, 0.7); color: #777; } .dropify-wrapper.touch-fallback.has-preview .dropify-message { display: none; } .dropify-wrapper.touch-fallback:hover .dropify-preview .dropify-infos .dropify-infos-inner { margin-top: 0; } .dropify-wrapper .dropify-loader { position: absolute; top: 15px; right: 15px; display: none; z-index: 9; } .dropify-wrapper .dropify-loader::after { display: block; position: relative; width: 20px; height: 20px; -webkit-animation: rotate 0.6s linear infinite; animation: rotate 0.6s linear infinite; border-radius: 100%; border-top: 1px solid #CCC; border-bottom: 1px solid #777; border-left: 1px solid #CCC; border-right: 1px solid #777; content: ''; } .dropify-wrapper .dropify-errors-container { position: absolute; left: 0; top: 0; right: 0; bottom: 0; z-index: 3; background: rgba(243, 65, 65, 0.8); text-align: left; visibility: hidden; opacity: 0; -webkit-transition: visibility 0s linear 0.15s,opacity 0.15s linear; transition: visibility 0s linear 0.15s,opacity 0.15s linear; } .dropify-wrapper .dropify-errors-container ul { padding: 10px 20px; margin: 0; position: absolute; left: 0; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .dropify-wrapper .dropify-errors-container ul li { margin-left: 20px; color: #FFF; font-weight: bold; } .dropify-wrapper .dropify-errors-container.visible { visibility: visible; opacity: 1; -webkit-transition-delay: 0s; transition-delay: 0s; } .dropify-wrapper ~ .dropify-errors-container ul { padding: 0; margin: 15px 0; } .dropify-wrapper ~ .dropify-errors-container ul li { margin-left: 20px; color: #F34141; font-weight: bold; } @-webkit-keyframes stripes { from { background-position: 0 0; } to { background-position: 60px 30px; } } @keyframes stripes { from { background-position: 0 0; } to { background-position: 60px 30px; } } @-webkit-keyframes rotate { 0% { -webkit-transform: rotateZ(-360deg); transform: rotateZ(-360deg); } 100% { -webkit-transform: rotateZ(0deg); transform: rotateZ(0deg); } } @keyframes rotate { 0% { -webkit-transform: rotateZ(-360deg); transform: rotateZ(-360deg); } 100% { -webkit-transform: rotateZ(0deg); transform: rotateZ(0deg); } } PK\?&&css/dropify.min.cssnu[@charset "UTF-8";/*! * ============================================================= * dropify v0.2.1 - Override your input files with style. * https://github.com/JeremyFagis/dropify * * (c) 2016 - Jeremy FAGIS (http://fagis.fr) * ============================================================= */@font-face{font-family:dropify;src:url(../fonts/dropify.eot);src:url(../fonts/dropify.eot#iefix) format("embedded-opentype"),url(../fonts/dropify.woff) format("woff"),url(../fonts/dropify.ttf) format("truetype"),url(../fonts/dropify.svg#dropify) format("svg");font-weight:400;font-style:normal}.dropify-font:before,.dropify-wrapper .dropify-message span.file-icon:before,.dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-filename span.file-icon:before,[class*=" dropify-font-"]:before,[class^=dropify-font-]:before{font-family:dropify;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-left:.2em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em}.dropify-wrapper,.dropify-wrapper .dropify-clear{font-family:Roboto,"Helvetica Neue",Helvetica,Arial}.dropify-wrapper.has-error .dropify-message .dropify-error,.dropify-wrapper.has-preview .dropify-clear{display:block}.dropify-font-upload:before,.dropify-wrapper .dropify-message span.file-icon:before{content:'\e800'}.dropify-font-file:before{content:'\e801'}.dropify-wrapper{display:block;position:relative;cursor:pointer;overflow:hidden;width:100%;max-width:100%;height:200px;padding:5px 10px;font-size:14px;line-height:22px;color:#777;background-color:#FFF;background-image:none;text-align:center;border:2px solid #E5E5E5;-webkit-transition:border-color .15s linear;transition:border-color .15s linear}.dropify-wrapper:hover{background-size:30px 30px;background-image:-webkit-linear-gradient(135deg,#F6F6F6 25%,transparent 25%,transparent 50%,#F6F6F6 50%,#F6F6F6 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,#F6F6F6 25%,transparent 25%,transparent 50%,#F6F6F6 50%,#F6F6F6 75%,transparent 75%,transparent);-webkit-animation:stripes 2s linear infinite;animation:stripes 2s linear infinite}.dropify-wrapper.has-error{border-color:#F34141}.dropify-wrapper.has-error:hover .dropify-errors-container{visibility:visible;opacity:1;-webkit-transition-delay:0s;transition-delay:0s}.dropify-wrapper.disabled input{cursor:not-allowed}.dropify-wrapper.disabled:hover{background-image:none;-webkit-animation:none;animation:none}.dropify-wrapper.disabled .dropify-message{opacity:.5;text-decoration:line-through}.dropify-wrapper.disabled .dropify-infos-message{display:none}.dropify-wrapper input{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer;z-index:5}.dropify-wrapper .dropify-message{position:relative;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.dropify-wrapper .dropify-message span.file-icon{font-size:50px;color:#CCC}.dropify-wrapper .dropify-message p{margin:5px 0 0}.dropify-wrapper .dropify-message p.dropify-error{color:#F34141;font-weight:700;display:none}.dropify-wrapper .dropify-clear{display:none;position:absolute;opacity:0;z-index:7;top:10px;right:10px;background:0 0;border:2px solid #FFF;text-transform:uppercase;font-size:11px;padding:4px 8px;font-weight:700;color:#FFF;-webkit-transition:all .15s linear;transition:all .15s linear}.dropify-wrapper .dropify-clear:hover{background:rgba(255,255,255,.2)}.dropify-wrapper .dropify-preview{display:none;position:absolute;z-index:1;background-color:#FFF;padding:5px;width:100%;height:100%;top:0;right:0;bottom:0;left:0;overflow:hidden;text-align:center}.dropify-wrapper .dropify-preview .dropify-render img{top:50%;-webkit-transform:translate(0,-50%);transform:translate(0,-50%);position:relative;max-width:100%;max-height:100%;background-color:#FFF;-webkit-transition:border-color .15s linear;transition:border-color .15s linear}.dropify-wrapper .dropify-preview .dropify-render i{font-size:70px;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);position:absolute;color:#777}.dropify-wrapper .dropify-preview .dropify-render .dropify-extension{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);margin-top:10px;text-transform:uppercase;font-weight:900;letter-spacing:-.03em;font-size:13px;width:42px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropify-wrapper .dropify-preview .dropify-infos{position:absolute;left:0;top:0;right:0;bottom:0;z-index:3;background:rgba(0,0,0,.7);opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner{position:absolute;top:50%;-webkit-transform:translate(0,-40%);transform:translate(0,-40%);-webkit-backface-visibility:hidden;backface-visibility:hidden;width:100%;padding:0 20px;-webkit-transition:all .2s ease;transition:all .2s ease}.dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p{padding:0;margin:0;position:relative;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#FFF;text-align:center;line-height:25px;font-weight:700}.dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-filename span.file-icon{margin-right:2px}.dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message{margin-top:15px;padding-top:15px;font-size:12px;position:relative;opacity:.5}.dropify-wrapper .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message::before{content:'';position:absolute;top:0;left:50%;-webkit-transform:translate(-50%,0);transform:translate(-50%,0);background:#FFF;width:30px;height:2px}.dropify-wrapper:hover .dropify-clear,.dropify-wrapper:hover .dropify-preview .dropify-infos{opacity:1}.dropify-wrapper:hover .dropify-preview .dropify-infos .dropify-infos-inner{margin-top:-5px}.dropify-wrapper.touch-fallback{height:auto!important}.dropify-wrapper.touch-fallback:hover{background-image:none;-webkit-animation:none;animation:none}.dropify-wrapper.touch-fallback .dropify-preview{position:relative;padding:0}.dropify-wrapper.touch-fallback .dropify-preview .dropify-render{display:block;position:relative}.dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message::before,.dropify-wrapper.touch-fallback.has-preview .dropify-message{display:none}.dropify-wrapper.touch-fallback .dropify-preview .dropify-render .dropify-font-file{position:relative;-webkit-transform:translate(0,0);transform:translate(0,0);top:0;left:0}.dropify-wrapper.touch-fallback .dropify-preview .dropify-render .dropify-font-file::before{margin-top:30px;margin-bottom:30px}.dropify-wrapper.touch-fallback .dropify-preview .dropify-render img{position:relative;-webkit-transform:translate(0,0);transform:translate(0,0)}.dropify-wrapper.touch-fallback .dropify-preview .dropify-infos{position:relative;opacity:1;background:0 0}.dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner{position:relative;top:0;-webkit-transform:translate(0,0);transform:translate(0,0);padding:5px 90px 5px 0}.dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p{padding:0;margin:0;position:relative;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#777;text-align:left;line-height:25px}.dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-filename{font-weight:700}.dropify-wrapper.touch-fallback .dropify-preview .dropify-infos .dropify-infos-inner p.dropify-infos-message{margin-top:0;padding-top:0;font-size:11px;position:relative;opacity:1}.dropify-wrapper.touch-fallback .dropify-message{-webkit-transform:translate(0,0);transform:translate(0,0);padding:40px 0}.dropify-wrapper.touch-fallback .dropify-clear{top:auto;bottom:23px;opacity:1;border-color:rgba(119,119,119,.7);color:#777}.dropify-wrapper.touch-fallback:hover .dropify-preview .dropify-infos .dropify-infos-inner{margin-top:0}.dropify-wrapper .dropify-loader{position:absolute;top:15px;right:15px;display:none;z-index:9}.dropify-wrapper .dropify-loader::after{display:block;position:relative;width:20px;height:20px;-webkit-animation:rotate .6s linear infinite;animation:rotate .6s linear infinite;border-radius:100%;border-top:1px solid #CCC;border-bottom:1px solid #777;border-left:1px solid #CCC;border-right:1px solid #777;content:''}.dropify-wrapper .dropify-errors-container{position:absolute;left:0;top:0;right:0;bottom:0;z-index:3;background:rgba(243,65,65,.8);text-align:left;visibility:hidden;opacity:0;-webkit-transition:visibility 0s linear .15s,opacity .15s linear;transition:visibility 0s linear .15s,opacity .15s linear}.dropify-wrapper .dropify-errors-container ul{padding:10px 20px;margin:0;position:absolute;left:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.dropify-wrapper .dropify-errors-container ul li{margin-left:20px;color:#FFF;font-weight:700}.dropify-wrapper .dropify-errors-container.visible{visibility:visible;opacity:1;-webkit-transition-delay:0s;transition-delay:0s}.dropify-wrapper~.dropify-errors-container ul{padding:0;margin:15px 0}.dropify-wrapper~.dropify-errors-container ul li{margin-left:20px;color:#F34141;font-weight:700}@-webkit-keyframes stripes{from{background-position:0 0}to{background-position:60px 30px}}@keyframes stripes{from{background-position:0 0}to{background-position:60px 30px}}@-webkit-keyframes rotate{0%{-webkit-transform:rotateZ(-360deg);transform:rotateZ(-360deg)}100%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}}@keyframes rotate{0%{-webkit-transform:rotateZ(-360deg);transform:rotateZ(-360deg)}100%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}}PK\Č/^^ css/demo.cssnu[/*! * ============================================================= * dropify v0.2.2 - Override your input files with style. * https://github.com/JeremyFagis/dropify * * (c) 2017 - Jeremy FAGIS (http://fagis.fr) * ============================================================= */ * { box-sizing: border-box; outline: none; } *, *::before, *::after, *:before, *:after { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /*! normalize.css v1.1.3 | MIT License | git.io/normalize */ /* ========================================================================== HTML5 display definitions ========================================================================== */ /** * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3. */ article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; } /** * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. */ audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } /** * Prevent modern browsers from displaying `audio` without controls. * Remove excess height in iOS 5 devices. */ audio:not([controls]) { display: none; height: 0; } /** * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. * Known issue: no IE 6 support. */ [hidden] { display: none; } /* ========================================================================== Base ========================================================================== */ /** * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using * `em` units. * 2. Prevent iOS text size adjust after orientation change, without disabling * user zoom. */ html { font-size: 100%; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } /** * Address `font-family` inconsistency between `textarea` and other form * elements. */ html, button, input, select, textarea { font-family: sans-serif; } /** * Address margins handled incorrectly in IE 6/7. */ body { margin: 0; } /* ========================================================================== Links ========================================================================== */ /** * Address `outline` inconsistency between Chrome and other browsers. */ a:focus { outline: thin dotted; } /** * Improve readability when focused and also mouse hovered in all browsers. */ a:active, a:hover { outline: 0; } /* ========================================================================== Typography ========================================================================== */ /** * Address font sizes and margins set differently in IE 6/7. * Address font sizes within `section` and `article` in Firefox 4+, Safari 5, * and Chrome. */ h1 { font-size: 2em; margin: 0.67em 0; } h2 { font-size: 1.5em; margin: 0.83em 0; } h3 { font-size: 1.17em; margin: 1em 0; } h4 { font-size: 1em; margin: 1.33em 0; } h5 { font-size: 0.83em; margin: 1.67em 0; } h6 { font-size: 0.67em; margin: 2.33em 0; } /** * Address styling not present in IE 7/8/9, Safari 5, and Chrome. */ abbr[title] { border-bottom: 1px dotted; } /** * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome. */ b, strong { font-weight: bold; } blockquote { margin: 1em 40px; } /** * Address styling not present in Safari 5 and Chrome. */ dfn { font-style: italic; } /** * Address differences between Firefox and other browsers. * Known issue: no IE 6/7 normalization. */ hr { box-sizing: content-box; height: 0; } /** * Address styling not present in IE 6/7/8/9. */ mark { background: #ff0; color: #000; } /** * Address margins set differently in IE 6/7. */ p, pre { margin: 1em 0; } /** * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. */ code, kbd, pre, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; } /** * Improve readability of pre-formatted text in all browsers. */ pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } /** * Address CSS quotes not supported in IE 6/7. */ q { quotes: none; } /** * Address `quotes` property not supported in Safari 4. */ q:before, q:after { content: ''; content: none; } /** * Address inconsistent and variable font size in all browsers. */ small { font-size: 80%; } /** * Prevent `sub` and `sup` affecting `line-height` in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ========================================================================== Lists ========================================================================== */ /** * Address margins set differently in IE 6/7. */ dl, menu, ol, ul { margin: 1em 0; } dd { margin: 0 0 0 40px; } /** * Address paddings set differently in IE 6/7. */ menu, ol, ul { padding: 0 0 0 40px; } /** * Correct list images handled incorrectly in IE 7. */ nav ul, nav ol { list-style: none; list-style-image: none; } /* ========================================================================== Embedded content ========================================================================== */ /** * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. * 2. Improve image quality when scaled in IE 7. */ img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; /* 2 */ } /** * Correct overflow displayed oddly in IE 9. */ svg:not(:root) { overflow: hidden; } /* ========================================================================== Figures ========================================================================== */ /** * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. */ figure { margin: 0; } /* ========================================================================== Forms ========================================================================== */ /** * Correct margin displayed oddly in IE 6/7. */ form { margin: 0; } /** * Define consistent border, margin, and padding. */ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } /** * 1. Correct color not being inherited in IE 6/7/8/9. * 2. Correct text not wrapping in Firefox 3. * 3. Correct alignment displayed oddly in IE 6/7. */ legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; /* 3 */ } /** * 1. Correct font size not being inherited in all browsers. * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, * and Chrome. * 3. Improve appearance and consistency in all browsers. */ button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; /* 3 */ } /** * Address Firefox 3+ setting `line-height` on `input` using `!important` in * the UA stylesheet. */ button, input { line-height: normal; } /** * Address inconsistent `text-transform` inheritance for `button` and `select`. * All other form control elements do not inherit `text-transform` values. * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. * Correct `select` style inheritance in Firefox 4+ and Opera. */ button, select { text-transform: none; } /** * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` * and `video` controls. * 2. Correct inability to style clickable `input` types in iOS. * 3. Improve usability and consistency of cursor style between image-type * `input` and others. * 4. Remove inner spacing in IE 7 without affecting normal text inputs. * Known issue: inner spacing remains in IE 6. */ button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ *overflow: visible; /* 4 */ } /** * Re-set default cursor for disabled elements. */ button[disabled], html input[disabled] { cursor: default; } /** * 1. Address box sizing set to content-box in IE 8/9. * 2. Remove excess padding in IE 8/9. * 3. Remove excess padding in IE 7. * Known issue: excess padding remains in IE 6. */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; /* 3 */ } /** * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome * (include `-moz` to future-proof). */ input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } /** * Remove inner padding and search cancel button in Safari 5 and Chrome * on OS X. */ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** * Remove inner padding and border in Firefox 3+. */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /** * 1. Remove default vertical scrollbar in IE 6/7/8/9. * 2. Improve readability and alignment in all browsers. */ textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } /* ========================================================================== Tables ========================================================================== */ /** * Remove most spacing between table cells. */ table { border-collapse: collapse; border-spacing: 0; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .pull-right { float: right !important; } .pull-left { float: left !important; } .hidden { display: none; } .hide-text { font: 0/0 a; color: transparent; text-shadow: none; background-color: transparent; border: 0; } .strong, .bold { font-weight: 700; } .italic { font-style: italic; } .clearfix { *zoom: 1; } .clearfix:before, .clearfix:after { display: table; content: ""; } .clearfix:after { clear: both; } hr { margin-top: 27px; margin-bottom: 27px; border: 0; border-top: 1px solid #CCC; } hr.big { border-top: 2px solid #DDD; margin-top: 54px; margin-bottom: 54px; } .container { width: 100%; max-width: 1140px; margin-right: auto; margin-left: auto; padding-left: 15px; padding-right: 15px; *zoom: 1; } .container:before, .container:after { display: table; content: ""; } .container:after { clear: both; } .row { margin-left: -15px; margin-right: -15px; *zoom: 1; } .row:before, .row:after { display: table; content: ""; } .row:after { clear: both; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { position: relative; min-height: 1px; padding-left: 15px; padding-right: 15px; padding-bottom: 30px; } .col-xs-1.no-padding-bottom, .col-xs-1.no-pb, .col-xs-2.no-padding-bottom, .col-xs-2.no-pb, .col-xs-3.no-padding-bottom, .col-xs-3.no-pb, .col-xs-4.no-padding-bottom, .col-xs-4.no-pb, .col-xs-5.no-padding-bottom, .col-xs-5.no-pb, .col-xs-6.no-padding-bottom, .col-xs-6.no-pb, .col-xs-7.no-padding-bottom, .col-xs-7.no-pb, .col-xs-8.no-padding-bottom, .col-xs-8.no-pb, .col-xs-9.no-padding-bottom, .col-xs-9.no-pb, .col-xs-10.no-padding-bottom, .col-xs-10.no-pb, .col-xs-11.no-padding-bottom, .col-xs-11.no-pb, .col-xs-12.no-padding-bottom, .col-xs-12.no-pb, .col-sm-1.no-padding-bottom, .col-sm-1.no-pb, .col-sm-2.no-padding-bottom, .col-sm-2.no-pb, .col-sm-3.no-padding-bottom, .col-sm-3.no-pb, .col-sm-4.no-padding-bottom, .col-sm-4.no-pb, .col-sm-5.no-padding-bottom, .col-sm-5.no-pb, .col-sm-6.no-padding-bottom, .col-sm-6.no-pb, .col-sm-7.no-padding-bottom, .col-sm-7.no-pb, .col-sm-8.no-padding-bottom, .col-sm-8.no-pb, .col-sm-9.no-padding-bottom, .col-sm-9.no-pb, .col-sm-10.no-padding-bottom, .col-sm-10.no-pb, .col-sm-11.no-padding-bottom, .col-sm-11.no-pb, .col-sm-12.no-padding-bottom, .col-sm-12.no-pb, .col-md-1.no-padding-bottom, .col-md-1.no-pb, .col-md-2.no-padding-bottom, .col-md-2.no-pb, .col-md-3.no-padding-bottom, .col-md-3.no-pb, .col-md-4.no-padding-bottom, .col-md-4.no-pb, .col-md-5.no-padding-bottom, .col-md-5.no-pb, .col-md-6.no-padding-bottom, .col-md-6.no-pb, .col-md-7.no-padding-bottom, .col-md-7.no-pb, .col-md-8.no-padding-bottom, .col-md-8.no-pb, .col-md-9.no-padding-bottom, .col-md-9.no-pb, .col-md-10.no-padding-bottom, .col-md-10.no-pb, .col-md-11.no-padding-bottom, .col-md-11.no-pb, .col-md-12.no-padding-bottom, .col-md-12.no-pb, .col-lg-1.no-padding-bottom, .col-lg-1.no-pb, .col-lg-2.no-padding-bottom, .col-lg-2.no-pb, .col-lg-3.no-padding-bottom, .col-lg-3.no-pb, .col-lg-4.no-padding-bottom, .col-lg-4.no-pb, .col-lg-5.no-padding-bottom, .col-lg-5.no-pb, .col-lg-6.no-padding-bottom, .col-lg-6.no-pb, .col-lg-7.no-padding-bottom, .col-lg-7.no-pb, .col-lg-8.no-padding-bottom, .col-lg-8.no-pb, .col-lg-9.no-padding-bottom, .col-lg-9.no-pb, .col-lg-10.no-padding-bottom, .col-lg-10.no-pb, .col-lg-11.no-padding-bottom, .col-lg-11.no-pb, .col-lg-12.no-padding-bottom, .col-lg-12.no-pb { padding-bottom: 0; } .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11 { float: left; } .col-xs-1 { width: 8.33333%; } .col-xs-2 { width: 16.66667%; } .col-xs-3 { width: 25%; } .col-xs-4 { width: 33.33333%; } .col-xs-5 { width: 41.66667%; } .col-xs-6 { width: 50%; } .col-xs-7 { width: 58.33333%; } .col-xs-8 { width: 66.66667%; } .col-xs-9 { width: 75%; } .col-xs-10 { width: 83.33333%; } .col-xs-11 { width: 91.66667%; } .col-xs-12 { width: 100%; } @media (min-width: 768px) { .col-sm-1 { float: left; } .col-sm-1 { width: 8.33333%; } .col-sm-push-1 { left: 8.33333%; } .col-sm-pull-1 { right: 8.33333%; } .col-sm-offset-1 { margin-left: 8.33333%; } .col-sm-2 { float: left; } .col-sm-2 { width: 16.66667%; } .col-sm-push-2 { left: 16.66667%; } .col-sm-pull-2 { right: 16.66667%; } .col-sm-offset-2 { margin-left: 16.66667%; } .col-sm-3 { float: left; } .col-sm-3 { width: 25%; } .col-sm-push-3 { left: 25%; } .col-sm-pull-3 { right: 25%; } .col-sm-offset-3 { margin-left: 25%; } .col-sm-4 { float: left; } .col-sm-4 { width: 33.33333%; } .col-sm-push-4 { left: 33.33333%; } .col-sm-pull-4 { right: 33.33333%; } .col-sm-offset-4 { margin-left: 33.33333%; } .col-sm-5 { float: left; } .col-sm-5 { width: 41.66667%; } .col-sm-push-5 { left: 41.66667%; } .col-sm-pull-5 { right: 41.66667%; } .col-sm-offset-5 { margin-left: 41.66667%; } .col-sm-6 { float: left; } .col-sm-6 { width: 50%; } .col-sm-push-6 { left: 50%; } .col-sm-pull-6 { right: 50%; } .col-sm-offset-6 { margin-left: 50%; } .col-sm-7 { float: left; } .col-sm-7 { width: 58.33333%; } .col-sm-push-7 { left: 58.33333%; } .col-sm-pull-7 { right: 58.33333%; } .col-sm-offset-7 { margin-left: 58.33333%; } .col-sm-8 { float: left; } .col-sm-8 { width: 66.66667%; } .col-sm-push-8 { left: 66.66667%; } .col-sm-pull-8 { right: 66.66667%; } .col-sm-offset-8 { margin-left: 66.66667%; } .col-sm-9 { float: left; } .col-sm-9 { width: 75%; } .col-sm-push-9 { left: 75%; } .col-sm-pull-9 { right: 75%; } .col-sm-offset-9 { margin-left: 75%; } .col-sm-10 { float: left; } .col-sm-10 { width: 83.33333%; } .col-sm-push-10 { left: 83.33333%; } .col-sm-pull-10 { right: 83.33333%; } .col-sm-offset-10 { margin-left: 83.33333%; } .col-sm-11 { float: left; } .col-sm-11 { width: 91.66667%; } .col-sm-push-11 { left: 91.66667%; } .col-sm-pull-11 { right: 91.66667%; } .col-sm-offset-11 { margin-left: 91.66667%; } .col-sm-push-0 { left: auto; } .col-sm-pull-0 { right: auto; } .col-sm-offset-0 { margin-left: 0; } .col-sm-12 { width: 100%; } } @media (min-width: 992px) { .col-md-1 { float: left; } .col-md-1 { width: 8.33333%; } .col-md-push-1 { left: 8.33333%; } .col-md-pull-1 { right: 8.33333%; } .col-md-offset-1 { margin-left: 8.33333%; } .col-md-2 { float: left; } .col-md-2 { width: 16.66667%; } .col-md-push-2 { left: 16.66667%; } .col-md-pull-2 { right: 16.66667%; } .col-md-offset-2 { margin-left: 16.66667%; } .col-md-3 { float: left; } .col-md-3 { width: 25%; } .col-md-push-3 { left: 25%; } .col-md-pull-3 { right: 25%; } .col-md-offset-3 { margin-left: 25%; } .col-md-4 { float: left; } .col-md-4 { width: 33.33333%; } .col-md-push-4 { left: 33.33333%; } .col-md-pull-4 { right: 33.33333%; } .col-md-offset-4 { margin-left: 33.33333%; } .col-md-5 { float: left; } .col-md-5 { width: 41.66667%; } .col-md-push-5 { left: 41.66667%; } .col-md-pull-5 { right: 41.66667%; } .col-md-offset-5 { margin-left: 41.66667%; } .col-md-6 { float: left; } .col-md-6 { width: 50%; } .col-md-push-6 { left: 50%; } .col-md-pull-6 { right: 50%; } .col-md-offset-6 { margin-left: 50%; } .col-md-7 { float: left; } .col-md-7 { width: 58.33333%; } .col-md-push-7 { left: 58.33333%; } .col-md-pull-7 { right: 58.33333%; } .col-md-offset-7 { margin-left: 58.33333%; } .col-md-8 { float: left; } .col-md-8 { width: 66.66667%; } .col-md-push-8 { left: 66.66667%; } .col-md-pull-8 { right: 66.66667%; } .col-md-offset-8 { margin-left: 66.66667%; } .col-md-9 { float: left; } .col-md-9 { width: 75%; } .col-md-push-9 { left: 75%; } .col-md-pull-9 { right: 75%; } .col-md-offset-9 { margin-left: 75%; } .col-md-10 { float: left; } .col-md-10 { width: 83.33333%; } .col-md-push-10 { left: 83.33333%; } .col-md-pull-10 { right: 83.33333%; } .col-md-offset-10 { margin-left: 83.33333%; } .col-md-11 { float: left; } .col-md-11 { width: 91.66667%; } .col-md-push-11 { left: 91.66667%; } .col-md-pull-11 { right: 91.66667%; } .col-md-offset-11 { margin-left: 91.66667%; } .col-md-push-0 { left: auto; } .col-md-pull-0 { right: auto; } .col-md-offset-0 { margin-left: 0; } .col-md-12 { width: 100%; } } @media (min-width: 1140px) { .col-lg-1 { float: left; } .col-lg-1 { width: 8.33333%; } .col-lg-push-1 { left: 8.33333%; } .col-lg-pull-1 { right: 8.33333%; } .col-lg-offset-1 { margin-left: 8.33333%; } .col-lg-2 { float: left; } .col-lg-2 { width: 16.66667%; } .col-lg-push-2 { left: 16.66667%; } .col-lg-pull-2 { right: 16.66667%; } .col-lg-offset-2 { margin-left: 16.66667%; } .col-lg-3 { float: left; } .col-lg-3 { width: 25%; } .col-lg-push-3 { left: 25%; } .col-lg-pull-3 { right: 25%; } .col-lg-offset-3 { margin-left: 25%; } .col-lg-4 { float: left; } .col-lg-4 { width: 33.33333%; } .col-lg-push-4 { left: 33.33333%; } .col-lg-pull-4 { right: 33.33333%; } .col-lg-offset-4 { margin-left: 33.33333%; } .col-lg-5 { float: left; } .col-lg-5 { width: 41.66667%; } .col-lg-push-5 { left: 41.66667%; } .col-lg-pull-5 { right: 41.66667%; } .col-lg-offset-5 { margin-left: 41.66667%; } .col-lg-6 { float: left; } .col-lg-6 { width: 50%; } .col-lg-push-6 { left: 50%; } .col-lg-pull-6 { right: 50%; } .col-lg-offset-6 { margin-left: 50%; } .col-lg-7 { float: left; } .col-lg-7 { width: 58.33333%; } .col-lg-push-7 { left: 58.33333%; } .col-lg-pull-7 { right: 58.33333%; } .col-lg-offset-7 { margin-left: 58.33333%; } .col-lg-8 { float: left; } .col-lg-8 { width: 66.66667%; } .col-lg-push-8 { left: 66.66667%; } .col-lg-pull-8 { right: 66.66667%; } .col-lg-offset-8 { margin-left: 66.66667%; } .col-lg-9 { float: left; } .col-lg-9 { width: 75%; } .col-lg-push-9 { left: 75%; } .col-lg-pull-9 { right: 75%; } .col-lg-offset-9 { margin-left: 75%; } .col-lg-10 { float: left; } .col-lg-10 { width: 83.33333%; } .col-lg-push-10 { left: 83.33333%; } .col-lg-pull-10 { right: 83.33333%; } .col-lg-offset-10 { margin-left: 83.33333%; } .col-lg-11 { float: left; } .col-lg-11 { width: 91.66667%; } .col-lg-push-11 { left: 91.66667%; } .col-lg-pull-11 { right: 91.66667%; } .col-lg-offset-11 { margin-left: 91.66667%; } .col-lg-push-0 { left: auto; } .col-lg-pull-0 { right: auto; } .col-lg-offset-0 { margin-left: 0; } .col-lg-12 { width: 100%; } } a, a:visited { color: #666; text-decoration: none; } a:hover { text-decoration: underline; } h1, h2, h3, h4 { font-family: "Roboto Condensed", "Helvetica Neue", "Helvetica"; font-weight: 400; line-height: 1.4; color: #444; letter-spacing: -0.04em; } h1 small, h1 .small, h2 small, h2 .small, h3 small, h3 .small, h4 small, h4 .small { font-weight: normal; line-height: 1; color: #b3b3b3; } h1 a, h2 a, h3 a, h4 a { color: #444; } h1, h2, h3, h4 { margin-top: 20px; margin-bottom: 10px; } h1 small, h1 .small, h2 small, h2 .small, h3 small, h3 .small, h4 small, h4 .small { font-size: 65%; } h1 { font-size: 30px; text-transform: uppercase; text-align: center; margin-bottom: 25px; position: relative; padding: 0 0 20px 0; } h1::after { content: ''; position: absolute; width: 60px; height: 3px; background-color: #444; left: 50%; -webkit-transform: translateX(-50%); transform: translateX(-50%); bottom: 0; } h2 { font-size: 26px; margin-bottom: 20px; } h3 { font-size: 24px; } h4 { font-size: 20px; } body { background: #F8F8F8; font-family: "Roboto", "Helvetica Neue", "Helvetica"; font-size: 15px; line-height: 27px; color: #666; } header#header { background: #1C252C; color: #FFD270; font-family: "Roboto Condensed", "Helvetica Neue", "Helvetica"; font-weight: 700; letter-spacing: -0.04em; text-align: center; font-size: 70px; line-height: 60px; padding: 50px 30px; margin: 0 0 30px 0; } header#header h1 { color: #FFD270; font-size: 70px; line-height: 90px; font-weight: 700; } header#header h1::after { background: rgba(255, 210, 112, 0.75); } header#header h2 { color: rgba(255, 210, 112, 0.5); } footer#footer { background: #DDD; color: #888; padding: 30px 0; margin-top: 30px; } footer#footer a, footer#footer a:visited { color: #888; } label { font-weight: bold; display: block; margin-bottom: 5px; } p.help { color: #999; } #toggleDropify { font-size: 12px; text-transform: uppercase; background: #DDD; color: #888; font-weight: bold; border: 0; padding: 6px 10px; border-radius: 4px; margin-left: 10px; -webkit-transition: background 0.1s linear; transition: background 0.1s linear; } #toggleDropify:hover { background: #EEE; } @media (max-width: 480px) { header#header { padding: 30px 15px; } header#header h1 { font-size: 44px; line-height: 70px; padding-bottom: 15px; margin-bottom: 15px; } header#header h2 { font-size: 20px; } } PK\ߧ9CC js/dropify.jsnu[/*! * ============================================================= * dropify v0.2.2 - Override your input files with style. * https://github.com/JeremyFagis/dropify * * (c) 2017 - Jeremy FAGIS (http://fagis.fr) * ============================================================= */ ;(function(root, factory) { if (typeof define === 'function' && define.amd) { define(['jquery'], factory); } else if (typeof exports === 'object') { module.exports = factory(require('jquery')); } else { root.Dropify = factory(root.jQuery); } }(this, function($) { var pluginName = "dropify"; /** * Dropify plugin * * @param {Object} element * @param {Array} options */ function Dropify(element, options) { if (!(window.File && window.FileReader && window.FileList && window.Blob)) { return; } var defaults = { defaultFile: '', maxFileSize: 0, minWidth: 0, maxWidth: 0, minHeight: 0, maxHeight: 0, showRemove: true, showLoader: true, showErrors: true, errorTimeout: 3000, errorsPosition: 'overlay', imgFileExtensions: ['png', 'jpg', 'jpeg', 'gif', 'bmp'], maxFileSizePreview: "5M", allowedFormats: ['portrait', 'square', 'landscape'], allowedFileExtensions: ['*'], messages: { 'default': 'Drag and drop a file here or click', 'replace': 'Drag and drop or click to replace', 'remove': 'Remove', 'error': 'Ooops, something wrong happended.' }, error: { 'fileSize': 'The file size is too big ({{ value }} max).', 'minWidth': 'The image width is too small ({{ value }}}px min).', 'maxWidth': 'The image width is too big ({{ value }}}px max).', 'minHeight': 'The image height is too small ({{ value }}}px min).', 'maxHeight': 'The image height is too big ({{ value }}px max).', 'imageFormat': 'The image format is not allowed ({{ value }} only).', 'fileExtension': 'The file is not allowed ({{ value }} only).' }, tpl: { wrap: '
', loader: '
', message: '

{{ default }}

', preview: '

{{ replace }}

', filename: '

', clearButton: '', errorLine: '

{{ error }}

', errorsContainer: '
    ' } }; this.element = element; this.input = $(this.element); this.wrapper = null; this.preview = null; this.filenameWrapper = null; this.settings = $.extend(true, defaults, options, this.input.data()); this.errorsEvent = $.Event('dropify.errors'); this.isDisabled = false; this.isInit = false; this.file = { object: null, name: null, size: null, width: null, height: null, type: null }; if (!Array.isArray(this.settings.allowedFormats)) { this.settings.allowedFormats = this.settings.allowedFormats.split(' '); } if (!Array.isArray(this.settings.allowedFileExtensions)) { this.settings.allowedFileExtensions = this.settings.allowedFileExtensions.split(' '); } this.onChange = this.onChange.bind(this); this.clearElement = this.clearElement.bind(this); this.onFileReady = this.onFileReady.bind(this); this.translateMessages(); this.createElements(); this.setContainerSize(); this.errorsEvent.errors = []; this.input.on('change', this.onChange); } /** * On change event */ Dropify.prototype.onChange = function() { this.resetPreview(); this.readFile(this.element); }; /** * Create dom elements */ Dropify.prototype.createElements = function() { this.isInit = true; this.input.wrap($(this.settings.tpl.wrap)); this.wrapper = this.input.parent(); var messageWrapper = $(this.settings.tpl.message).insertBefore(this.input); $(this.settings.tpl.errorLine).appendTo(messageWrapper); if (this.isTouchDevice() === true) { this.wrapper.addClass('touch-fallback'); } if (this.input.attr('disabled')) { this.isDisabled = true; this.wrapper.addClass('disabled'); } if (this.settings.showLoader === true) { this.loader = $(this.settings.tpl.loader); this.loader.insertBefore(this.input); } this.preview = $(this.settings.tpl.preview); this.preview.insertAfter(this.input); if (this.isDisabled === false && this.settings.showRemove === true) { this.clearButton = $(this.settings.tpl.clearButton); this.clearButton.insertAfter(this.input); this.clearButton.on('click', this.clearElement); } this.filenameWrapper = $(this.settings.tpl.filename); this.filenameWrapper.prependTo(this.preview.find('.dropify-infos-inner')); if (this.settings.showErrors === true) { this.errorsContainer = $(this.settings.tpl.errorsContainer); if (this.settings.errorsPosition === 'outside') { this.errorsContainer.insertAfter(this.wrapper); } else { this.errorsContainer.insertBefore(this.input); } } var defaultFile = this.settings.defaultFile || ''; if (defaultFile.trim() !== '') { this.file.name = this.cleanFilename(defaultFile); this.setPreview(this.isImage(), defaultFile); } }; /** * Read the file using FileReader * * @param {Object} input */ Dropify.prototype.readFile = function(input) { if (input.files && input.files[0]) { var reader = new FileReader(); var image = new Image(); var file = input.files[0]; var srcBase64 = null; var _this = this; var eventFileReady = $.Event("dropify.fileReady"); this.clearErrors(); this.showLoader(); this.setFileInformations(file); this.errorsEvent.errors = []; this.checkFileSize(); this.isFileExtensionAllowed(); if (this.isImage() && this.file.size < this.sizeToByte(this.settings.maxFileSizePreview)) { this.input.on('dropify.fileReady', this.onFileReady); reader.readAsDataURL(file); reader.onload = function(_file) { srcBase64 = _file.target.result; image.src = _file.target.result; image.onload = function() { _this.setFileDimensions(this.width, this.height); _this.validateImage(); _this.input.trigger(eventFileReady, [true, srcBase64]); }; }.bind(this); } else { this.onFileReady(false); } } }; /** * On file ready to show * * @param {Event} event * @param {Bool} previewable * @param {String} src */ Dropify.prototype.onFileReady = function(event, previewable, src) { this.input.off('dropify.fileReady', this.onFileReady); if (this.errorsEvent.errors.length === 0) { this.setPreview(previewable, src); } else { this.input.trigger(this.errorsEvent, [this]); for (var i = this.errorsEvent.errors.length - 1; i >= 0; i--) { var errorNamespace = this.errorsEvent.errors[i].namespace; var errorKey = errorNamespace.split('.').pop(); this.showError(errorKey); } if (typeof this.errorsContainer !== "undefined") { this.errorsContainer.addClass('visible'); var errorsContainer = this.errorsContainer; setTimeout(function(){ errorsContainer.removeClass('visible'); }, this.settings.errorTimeout); } this.wrapper.addClass('has-error'); this.resetPreview(); this.clearElement(); } }; /** * Set file informations * * @param {File} file */ Dropify.prototype.setFileInformations = function(file) { this.file.object = file; this.file.name = file.name; this.file.size = file.size; this.file.type = file.type; this.file.width = null; this.file.height = null; }; /** * Set file dimensions * * @param {Int} width * @param {Int} height */ Dropify.prototype.setFileDimensions = function(width, height) { this.file.width = width; this.file.height = height; }; /** * Set the preview and animate it * * @param {String} src */ Dropify.prototype.setPreview = function(previewable, src) { this.wrapper.removeClass('has-error').addClass('has-preview'); this.filenameWrapper.children('.dropify-filename-inner').html(this.file.name); var render = this.preview.children('.dropify-render'); this.hideLoader(); if (previewable === true) { var imgTag = $('').attr('src', src); if (this.settings.height) { imgTag.css("max-height", this.settings.height); } imgTag.appendTo(render); } else { $('').attr('class', 'dropify-font-file').appendTo(render); $('').html(this.getFileType()).appendTo(render); } this.preview.fadeIn(); }; /** * Reset the preview */ Dropify.prototype.resetPreview = function() { this.wrapper.removeClass('has-preview'); var render = this.preview.children('.dropify-render'); render.find('.dropify-extension').remove(); render.find('i').remove(); render.find('img').remove(); this.preview.hide(); this.hideLoader(); }; /** * Clean the src and get the filename * * @param {String} src * * @return {String} filename */ Dropify.prototype.cleanFilename = function(src) { var filename = src.split('\\').pop(); if (filename == src) { filename = src.split('/').pop(); } return src !== "" ? filename : ''; }; /** * Clear the element, events are available */ Dropify.prototype.clearElement = function() { if (this.errorsEvent.errors.length === 0) { var eventBefore = $.Event("dropify.beforeClear"); this.input.trigger(eventBefore, [this]); if (eventBefore.result !== false) { this.resetFile(); this.input.val(''); this.resetPreview(); this.input.trigger($.Event("dropify.afterClear"), [this]); } } else { this.resetFile(); this.input.val(''); this.resetPreview(); } }; /** * Reset file informations */ Dropify.prototype.resetFile = function() { this.file.object = null; this.file.name = null; this.file.size = null; this.file.type = null; this.file.width = null; this.file.height = null; }; /** * Set the container height */ Dropify.prototype.setContainerSize = function() { if (this.settings.height) { this.wrapper.height(this.settings.height); } }; /** * Test if it's touch screen * * @return {Boolean} */ Dropify.prototype.isTouchDevice = function() { return (('ontouchstart' in window) || (navigator.MaxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0)); }; /** * Get the file type. * * @return {String} */ Dropify.prototype.getFileType = function() { return this.file.name.split('.').pop().toLowerCase(); }; /** * Test if the file is an image * * @return {Boolean} */ Dropify.prototype.isImage = function() { if (this.settings.imgFileExtensions.indexOf(this.getFileType()) != "-1") { return true; } return false; }; /** * Test if the file extension is allowed * * @return {Boolean} */ Dropify.prototype.isFileExtensionAllowed = function () { if (this.settings.allowedFileExtensions.indexOf('*') != "-1" ||  this.settings.allowedFileExtensions.indexOf(this.getFileType()) != "-1") { return true; } this.pushError("fileExtension"); return false; }; /** * Translate messages if needed. */ Dropify.prototype.translateMessages = function() { for (var name in this.settings.tpl) { for (var key in this.settings.messages) { this.settings.tpl[name] = this.settings.tpl[name].replace('{{ ' + key + ' }}', this.settings.messages[key]); } } }; /** * Check the limit filesize. */ Dropify.prototype.checkFileSize = function() { if (this.sizeToByte(this.settings.maxFileSize) !== 0 && this.file.size > this.sizeToByte(this.settings.maxFileSize)) { this.pushError("fileSize"); } }; /** * Convert filesize to byte. * * @return {Int} value */ Dropify.prototype.sizeToByte = function(size) { var value = 0; if (size !== 0) { var unit = size.slice(-1).toUpperCase(), kb = 1024, mb = kb * 1024, gb = mb * 1024; if (unit === 'K') { value = parseFloat(size) * kb; } else if (unit === 'M') { value = parseFloat(size) * mb; } else if (unit === 'G') { value = parseFloat(size) * gb; } } return value; }; /** * Validate image dimensions and format */ Dropify.prototype.validateImage = function() { if (this.settings.minWidth !== 0 && this.settings.minWidth >= this.file.width) { this.pushError("minWidth"); } if (this.settings.maxWidth !== 0 && this.settings.maxWidth <= this.file.width) { this.pushError("maxWidth"); } if (this.settings.minHeight !== 0 && this.settings.minHeight >= this.file.height) { this.pushError("minHeight"); } if (this.settings.maxHeight !== 0 && this.settings.maxHeight <= this.file.height) { this.pushError("maxHeight"); } if (this.settings.allowedFormats.indexOf(this.getImageFormat()) == "-1") { this.pushError("imageFormat"); } }; /** * Get image format. * * @return {String} */ Dropify.prototype.getImageFormat = function() { if (this.file.width == this.file.height) { return "square"; } if (this.file.width < this.file.height) { return "portrait"; } if (this.file.width > this.file.height) { return "landscape"; } }; /** * Push error * * @param {String} errorKey */ Dropify.prototype.pushError = function(errorKey) { var e = $.Event("dropify.error." + errorKey); this.errorsEvent.errors.push(e); this.input.trigger(e, [this]); }; /** * Clear errors */ Dropify.prototype.clearErrors = function() { if (typeof this.errorsContainer !== "undefined") { this.errorsContainer.children('ul').html(''); } }; /** * Show error in DOM * * @param {String} errorKey */ Dropify.prototype.showError = function(errorKey) { if (typeof this.errorsContainer !== "undefined") { this.errorsContainer.children('ul').append('
  • ' + this.getError(errorKey) + '
  • '); } }; /** * Get error message * * @return {String} message */ Dropify.prototype.getError = function(errorKey) { var error = this.settings.error[errorKey], value = ''; if (errorKey === 'fileSize') { value = this.settings.maxFileSize; } else if (errorKey === 'minWidth') { value = this.settings.minWidth; } else if (errorKey === 'maxWidth') { value = this.settings.maxWidth; } else if (errorKey === 'minHeight') { value = this.settings.minHeight; } else if (errorKey === 'maxHeight') { value = this.settings.maxHeight; } else if (errorKey === 'imageFormat') { value = this.settings.allowedFormats.join(', '); } else if (errorKey === 'fileExtension') { value = this.settings.allowedFileExtensions.join(', '); } if (value !== '') { return error.replace('{{ value }}', value); } return error; }; /** * Show the loader */ Dropify.prototype.showLoader = function() { if (typeof this.loader !== "undefined") { this.loader.show(); } }; /** * Hide the loader */ Dropify.prototype.hideLoader = function() { if (typeof this.loader !== "undefined") { this.loader.hide(); } }; /** * Destroy dropify */ Dropify.prototype.destroy = function() { this.input.siblings().remove(); this.input.unwrap(); this.isInit = false; }; /** * Init dropify */ Dropify.prototype.init = function() { this.createElements(); }; /** * Test if element is init */ Dropify.prototype.isDropified = function() { return this.isInit; }; $.fn[pluginName] = function(options) { this.each(function() { if (!$.data(this, pluginName)) { $.data(this, pluginName, new Dropify(this, options)); } }); return this; }; return Dropify; })); PK\:))js/dropify.min.jsnu[/*! * ============================================================= * dropify v0.2.1 - Override your input files with style. * https://github.com/JeremyFagis/dropify * * (c) 2016 - Jeremy FAGIS (http://fagis.fr) * ============================================================= */ !function(e,i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):e.Dropify=i(e.jQuery)}(this,function(e){function i(i,t){if(window.File&&window.FileReader&&window.FileList&&window.Blob){var s={defaultFile:"",maxFileSize:0,minWidth:0,maxWidth:0,minHeight:0,maxHeight:0,showRemove:!0,showLoader:!0,showErrors:!0,errorTimeout:3e3,errorsPosition:"overlay",imgFileExtensions:["png","jpg","jpeg","gif","bmp"],maxFileSizePreview:"5M",allowedFormats:["portrait","square","landscape"],allowedFileExtensions:["*"],messages:{"default":"Drag and drop a file here or click",replace:"Drag and drop or click to replace",remove:"Remove",error:"Ooops, something wrong appended."},error:{fileSize:"The file size is too big ({{ value }} max).",minWidth:"The image width is too small ({{ value }}}px min).",maxWidth:"The image width is too big ({{ value }}}px max).",minHeight:"The image height is too small ({{ value }}}px min).",maxHeight:"The image height is too big ({{ value }}px max).",imageFormat:"The image format is not allowed ({{ value }} only).",fileExtension:"The file is not allowed ({{ value }} only)."},tpl:{wrap:'
    ',loader:'
    ',message:'

    {{ default }}

    ',preview:'

    {{ replace }}

    ',filename:'

    ',clearButton:'',errorLine:'

    {{ error }}

    ',errorsContainer:'
      '}};this.element=i,this.input=e(this.element),this.wrapper=null,this.preview=null,this.filenameWrapper=null,this.settings=e.extend(!0,s,t,this.input.data()),this.errorsEvent=e.Event("dropify.errors"),this.isDisabled=!1,this.isInit=!1,this.file={object:null,name:null,size:null,width:null,height:null,type:null},Array.isArray(this.settings.allowedFormats)||(this.settings.allowedFormats=this.settings.allowedFormats.split(" ")),Array.isArray(this.settings.allowedFileExtensions)||(this.settings.allowedFileExtensions=this.settings.allowedFileExtensions.split(" ")),this.onChange=this.onChange.bind(this),this.clearElement=this.clearElement.bind(this),this.onFileReady=this.onFileReady.bind(this),this.translateMessages(),this.createElements(),this.setContainerSize(),this.errorsEvent.errors=[],this.input.on("change",this.onChange)}}var t="dropify";return i.prototype.onChange=function(){this.resetPreview(),this.readFile(this.element)},i.prototype.createElements=function(){this.isInit=!0,this.input.wrap(e(this.settings.tpl.wrap)),this.wrapper=this.input.parent();var i=e(this.settings.tpl.message).insertBefore(this.input);e(this.settings.tpl.errorLine).appendTo(i),this.isTouchDevice()===!0&&this.wrapper.addClass("touch-fallback"),this.input.attr("disabled")&&(this.isDisabled=!0,this.wrapper.addClass("disabled")),this.settings.showLoader===!0&&(this.loader=e(this.settings.tpl.loader),this.loader.insertBefore(this.input)),this.preview=e(this.settings.tpl.preview),this.preview.insertAfter(this.input),this.isDisabled===!1&&this.settings.showRemove===!0&&(this.clearButton=e(this.settings.tpl.clearButton),this.clearButton.insertAfter(this.input),this.clearButton.on("click",this.clearElement)),this.filenameWrapper=e(this.settings.tpl.filename),this.filenameWrapper.prependTo(this.preview.find(".dropify-infos-inner")),this.settings.showErrors===!0&&(this.errorsContainer=e(this.settings.tpl.errorsContainer),"outside"===this.settings.errorsPosition?this.errorsContainer.insertAfter(this.wrapper):this.errorsContainer.insertBefore(this.input));var t=this.settings.defaultFile||"";""!==t.trim()&&(this.file.name=this.cleanFilename(t),this.setPreview(this.isImage(),t))},i.prototype.readFile=function(i){if(i.files&&i.files[0]){var t=new FileReader,s=new Image,r=i.files[0],n=null,o=this,h=e.Event("dropify.fileReady");this.clearErrors(),this.showLoader(),this.setFileInformations(r),this.errorsEvent.errors=[],this.checkFileSize(),this.isFileExtensionAllowed(),this.isImage()&&this.file.size=0;s--){var r=this.errorsEvent.errors[s].namespace,n=r.split(".").pop();this.showError(n)}if("undefined"!=typeof this.errorsContainer){this.errorsContainer.addClass("visible");var o=this.errorsContainer;setTimeout(function(){o.removeClass("visible")},this.settings.errorTimeout)}this.wrapper.addClass("has-error"),this.resetPreview(),this.clearElement()}},i.prototype.setFileInformations=function(e){this.file.object=e,this.file.name=e.name,this.file.size=e.size,this.file.type=e.type,this.file.width=null,this.file.height=null},i.prototype.setFileDimensions=function(e,i){this.file.width=e,this.file.height=i},i.prototype.setPreview=function(i,t){this.wrapper.removeClass("has-error").addClass("has-preview"),this.filenameWrapper.children(".dropify-filename-inner").html(this.file.name);var s=this.preview.children(".dropify-render");if(this.hideLoader(),i===!0){var r=e("").attr("src",t);this.settings.height&&r.css("max-height",this.settings.height),r.appendTo(s)}else e("").attr("class","dropify-font-file").appendTo(s),e('').html(this.getFileType()).appendTo(s);this.preview.fadeIn()},i.prototype.resetPreview=function(){this.wrapper.removeClass("has-preview");var e=this.preview.children(".dropify-render");e.find(".dropify-extension").remove(),e.find("i").remove(),e.find("img").remove(),this.preview.hide(),this.hideLoader()},i.prototype.cleanFilename=function(e){var i=e.split("\\").pop();return i==e&&(i=e.split("/").pop()),""!==e?i:""},i.prototype.clearElement=function(){if(0===this.errorsEvent.errors.length){var i=e.Event("dropify.beforeClear");this.input.trigger(i,[this]),i.result!==!1&&(this.resetFile(),this.input.val(""),this.resetPreview(),this.input.trigger(e.Event("dropify.afterClear"),[this]))}else this.resetFile(),this.input.val(""),this.resetPreview()},i.prototype.resetFile=function(){this.file.object=null,this.file.name=null,this.file.size=null,this.file.type=null,this.file.width=null,this.file.height=null},i.prototype.setContainerSize=function(){this.settings.height&&this.wrapper.height(this.settings.height)},i.prototype.isTouchDevice=function(){return"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0},i.prototype.getFileType=function(){return this.file.name.split(".").pop().toLowerCase()},i.prototype.isImage=function(){return"-1"!=this.settings.imgFileExtensions.indexOf(this.getFileType())?!0:!1},i.prototype.isFileExtensionAllowed=function(){return"-1"!=this.settings.allowedFileExtensions.indexOf("*")||"-1"!=this.settings.allowedFileExtensions.indexOf(this.getFileType())?!0:(this.pushError("fileExtension"),!1)},i.prototype.translateMessages=function(){for(var e in this.settings.tpl)for(var i in this.settings.messages)this.settings.tpl[e]=this.settings.tpl[e].replace("{{ "+i+" }}",this.settings.messages[i])},i.prototype.checkFileSize=function(){0!==this.sizeToByte(this.settings.maxFileSize)&&this.file.size>this.sizeToByte(this.settings.maxFileSize)&&this.pushError("fileSize")},i.prototype.sizeToByte=function(e){var i=0;if(0!==e){var t=e.slice(-1).toUpperCase(),s=1024,r=1024*s,n=1024*r;"K"===t?i=parseFloat(e)*s:"M"===t?i=parseFloat(e)*r:"G"===t&&(i=parseFloat(e)*n)}return i},i.prototype.validateImage=function(){0!==this.settings.minWidth&&this.settings.minWidth>=this.file.width&&this.pushError("minWidth"),0!==this.settings.maxWidth&&this.settings.maxWidth<=this.file.width&&this.pushError("maxWidth"),0!==this.settings.minHeight&&this.settings.minHeight>=this.file.height&&this.pushError("minHeight"),0!==this.settings.maxHeight&&this.settings.maxHeight<=this.file.height&&this.pushError("maxHeight"),"-1"==this.settings.allowedFormats.indexOf(this.getImageFormat())&&this.pushError("imageFormat")},i.prototype.getImageFormat=function(){return this.file.width==this.file.height?"square":this.file.widththis.file.height?"landscape":void 0},i.prototype.pushError=function(i){var t=e.Event("dropify.error."+i);this.errorsEvent.errors.push(t),this.input.trigger(t,[this])},i.prototype.clearErrors=function(){"undefined"!=typeof this.errorsContainer&&this.errorsContainer.children("ul").html("")},i.prototype.showError=function(e){"undefined"!=typeof this.errorsContainer&&this.errorsContainer.children("ul").append("
    • "+this.getError(e)+"
    • ")},i.prototype.getError=function(e){var i=this.settings.error[e],t="";return"fileSize"===e?t=this.settings.maxFileSize:"minWidth"===e?t=this.settings.minWidth:"maxWidth"===e?t=this.settings.maxWidth:"minHeight"===e?t=this.settings.minHeight:"maxHeight"===e?t=this.settings.maxHeight:"imageFormat"===e?t=this.settings.allowedFormats.join(", "):"fileExtension"===e&&(t=this.settings.allowedFileExtensions.join(", ")),""!==t?i.replace("{{ value }}",t):i},i.prototype.showLoader=function(){"undefined"!=typeof this.loader&&this.loader.show()},i.prototype.hideLoader=function(){"undefined"!=typeof this.loader&&this.loader.hide()},i.prototype.destroy=function(){this.input.siblings().remove(),this.input.unwrap(),this.isInit=!1},i.prototype.init=function(){this.createElements()},i.prototype.isDropified=function(){return this.isInit},e.fn[t]=function(s){return this.each(function(){e.data(this,t)||e.data(this,t,new i(this,s))}),this},i});PK\XYfonts/dropify.svgnu[PK\a<<fonts/dropify.ttfnu[PK\Z ofonts/dropify.woffnu[PK\iDs(fonts/dropify.eotnu[PK\U22=css/dropify.cssnu[PK\?&&pcss/dropify.min.cssnu[PK\Č/^^ qcss/demo.cssnu[PK\ߧ9CC njs/dropify.jsnu[PK\:))9js/dropify.min.jsnu[PK c