From 355e5bb587bf415ebb58cb62cf889a2b19cb9a23 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Mon, 16 Jan 2017 14:02:31 +0000 Subject: [PATCH 01/28] Fixing incorrect fonts. --- frontend/src/mock-state.json | 2 +- ui/src/components/base/global.js | 29 +- ui/src/components/h1/index.js | 4 + ui/src/shared/fonts/LICENSE | 43 ++ ui/src/shared/fonts/README.md | 1 + .../fonts/librefranklin-bold-webfont.eot | Bin 0 -> 25902 bytes .../fonts/librefranklin-bold-webfont.svg | 527 ++++++++++++++++++ .../fonts/librefranklin-bold-webfont.ttf | Bin 0 -> 51536 bytes .../fonts/librefranklin-bold-webfont.woff | Bin 0 -> 28568 bytes .../fonts/librefranklin-bold-webfont.woff2 | Bin 0 -> 23084 bytes .../fonts/librefranklin-regular-webfont.eot | Bin 0 -> 25222 bytes .../fonts/librefranklin-regular-webfont.svg | 527 ++++++++++++++++++ .../fonts/librefranklin-regular-webfont.ttf | Bin 0 -> 49724 bytes .../fonts/librefranklin-regular-webfont.woff | Bin 0 -> 27928 bytes .../fonts/librefranklin-regular-webfont.woff2 | Bin 0 -> 22488 bytes .../fonts/librefranklin-semibold-webfont.eot | Bin 0 -> 25527 bytes .../fonts/librefranklin-semibold-webfont.svg | 527 ++++++++++++++++++ .../fonts/librefranklin-semibold-webfont.ttf | Bin 0 -> 50540 bytes .../fonts/librefranklin-semibold-webfont.woff | Bin 0 -> 28144 bytes .../librefranklin-semibold-webfont.woff2 | Bin 0 -> 22620 bytes ui/src/shared/fonts/librefranklin-webfont.eot | Bin 27518 -> 0 bytes ui/src/shared/fonts/librefranklin-webfont.svg | 475 ---------------- ui/src/shared/fonts/librefranklin-webfont.ttf | Bin 59228 -> 0 bytes .../shared/fonts/librefranklin-webfont.woff | Bin 31392 -> 0 bytes .../shared/fonts/librefranklin-webfont.woff2 | Bin 24660 -> 0 bytes ui/src/shared/functions.js | 24 +- 26 files changed, 1662 insertions(+), 497 deletions(-) create mode 100644 ui/src/shared/fonts/LICENSE create mode 100644 ui/src/shared/fonts/README.md create mode 100644 ui/src/shared/fonts/librefranklin-bold-webfont.eot create mode 100644 ui/src/shared/fonts/librefranklin-bold-webfont.svg create mode 100644 ui/src/shared/fonts/librefranklin-bold-webfont.ttf create mode 100644 ui/src/shared/fonts/librefranklin-bold-webfont.woff create mode 100644 ui/src/shared/fonts/librefranklin-bold-webfont.woff2 create mode 100644 ui/src/shared/fonts/librefranklin-regular-webfont.eot create mode 100644 ui/src/shared/fonts/librefranklin-regular-webfont.svg create mode 100644 ui/src/shared/fonts/librefranklin-regular-webfont.ttf create mode 100644 ui/src/shared/fonts/librefranklin-regular-webfont.woff create mode 100644 ui/src/shared/fonts/librefranklin-regular-webfont.woff2 create mode 100644 ui/src/shared/fonts/librefranklin-semibold-webfont.eot create mode 100644 ui/src/shared/fonts/librefranklin-semibold-webfont.svg create mode 100644 ui/src/shared/fonts/librefranklin-semibold-webfont.ttf create mode 100644 ui/src/shared/fonts/librefranklin-semibold-webfont.woff create mode 100644 ui/src/shared/fonts/librefranklin-semibold-webfont.woff2 delete mode 100755 ui/src/shared/fonts/librefranklin-webfont.eot delete mode 100755 ui/src/shared/fonts/librefranklin-webfont.svg delete mode 100755 ui/src/shared/fonts/librefranklin-webfont.ttf delete mode 100755 ui/src/shared/fonts/librefranklin-webfont.woff delete mode 100755 ui/src/shared/fonts/librefranklin-webfont.woff2 diff --git a/frontend/src/mock-state.json b/frontend/src/mock-state.json index 48be8b2d..70fa0434 100644 --- a/frontend/src/mock-state.json +++ b/frontend/src/mock-state.json @@ -203,7 +203,7 @@ ], "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "id": "nicola", - "name": "Your Dashboard" + "name": "Your dashboard" }, { "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "uuid": "e12ad7db-91b2-4154-83dd-40dcfc700dcc", diff --git a/ui/src/components/base/global.js b/ui/src/components/base/global.js index 5c6c3443..8c4ae6e1 100644 --- a/ui/src/components/base/global.js +++ b/ui/src/components/base/global.js @@ -9,18 +9,29 @@ const { css } = Styled; -// The name that will be used in the 'font-family' property -const fontFamilies = [ - 'LibreFranklin' -]; - -// The name the font file without the extension -const fontFilenames = [ - 'librefranklin-webfont' +const fonts = [ + { + family: 'LibreFranklin', + filename: 'librefranklin-regular-webfont', + weight: '400', + style: 'normal' + }, + { + family: 'LibreFranklin', + filename: 'librefranklin-semibold-webfont', + weight: '600', + style: 'normal' + }, + { + family: 'LibreFranklin', + filename: 'librefranklin-bold-webfont', + weight: '700', + style: 'normal' + }, ]; module.exports = css` - ${generateFonts(fontFamilies, fontFilenames)} + ${generateFonts(fonts)} html, body { font-size: 16px; diff --git a/ui/src/components/h1/index.js b/ui/src/components/h1/index.js index bd216017..9cd26797 100644 --- a/ui/src/components/h1/index.js +++ b/ui/src/components/h1/index.js @@ -16,4 +16,8 @@ module.exports = styled.h1` font-stretch: normal; color: #364acd; border-bottom: ${remcalc(1)} solid #d8d8d8; + + & a { + text-decoration: none; + } `; diff --git a/ui/src/shared/fonts/LICENSE b/ui/src/shared/fonts/LICENSE new file mode 100644 index 00000000..e9792ccd --- /dev/null +++ b/ui/src/shared/fonts/LICENSE @@ -0,0 +1,43 @@ +Copyright (c) 2015, Impallari Type (www.impallari.com) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others. + +The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the copyright statement(s). + +"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. + +"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission. + +5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/ui/src/shared/fonts/README.md b/ui/src/shared/fonts/README.md new file mode 100644 index 00000000..77cad3ec --- /dev/null +++ b/ui/src/shared/fonts/README.md @@ -0,0 +1 @@ +Source: https://www.fontsquirrel.com/fonts/libre-franklin diff --git a/ui/src/shared/fonts/librefranklin-bold-webfont.eot b/ui/src/shared/fonts/librefranklin-bold-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..73079d8aab3e2a48d9d0a3df99c5952e2c9a4071 GIT binary patch literal 25902 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 V>Ty5o2$CV@(4jzL0L7AAL_Y+m!R-J5 literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-bold-webfont.svg b/ui/src/shared/fonts/librefranklin-bold-webfont.svg new file mode 100644 index 00000000..f60899b7 --- /dev/null +++ b/ui/src/shared/fonts/librefranklin-bold-webfont.svg @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/src/shared/fonts/librefranklin-bold-webfont.ttf b/ui/src/shared/fonts/librefranklin-bold-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc6edc1434093fca86156f6c3ca89b0e6044d1da GIT binary patch literal 51536 zcmb@v2Vfl4oj?BGn?BoDz3*zJRa@27s#&sD)kU&p%T02X+yUDdV~hb~Y6AEmkN_!! zbdpO#2x~$KX-66@jnrS--8tbxa;cXDs$!9L+uZuG#&?NdFMdKg`%2U){TFcBl2H zZ?0wRNov1iFD~fsQeMXS$8cV?cmLs|{og1o#raDZ(7t__@0fk({h!;%*rzcb(Y1f} z=s|H@pnspG=R*f(_wRa7_{(ve-^ZBtUk5M0^6>tD%Y7STU%V6Nl?M;)I+*JFbR}cY zr%?axSMS=s`)kil9b@c;r8w8|N6=&6se1dT==klWUce6L?>{~w@3?W&gg?PFoWFp- z7uh$N!oJ1+hVtLpKXB(YUW~FTYhi~nV>a8#jx#YlI=+^9_st$Yz)EEemQLdds?*NQ zfsG>});=__miCjh9~;<+{fdck>?bEyV82%0T{}63GCT9MxNO&<1I)XB_RwW4H}g(v zm7{eXSLhuo%V+D2_u9XdZ|3fg<8GTQYp7AoLM+N+xVD0=k^8mSuTB3!mM7(Y9D9wq z*kZPUZDltyVdT^ETB-IV%VB_O`la+;_ML-L4@!$PmOm9ekBwGWseIQ%T z9?$eP{X4w#ci2v4@BQzO>0i*ZSs4CL+97D1{R2$+So(u#?XL6{fb?7GF0S2`z7C_i z2l(=6`eX9iZF2tz?JxENm_Bu}duLz2FlME{jd#C0y$Abe@b_f;E9u7o;pfs{NPi{! zyz_?icX9us*ol5$hWirR(%;1hoKel=uN;qk&(7uG=QU(TMNhgn}qe>(jF zYJ3m8;1V3~#orz2&jP0VQF;gZ^K|-gdOFjuFQN3aY-|71L!CG_ z1KhnG~(hBrQjEth?QJ%#eq*z(w?*k|#U&tY@3XRx{1m#}g6Wo&s8jygNV zegZhXjLl%LU^Arr4+6d>AXg6@Xu_--fL9;-O?}FfGgBgaQ;Oca8&IY>i87%SlO*N8 z7VFXT04U+tY*G4O0aJxI=7oOJ-^*T2{~vIOi`B|V7^(}d`%3x`kjX!of0DSd3WmzCHgkhmun6LlQk9^DD7QQ6|=Yj>zC=1Fcrhj$z`FUpo z^E-mg1Qjd=W)KB>0E|Y`UaM zQ})ayd*+sX^2k2<*bFuysmv>>jLTkf*-I{a>65+mNt)u4nhZ%zs-z}WQj-N}N8C6PfDHkQ|z}GB~j9C>8GGEeL4Ns z^taB)&xNxB8UF^7K_r*3{|2 zAI>w-lTU-ziEj{JR^?o&a)!8^8_s@;O-Se{>}S}7gpq>dLOyLuK5a@4ZAuPpO5V&R zS0=vSgLx)-p-Qf-Nv^ERdA2k2Ogz|@Sm%>7?3Z)vl33@=upwvIli{+&Urou;Ovza_ zIor0JZClQ^Eoa*!XWJwBs43^%mb_1!pJx}wZe!GbjG1`rPchz~VVqq5vA&WC{S{#E zPW~4DcK&Yu5dSDo@hACb_!s!|{OkNX{D=G$e}(^=|AGG(pA)LEgtMU!Y3 zJt8Sa#kiOhQ(~*wDJ~TU#Sw8#+$?SvZxZ*32gG~Dhs4LkW8#zIbK*x=L1n43Qdz5PRA!Xj%0A_ga#T64+^U>V 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 literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-bold-webfont.woff2 b/ui/src/shared/fonts/librefranklin-bold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8fd4eeec4e7a258cc923e8a459072c83e8769dbe GIT binary patch literal 23084 zcmV(?K-a%_Pew8T0RR9109q^n6951J0Lf4Q09m~N0RV#l00000000000000000000 z0000#Mn+Uk92zzosCXQVYzANeghB{z37QrW2nvFeOo8om0X7081Bh%3gg5{MAO(wf z2Z|yLffzq`WnyLq8}+g$(9?DS&)qhF8U3=Nf7RK6+TBVM07W`75NsUS@Hhj?{{R1+ zq%y{~gWCZN%&efuHd53Q?h;JK5KMxmO{Y60dD?=4gkQO`?ylJ5wIy@~65GNMT@Y{h z%y)%%d%b~e;XJ~Q+wUNqTBT01Vn+%@#&XGA z3+DMZ#K~gC53X;kI|@$9z@uRHC?6l>KJ1P@P<)e~Tu7vlb=sxELz1E?^7Ooa{MV}5 z_umHmUJGL>B_bh60E9w59S#^Z&d<{}-@kz4s8V2XRM|tU!pLFaBGYA+t7sSHDz)#` z%)0xTk3WW74viZ*=TJlO9Ba-&SO-DjxsZi3+~~4sLk-cK1=-zMO*Tq`2Op^=`wXezb+mo7{S=)bl=k4{({Qq?Jb)UeNnI%;T&>+d?b~T_q z4DrO9B)eJE|D5fabT0P$wgaIvof?jK=Kfvu#Owk8|C+W`l#tat@yWKPBM(VVkax30 z)Y#rF>Mcsnbk)_6%Mbi;S<4qn^|(mtUTf-m*IQUbgt z*BaD^Xl6-udzVuFE7Wa=i2Bl6nN%ir-~pk4AWWUA9w^BNz{3LF@5AhFLCE_5+4jyZ z@RQ6g5VzCEt2CvVz1QBGbQ_{llqouIk%6y|kY72#U_YU4WV{rSx|s-`DK=ZsogY zuh%5=o=hv5WR~s>VXS~q2OQXgXDh4_p926TU=3KNC<>~QK1EsN|IAsX-7wBad&Wl2 zzI?`~XR<_9zp7hZ)#m7K(BLHetN>{S!8jPxK(Ahd&^^ZMoY$URYXFUNYkhjr1(7$= zhT-x2%Z=xDfsSDK*aN%s)&dGJumnPBA3xO7UZ<0Ru0GAjV$_dAo|BhSm!m4WY*pcM zp*?Cd4&x9GqY)ly5XJ(fI{YJSEN?p|6j9Wze)D}lb4I)NKAf&i8gw037)5u`3Nfft zp&H)@A@sK%WV#X$tX-!!)xTB?ghC(*nUD>%{jnN`0RC_(rV8-;hX^h*))&pZnI8{a z4-^SG13Bvo+*Q9Izx_GI|BVVlFhr`x9IK^4um?OSuLK0Icy7Qq3-*% z3u4h57Oc0nZcsxvNH2j=lVa-8+NemCx!L2*!V8ZnFcj@os&pjb z)73YleUoD+_k79cubtZwl!cn^4VupEf$4^78J!33QE%b!hus`lWH~#Pfz0G^YuTgacE}P z+&hnJ3Kz^gK`g|qSZpNhFb=p7gixdiERoovu+&BI;D|=^;)=l&i!Y8qJfQ?4Q@>cI zn~i0jg}4@-2%TIDVPcUeG>VXdh?aON)S;zksz7*=%mZ;#MFNYY6^RNzSnv=bqYLX` zq?;+`lSM9@M9!2dQjd(ETrrIjb(B&n6QmqRK(Gq5`nVcUX^5xMR2ym(fzgD<6zLEY z{EKC&Rm9fVKyDkR%yzrU?VWN}4hVJ-&tW{rAtx%=@Xqqs6I#!Jt-9=Y{(mJf6cYz< zy-;is5^&^HUX`d9&AEs^&2I~AR0xp2wTyuHy>E-S^?(;B4kMxE`7o$2$Mee`v$ zqcWO|54hf~SFoPY>AMgh!`tTls%V@(>$2g$;4QOWVi{9XoCe>kHvilb7f5FKQQQJZ zbCR{a77dRRq)O8wsa+|XJ%qBjqO%jQylZfgF)n$&Sld83{!)YG}W|7r^#vJS{VwIa!nyS(h!@mHj!I)47=IxtqtS&bxfh&-^ce(U_=;YHFyh zA&qKmlWT5n?e(;xb#3Y5c6YEN9n(pj(Rp3cRo&2S-P40T-m|^jo4wzsebo>B+TR2C zj`MKI1dVn~ zb#BkYc|Ps@Yv>vN9sf&UFb1<=KI{jJVL2QHC%{Q?25f}0;X>F2m%%k~6TA@ag!|!T z@Ho60o`z@PSKyuSe)uSS3cdhefv>@L;CJAU;D_)N_*?in@ss#Z5(t5?5ub;$9~Fv( zBQb~yNkO!T8OcTLhzF@a>W~&>G183;A|uEovKHBhY(};syOD#)G2{&L8uA8m1G$I1 zhkSxOM!rP8M}8v7>-P>Uf0xIS>_NMBH|>r+Z1?Q(PzLqMqh@*O&mh~|M==3af`RlI z-5ZF-{TABaar87D!n273L)8Zi*T{t?w55XjHjuwn*1a+`HvQBTs)rS(5?|Af)!4yG z5rj*juud-X)8Vo#8k2`H3JY6zigIc_1{1;4q!2L32s`_x7TUup3x~zjT5!t*#gJqw$?l~t`X6` zvE0@@Al^c)b$HsyxP?-_TV^1!LAg+b@NHUM-Uq7f6fY7lf%r2JliD&la*eY`1*g{gU4<3j5rtcq-jOV5%sOb~xy?%Wiw@l^E@Cwo$>7&u*q<$2{(4{)P)1WVwbj+{A6%#iMvU5AdeEt=2Ki zwD#;KGj3aN7F^I8Q!p4$JSzJsknd$PsW28I?{zdlN2d%3iYUZEG~yy2;v)ePA`wJH z!X!eveEx7Ei8Qjvqlhv=362Uf3YUgOm{{ow1T@!CZ$o}%=mrPCp5Fz1f#>|93gazNCiU{Vf zBQO{#4e*Fbr<c{Ks zek7vf8UP+{7tFInB+*-2U>y1=57I*)S(E|{{!PW1v%fS%fF;9_{Af)V?T zCHK&=Y;Zmz4DbNSkIl~xaDqX0s71>przpME^knZ3fm1k*TQ8=W(-{?`Wekjk31woL zbf%K&Vul%kUZFRb|Nd!hEhOm4SYp@aN%3>oF)$}HL5zmSwC<9X?+?yvKS3b^p^rW21A>^-5D{FV0 zm>qskVfx;aeAoZu?`b1hY>Gp3d3=FTbjs2--7qcNai!-6VH77*=}b14FBD7VO0`yR zG+XUXx7QyGN8`zKHeU?Ga=ai)vZ89bVOqB1dVUb*@`YllT&dQyQVsJ9ODj8QB8^IC zGFTiQmoE?r#S)o9u2ie^I)f2;s{mNz!H*7x>d7f--hJ>Krj0C=ktetIG; zC-n)a8Y%&+!Mt(n(_b~~&CS(xcvWB(4m`ZBg7EK(Pn;@L_n8Lz_IoEGa0!&AS(e`Z zgTQ`EK7UHQy~2Gdr|Q2;$h-ed1w-x1md<-n0n%(b0KrgVfI!dFK=#mD{QH0xpN8kF zv}UUrd7C`4=e^I#n|J+>;>(?1F(Ny$oo8)dvMMvut$CgTjwu#j!Yo+iUzCu9|COTn zkjg5g`$NT9S(9~s$#&zQ$k{+qI>|X8qZBR_@76-qP9iLl7E4IXFaruEDOT$mmnbiY z)m(PCCZe3Ju(Q82M(V@)UX8kFnz;nJ*iB`}b$dBk_F0Jilpk_r1-dRTph8}w0T`1o zcX)d&nt(BO=yD3bVG`#+9-+BJNvnTesZs68d|q<#s4~5;N@K|PD~4IT>)C!J1;n5g zA=E};APx7TS^rci5|ve9sM$G}$5#jj&4;;l)8-FO>0E=SYa9-0vXVBW48%l+d9Tjt z+w08dyFO5%O0`?=chf)>C?(2zbFTlj$YN%BME$f9AE+Vf^sx0$snmA)fU%>Z{!dZ0 zXn{I!4^s7?X}(V7*UkbB-tMNi`zH+N*Q~Y8CKW>VFn70Whh=0pGDt%n>*70ImIkLL zWZy}ZayIU<7cI1Dp1qwD{H3`v03RjaVeSPkaK}YX3O?bw;oe0mKx$JckT_6+p-#UB zEjDUk{6S*ZqGrr3GBc!%DzN;$H`oLg^s&EPS1l+1jn%arXj35_1v*r+Lf0n=J)bP} zeTp#fslw2g6GpzgF!pJ}#8(*gFwMhcsyoHhKp+1)<_7#bOOF=)Z5%9pcG3TRdddcC zlon2BR7-WRXaImF0LTD94ggvJpbY>z0H6!Nln}LYWRyhC!d_}(hjPM4VJRjrtLZ;X z3{eoB19PN>1emh!p&3K>rOfr*Sn#zUr_9e)txjf1i(%qgmP~0MsukRtih5{E6~eqs8Yq}h8it^ zaY)?yy8r*ZMYvP44^J#Zi^IEBG&z4aumvcng9O~aLeiJ2(MkWRNo^0S&92x|vkD94 z1FCdU@#jtwVmJNNew%T9g<@NkV>F>jJ*#*ZZC-GV#bOZ@E~Ag6vNmLO>!PI8xnHbk zv4+(T?o2`{Y|cr=peN_Ze?kW*EJ{_=mtjTaC5h_Yw}t=+8tx5u1kew4M^8Gs$>qSF z1;cV2wMh1}_F>>~+CnQEo`YM&f-{b^!-P=g9*mOIs5S3CNNd!fgZ_c^qn6i>op7$H zOj98tT;~Q(Sm@%@mkZhUlw66o`5R0P154-JQrdC$^0!u-n;KVTqrkc33-{d4%%Yy_ z%0Kh%m~FIHayModJziL~5JB$l7eG-%9D#dsv06&vz%seFsa0bSA@2Jyu3Ez*&~!=g z|HVROaSyP53bbZ`oXQdO8NWu6#|iL`Sb$GQ(_%*6_JLlEAecUD^1&S*FpjU2a}DV^ z@RB$4bzFfS23Z<;8?*UIE{RagOpWF}4uOZTCN<>O;Q6ydX8^c@U#OuFF(s|gf(l}L z03IDEL|jQg4=S8KKLKRFVlXozp+-M32LY1r3J?~+h!iyfmLL!+=cBArftOGffKUwp zQuhD?Z74*Vl2+J)3fY!K8P~CBpnwd7IQdnCU09$e*tI>!jlxs(Ywz&bcE#MEj3*6QA1kerukmG11QpuB}LOb68 z+64f54cygk1kmmPkjH2wQ^}{JLVMi++8Y4+3Eb7b1kio}EcEAR)cZlTlISEd;GVY5 z-h+MoC{vtft`G{6K9OITL7fXKt!aI1;yJVP2%knGnp-l$(Jbg5fJb?`d#8Y$B; z7pmw;ogr#J3n?n0__bXuRe`!<=h~Ir@2{lWP7#|9AmQPdG~m7XKmkiPq5|3k@P8PD zXrTM`TgZ;9zMR@8B15J!PbCCr(pnemDfey$|x){Q`}Y87zkCx6JpoHQ6ah5WYv&j%B>fY zxL2LpPEgZVlZc5Ifwt)M^Rgf!6A@JXj~2B8My!n5is6ik&OJS${b9_+lHQC^GdD8? zFy(bYLLfleGv&h(?N}kIRaAq2D-o9|YC;GgF%JNGOZlXclII3QW_6I#4QVB&nJjEY z&OvqYu(e>MrgE`eQ!K(jX~ip#s+t>9atJPO4-e>_$7NKEh~6CJ2!D2h1ObcwOMvpw zH10a~LP{=S2zpYE(utr0Cr!PB=pip1Dj&?ep^%zPQQRngi~6EH-Wo!V!7ib<>P=Hr zfL>TwE$u_Nx)Hv_OZq8og1m!Dgh#o9>dzY^dr~B3)WTi?6IO>bkLur(ol90Q-X?1E zj?V26jeIo5)QLhT%uGSWa~Y==n~%#{cy`N&h~ggs46o82w`if zm0UhaD$q|`S+|`rC)dU|j3f*r4QXq$l6YGWN`~$q;k2v4sT4ZZSy9%Mt3@d&VRfFV zMct#PnyDtf;JbyJ%EMfyB=g$%hY9CfMgOpw?1M}xz(a5(xmZRP?@TQ1ogNJQ9oMwj znWe#Rc|ZtN#wegLkH@bDawFKOpoF(Jcgpv6>$PDIh-?IzRe79Yp|NwwFn3{(U+0;T zbhE-fPSmlJv66$aK@ws)Qn57IvmEALL$NSm#Pa?_qztSc z?gAn++o|$|a7vQYSB9>;tWeGD@(pOVMJHN*M1Twwc#fk& ztI0HM1%-4={7-(`wVldEI7$~Yr7%?PxW5wlUKBkV29?4Y- z9f9!0m6aAW<8@}Xocqe=0IY(FN#V8zF6UUa13nZ%B;%wLO0a4&jo>LO88}l505pTk zBtg(o7X*3ZZrNT+N(}g_NFmq~Oi;Tv$@4mGYL6snFCoj40Gdi69W$~NV;k&OKlqbWmwB+Cim7s!jh*2F77U%OWm*{@AX0(xBSP%HB8F0u zgiirI^|<{3OvWCxRp5>_!(6hvt+4J{MHBTP36LSulC#Wd))4aA2y~>@7Q*mRdp0LS zu(GTplZ4KdiOcUe+URf=dow!+&w14)RukQsSHcj*(BXj|K z=}}j@9IO9tbr4GNXq4%u_!lwdKwCbivBU}1(wA6ed7e}kzk!So%lH&}h8mqy55X8u(9Mo`u(y~Rrg^jAl ziti!Gd$_%1dJM^cPFq%25`Ky^G+o*qmSsZ?5LssJR8yxGll>oLdFV)|4$1QMP?runt|fKf2p#qPJHnP?x;^U@m`{g8#>lQxJp-xIS_uv&^kW?}D(;5E zS<+cqCx#A62@;k88nyt2eP_}88jX6Vx{n(~$gH#DYR*(`KVUgT||AEQH{6)`N|Z0 zA=3xU-y!UQyogIGUVv1Uo~K~oXDytnsMp?k@JSLnuLUB)n zLt2wR6V7&0vl(-&DBJ|f@sm}qPo$*`JbqzKIZmUmT4`cf*JQyYPJdjpIL+*&&{JWj z*n+)_Mi(K62UEo?h!jAgC!LuzInM&UW22?h2GgiHk68Bqi2AVoIO$wSW^GTRPLPEM z-mdH#twKhn*#0=4-Nd}WNXdG+7^Tofc-eMBeK)+Bz?iD(=IJ;;mJUv%w6Yn6eRU3m ziAv7kFoQB(&IF|`G(6=9!5n*?H4dS_-Y&a8v6?+MQp6XZYD;6Q$`f=HlTL<~=X289TesBNMOydFPYzSIx;gUB&aJ+Yn}foAov& zt$Y1Zd&b87b5um6hsqN{IA;pl+00w%nKwT%q@I}Uy}RJ5NmzM$gjF}+J9FM2w)=f; zZYFxMIsm!H%bPN@PFehMIX0JAP}v_cyy-!Y1JyBMqosO+FxCWPxdm!a!!C2Zxr@2k zS{t1GFk5PHy#wGo}H4 z_(^MVIb-_!)_RaxShZnZZd4hdP?VC+^0~)rKr5%&H@TGU*qX~W7IQNW?m}$Rf-42~i`5bOOPVQfN~B+nmMicQt>Ze$t_Y<3K+P}qV<`>tbRn!! zq^Wfc7VHzzsh8moBE!rLsV2RBA{|d1m6HZhV5dD-HCj5n0aSHV#M0*2Ar<}T-fU4H znp<6|9zVm5QsKVjo5OCsZ#~c(TqE9ecO7|ag%nEGeb?C0gOQsO6b)2om6iC_!H9f6 z>&8EwqDeS~=v-E}`0Ua)CX>UWdUwy}>;klfLqlPkN4T$EYdUJlKaJ;}xIAbkUR~Dm z5_WBAm_>?f!tJPeE2B_rRj_jJt=J6DQHtxGbV+)Mb85ID&V$^KjO+_fk4DX&qr9qL zxb%}Bj>5CE4>hG-)R~re5>y2_zkH6pYO2N?fuPGx9*tFcfiNL!jR4Q<}aA5o~tn@|Mp+YQj@)YviBL-1eihl0DOUY zj_#)B$U!bWMYCmk(2FXl>#Qo?NG1APkBXq%K~wi+_c!5}Ho5L7I-XEX^^yuMtG$wV zt8_`=P03N|BRcTvRM6cYR`tdFN#4j*P3vH9cRjw3!n1P7rQiA5)+7Q73||5G;|JJC`+9q~+JR<6c0J-g{!JRFzuP6srp=`!qP{ zHIRTHHm4#p^gWra5JPH1`@|92l-PhLx*h{ zBULseKkitlx~J~o!w$p->eR+A!}XqC>tk*8Dpnq^ah|p6~oFqs4)HVhl>FbT)+xsOWP0j{2gzovFlf=}q^ub=#s#uY2htP>vvZb26

4$ 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 z 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 OWg`17b7cLm3Y%_pXuV7T literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-regular-webfont.svg b/ui/src/shared/fonts/librefranklin-regular-webfont.svg new file mode 100644 index 00000000..dc8e2337 --- /dev/null +++ b/ui/src/shared/fonts/librefranklin-regular-webfont.svg @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/src/shared/fonts/librefranklin-regular-webfont.ttf b/ui/src/shared/fonts/librefranklin-regular-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..9fcd9432ad52abad70049b305a85b86a84404639 GIT binary patch literal 49724 zcmb@v2YejG**`ur+pnohwj@g@-RV^BR8PI0dbKTg$yIVU*v8n#m;eR>1aL?Q5UL4p z3M7FLIMb7m1_`00hvbt&h(i+66OsUF=cLa`7eYeVZBM?WoNk?CT#;exgQkK7sSb!SSUlu79!o4>SG@r!1+sziJmQo4tkAOO8>%G;R0OW zyM5n|J%_d)IgImb8FOdvm_D!%^{I@7K8&NeWA{bd_t)NVGtNKB*t_r9xovu@W8wFf zGxpFJt~c&Ph5n54Yn)$&bN|jg2M?FOH*f&wXs_7i^ ze&M#w+rRa>iAxxJx*q2`euO>t(z3_Sq2u?4JfD~6AHBR)UUA{93O~U#oIj7>3+y{g zVc%u{MEPIr-?;KN&qZ04t>|WYqJwQ^N0{gv7+c9ayQdHCW%;rNi^p*XwW()j_u76h ztMBbzN&DrrAMIX?{odNJ#D6_e{#kt$|?`57n)BDe5z>It+?Kz&V zqlVt0vTU~6_^{)5^3B}!AgpG;as^=eUHp~!H}T9z;ydEc#_x|m6aNw*JRUz1e?I;KVEhucr{YhXe4l+5 z|Nfb3-$@<4@#Mewr{gciUrg3fPw6k&F8->0K39X%Q^4j+@q6OY_|<@YHEOgIG)^1X9MyT#o3$)$Oa{+=WlJv;tayG{JfWZP5aN3tGm|20=mmL%l=ioZJ7 zm*kbXWBd>Cw{iD;O;a#;^_`UDTW03JC4uL>d3PK0$|%PFaq{_TX9DBfkIe)Z41qF; z1KhB>7K5UfVB?YxgyaLKNx4GOtRZRE03~`QrxTyk z=E5fME;nk4>lMlM2H;6Uxfq*Z5o|*8sYmiDmwakNnJOWJRftWOTxm+koDwpZgvl*o zN?}vjgyb@h^ zl3v38X;@dkjDHq(m(3BU-!QLc&hD94DT}!OpHzr{6t?F)OKh%P{0DX!TJfLYb&?w- zmsL4dsvIFM$A+_4u?dMCh5ZVfkT_CsoG+(MDW^>-p-m~FO(~nXl*%OcTQSb0FH|X& zH7S*KInIv6IFk%^NUBSbBb+M7)+wpZ9$`a{usb1TNxqs=qM1^%YI3w4akG^ z-Ey?uQjVH(%pFqpX|v<(MBg3gbt?Kyvh`K;_gCmA*I(9`FrmK&>fOq3;Pza6)f4J#>L1j< zs{c@9nyNXpR4p5xS+Q28RcZBFs}|7)v@vbDHlc0Qwrb~S`?N#aCEB~SYqj@lAJp#D zKCFFQdq8_wds6#?_7&{~?c3T9w3oG4wclue(%#Vir88aEU3$8{Krhh!dWBx2H|p(- z^K%5oNK!KA@1in4f-}xH&8uG{>$l4K!?FyY8*TQ<@_AHdH_P@n%6e6nQAC@Avdt#h z<|bM0l=bhCc>pjAEUT;30n%!U>REuKVubqkwsE77C|R& zfcl~# z!jIySt@uUo8$hcu#^aX}R^$8SeoF4w%Kc`!zf$hsFH+Fv815n|;oyyeofLPhkk%1J z4lP_4um@E5P%hYn9_Zd=6mp4-Lhh7N$al*q-;`0v-@w9&19$Yk zQ=gW+V%O{Q-gEL5 zTlb!~hwahLtN8&3yOHeeKjua`NBdi5^ zoJbs}633m1<8J#+;-I)SQF>VXK+-E0uiHn3I0nzM{bd{z?^Jq#hXDBYkLc&c_~DCR2PKWYfw!ihq_a19E?~qQ0{b%d0+f)C-i~2&Bxr!_5P}fXHP{PW zS&ThNk#D2UrW1@jAtV2sd1c!y>^bBc?GGo)^u#l@s-D-1$~vSS z-3K}Ke<=S>!e#fC?w@}y&|e4pGkX{4_X74hte(HJzp*#io2T3pJLUY1Q_g=P;UoO% z7&*e3{XPXHqGX$gF!e>(Fv7X$IrZp|!0OpsP+J3IM!2^}X6`vOK7P>8$?u}kJGo6A zTRyK1mm_PUmCF8(r!EJ76CAbp(Y+?x>fn5uYg!8LiD-bX52NJ3@5`Y5BxP_!sHm1` zMP*N;OyjCT57{LF?Y9)=Vn`pGZ_dUwo&?XFnPU`@ff+>juHvYe04_%DBj3pCI9cmb zT+tDKB*kX`h8K@_Lq@s(EfjCO8A$vJS3rz6Qv;C>tBip*i3XEDTjtPwCgB?sk>DFI zj(vCv`OcVj#7x_xEY53rgs$NMVq)fxGcU}1ZRXjT`%irL#5Yd7aN_wB&z^YZ#OF>teB!SFBvMdd@ZhH( ziaz}4Bac1t_~$WQEK>a|yY@g)1wvwwW+_kZ};zuDnm{+eC+-gjSr-TQC&!23RU3%mK) zU3Y%@x#uaQLoU{T{G<4CC+j3?6R*LFV)1p#S7NV<*W+*DJU{-HeJw#u1MgOQ5Nz>*{X^DNw0VGN#Cc#8=q+1( zoAZi_qHHqCdVPHlW4L;!dMcwl6!lJRuZ)V2cdIx0rSYg5So?4pcl7pe>5uCD6Gc&_ zWODhsi6UQ7-q8tfbbK6Dk;y!7w3$lHlat=#cI)Y_(K1ve&b-kYx?V#qzcfDK1vE#e zy-~;b#1v}0bj?AfMk+N<6%RH0g~-R!rbp9(678{>rEpiWh=hDS4?7(S z20PDJG+9wp8Fhz_3(+6lI^9b3bGCpyf2pP!gIg0V6*H#qya9gqr zYM|?M3s`}!PNFA+fPWCRClA$G2JkqNU3@@sZAMH z5TC;bg6r{4;q{NDrEw^{o}Qyq$J6y-^txbPG0>EWzGVa}qgkQjoQ~PRGaYk6#}zs* z2pw1HxG;2FqhoI9xK78s&~bx~`Jv+`9T$a;TXZZB0Sh+Xqxuvu?DJMd`37Q;%4o&B zi`lam&$llI=UoiUUfgeAEC{ivJNSR-Um^Ne0Jyy9A03O(KROnpe{}Sre{}Ste{?KC z|L7P%|L9nX{?V}v{i9FX zsb^$E-*mH&B;tQ;0Wz$N*31qq&yH4C9M^bO{{#dX4Pfnj%$$C?F63>H@P^Tj_n$5e zAY{%69@VpKIsec4I(^N@>v$G*t{w;g#Am!`3S2SWTp4W$Rpqo-MjQXPrl8<0Xx@Y| zVc8|#D(@h1K5#jF^yr{(5RzsBDgu%f;-Hc9tW2P^86qk>nu=yBq-Ke17PWeV+m2TG zyx#VscwWoNO}th1v!W_)LQ8LSiiAdF*~BBlt9bJs5dkH4vWEnz37L%d;?2GRurP-8 zWPXJ3;6Yn&h~BBKzNpeWy%n-d^iJoYJT(acaOyqN01M*XH!$6t=ffKY&_5jHTkyOy zyaa%d#8n|BFbEnb3ku>CNbtmI+*~4oz#dAAMCIJOKpL${Ja_?t7D(X1*A5i5&0dO{ zkQQF=fNzjqN~71Fye2!7z%W}mQRQui$|dN9U5SUz4S`;QvteAC)$aD-olbF6zQjlY z-pXi4@@*3PiJ_Vz6X4V?Cx^Eaf})DBI1o+kofyx9%JjBRRvoY6nPAYalddk$8$ao4 zvdcui$uS|a z^ntIcz-M+h`XG0pLWtHSoxgJ;9y}9C{a@&oFiaw<-PfE~G><}xCKE9BL$)>tlXw`w zSxc~pMu{+y=*euS2hr&)o55jjfR{6>qV?eCp|jKv<8eGQBievABcW&$4x@y(ejwO8 z0KJ;T)L4i}I64Z%E)G2mrwD~5C~zt)4L!_d%{U6OW*N2V$ED@eh6*dF4HZ^W8!D^{ zJp$Xg8>Q7KaamdudIT;5)lHye*G*D8PIYUkoh+@RcCxgd+R4%edS@@1ZKQWnVH3TR z3RCn>Doj(G0Teb<8!Bv}HdNS3ZK$wK!qtP)b_o}ic1XCWv{S-GrCky(DxD+YqSCn% zE-LMoa8YRwaNIgOfP3Xxv=bN3vx{9Q?jxjAvuFfo=R=L6NNx7pMQU?EwxJ8u<{)lv zn|eE_J<9%;g5C4b?xQ$ zhZTV$JFZZ*M%51+dgI&e4|A#yrxm4@hSPjS-1^Pez9#OR*S@&W`z z!%dw$Q8Ii+ShS>WU$DiIy3HqaBj3=u@6OrMZnt%K!MSeh!eUh~)-_&qXEE1QS=#!s zI~Ux^|K%v~+=bsSEuCXtTl>Xq!ByzI3%{ScxW+Z($3NE$yU=(SaD~j1_$Nh^Qj0kC zW_BK%h^%U<6}q-6A`E>Aw~X_EG&jVIHo`PryOQaKekC(3<4R^J)|CvQohu=j_*EuX zRW>CcnsV9Lo^!Tsot_#SX$XhQ{0-?2V`0$m;YP785kyD`_^NnmprO8tH-_tS3V2Sq zj%rJ*L_>We(1MdjA`ILR#?|bs%oMKsic4{quNaltg*-b8Hvq+1nb|qn;kt%&+}40c z1gL>%YS`3iXda(i(U$EE8d{N|YMOs#hhjJ!iziDDPOFBdmKmC(d9qYfeVU?}nFHm* z)QrHVW53k3j-jT0MRRpp?Za(-ifUfDIxJMZ+2d^272ecjX_``~X;oFieA9Ah`K?2B z%XT}tuGXr$Zq}Gas6^2<)vuWg{f7B(T^H`&_wrwXqK&?~($+;hC3Y3(J+)OGxg1I1 zh@LgY-%>V+zkoLjSr9W=gY1^avbnJM$Y?YG0uH)BnkF;MolZopnWZ5_qpEz9;sB8@ z9CdTc5}S0;EqE+1QvIJ>6D!JF^i9Yt$koRtBZ2mI_!M5o+6UVQdLp5=P-}giH|VVh z_zUu~(gBwz;4!j-tN!|OK;4Xy*dm&N}r{sKJrAhx@e zop@{nd_*`#{3Q}(n#xp-9U*E~HW^$|7RsE3O~5fv9|f+ESwTfUmNy!8;g+H^-J*jH z<~OYRZ=W40KhtALo^FCXm4GDWDWXG>g}uFuZCJNzMep+7Wh9=$wH0OlV#~-3GO!MK zHY*bh6RsoHYLe0ij6=2A#Cs&Sz+94b3@Q*0VyK8gF~Y=R@@|{Ke8N|3vmHGT&8j)S z=bSZ@rgoPmgf4vJF4bKIN>5oR;du*KMg+54r08f0W2`(#Ph#0g>6Asf4zf$)wT*KN>b0w}k((u^+S@zUtviav zYr3-Q*XQs3{z0zj#({5LbokesG5v^nlK49IW4t4WjY18@n2~DPA)-|N8Jn-#TD84t{^{`M=)91tQdV zPcCx1cH%uvEGLp#TUAt8ut0|p!u!}*elDk%1d1Vqi>rBn#5NAtgDx6MrKrv_GNmvl z!A!zBc`PpdDp&X@H&vgitP=V`LvbtSUenUlYSYxu7m9{CLVdrcEEl?0wMc-83l*_I z(X?|6UZhw+Qb;k6D4Kc1RBE6GgsO@FH?|6-T4gIVIRW@P*^Axb&={!u7IhT zs&I9Ut_cNr;|kj*1t#MvUy57uSzg#zT<0^Oooo#*hp7XiO=@cl76@Pw5A)YkKj8>^ zKIOI^()6I~L4Ktl#;fwV@WIpBMu3q}c4 z;97yKI0$E&WE5A;*0Zt6#{%I-#mEU}6HXiIF^CcbVoabi$g5RRsW{zk7(&Xh?s48= z8vAs`a7{WL%MI;%r|kc)VRHmAH?<%_bBTc136$RXZRJ;9KrFblOaPB#$L z6aTx|D_)1*$z>tPLl|V6Fs}<$r$H=B$Y5!tV)8FFH+5lFhE!1c85C4{+N?g}_gy+P zbm_8XM+S#38-HZes#Tk&R*BaqKYh{RPpw&V|KW=soSYfwwf}S5?RVdG3*oI6yHB7$ zC9EaVxPS|#*dr}N5Yq_K#yRNf2u$0wQB9@Z0@s*aq|TNwf75`kUWc9Qm%_CuF`x}; z^(nkqFQwB)j5T2*EfXT)6S@}rh|_t*v@YQSXwg5I<_Wo3qoq}k;wlBCku#EVw6nmuS(#G)ky$d| zs)T}SsITHaiS905M_tEhvEB6%W&L|c_jmNRJDuIDx-Z{w$22I?005zN?W;F8tgfAO zxrV|kYsv;gTgEZMhEH4powTKPRb%6tEJYPs`gC8{bkjMS0#h8uU|_7Ps;`(k>P^A@ zoq?hz?_y2!ftKNUA@B7yR*X@qjZ_t2gcpE##0X>)q!B1dY$HY?KM6zS^Z9CgHU4lo zTq}jsES1;}2HC&1guoaP9W`+U9Zjo8#}pbseyzjmb(tGIo()!NpWBK(m0}sZAL>*U z<{K~=UsYYPPRmj2c08Eke#CHx^)v^6G!}-uT;eigkE)8T6Y4Nls{wZx>xpzh{XtM` z!jCZ{@`r^Yv>j5$ki7%o$!0W@8RCpb5ZMbU19&n`_TFpRB|M|VcSFBikO_gQ@6-Cpl zm$Yr%Gc{7Zq}mYNtW`CU$MqCwR$ZoPk8gD=HYP zXsu|eufvUH0iVCp0?#pcD03c6!Z@xw2?Ggh8lE4STLs`qn@{=UoAVXDMF83bO=UZG zfzF8;cg*eAw+!7Uni@ z>FhtZZOtbRTom0Hdrw}5nU)^j(H|TMbz?yz$+>cLID~O7AQ|GY?IQAgL6<_>G`3VL zV2dh(Dinzv%1pxpACWXlQ)4>Wff!i~H3ll*G&%QlT`=z8o~5QPyzk$mIAWK&xXyJL zAcp2o$=dk$U-f5L=DYdm{m|mBRvo<0IzVq*ARD~M!s}#hk!F$yLQ#*9U&A*c8~~X{ zI8TcI>gu8*#;QB3JDQt{s){OcXJNIOR07iOCCp0_JH@CK(x|nOEd3J5LSM0TC&T=f z^Ezu9Oyin?%T`|cfrbvZYg6RFaA>q*$BvAq^3}sDH`g`4ThX)IgVXE9>){RU)gvW3 zT;YaGx;BKjuWwitFjZA=*xtUmWx(HAx-MsdRzB!!8=1LjsH3{YQ^?Eu$|7W2fzFzs z=f**2WuUXhNEpsJ21MiJ+({E(Iv@%>JIPq(7^?Et@|JKdZYT|uhfHZTNcItA1SXjW zWHjrdNhyi*bTa>K378+!A=+AfY2VPb>szJ^TxR)- zHqch-V6`<%TlodEwAIyjZrjAiiMIH=7G;CB>bCV(j8s{jFBW?k) z336WMAWL4yC4^hZ%sKhG7@M4YA`mY1*K4pZ(-V;`vIT-%1iD21YzLAyUK<%xFsd?P z>j}r4t;dfd+~szzHjSCrOntwVwEEtM?g3#9uzOz-A^0E-k7ptRCJoO*z$`D58IVsA zE=s;bu#9>NV-$&IlaJ=5*+wCBW(mR9R04%c5E^cTr?U7@-HIN&#N**ttGdhKihYk) zx~xy9iQ5fFvrD^Eq*R)ge&~>9S%l|K_7Z=c|5J{0ailOYl-t0;LRm!vx&aoGSezV9 zp6Sy_d4)^J07{gLV3xj~8bh3m|BoYi@fR}cnj>gpn`Gg_Co45{NPGN=?H?l9F5{kh6aPEgZEl4UK#ryI;^Yw zYL6#&iLSVRW@(2G>6TfUBJR{&%?{&skp@nreq%Kn|1D%z8AhTi5=?{KgayVSx3~&z zA(EC%LODXchg&K-{5Dn0Qvr~saNs}{~asSw!xOgz#Rvw0C<`etB_m zc|H`OyP(1sDj(~t+n6Rat%aMWbHD>nL2NYDuEEOX^<~|4aCEv$HN#WAxH(YMT>oFV(4P&LfEXnTll|0X7Yl z8<11XsjJQ%NQ;A#5<3xsRV;_HgOaMvHOw>#0VZ3Th?jKzug{^UOgNA?rC7SM^R&lA z{y#&4fJyrLwX0T)3tig>+lb0x2 z*+tDo%dZ^SdHd4Ex1G~ESf%N@k_pozc2}^}-&xWa@V9su`?ub|bN3T_25vle^n#w; zJVWmbj)%K;cSVFy^L68ubkD-<>NTzFFKS+Y*T%IstjH@+wOlyOCjWD!W@)IQJv2sh z0+5l|eG2+NkCn1uq|6~{SmP=K4U6q)k~Rt!qo~)S{QS~I0bhN61Nk;}fkf0Vhv$%V zrnon(0O_*wx>5xlHxQl(*CJ+$0IRhm139|fIp|XR5loH!)KUf&S3CcN6YI9XAMX;T zWs0wvddf_z=5jo(s^&8m_qzG8WyK!T$uLupz0bs@fHe!&bS>+Mv{u0$ore3@SKk=vRn=QQ_`W~CIk0(Z)irMGeVeDYuDIFMRd_z)>z*weI+ibh zu@iXjmM#2PdtXnl>ksbOry{)reVXw%)3&XIoiQYhM5FWF{%b&V%iODr(6owN|+1R`5yz}-BZdxQ9 zZH7o0**~=9{bQr=n-;G(Z-iA0)vt9gIdih<_Fa5e;e zHn4584C3_PZGGW$vGZ^C=;m^S-S=JB-Fexr%nI=uR~~;Xc3rA?-q43VGhflQwyXB; zy{rkA0fY|0)DM`-2%<6w_k}dAL;eUnGWd?DAwOKYBiaU-=IPp4i9g)ntJRI%V0t6m zTZ|;Alm>M6L=Ntp<8JEyb3 za{f&xYtISW_658-0b?~_^s@3uAf3VlXNE6b9rM*U_-dpwn1y8yFrA#GG~z4}>a>eL z34k6TfSgWEkG<*i^Z}IDBqVP+9SxAsvG2Gg7@QG(-3j_?V>=#Cbqa(|5&@~gSvNbO zD5aaN!Ig*h0J1O}c7_(XL?f-k;kC)FXjlac-M;1^V4x>OL2$u&=- zOA$_^wo7>3?wJ=7bWSTr;dezA<)>IuV~p5dBVI_@EDyK)$a?qNF>q1|P!C`?Y3d~2 znHjE2D3WZr<(WBL+-xp)Yd?iYt{*^VbR@+&g4rRB52>cvZ))0aA#;E_!{X;_`jv+B z`=;R*-*CBNHzHJj5EDXL>}^ClV$#R5WkxOF%%oXqc#(FDOk#!1QkpU=@z)Sm(#gcK z2bgR^@So(oAs3i`EtcTMMu_9wGZ)WedHH;$T;ic7Qke(XSUF>=4Z)Mi2n|nXkm(QbH=9l%-Abr942K0r+OSKvPUO35)A=&0T9+ zYV3$=c$(ds*Xp$6lr2iTl#3eUebib9-=hlq3FTHj1#)(_q zs`ioP8~DfeSg}_zV!+6`dlvV&VsD%J@NfbrR|&$2mtoap1OaSxfgDfx z&9EKHOZ~-*^0G6FH42s@DkE)Ln)0LRbmBkB{uE+^*tX*aslMX0ZXjp#4P)1z>`a_x$Kb{Pzz`PCoFi-)>ZNS4n}&&1$F7+^Gw5&HeBC&@Hzf z<4v*WB)o(_veW#q(i$Rl*}$D2jE9(KBEmtlF)}!vHcET~Sy56_Qd?5p+32sYBi2ZY zj3n*|tz@u~3YQj}hv#I7Ia{rbi-V9=+7*h!d7sO0KomoX=Un*iRUIJc>mQz2G8Xk% zcc*DC7jM&bXY4u5To{Dw%^R0ar*mD2eTH8h>F@4wzD}zG5yXTJ9Rbc8$+N46g=y*(AVuCLZKM?hGkm@t^6AoMrb z`8gT&wn0KzpX2j@9D@p%$aU%Zi@F9~r|Lh(B<)X}PEyAD%)7wQSCe6hcTNC*d-2YN zEHARaR7 zSC3Oi-pdJLE;9_}AuM%LAJUw|x=>zG)jztR(0KuZOTPrOI`|}Jj!Zs|^vJVTbDeHMz^_zVm=tVlBT*nZvZiT%bhQ+T%JF!`;Tf()V9ms}3sV~{^8=>Xq0 zp}8H{`j{g`0F!2R=vpH8ZEgsR@CK2@BvvBs=xlH}axLe~$5qX0vg3hkk&}=Lcoq;mWa~gv zfY0aoMG1Ja5s9kz*AP5p_28{QRhA-Elzq~Ww$}9#%UX@hF@2TOc??r2M!D&J`)yry z_?&L#AobssnDdo66{pPkdYCJqK>w&o?B`@qoPb;UTigmclz(F%a*H=HwQtQZnsnkU z1^EtNmGDDOW!PFS0kLhylCVOKg&!Ur!7c+2K%rEuN5T~2cCg=`3XeW#Sh1TCAHC4A6B&Z8kjsHQNL@_x zZ1I;=g}uNb5b-CF=kyl;8TwX%d4+G;QS6j##1_f|m0{UsjgJ5w`Ng#$@#0Ud;YUZeuE9C#Y0 z)UYTRq(A?er!+>y&goCfX$S@~y{3^LR7qjT`E!gljSfXglQY?5pAy&0`5dE>vM?zZ z4UrN`E9CXtmP}rA`I5BWmWgJh=rw9e!Fgkwcj{)H3x+%9NZl#j8@6?X3)^#Y7CM&p zjIW2q@6K!N8b|I?I%d}NhPHL%vAZojwaU=Gsq5_x!Mf~>^zw`q67P$l^8%pXB4~(h zk5}g*7c=R3WBDxUBu$e69-xj4H$*$7lFEyCPq|F9s=!$yaEw{i$w&rdcd)c1Co3%l zPGJ%E(!^>wsXf89a3LDQ(mIk>2RU2tuAAh9B3VkXONHZ&>0vkLOLN)^*!OSKLxtpc-|S@rbX@w|n>Y^U5e-Mf`)l z3eZ@9A!-QyZu?bsBn#a;DUuanB^CaljAS8sGc!fZ4-U}S$S@Y43uEoyQ7DWiWC3~G z0!!9!SXw=ZxhgeiD22O6hxbP!2Zls`U$d#>>jGx5?7-$N`>Sd+E>aao>u~=i&cb;3V25sxI2OS7uSLoq#kFZ>Cm)oIF`-OKzzd)$_W-GC2_p5La+#*#FeZrv z1<>&%O)=1z-~~m^fieR^!wagEL^<0TGV)}Gt8L?eJOvGfq)SPaPa=n)V6Zu|wYB}6 zzRI3Oh=MpfoVp`i+Z`BNzizO!yTlW;w1V>Xi&n3^d@z5Z?*2WzyC%%*f4*q{&Rsi8 zn)B(4L_&^9KE?!I3xhX`DRTr(?WBq%*fB^->JV!S0>|LqmJobt`s-#p|4U$zXMOtc*Xo zyk-Tgi!9A*Z|b{v>8i{6A{VbzEh}X}vqGbl;bm2zB}}o&{IhbJ1@&M8pNI+O>jsRC z?I9=|5Ta5POw!3}0ulG^-$(#?Hp*e4v2Jwj;vU($IZWJT0w_n_zG94V`zZHHc+@AzD#t9JbasG2;ZJL_88Qd zL5y7sB5H7Q1FnsM`9a~LNfUD$QbpBG$l6g=&=mO!$+Bfh!3ph~7pXhLeHP|Dlr3ku zo#?G_WVoY)v1Ln#SBzOG@+>z7kr06lBSS}EN4g(GXLG&?CC<=% zv7O>cUI-)xktfDIEZwODWg3BmQP6IRXQ>T_7!a=6v(yp+MU3o=qt z6hj;899uoy*NfSW%+l;KHv;)0r@Ly&+Dc8!$cz2HxuLPWqoKa#t30P-VNH0euPl-4 zw*-XFrHqAVj%080gk{K=q63nRWe5Xd9aI;wLVtZAEaxj`y$tGWGLk{&A<0FGWh{Z0 zVYQ6cEMAe)><%|n^w+00xy9GvXuRn(L;mFhvFlUad|O>(NhtOnL_h_;@WR-=fMwpA z2Lb^yMUtxYsp=bjb!4m9s~l{4%!a8&YAWgZ+-o{oQ#@U|shW;3f_fcJah1bLTbYV^ z-&P9l@wYt4i^KO3S0~RKGkafH2#BoG;CD-Fvu-hR4QGeb^A6qSoSk9+17@GOnPLiD|w z6-5dl{%IVfIHj)RoSgdR`i^4iyX{E84zI$>hhzXS+4(e5T#39uT$N75LgxUGahuT9 za}0?RXNL=l>hB2mx{SM3MMgt*I4tdHnO3W_}gI2Qvy zAC+S?FHaY+)k`BQk=NLeAwAHKnvQy`p>Vak(vpuP?9wxoUdYupw)*j=Mw(kmXpn4( zSm<#OBt8o>Y9c*P#`*G)RzMYW)y@UapSviv1|HSoYx38Z1;Un*CnJHj9c~k6k|j?i zQ!r&R>Sj|dsA#dX-Qj2)t8N~4!!R@IS5yrx0|D36lnoSNI<46~Rn}W)m`!f}54W?` zWrYHD0R=oeN6)2;OqUhAjfi_E(Y6VJMtw%N=xa8MA1}bfGsf4}ni(|zvx!DHlX4#= zk>^EnWQTF-6egUExN)VJc~9X($f+~)q1_{=)x5NJY?aN3gW*~5!H9w7{jvAXF(QD) zpRN1K0PiVr!+e=C`k&&4*~wrG1#Dn2&5s+NIMCI7U}WS#SLDFR_?pSZOV+Mk>gc~@ zDY8fhkBl$9WT5N(Et?M<*t~hagkf=fohSheWN#d`vE?YlY&MJzUBI@c6V*ORSk-<^ zLBRY%DygosO@<0Ol6Hu#q)CoQWl@%FMhQ^hacYb=p5Amak~U|Oz&I>7!G7sLHi>wI z`V)Obrled-0~rJf0I`q`9bnst9;o{d!y?J@c2;z4X=&NnzoHH6XPli*!)mDRE*)LB zcCai`BGOYTEG;W{LHpq~6PJU)+@D48=T6g%^%U(tcjpdYWA5K2PHKP?2XI1Pewu!) zF0tamHoqv%3HBDuNHVLEeU>gBOk%RP(APvR)agwmBT=p)p6v^iHIVr=8=^jo877m| z3~9vJ78pG7f13t`9pVm)#)1Reo0@hEb`R$v+AIv1#bqVkrGx9&j+Bk$igb9YJKXLk zJ$iP2-=!;;U))z-pqUl0jf>m;dv@+TzqkNhwt0tdN1yZA@M9((lw=)zqZ$z~n{{Z$ z7YQMGn4}?2!j%N)BrZ%wC>{>~v?LHF%Q-RWgrUqPGapA9!-POs>}+)!>ey1Bm7ce# zuPVi6_HNATO}g71LMd*{k3B|{c9=4SZ}?rnR!_0OEC?>CL6Qz#0t%Rip^A`<&@s}F zvql8?V>V$ELQ3+=N#V>yF!RuGP1As{>aw0l^XAUQhZibZsY7c#zin|<{f^--WX<*L z$~VjkTCK*PDya_Slz0N^gSAzIr5&{(J|$Z>R`cpWejsI0Mqh2!P-$Jzq2>sgpK05R zTg0>YUo%=GP5wm?$S@fx@S-Z}l`s@3WFU%qy0br#5*6NW*Ge85&p%VcJyFTv@>{ zKxUKWcDA{!s*;uc{9uYF_K~_az=~Cy!UU``W@}07f?}x>jZm3o4fV-bDp@acfgLg+ zNrPiOhj>v-_h;xYa95{O`w&7T+FgpPN~B{}&Y9xjZwdtHV;4G{{8|cG;hlweXB_XW zrujKLmP(5*#jFug*4)r66X__fmw0b7AbC0nb@Kwd|J21DYD!I-dLg9;oUf*Y)6@@f zSDRBqg`yo&oYgMnVhZCN&|LW1Ct$SPZhi=!z)>9ElCWM3Sg!`mbi677GvP@C%#CbO zBo_-lz~D6TISX=IWwW&TY`aGWBfu9xnVborRa0bxgS23p19v2pa3W^{C^J=P&VdyD zeK02UoAs1xkMX#sJ&1TkuVJd!XteASk<)sIdY`5}fn)&dY14e#vNXqU5Op>FKsZ;m zCv^P@Ot}gDRRcjo62-uE9^!-l0Nf?4K2qyJY!GW?7|n%as0BMhQF=MnD$;Fb3MB3- zVSb;lMTW7nW#|%+65F2v^)klp8_ad4buB2%QNJi@;1(ojt2b*_H6{vP&KvK)SG7vP zZuJW=W&8@Fn9kTG$hy12iBS7D`s!>rK@_M5^$oZv6C4WLpB3)%Cvr}JE{G9~ zJ?vhryMya2QzWuy>j_@SSTe{d9B^=;wZyU(`tx~9h0cwN7M}0VaXO3J23qTNy|Gz5 z*o;7IZr)Fu+Av65X=(jg!9s*&TdIFv*5*J4cXRcR3GQjcQtwfgA}13$1vs~3n+Tp# z?j8ce4$3LW!76NN`63N-uZufFF6X^&F-EM1*gN`6>jjSQ@%|GRv1#>p+B%E@<$)h?Zyt!ds8E2GL_oNR(5@M*5{iW zb-liIpsm>H%#j#CY*1ogp=Fh{4)A-cn>qT}R`&Di7KC&c7W}NW1vJdHwx*xvHst#Wm?3I(Uo&-i!cXzmT(_*E>Pqo>I@jf&DdzWAN5i1LD$O(} z%%Ka0hYyWd;~w`?y(fHn^iTE!OpEpZue0TBFw$3;g>=ZqhSU@cdlz^>89|hgm{@Q* z1x@@)s|t{%y1_#7Y`RHi!g4m=QW6N2Wo3sQh&a>g^fsOi^SCrHOT>~eWFW!L%mb~E zJw}#N&Kz&k^e$mXC$fjXlZbN`xvYYUdMDS{n&x7Yd-Rs+)}H;D_-bk+awA3Yc=NEw z68bU2_<#eEC0>|eI35Z|(zvPBxzwy3qp|ytd&WnHOD7Do%rr*}@;cYmcGW;NWN@vs zyQyf&B2%w0%+ktqN850wRa^!u8fj6HZgh|SKY|bQpNm0!Az?K;Ka!CLJ_8h}dJQ?e0?Gremrh2q29bj^ zxO#Ba(#3dHe_5cYkYd(|KuIf6qEN1Rq>xk-ttw5-lmkt~XF1upO5BF#5|gyB6lF97 zZ+3#x>|mr^GxNO~OABF!QOi-WWK_v7#DXjx-;EmHV}-;`J(O zt&R`s>(EQJE&k@BqGqVMqM{bx6NQ>yiOGFPJEfAAcU3pGR+(BQ&0a3h)GAFa^lEsN zQiwZMqo%n%WT-WUj?)@lE$S(zrxe?Jpa&*{SPQ=DWXM;o#5zfgCuAsAAfo_Tv>oV% ztxEZe4y@ysQ5@t3cDC16`HD)?>wHCipOZc`0qtt1=m&XL;&T(Ti&ja8wDAV1McQ~` ziaR?eLxyyvND!+u_1D)qOzZla9ckBRwx=Rn%Dm-9mwEXwgnQI7)z2WkPF0`M3=8w# znEkxM;WhLP4zK5uw3H*7;dO3sd7b=-g8V8Y_C-L-drTM)^Yly(#iVG3ElFB?wFD@E zmc6=NSj(L1%5i7gsz(PEWXw}N%Di$y4dIgqq>cFFunmygb*W?KUN^rSn)!&d!36Wg zpWx4c&m)LLl}7x7k!mjp5zY*lnKPnQsgV{ci1d^Nf>{5U9rS}86CMmG3j{{^A-C6d zVH%r~p#bo(B+(>GCnBguz-}yKqlKK`TvNNYZQx*@rUl6uSh%#lzPqYrZC__|RZFmX zO>^hgT-_+eM3>e$)Ywr{vubI7U9hy--_R0lFKO&L-c?@F6KJb-Dmg+g36_`SS7-Zj z2kWZ((+j%F;AA(HIn->Sb(a+_sK_k#E@`ap%<|UyeAU_6YC};$X*PwKFbC)mhuQ1+ z7K*~Yh40eRpMr0Dyrtv=KlDwBUbbH9!DY=Q08=`A!eC;D1EFi=EyIe@m<~H_hXo9B zWepDCbS&gj_)@Qza;?0*-k$c>+Uj6=YGG=@f^3;}<;3(Z>CDqIuTJL7bcxM5`AE}o zcH%Ohoh0E+4{hK6(9RtX?ZCe^H?CfNXrFXDC*& zt}Iy9+B{iXH__~vy=&(~+uO%)+O+ZJWy@~fICaxfk=s&av;o(QKDUvHPutSRdhwZfm~`YwmeSH~toESK zMJfF`Pg zSOjHp)}!d$6TlJ_7Om?=G(3-RBkaBDF3IXDxvNb%|`(W!AjXMe;(y(SFXFA1 zo*vENVU-X$0c-<#1Z;6dUPUHp_$KfTx{(mj(!!83Svzw*LbyNTjzy+8qAHg`Cl$hA z-hxPImaM!~Q!j&>p~}rdj6+xGpFr-sdR#@g_aTRVpR7SBRkv%PQ7E6NlRb?!Mz^w5 zk}?Dykuhgi!SR9|T}A#EC0z(k0pC>SDXu4um-8V2y`eNQjm}@!jVc$9eT>!_VKx8f z4c&1qEiEEG>SS^qJyueIxP0S>3#P*RIuT72#9xIR(8+)e1FbN1&ow@QRYEFd$T$cm~>b%lo?bL@IYpv`*BV zGcmDiv8rx|!rH29zt9R7Ri!Gst}Q4Oq5-*)QWo9G>%@-G;>G*OU)e_OD&rUpZXf z*;pBBY^bVi5bql*pBxyNEFY>0H8+K-TU)B|?oJlLw;_(fvMytNk#76z5a#^vLg2ek zDu?JZblq5m1JoXU>S*yIq*E*^!-^L#ZnnP{L0>Z>l7b2*hUmaZ*qS%_y@+&NOlE9g zIol^46?5N?NUmz*znJ}og!2LVhD7YcR!}Z)Bm7nI%lQsvGEL_h#k-h^570$-MZ-af z+eZE_ex1CQdD=CH*o^<}fCfOSUN{62)AQY_4(;wv3!MrJ(} zH9WZ^U?=u&oxXTwPr1rqS%3usSy}#iO2?d+(@MlPHwj^z`?fFZWb5Xa3KC(_UUj{kCL#(|u#i!{-)skLoKmtJn?BUkbW)`@-!-)1R*l(l)A zgwedOSdVDCHxYe zsw@Rw(~GgPjPSZs;uSPf#c$(#unw30?*{l^sKLK2B>3%#gHmP81;4_TYhs%z`2#Gj{@jBVUFwq&Zhr?tJex4pH; z=8I~`;oGDft|2+>f#k(EG^qb<4UGxD@I+NhTPs=vB!^*rR10#UDQ+agMHmceK}*qm z+J)Od6GkC|a*)E8s`?_gvgJ`!nT0SnFH<#HrEY#3lM@fY?SKS^9R7rE+y_%YJcMu2 zpbBPzK~)lmO8jkQtN2rDF;9n#^|3#4&}FKEPXqjI_WD&PUEd7 zZ%bZ>O{$8mv(5O}(IjL}B8rdTA4QsMX@qMiBd5}jxW0@R!!1{y!ZMCg zkMU=Rx<_}kTMEA(OPKi&9o!xJjG?>Ua5~?lwO*644#PCQ49nxW5nA5m`J#d4h$c7! zD-=&&{q+MEUjet|0l7pGva35@CD-=#u}?>wMfh$6%O>v*bWEQND@O}Z^*-#Fx);h1 zQJ$@s&XaL8L-p(z8T7;A;*ED<~6F&igK@CrKD7<=qK&Q)Ja(IJahtDs z5+2A^w2?XT*~nN2Kc+#j7Q@O8A&V&)5ku0Iy(k0omEc4&gOcAg%E8=zPEAf#u-xzS zE<*loMoBsXW8~r_7I=abq!~o(GwO1%;)EhIzc%}PxEe7&$tEaK*g(a^(XJv%?dZ~MV9N#mgE9Z&p!>VA|)pI4EmhL^MeY>GkmED zWBv^hIt@3p4)Swy95As!bOFVFs(iKE&^Xv_UKH-Lw4rgZ+k9OVo}~@JW4HN+C^<_T z8Y{cax9~qZNqA<*3eF$97rDEA$RW@l$+37%&@Uqq)i6&J{#W9AIfaO!%UE;@{%50~ z8Stlc{nk5mvp~~ty+c(COyk(?_@a?kh{Ca#a2;0>rNX3;e(UX+AyNwr?bscfhM3$j z`ftl1EHZ$v=f&Uf?jY6&;9F`wgn+9m10{tyNY17H)@-dFGxZ#p^7_Pv8?lgUa+%XC zjP-Q!ql@qO(2n-l;n5G$XHG#YaxIFagXRQ3+In`re6ZUP9oTJ>diL}-LDt&e#A1g%Wt^oL0X1}RXoQ3EAC3* z<0{Vk%zJP5?V)oe>poViT^+m9YImj8>b@+?vL#vag>R57$(FE@Y+1I6O~AwnAwW3{ zZAsGb147coNvR>VOMy_Dl0vb;Bpe|rNofKE+~5$3NlLNQ|2Ok?wK9T`q)F}H)0>_5 z-dx|zeBXTY|Gv5BlYcpU{0oWJdsc7e89Qu8$OFJ9cX{q)McW>kBO(`&6_rlyUF%l}S%uY_o^0_>r9Idc4%j4_mI{z;Ay7_UN%?qux z=@M8>P+yeT{9mDebdu}~neVo^c*w>^{7HUST>Klc_){GIzGLaU9E*R7|3h5-Yq9v# z{N}lMwMfRJ&ppFGgAp&}HdV@PE?;<^n=DVPF41hK#! z?v>1D0V+?wl39eOS$#B-R+T3BDKeSzdhDRO1ib-8(%#P4y0!f)+I!o3x;l|?i`(P! zm3Tc#K)t!4#Sj|Uxt$RLmqev<^0ooC0&*gTG-x#6Wn|JsB4rd)Ed+HFDR7}1Fqg#8 z{sL9~n(iN{s$b&7He9*IT(qZW`Jfx3#VC&Ix$?^Oj>XMufL=D&KnKx&d-uAu!oe1x zmv#HhjoX%2@G85xY-#1Mb?dT?m(&F-SNPwxBzgOT6{Ql&9BFFtV;iBde@X8qs}2i+ zNXr0FCl1A??Fs|~!L|cyVI_3Nw=&GlR$ou$ORzO;s`iG8B1HoIIDdTZeHt$^{uF;QE}q7Pj6co)n&M}F ziedS-NdKQ?`s}|&JXW;qeOjwB8GjNuK6?LWAYh_G>C5<2JWHfc(4_x_4n7)x8t3F; z3K!)sgKi-NYOierz#LkZ<$=h3O=SEj{#0B%r7z>3;?Ks#6Rl+YX?_&6QlTrn z3A(~f&_m@wx`!&0GD&*^25mqu zW0IWV^DGz3aj9V;cQgWeIrmCi;e}5Lt%jx$iWy?$8``WTCGHA$xe!O9}z=At^BfNoASo148r<5sUL3W1+$X)|k5c~a%_6&v}A^qF5(u3WK> zpF@0Y*9d^Q9#_O{PJ%#bZd|+>a9x)(Xf~zIyim!_wR^U<1!jKJw0oH53yII8`DMM) z*Wdym7EgUm#-HS0j*F+hCgV@><8krSr)2zTeniAe%oU}xS)?!cI_3q56_&P1U2TgY z7aPdnc&IN#st<+w{)uqDuO-iX0OzYtSS;r!;&8rbFIi8jzpST_J1}Z!JLWEhbb1nh zk8UOOJM;1P63cj3)cirf?}gEWXu}~)q`)B|ZNPgVyIjt9uzbiakeBnLdNSn0;ja|$ z^vieHL$miYE8clv_I~k_LcS%mF!pmuFZF1fJriK$AOIG?X3J6GBHa{x!Htp+csV?> zdu-5NK`jM2mDEzk0I7|>2`6XK7h^-p(Bp_NdT3LB?(4SDybm$B@G=01bNa6>)I8!V z!4e=tklQ?Rryq-h=m65a^YG*A+ z>uqhVu4b%tdF!$zi>q6zo9k+kPO!M#U0sI52y%Qe+&;FK3EfVD%OcVNN}+PTOeti@ zViqSa#-CLnVg8H93c%>pg6(a)4m)P9Pp;~(8YMGPuSGB2(bGN#$cV{YxV@cE_jtMA zZZ2KwpZS~h8+-dUZCYXLJh*bzm0eB1uhljkIh5uI4ER@(uxPe4Me1sFYjuR5sa#o& zT|-}Q<;>bRvjL19xgMl7qg)T3=BMR)a855EY=7>?I7(yEuaB|DLT>@4uck)$^~u1B zo48B7WzXGl20hy^G~+?uHf2ArfjpzKQyf})G2R@?O}tTg8F5c>8m<^xGjAwEv;U2= z6B41905TxpV_3^$7g(6zw(^--v-UddmoQddNin4;XH{iTvjMZBbZd#Q@tb*5*$S@p z7Rqn_R*D(lt8xb;rXzrKk_qotuL2aO!q4u{Y5zfa7<)!)H@9Xeh#MpkjLLFS**|+u zc>~*WMPfHG1NahBFypVZ;4UpGi&}8Q=15w?3S}{t6j%vDz|EljyV5@g#$UBIm~g<2 zZrWx~D%Gvps9A5c>&o8({2u~BPc?0_o7F8~Kr-*gm78YYQeK99U|)JZX`C|^uSN`OZS)dD+XO-oMJb(7U*Q!RynVUsk-@{D0`4y2oG zr+Is8CBj2Il~ASeLp@0PS+OP0ybYfS8qdOX_}5^-rO+{9n-|mZY>IL@(tZuQ)ddVF zkde+dr#w|59!EgReE1u6*OtUKbq&im%7Z8Y`6x~%%2@OzSeXEtXl^!}Zq>;e%ie;G z$^*HuMADM}TynAtFq=dm$Sa~pZMfp=M$AjtI_ z{H($1L)%5tBDx1q!uU)$U>!t&4G??|Z(v^lKI9jEWy9a6r>B+1aH%xKOOIWc?4m09 zYF+BUM_N$Ae{H@ZeJz|xL%mLAFt85rMZkXR*#LjMcV7mk!;Lb0#JL4V zk0fWY!a*!{%;6#SZ1m&;S(lg9(C?6r8cI1|j&zj&n4eA!KhKT{om*a8wgX&AK&5co z%AjaddP~BYG_5!Y`~r{*wo0U$4V_s`EZ;CGIISWTSMxxh;-ho(18(iQ8+NdD26;RqO@4J zvc+IRVNft1ufDJt{5*<5yI1kWpmNL}W=GjhpfVON2U>vkT1o7Isk%~|?@g7rh$|ps8U^mdV&SugEV8D5$u(5`(Xnvj#iZ%(7 zr#^U6qlGenSdhmsmXxiSVCguCY=Ba;gV|MB=M+LYnvn(ngBdNY z`Zq=0Qqa#uZ%j;Gs2hlm5v!a@y~+xi0R4h*WIM6L{|Y;XRf~c<3JP3(4ttNki20Uq z8l>Z0NAYwl5>N^V5;Q_3r(@CS6+4O3b#ufjjNL8>G2H6Le zi;y@{Ibq^C*0#&ozX@zabZ!vyC&Xg{rlk`afiUf}({GRld77x6YbbJ&a9m0n?9A`OmL;8y8xU%bd#$PiyM<0IPc2g zt(?Hs+?A2$v=t`tp%EWe8EE$*fDV1iFEJLdr-`v}PEbRYF28!>$L3R&$nchR0RJn`0()@}nGh+_G4%(&2hq(XO@dujozC z99<6sJoP$NZ`Ez(R)t@uS_`b|wK$N@rTn|D7s0*JPQbWsg@?|W^;Z6fRn=y`faB3d zVf_oAr+gdqN;5D8=37;D<_-(0fT2VcabW$TViqq-ErS2?vvi3*oP}pjv36f3>fOr^ z#^Uqi;`=Ec?SWA${2(Mj0%LQSFcK&i@T>rdQSY?RxmLKEP&ykdX2WqRsTrux&kpe0 zcvULga05HN37P|@JTSXSZjIo%hkR>sKb~8n&!JhEd+x{c?YsuhtqVS{on6I0$Afro zTkv@h-yad_+gZ^9`Pbw7TeuJ3Cjk2{$~P~6D*yH3`^4z;dF5|H`iI2xq-gr{zNhqW z73E7t`8HGi)dyxb$Lb$O`qzl>Q$CnJXtHSb9G?Off^?_eHf)p_s%t{gMaOA!GGoa( z$#h~<5=$&G6Q?kMt%m->5vQJbx4*Kozk0=BAb5BtTE!UAlXi`6Mg0mBH4EmHTuesNJ*xj2^zt3auhk&tjh zl|eF8h7{|Hja6CXt6^`XB)=hDwdGmNc`N;`Ybxrm0!-=07Zb@Bqt_-ULpUYHz16^ku;U$Nzx}^;dMrbiIu6*YHcvvd=}Fw zo9!u_X{czQhl-0o15?vi&E`UjdBSShty!GlM~<1Fn7*%@p1~=TK!t$@6Z{#V1nSzt zc9gBUK#%~NsHlwzI}HLUrb$B@5JEbIuVWFn*Ig#uQ`7Pp$)ap@s!~(~2Gs&KQRhO)0c};xFX(o?&{w#4!|*_GO+Jp|()9eGr>V24svuARk%kvSs=%pB zsExT;Q}t_M9iEcBtZVt&A}2OIGE`Guc1tKwo#w#s;tuF)o;PDTi~eJ)CXq_d@aOPazN2@4UyM*1M zUdARejiB=_4$TbK%u`(19UUg!6)al1%D237^(CVlid%5ZM^3oJ*ND?Uo-M|vR1y}$ z4#(zRyGct)>1*qO~-Q*s!ex%b)ZOOH^)t2MBa4e-?fZ z66_n!b;3dI%J1!f3r#o4!Ya#z4}sm-8-sNy#w_eJF}q>`0TON}CmGS{)$1k5x;Nsj z%`eX{!`rz&9aF5pDZ?WaL>}rJXtxg@@F^!CG5eyINc=0;FDh_ZEo+DR`!~6;%4#a> z_WK&z+Y^ejYyGv&&f-;xWrfWR{Q0Hz1yz}5&Dr17)z;vu$s$i(MeQZc?uwwN9?qU} zDl$A(GoPp|DR5iU)U3*!azNFHk2}y$hS9E0NaE-xhD5AjLru}Pqm!V4O|aCZ@k;fC z8@!?-#)<+(utUN}g>KnTGSJ@%ED)Q0(C)ILa-M=q7cs;75sN7+qxxW58u)_Sq$PXu zTH7_fpxV{7a?6rcTSnFwH>X)lIW?Y&#z=*|I0u$E$%>geiOnoJN&Bh;6MGJybtF+A zY4tYv%4=m^7Gb1JL53y%Cv14p+f_DHn2!@}$j4W$B8eOCE7_#blr z0RNLpIkpwWfgU5u{2ae8^W&W#%Kd1(Bmj}N1Z`1H<0Z!bU`ec~Luf6*QnFc${lP%- z|BC(bfBRVc5475j@`VcVU2HET!;t zz8m!am^{#!HB$eGJWzS%xAH)&z$Q>;Fts+AL&ta^x)7KTu|C2_52JpjEd(x-r-}Z* zut4SKzY7Z_9*9Fx#?Z%#u$CJ>E?HpDv23V>3Lssj>EcU!gG$ zdBL0H1Tg(i%q*3+K0dPquY}FqC0MKGvXZu9gICg=@M$Pkj8g@LdC?!rEpe8>0^Ab3 z5@UNe+FkNWf16Lp9hiy1Fz2S?{~uPVy!HFAO7KbaC3!Yt0DVcaN$J1003a~PRO)b4 zmco<;*#IZCm`v&9P$(~sjb8AkMt!MhA%^PsBQaF&__!RE6PsX%U%LHt$|cE7=UAco zI%3$f-AUi3`*U|6YM6O^)~|)t@8YKg<4yj)_vGL1i7TtC?5%9II4rWFefT)`7Tk<*!(?as+$^@3U8#PjRv^rGtBiVrRK( z2MZ`aK>R~&Ncm^hu6!T&XRzWJBt8xSzxIKAzu?`+3|S z!2N2Z^%<1myKFtus?-*-DwMBM`7+9}pH=Zfwh?7cz&#l@JAPQzw!l)*thiYj%G#$C zAZ{JfSOR_aL6(KQvXpM%aeoPY%P(i2Q))!G5Bc{Yz7OyEm9^p?;8)=ey*xjRZx*vI zrI_WZd8`oi%!AG+m;aO%a_F=m(hcFBtkhwro7(>!wp8&Wo$V|^$z~185Iob+JFi2I zd5_uD7Utr&z*hSa)F16eZLbs|u8G;Oc3LLl9z%JbWwoe_O$ow}$-iP1_+w_}ld$>w zBAz|Ms?>vEBQ-#9zR5 zDnDdtf(}HB=tXomj&ujnM%3mDTSekWT5n?{u%!Z^7JJp4|Ug8r8QjCMM|4E^{P z@R!>#AAijEP;Zzb(ZdLrp;vMYIC@>f$>%8Hbm zQ(jCBq#jBAjU(jP=D5=_leRhSp0r=2yVHBqKb8J)`fKTLE&67LD`Pt27n$9ew`X0P zbx+ny*{K*_ZwkCoV4Szv@gMTx$ipPU-|C!J?i^@MNY*d6;D>YQ1R1>vlZ`ECR9G^zsSGUKjA;%zs7&W ze~165|3p=1)j-wes|rHfgzeyYzc9iHECfu3Of!)? z)d3@%#A-A`L{OQZU>VvyM)+S@Kzq;#KM5nzX!<9aO?z9$|4?N)+WYWhGKn_%1e;>x zP$P}8Y32l<9>%=o1U3xkt7ERIKzJFu4DSu0C3fO3z3pUc@ZBzG)#!`;;=dp97ry65 zYLkd9hXuqqmdjJ(i!R)U*aX{w^u}>th1l(EuaP?OoB;lZ;3Hxg@QwpO7dFOyf8p1a z7kvLwIXN$Q_afvx#rB{SlPHH1HJ;1ciT0Rg+fdTIxKE;esI0P$_K7#c^Xm17m1`WO za3U|tm0D*6CA$pwDYTLkxo^YYkD`PBBcBc+rLAb+$pup(8n42$5#&Zaf!^vutw&Mc z1Nf4tG=lp_x9nUEh|039sC9SY8bz&!a7Ejhs6T>SM%m?}XHCS>K-P5{?M=Na$m(&0 z5b8s@rbG#;rKo(=A1Mb&f4CEEKt*S^Xvtwb8$yU^I}EB)@190p4ZyrseT*Jk^?Q7= zM)VO`I_giTEx6RrJfP_-A&`o&nI9@<59 z6e$xm=29RUF4UW;N7HDf-b*E$pRd!19m2dggfO)k^%H9O{rFAgkiD`Cqj04NPooW; z7qreEl!W@uE_|^EIZ~_d#GNR%9qrwZa`*mT->gGfwxR{2wU#54`U17aa+Ft&+gkhz zK=aXnISblP@i#h)MKFd&@qd>nkL-hU?YNrlM%$00q(q;c;11#+B(;zX&HoENLP{+x z62VD;Zzk_F%*t#4Ya{^8nFKUK3a}T1EKSGBx*04JGE+9Rn7QC3`9Sv-qNI?yA(6Y8 zhm`=CQHFWM%Y2w?E74|EC_nZ1YRGJ1aHK0dBP`H1vn}jmXtxI;scP)Y&>?(=eH(o2 zb#@KA5&ZB=?Cb0vtQW3hKVpa3tvFIfXMYBs_s{Gn+`{evw&@)B<-6=|_BU7+JkIU~ zWro?!=)EV=a!;@);VfH&d>;`RU9;TUgA9~&y%nJv=VGgoSvMbmF>@Ic{yOJGZSF>NRv+P0k1E}|H z>=?U`Jp`HdMfO9UfU`@;9xDa<3I}v1>2Qyf0ljG!&&KH-xjYZpGIF2j-4T+%JF1O)z1BN2Ij!x)9}yF(j##%(4ec8pp1f?Ub!d3+v%Sy;|cQ{a&Pt=k-Rs zNIwLlJ^4Erv~3&TzISSLWN6Qrj0$zhd)T-~j8`K@RuLnsh>=yq$SPuF6{**j?46nv zi3Ef4rEu3``rXwL5cR-4WFGhLoE+YncwlsD(my`2ZFFjUaw=hRVs!4u^!~XgNz-Ff zqjS#^w@vPyioKb*ZG7L{vxGh4m&YC@?HS!SIx+WibbR~RbnIv1#CTkWR#BFbiOI_> zR1OiKGEl%K^QWLyUKII=kjP_V?`2aW4-ud|C}8A4L79gP zQ6Azw%0s*-^AJIqhj>xsK_SeCJrA(Zs`W4ixpBiW{tp(+fWy1)V|vH80(lDaQs{WG zCE21_WVq6tjbkklwst&Z#k7ez){0;Dj)yRpwaH&9>%7m+uU)zRSlhMh?^8!Q?<=8S z4_XdE!fm^Dcnu<1Cr&TiaNJ`_wI~VR2l(t~j%j~(pTau7Wf}q8x|8wsSDb#3vHu0q Ct1e~$ literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-regular-webfont.woff b/ui/src/shared/fonts/librefranklin-regular-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..104aeccb0fa727effb0b3636c8fc9c4e46bb7b8c GIT binary patch literal 27928 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 literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-semibold-webfont.svg b/ui/src/shared/fonts/librefranklin-semibold-webfont.svg new file mode 100644 index 00000000..f2c2e078 --- /dev/null +++ b/ui/src/shared/fonts/librefranklin-semibold-webfont.svg @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ui/src/shared/fonts/librefranklin-semibold-webfont.ttf b/ui/src/shared/fonts/librefranklin-semibold-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..448ad8d32182182f9b0458a02ab3a3b70ff5fa33 GIT binary patch literal 50540 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 XPoI!j`?s}&fRIBHw*JuB#~J%yhl^`N literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-semibold-webfont.woff b/ui/src/shared/fonts/librefranklin-semibold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6d48ef4787dc382805034f54322186002820a5e3 GIT binary patch literal 28144 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 literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-semibold-webfont.woff2 b/ui/src/shared/fonts/librefranklin-semibold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1f73b4b1973a0aa1e21bb3bae2d0baf4432e9e41 GIT binary patch literal 22620 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 PA?ZRux4!Av4*&oFNEzrg literal 0 HcmV?d00001 diff --git a/ui/src/shared/fonts/librefranklin-webfont.eot b/ui/src/shared/fonts/librefranklin-webfont.eot deleted file mode 100755 index 88e60e1595d5fa6407d7e1c9f19e93d6888dec6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27518 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 VVYUUALz3zzyg(`j$rr&{zKkGhZ!iD= diff --git a/ui/src/shared/fonts/librefranklin-webfont.svg b/ui/src/shared/fonts/librefranklin-webfont.svg deleted file mode 100755 index db7bc77a..00000000 --- a/ui/src/shared/fonts/librefranklin-webfont.svg +++ /dev/null @@ -1,475 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ui/src/shared/fonts/librefranklin-webfont.ttf b/ui/src/shared/fonts/librefranklin-webfont.ttf deleted file mode 100755 index bd5319cc4ed39a971c711be9618bc59c0fa25648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59228 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 E51}Srxc~qF diff --git a/ui/src/shared/fonts/librefranklin-webfont.woff b/ui/src/shared/fonts/librefranklin-webfont.woff deleted file mode 100755 index 1826ba48d4e061aec4a1c80d85ad01ce935b31f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31392 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 diff --git a/ui/src/shared/fonts/librefranklin-webfont.woff2 b/ui/src/shared/fonts/librefranklin-webfont.woff2 deleted file mode 100755 index 38b8e4df80be11c5ac4c6a1b77ad73eccb8456e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24660 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 bpjdazd{&=-L3@kYAESb;UGaJIwjBTfOF4`- diff --git a/ui/src/shared/functions.js b/ui/src/shared/functions.js index b33f48ed..45a2227e 100644 --- a/ui/src/shared/functions.js +++ b/ui/src/shared/functions.js @@ -14,19 +14,19 @@ const rndId = (_code) => { : lastDigit; }; -const generateFonts = (fontFamilies, fontFilenames) => { +const generateFonts = (fonts) => { const pathToFont = './fonts/'; let fontCSS = ''; - fontFamilies.forEach( (fontFamily, i) => { - const eot = require(`${pathToFont + fontFilenames[i]}.eot`); - const woff = require(`${pathToFont + fontFilenames[i]}.woff`); - const woff2 = require(`${pathToFont + fontFilenames[i]}.woff2`); - const ttf = require(`${pathToFont + fontFilenames[i]}.ttf`); - const svg = require(`${pathToFont + fontFilenames[i]}.svg`); + fonts.forEach((obj) => { + const eot = require(`${pathToFont + obj.filename}.eot`); + const woff = require(`${pathToFont + obj.filename}.woff`); + const woff2 = require(`${pathToFont + obj.filename}.woff2`); + const ttf = require(`${pathToFont + obj.filename}.ttf`); + const svg = require(`${pathToFont + obj.filename}.svg`); fontCSS += ` @font-face { - font-family: '${fontFamily}'; + font-family: '${obj.family}'; src: url('${eot}'), url('${eot}?#iefix') format('embedded-opentype'), @@ -36,10 +36,10 @@ const generateFonts = (fontFamilies, fontFilenames) => { format('woff2'), url('${ttf}') format('truetype'), - url('${svg}#${fontFamily}') - format('svg') - font-weight: normal; - font-style: normal; + url('${svg}#${obj.family}') + format('svg'); + font-weight: ${obj.weight}; + font-style: ${obj.style}; } `; }); From dbe3289bb648371adf764e3cd07f83e34b69d7fd Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Mon, 16 Jan 2017 17:38:21 +0000 Subject: [PATCH 02/28] creating base elements component loop --- frontend/src/components/section/index.js | 2 +- ui/src/components/base-elements/index.js | 68 ++++++++++++++++++++++++ ui/src/components/base-elements/story.js | 26 +++++++++ ui/src/components/base/index.js | 1 - ui/src/components/h1/index.js | 23 -------- ui/src/index.js | 1 + ui/test/index.js | 12 +++++ 7 files changed, 108 insertions(+), 25 deletions(-) create mode 100644 ui/src/components/base-elements/index.js create mode 100644 ui/src/components/base-elements/story.js delete mode 100644 ui/src/components/h1/index.js diff --git a/frontend/src/components/section/index.js b/frontend/src/components/section/index.js index a4579555..f3f92154 100644 --- a/frontend/src/components/section/index.js +++ b/frontend/src/components/section/index.js @@ -3,7 +3,7 @@ const React = require('react'); const ReactIntl = require('react-intl'); const ReactRouter = require('react-router'); -const H1 = require('@ui/components/h1'); +const H1 = require('@ui/components/base-elements').H1; const Li = require('@ui/components/horizontal-list/li'); const PropTypes = require('@root/prop-types'); const Ul = require('@ui/components/horizontal-list/ul'); diff --git a/ui/src/components/base-elements/index.js b/ui/src/components/base-elements/index.js new file mode 100644 index 00000000..cf65f744 --- /dev/null +++ b/ui/src/components/base-elements/index.js @@ -0,0 +1,68 @@ +/* eslint react/prop-types: 0 */ + +const Styled = require('styled-components'); +const React = require('react'); + +const { + default: styled +} = Styled; + + +// If specificity is an issue (i.e nested elements) check base/index.js first +// before using !important +const elements = [ + { + name: 'h1', + properties: { + 'line-height': '70px', + 'font-size': '60px' + } + }, + { + name: 'h2', + properties: { + 'line-height': '60px', + 'font-size': '40px' + } + } +]; + +/* + Loop over each item in element array. + Create styled component for each name, and + use properties from object as styles + Then export all Base Elements. + + Usage: + const H1 = require(base-components).H1; + */ + +const BaseElements = {}; + +elements.forEach( element => { + const ElementNameToUpper = element.name.toUpperCase(); + + BaseElements[ElementNameToUpper] = ({ + children, + style + }) => { + + const StyledElement = styled[element.name.toLowerCase()]` + ${element.properties} + `; + + return ( + + {children} + + ); + }; + + // TODO: Fix proptype validation and remove eslint ignore line 1 + BaseElements[ElementNameToUpper].propTypes = { + children: React.PropTypes.node, + style: React.PropTypes.object, + }; +}); + +module.exports = BaseElements; \ No newline at end of file diff --git a/ui/src/components/base-elements/story.js b/ui/src/components/base-elements/story.js new file mode 100644 index 00000000..0c910dc0 --- /dev/null +++ b/ui/src/components/base-elements/story.js @@ -0,0 +1,26 @@ +const React = require('react'); + +const { + storiesOf +} = require('@kadira/storybook'); + +const Base = require('../base'); +const BaseElements = require('./'); + +const { + H1, + H2 +} = BaseElements; + +storiesOf('Base Elements', module) + .add('H1', () => ( + +

This is a H1

+ + )) + .add('H2', () => ( + +

This is a H2

+ + )) +; \ No newline at end of file diff --git a/ui/src/components/base/index.js b/ui/src/components/base/index.js index abd96976..fd2069f0 100644 --- a/ui/src/components/base/index.js +++ b/ui/src/components/base/index.js @@ -96,7 +96,6 @@ module.exports = styled.div` } & h1 { - font-size: 2em; margin: 0.67em 0; } diff --git a/ui/src/components/h1/index.js b/ui/src/components/h1/index.js deleted file mode 100644 index 9cd26797..00000000 --- a/ui/src/components/h1/index.js +++ /dev/null @@ -1,23 +0,0 @@ -const fns = require('../../shared/functions'); -const Styled = require('styled-components'); - -const { - remcalc -} = fns; - -const { - default: styled -} = Styled; - -module.exports = styled.h1` - font-size: ${remcalc(36)}; - font-weight: 600; - font-style: normal; - font-stretch: normal; - color: #364acd; - border-bottom: ${remcalc(1)} solid #d8d8d8; - - & a { - text-decoration: none; - } -`; diff --git a/ui/src/index.js b/ui/src/index.js index bd8efb81..b4b50039 100644 --- a/ui/src/index.js +++ b/ui/src/index.js @@ -27,4 +27,5 @@ module.exports = { Tooltip: require('./components/tooltip'), Textarea: require('./components/textarea'), Widget: require('./components/widget'), + BaseElements: require('./components/base-elements'), }; diff --git a/ui/test/index.js b/ui/test/index.js index 8ef664a9..74f8bcd6 100644 --- a/ui/test/index.js +++ b/ui/test/index.js @@ -131,3 +131,15 @@ test('renders without exploding', (t) => { const wrapper = shallow(); t.deepEqual(wrapper.length, 1); }); + +test('renders

without exploding', (t) => { + const H1 = require('../src/components/base-elements').H1; + const wrapper = shallow(

); + t.deepEqual(wrapper.length, 1); +}); + +test('renders

without exploding', (t) => { + const H2 = require('../src/components/base-elements').H2; + const wrapper = shallow(

); + t.deepEqual(wrapper.length, 1); +}); From bc5d974594582c8fe666ff40b48a03022fa3fd3c Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Mon, 16 Jan 2017 18:00:16 +0000 Subject: [PATCH 03/28] removing uppercasing of element, now have to make object name the name thats is to be used as component --- ui/src/components/base-elements/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ui/src/components/base-elements/index.js b/ui/src/components/base-elements/index.js index cf65f744..8c7cf170 100644 --- a/ui/src/components/base-elements/index.js +++ b/ui/src/components/base-elements/index.js @@ -12,14 +12,14 @@ const { // before using !important const elements = [ { - name: 'h1', + name: 'H1', properties: { 'line-height': '70px', 'font-size': '60px' } }, { - name: 'h2', + name: 'H2', properties: { 'line-height': '60px', 'font-size': '40px' @@ -40,9 +40,9 @@ const elements = [ const BaseElements = {}; elements.forEach( element => { - const ElementNameToUpper = element.name.toUpperCase(); + const ElementName = element.name; - BaseElements[ElementNameToUpper] = ({ + BaseElements[ElementName] = ({ children, style }) => { @@ -59,7 +59,7 @@ elements.forEach( element => { }; // TODO: Fix proptype validation and remove eslint ignore line 1 - BaseElements[ElementNameToUpper].propTypes = { + BaseElements[ElementName].propTypes = { children: React.PropTypes.node, style: React.PropTypes.object, }; From 224f13998efd06ba66626d760b344adbd0fb1f17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:42:12 +0000 Subject: [PATCH 04/28] add forms colors --- ui/src/shared/constants/colors.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ui/src/shared/constants/colors.js b/ui/src/shared/constants/colors.js index d5f20123..2e4b5ff0 100644 --- a/ui/src/shared/constants/colors.js +++ b/ui/src/shared/constants/colors.js @@ -42,6 +42,11 @@ const notifications = { warningLight: '#FFFAED', }; +const forms = { + inputError: '#DA4B42', + inputWarning: '#E4A700' +}; + const metrics = { miniBackground: '#F3F4F9', seperator: '#D9DEF3' @@ -58,7 +63,8 @@ const colors = { ...notifications, ...metrics, ...topology, - fonts, + ...forms, + fonts }; module.exports = colors; From bd1ff8171a02f0e9c5c5d0bafcdb2b1b7a613a7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:43:11 +0000 Subject: [PATCH 05/28] detach transfer-props from List --- ui/src/components/list/item.js | 2 +- ui/src/components/list/meta.js | 2 +- ui/src/components/list/options.js | 2 +- ui/src/components/list/view.js | 2 +- ui/src/{components/list => shared}/transfer-props.js | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename ui/src/{components/list => shared}/transfer-props.js (100%) diff --git a/ui/src/components/list/item.js b/ui/src/components/list/item.js index d11b6d52..bf325927 100644 --- a/ui/src/components/list/item.js +++ b/ui/src/components/list/item.js @@ -3,7 +3,7 @@ const fns = require('../../shared/functions'); const React = require('react'); const Row = require('../row'); const Styled = require('styled-components'); -const transferProps = require('./transfer-props'); +const transferProps = require('../../shared/transfer-props'); const { boxes, diff --git a/ui/src/components/list/meta.js b/ui/src/components/list/meta.js index dadef198..61733767 100644 --- a/ui/src/components/list/meta.js +++ b/ui/src/components/list/meta.js @@ -2,7 +2,7 @@ const Column = require('../column'); const React = require('react'); const Row = require('../row'); const Styled = require('styled-components'); -const transferProps = require('./transfer-props'); +const transferProps = require('../../shared/transfer-props'); const View = require('./view'); const { diff --git a/ui/src/components/list/options.js b/ui/src/components/list/options.js index 39807a72..bb4392f6 100644 --- a/ui/src/components/list/options.js +++ b/ui/src/components/list/options.js @@ -2,7 +2,7 @@ const Button = require('../button'); const constants = require('../../shared/constants'); const fns = require('../../shared/functions'); const React = require('react'); -const transferProps = require('./transfer-props'); +const transferProps = require('../../shared/transfer-props'); const Styled = require('styled-components'); const { diff --git a/ui/src/components/list/view.js b/ui/src/components/list/view.js index 2d944a8d..cbdde2fe 100644 --- a/ui/src/components/list/view.js +++ b/ui/src/components/list/view.js @@ -2,7 +2,7 @@ const fns = require('../../shared/functions'); const React = require('react'); const Row = require('../row'); const Styled = require('styled-components'); -const transferProps = require('./transfer-props'); +const transferProps = require('../../shared/transfer-props'); const { remcalc diff --git a/ui/src/components/list/transfer-props.js b/ui/src/shared/transfer-props.js similarity index 100% rename from ui/src/components/list/transfer-props.js rename to ui/src/shared/transfer-props.js From 8ac2a7c60f0f29edeb581c905336dc09167ca65a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:44:08 +0000 Subject: [PATCH 06/28] refactor Input and Select --- ui/src/components/form/label-row.js | 23 ++++ ui/src/components/form/label.js | 24 ++++ ui/src/components/form/msg.js | 29 +++++ ui/src/components/form/outlet.js | 67 +++++++++++ ui/src/components/form/view.js | 7 ++ ui/src/components/input/index.js | 176 ++++++++-------------------- ui/src/components/select/index.js | 158 ++++++++++--------------- ui/src/components/select/story.js | 82 ++++++++++--- 8 files changed, 328 insertions(+), 238 deletions(-) create mode 100644 ui/src/components/form/label-row.js create mode 100644 ui/src/components/form/label.js create mode 100644 ui/src/components/form/msg.js create mode 100644 ui/src/components/form/outlet.js create mode 100644 ui/src/components/form/view.js diff --git a/ui/src/components/form/label-row.js b/ui/src/components/form/label-row.js new file mode 100644 index 00000000..225e2092 --- /dev/null +++ b/ui/src/components/form/label-row.js @@ -0,0 +1,23 @@ +const Column = require('../column'); +const React = require('react'); +const Row = require('../row'); + +const LabelRow = (props) => { + const labels = React.Children.map(props.children, (children) => ( + + {children} + + )); + + return ( + + {labels} + + ); +}; + +LabelRow.propTypes = { + children: React.PropTypes.node +}; + +module.exports = LabelRow; diff --git a/ui/src/components/form/label.js b/ui/src/components/form/label.js new file mode 100644 index 00000000..ce0ead13 --- /dev/null +++ b/ui/src/components/form/label.js @@ -0,0 +1,24 @@ +const constants = require('../../shared/constants'); +const fns = require('../../shared/functions'); +const Styled = require('styled-components'); + +const { + colors +} = constants; + +const { + remcalc +} = fns; + +const { + default: styled +} = Styled; + +module.exports = styled.label` + width: 100%; + font-size: ${remcalc(16)}; + font-weight: 600; + font-style: normal; + font-stretch: normal; + color: ${colors.brandSecondaryColor}; +`; diff --git a/ui/src/components/form/msg.js b/ui/src/components/form/msg.js new file mode 100644 index 00000000..c5378b46 --- /dev/null +++ b/ui/src/components/form/msg.js @@ -0,0 +1,29 @@ +const constants = require('../../shared/constants'); +const Label = require('./label'); +const match = require('../../shared/match'); +const Styled = require('styled-components'); + +const { + breakpoints, + colors +} = constants; + +const { + default: styled +} = Styled; + +const color = match.prop({ + warning: colors.inputWarning, + error: colors.inputError, + //disabled: colors.brandInactiveColor +})('type'); + + +module.exports = styled(Label)` + color: ${color}; + + ${breakpoints.medium` + float: right; + text-align: right; + `} +`; diff --git a/ui/src/components/form/outlet.js b/ui/src/components/form/outlet.js new file mode 100644 index 00000000..53048999 --- /dev/null +++ b/ui/src/components/form/outlet.js @@ -0,0 +1,67 @@ +const constants = require('../../shared/constants'); +const fns = require('../../shared/functions'); +const Styled = require('styled-components'); + +const { + colors, + boxes +} = constants; + +const { + remcalc +} = fns; + +const { + css +} = Styled; + +const colorWithDisabled = (props) => props.disabled + ? colors.brandInactiveColor + : colors.fonts.regular; + +const colorWithDefaultValue = (props) => props.value === props.defaultValue + ? colors.brandInactiveColor + : colorWithDisabled(props); + +const color = (props) => props.defaultValue + ? colorWithDefaultValue(props) + : colorWithDisabled(props); + +const height = (props) => !props.multiple + ? remcalc(48) + : 'auto'; + +const paddingTop = (props) => props.multiple + ? remcalc(20) + : remcalc(13); + +module.exports = css` + box-sizing: border-box; + + width: 100%; + height: ${height}; + + margin-bottom: ${remcalc(8)}; + margin-top: ${remcalc(8)}; + padding: ${paddingTop} ${remcalc(18)}; + + border-radius: ${boxes.borderRadius}; + background-color: ${colors.brandPrimaryColor}; + box-shadow: ${boxes.insetShaddow}; + border: ${boxes.border.unchecked}; + + font-size: ${remcalc(16)}; + line-height: normal !important; + font-weight: normal; + font-style: normal; + font-stretch: normal; + color: ${color}; + + appearance: none; + outline: 0; + + &:focus { + border-color: ${colors.brandPrimary}; + outline: 0; + } +`; diff --git a/ui/src/components/form/view.js b/ui/src/components/form/view.js new file mode 100644 index 00000000..c95c7c88 --- /dev/null +++ b/ui/src/components/form/view.js @@ -0,0 +1,7 @@ +const Styled = require('styled-components'); + +const { + default: styled +} = Styled; + +module.exports = styled.div``; \ No newline at end of file diff --git a/ui/src/components/input/index.js b/ui/src/components/input/index.js index d9120564..de997652 100644 --- a/ui/src/components/input/index.js +++ b/ui/src/components/input/index.js @@ -1,162 +1,80 @@ -const React = require('react'); - -const composers = require('../../shared/composers'); -const constants = require('../../shared/constants'); const fns = require('../../shared/functions'); +const React = require('react'); const Styled = require('styled-components'); -const { - boxes, - colors -} = constants; +const Label = require('../form/label'); +const LabelRow = require('../form/label-row'); +const Msg = require('../form/msg'); +const Outlet = require('../form/outlet'); +const View = require('../form/view'); const { - remcalc, + rndId } = fns; const { - baseBox -} = composers; - -const { - default: styled, - css + default: styled } = Styled; -const successBakcground = css` - background-color: ${colors.brandSecondary}; - background-image: url('./input-confirm.svg'); - background-repeat: no-repeat; - background-position: 98% ${remcalc(20)}; +const StyledInput = styled.input` + ${Outlet} `; -const defaultBackground = css` - background-color: ${colors.brandSecondary}; -`; +const Input = (props) => { + const { + children, + id = rndId(), + label = '', + error = '', + warning = '' + } = props; -const Label = styled.label` - color: ${props => props.error ? colors.alert : colors.fonts.regular} -`; + const viewProps = [ + 'children', + 'style', + 'className' + ]; -const InputField = styled.input` - ${baseBox()}; + // reset props for + const newProps = Object.keys(props).reduce((sum, key) => ({ + ...sum, + [key]: viewProps.indexOf(key) < 0 ? props[key] : null + }),{}); - ${props => props.success ? successBakcground : defaultBackground } + const _label = !label.length ? null : ( + + ); - border-color: ${props => props.error ? colors.alert : 'auto'} - color: ${props => props.error ? colors.alert : colors.fonts.semibold} - display: block; - font-size: ${remcalc(16)}; - padding: ${remcalc('15 18')}; - visibility: visible; - width: 100%; + const msgType = error ? 'error' : (warning ? 'warning' : null); - &:focus { - border-color: ${boxes.border.checked}; - outline: none; - } -`; - -const Error = styled.span` - float: right; - color: ${colors.alert}; - font-size: ${remcalc(14)}; -`; - -const Input = ({ - autoComplete, - autoFocus, - children, - className, - disabled = false, - error, - form, - id, - inputMode, - label, - labelledby, - list, - name, - onChange, - pattern, - placeholder, - readOnly, - required, - selectionDirection, - spellCheck, - style, - success, - tabIndex, - type, - value -}) => { - const _label = label || children; - const _children = label && children ? children : null; - const _error = error ? ({error}) : null; + const _msg = !(error || warning) ? null : ( + + {error ? error : warning} + + ); return ( -
- - {_error} - - {_children} -
+ {_msg} + + + {children} + ); }; Input.propTypes = { - autoComplete: React.PropTypes.string, - autoFocus: React.PropTypes.bool, children: React.PropTypes.node, className: React.PropTypes.string, - disabled: React.PropTypes.bool, error: React.PropTypes.string, - form: React.PropTypes.string, id: React.PropTypes.string, - inputMode: React.PropTypes.string, label: React.PropTypes.string, - labelledby: React.PropTypes.string, - list: React.PropTypes.string, - name: React.PropTypes.string, - onChange: React.PropTypes.func, - pattern: React.PropTypes.string, - placeholder: React.PropTypes.string, - readOnly: React.PropTypes.bool, - required: React.PropTypes.bool, - selectionDirection: React.PropTypes.string, - spellCheck: React.PropTypes.bool, style: React.PropTypes.object, - success: React.PropTypes.bool, - tabIndex: React.PropTypes.string, - type: React.PropTypes.string, - value: React.PropTypes.string + warning: React.PropTypes.string }; module.exports = Input; diff --git a/ui/src/components/select/index.js b/ui/src/components/select/index.js index f9d4dde5..8168fac2 100644 --- a/ui/src/components/select/index.js +++ b/ui/src/components/select/index.js @@ -1,123 +1,91 @@ const fns = require('../../shared/functions'); -const composers = require('../../shared/composers'); const React = require('react'); const Styled = require('styled-components'); -const { - rndId, - remcalc -} = fns; +const Label = require('../form/label'); +const LabelRow = require('../form/label-row'); +const Msg = require('../form/msg'); +const Outlet = require('../form/outlet'); +const View = require('../form/view'); const { - pseudoEl -} = composers; + rndId +} = fns; const { default: styled } = Styled; -// TODO: this should be a constant -const StyledLabel = styled.div` - color: #464646; -`; - -const SelectWrapper = styled.div` - position: relative; - display: inline-block; - - &:after { - border-left: ${remcalc(5)} solid transparent; - border-right: ${remcalc(5)} solid transparent; - border-bottom: ${remcalc(5)} solid black; - - ${pseudoEl({ - top: remcalc(25), - right: remcalc(20) - })} - } -`; - +const defaultValue = rndId(); const StyledSelect = styled.select` - font-size: ${remcalc(16)}; - min-width: ${remcalc(288)}; - min-height: ${remcalc(54)}; - border-radius: ${remcalc(4)}; - padding-left: ${remcalc(20)}; - background-color: #FFFFFF; - box-shadow: inset 0 ${remcalc(3)} 0 0 rgba(0, 0, 0, 0.05); - border: solid ${remcalc(1)} #D8D8D8; - -webkit-appearance: none; - - &:before { - ${pseudoEl()} - } - - /* select[multiple] is valid CSS syntax - not added to lint library yet */ - /* stylelint-disable */ - &[multiple] { - /* stylelint-enable */ - padding-left: 0; - padding-right: 0; - - & option { - padding-left: ${remcalc(15)}; - padding-right: ${remcalc(15)}; - width: 100%; - } - } + ${Outlet} `; -const Select = ({ - autoFocus, - children, - className, - disabled, - form, - id = rndId(), - label, - multiple, - name, - required, - selected -}) => { - return ( -
- - {label} - +const Select = (props) => { + const { + children, + disabled = false, + error = '', + id = rndId(), + label = '', + multiple = false, + placeholder = '', + value = defaultValue, + warning = '' + } = props; - - - {children} - - -
+ const _label = !label.length ? null : ( + + ); + + const _placeholder = !placeholder ? null : ( + + ); + + const msgType = error ? 'error' : (warning ? 'warning' : null); + + const _msg = !(error || warning) ? null : ( + + {error ? error : warning} + + ); + + return ( + + + {_label} + {_msg} + + + {_placeholder} + {children} + + ); }; Select.propTypes = { - autoFocus: React.PropTypes.bool, children: React.PropTypes.node, - className: React.PropTypes.string, disabled: React.PropTypes.bool, - form: React.PropTypes.string, + error: React.PropTypes.string, id: React.PropTypes.string, label: React.PropTypes.string, multiple: React.PropTypes.bool, - name: React.PropTypes.string, - required: React.PropTypes.bool, - selected: React.PropTypes.bool + placeholder: React.PropTypes.string, + value: React.PropTypes.string, + warning: React.PropTypes.string }; module.exports = Select; diff --git a/ui/src/components/select/story.js b/ui/src/components/select/story.js index 871941c3..697d5833 100644 --- a/ui/src/components/select/story.js +++ b/ui/src/components/select/story.js @@ -5,22 +5,76 @@ const { } = require('@kadira/storybook'); const Select = require('./'); +const Base = require('../base'); + storiesOf('Select', module) .add('Default', () => ( - + + + + )) + .add('disabled', () => ( + + + + )) + .add('selected', () => ( + + + )) .add('multiple', () => ( - - )); \ No newline at end of file + + + + )) + .add('warning', () => ( + + + + )) + .add('error', () => ( + + + + )); From 7e157a15a1602344cd7f9c4cf6cdc61ac1ae45b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:44:33 +0000 Subject: [PATCH 07/28] remove Close dependency from Modal --- ui/src/components/modal/index.js | 53 ++++++++++++-------------------- ui/src/components/modal/story.js | 35 +++------------------ 2 files changed, 23 insertions(+), 65 deletions(-) diff --git a/ui/src/components/modal/index.js b/ui/src/components/modal/index.js index 66eeb0f6..de670091 100644 --- a/ui/src/components/modal/index.js +++ b/ui/src/components/modal/index.js @@ -4,8 +4,6 @@ const constants = require('../../shared/constants'); const React = require('react'); const Styled = require('styled-components'); -const Close = require('../close'); - const { colors } = constants; @@ -19,17 +17,19 @@ const { } = Styled; const StyledModal = styled.div` - background: ${colors.brandSecondary}; - display: block; - left: 50%; - margin: 0 auto; - padding: ${remcalc(20)}; - position: absolute; - top: 50%; - transform: translate(-50%, -50%); - z-index: 1; max-width: 80%; min-width: 50%; + display: block; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + margin: 0 auto; + padding: ${remcalc(20)}; + z-index: 1; + + background: ${colors.brandSecondary}; + border: ${remcalc(1)} solid ${colors.borderSecondary}; `; const StyledOverlay = styled.div` @@ -39,35 +39,24 @@ const StyledOverlay = styled.div` position: absolute; top: 0; width: 100%; - z-index: 0; + z-index: 1; `; -const Modal = ({ - active = true, - children, - className, - customCloseStyle, - handleDismiss, - name, - style -}) => { - if (!active) { +const Modal = (props) => { + if (!props.active) { return null; } return ( -
+
- - - {children} + + {props.children}
); @@ -76,11 +65,7 @@ const Modal = ({ Modal.propTypes = { active: React.PropTypes.bool, children: React.PropTypes.node, - className: React.PropTypes.string, - customCloseStyle: React.PropTypes.string, - handleDismiss: React.PropTypes.func, - name: React.PropTypes.string, - style: React.PropTypes.object + handleDismiss: React.PropTypes.func }; module.exports = Modal; diff --git a/ui/src/components/modal/story.js b/ui/src/components/modal/story.js index c1f586c9..8b0a0ee0 100644 --- a/ui/src/components/modal/story.js +++ b/ui/src/components/modal/story.js @@ -1,46 +1,19 @@ -const constants = require('../../shared/constants'); -const fns = require('../../shared/functions'); const React = require('react'); -const { - colors -} = constants; - -const { - remcalc -} = fns; - const { storiesOf } = require('@kadira/storybook'); -const Base= require('../base'); +const Base = require('../base'); const Modal = require('./'); - -const _customCloseStyle = ` - border: solid ${colors.alert} ${remcalc(5)}; - border-radius: 50%; -`; +const Close = require('../close'); storiesOf('Modal', module) .add('Default', () => ( +

This is the Modal

- )) - .add('Custom Styles on Close', () => ( - - -

This is the Modal

-
- - )) - .add('Dismiss Function', () => ( - - -

This has a handleDismiss (noop) function

-
- - )); \ No newline at end of file + )); From c378d8309aaf6f054d1c63e22a86950a0646f1e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:45:15 +0000 Subject: [PATCH 08/28] create monitor modal --- frontend/locales/en-us.json | 16 +++ .../src/components/create-monitor/index.js | 125 +++++++++++++++++ .../src/components/manage-monitor/index.js | 5 + frontend/src/components/monitors/index.js | 130 ++++++++++++++++++ .../src/containers/metrics/add-metrics.js | 2 +- frontend/src/containers/metrics/index.js | 70 ++++++++++ frontend/src/containers/metrics/monitors.js | 36 +++++ frontend/src/containers/service/metrics.js | 57 +++----- frontend/src/mock-state.json | 7 + frontend/src/prop-types.js | 12 +- frontend/src/state/actions.js | 13 +- frontend/src/state/reducers/index.js | 1 + frontend/src/state/reducers/monitors.js | 30 ++++ frontend/src/state/selectors.js | 9 +- 14 files changed, 458 insertions(+), 55 deletions(-) create mode 100644 frontend/src/components/create-monitor/index.js create mode 100644 frontend/src/components/manage-monitor/index.js create mode 100644 frontend/src/components/monitors/index.js create mode 100644 frontend/src/containers/metrics/monitors.js create mode 100644 frontend/src/state/reducers/monitors.js diff --git a/frontend/locales/en-us.json b/frontend/locales/en-us.json index b74f12f2..46f06db4 100644 --- a/frontend/locales/en-us.json +++ b/frontend/locales/en-us.json @@ -37,5 +37,21 @@ "title": "Apache HTTP requests", "description": "Number of website requests to apache if it is used." } + }, + "monitors": { + "conditions": "Conditions", + "conditions-subtitle": "Please define what changes you wish to be alerted of.", + "if": "If metric is", + "above": "Above", + "equal": "Equal", + "below": "Below", + "average": "on averga", + "during": "during", + "last5": "last 5 minutes", + "notification": "Notification", + "notification-subtitle": "Type in users or teams who you wish to be alerted.", + "submit": "Create", + "create": "Create monitor", + "manage": "Managing monitors" } } diff --git a/frontend/src/components/create-monitor/index.js b/frontend/src/components/create-monitor/index.js new file mode 100644 index 00000000..43637046 --- /dev/null +++ b/frontend/src/components/create-monitor/index.js @@ -0,0 +1,125 @@ +const React = require('react'); +const ReactIntl = require('react-intl'); +const Styled = require('styled-components'); + +const Button = require('@ui/components/button'); +const Column = require('@ui/components/column'); +const Input = require('@ui/components/input'); +const fns = require('@ui/shared/functions'); +const Row = require('@ui/components/row'); +const Select = require('@ui/components/select'); + +const { + FormattedMessage +} = ReactIntl; + +const { + default: styled +} = Styled; + +const { + remcalc +} = fns; + +const H4 = styled.h4` + margin-bottom: ${remcalc(5)} !important; +`; + +const P = styled.p` + margin-bottom: ${remcalc(20)} !important; +`; + +const ConditionsRow = styled(Row)` + margin-bottom: ${remcalc(33)}; +`; + +const TextColumn = styled(Column)` + display: flex; + flex-direction: column; + justify-content: center; +`; + +const Text = styled.p` + margin: 0 auto !important; +`; + +const RightText = styled(Text)` + margin: 0 0 0 auto !important; +`; + +const PeopleInput = styled(Input)` + margin-bottom: ${remcalc(24)} !important; +`; + +module.exports = () => { + return ( +
+

+ +

+

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + +

+ +

+

+ +

+ + + + + + + + + + +
+ ); +}; diff --git a/frontend/src/components/manage-monitor/index.js b/frontend/src/components/manage-monitor/index.js new file mode 100644 index 00000000..c61bbf54 --- /dev/null +++ b/frontend/src/components/manage-monitor/index.js @@ -0,0 +1,5 @@ +const React = require('react'); + +module.exports = () => ( +

manage monitor

+); \ No newline at end of file diff --git a/frontend/src/components/monitors/index.js b/frontend/src/components/monitors/index.js new file mode 100644 index 00000000..ae60ceee --- /dev/null +++ b/frontend/src/components/monitors/index.js @@ -0,0 +1,130 @@ +const React = require('react'); +const ReactIntl = require('react-intl'); +const Styled = require('styled-components'); + +const constants = require('@ui/shared/constants'); +const Close = require('@ui/components/close'); +const CreateMonitor = require('@components/create-monitor'); +const fns = require('@ui/shared/functions'); +const Li = require('@ui/components/horizontal-list/li'); +const ManageMonitor = require('@components/manage-monitor'); +const Modal = require('@ui/components/modal'); +const PropTypes = require('@root/prop-types'); +const Ul = require('@ui/components/horizontal-list/ul'); + +const { + FormattedMessage +} = ReactIntl; + +const { + default: styled +} = Styled; + +const { + colors +} = constants; + +const { + remcalc +} = fns; + +const H1 = styled.h1` + font-size: ${remcalc(26)} !important; + font-weight: 600; + font-style: normal; + font-stretch: normal; + color: ${colors.brandSecondaryColor}; + margin: ${remcalc(24)} auto ${remcalc(9)} ${remcalc(24)} !important; +`; + +const H3 = styled.h3` + font-size: ${remcalc(16)} !important; + font-weight: 600; + font-style: normal; + font-stretch: normal; + color: ${colors.brandSecondaryColor}; + margin: ${remcalc(0)} auto ${remcalc(26)} ${remcalc(24)} !important; +`; + +const Header = styled.header` + overflow: hidden; + background: ${colors.brandPrimaryColor}; + border-bottom: solid ${remcalc(1)} ${colors.borderSecondary}; +`; + +const StyledModal = styled(Modal)` + background: ${colors.brandInactive} !important; + box-shadow: 0 ${remcalc(2)} 0 0 rgba(0, 0, 0, 0.05); + padding: 0 !important; +`; + +const View = styled.div` + margin: ${remcalc(18)} ${remcalc(24)} ${remcalc(49)} ${remcalc(24)}; + height: 100%; +`; + +const Monitors = ({ + active = false, + handleDismiss = () => null, + metricType = {}, + page = 'create', + submit = () => null, + togglePage = () => null +}) => { + const views = { + create: () => ( + + ), + manage: () => ( + + ) + }; + + const links = ['create', 'manage'].map((name) => { + const id = `monitors.${name}`; + const className = page === name ? 'active' : ''; + const onClick = (ev) => togglePage(name); + const href = `#${name}`; + + return ( +
  • + + + +
  • + ); + }); + + return ( + +
    +

    + +

    +

    for {metricType.name}

    +
    + +
      + {links} +
    + {views[page]()} +
    + +
    + ); +}; + +Monitors.propTypes = { + active: React.PropTypes.string, + handleDismiss: React.PropTypes.func.isRequired, + metricType: PropTypes.metricType, + page: React.PropTypes.string, + submit: React.PropTypes.func.isRequired, + togglePage: React.PropTypes.func.isRequired +}; + +module.exports = Monitors; diff --git a/frontend/src/containers/metrics/add-metrics.js b/frontend/src/containers/metrics/add-metrics.js index c1091361..adc9728f 100644 --- a/frontend/src/containers/metrics/add-metrics.js +++ b/frontend/src/containers/metrics/add-metrics.js @@ -57,7 +57,7 @@ const AddMetrics = ({ }; AddMetrics.propTypes = { - metricTypes: PropTypes.metricTypes.isRequired, + metricTypes: React.PropTypes.arrayOf(React.PropTypes.string), metrics: React.PropTypes.arrayOf(PropTypes.metric).isRequired, onAddMetric: React.PropTypes.func.isRequired, }; diff --git a/frontend/src/containers/metrics/index.js b/frontend/src/containers/metrics/index.js index e69de29b..2e42b111 100644 --- a/frontend/src/containers/metrics/index.js +++ b/frontend/src/containers/metrics/index.js @@ -0,0 +1,70 @@ +const React = require('react'); +const ReactRedux = require('react-redux'); + +const actions = require('@state/actions'); +const AddMetrics = require('./add-metrics'); +const Button = require('@ui/components/button'); +const Column = require('@ui/components/column'); +const Monitors = require('./monitors'); +const PropTypes = require('@root/prop-types'); +const Row = require('@ui/components/row'); + +const { + connect +} = ReactRedux; + +const { + toggleMonitorView +} = actions; + +const Metrics = ({ + addMetric, + metrics, + metricTypes, + metricTypeUuid = '', + service, + toggleMonitorView = () => null +}) => { + const onMonitorsClick = (ev) => toggleMonitorView(metricTypeUuid); + + return ( +
    + + + + + + + +
    + ); +}; + +Metrics.propTypes = { + addMetric: React.PropTypes.func.isRequired, + metricTypeUuid: React.PropTypes.string, + metricTypes: React.PropTypes.arrayOf(React.PropTypes.string), + metrics: React.PropTypes.arrayOf(PropTypes.metric), + service: PropTypes.service, + toggleMonitorView: React.PropTypes.func.isRequired +}; + +const mapStateToProps = (state) => ({ + // hardcoded now, but should be dynamic + // actually, the use for this prop is going to disapear + metricTypeUuid: 'dca08514-72e5-46ce-ad91-e68b3b0914d4', +}); + +const mapDispatchToProps = (dispatch) => ({ + toggleMonitorView: (metricTypeUuid) => + dispatch(toggleMonitorView(metricTypeUuid)) +}); + +module.exports = connect( + mapStateToProps, + mapDispatchToProps +)(Metrics); diff --git a/frontend/src/containers/metrics/monitors.js b/frontend/src/containers/metrics/monitors.js new file mode 100644 index 00000000..4e196513 --- /dev/null +++ b/frontend/src/containers/metrics/monitors.js @@ -0,0 +1,36 @@ +const ReactRedux = require('react-redux'); + +const actions = require('@state/actions'); +const Monitors = require('@components/monitors'); +const selectors = require('@state/selectors'); + +const { + connect +} = ReactRedux; + +const { + metricTypeByUuidSelector +} = selectors; + +const { + toggleMonitorView, + switchMonitorViewPage, + createMonitor +} = actions; + +const mapStateToProps = (state) => ({ + metricType: metricTypeByUuidSelector(state.monitors.ui.active)(state), + active: state.monitors.ui.active, + page: state.monitors.ui.page +}); + +const mapDispatchToProps = (dispatch) => ({ + handleDismiss: () => dispatch(toggleMonitorView()), + togglePage: (newPage) => dispatch(switchMonitorViewPage(newPage)), + submit: (meta) => dispatch(createMonitor(meta)) +}); + +module.exports = connect( + mapStateToProps, + mapDispatchToProps +)(Monitors); diff --git a/frontend/src/containers/service/metrics.js b/frontend/src/containers/service/metrics.js index c7ffa76e..c179be15 100644 --- a/frontend/src/containers/service/metrics.js +++ b/frontend/src/containers/service/metrics.js @@ -1,9 +1,8 @@ -const React = require('react'); const ReactRedux = require('react-redux'); -const PropTypes = require('@root/prop-types'); -const selectors = require('@state/selectors'); -const AddMetrics = require('../metrics/add-metrics'); + const actions = require('@state/actions'); +const Metrics = require('@containers/metrics'); +const selectors = require('@state/selectors'); const { connect @@ -18,41 +17,6 @@ const { addMetric } = actions; -const Metrics = ({ - addMetric, - metrics, - metricTypes, - service -}) => { - - const onAddMetric = (metric) => { - addMetric({ - id: metric, - service: service.uuid - }); - }; - - return ( -
    -

    metrics

    -
    - -
    -
    - ); -}; - -Metrics.propTypes = { - addMetric: React.PropTypes.func.isRequired, - metricTypes: PropTypes.metricTypes, - metrics: React.PropTypes.arrayOf(PropTypes.metric), - service: PropTypes.service -}; - const mapStateToProps = (state, { params = {} }) => ({ @@ -62,10 +26,21 @@ const mapStateToProps = (state, { }); const mapDispatchToProps = (dispatch) => ({ - addMetric: (payload) => dispatch(addMetric(payload)) + addMetric: (service) => (metric) => dispatch(addMetric({ + id: metric, + service: service + })) +}); + +const mergeProps = (stateProps, dispatchProps, ownProps) => ({ + ...stateProps, + ...dispatchProps, + ...ownProps, + addMetric: dispatchProps.addMetric(stateProps.service) }); module.exports = connect( mapStateToProps, - mapDispatchToProps + mapDispatchToProps, + mergeProps )(Metrics); diff --git a/frontend/src/mock-state.json b/frontend/src/mock-state.json index 70fa0434..937c0396 100644 --- a/frontend/src/mock-state.json +++ b/frontend/src/mock-state.json @@ -46,6 +46,12 @@ "location": "Amsterdam, Netherlands" }] }, + "monitors": { + "ui": { + "active": "dca08514-72e5-46ce-ad91-e68b3b0914d4", + "page": "create" + } + }, "metrics": { "ui": { "types": [ @@ -68,6 +74,7 @@ "data": { "types": [{ "uuid": "dca08514-72e5-46ce-ad91-e68b3b0914d4", + "name": "Aggregated CPU usage", "id": "agg-cpu-usage" }, { "uuid": "9e77b50e-42d7-425d-8daf-c0e98e2bdd6a", diff --git a/frontend/src/prop-types.js b/frontend/src/prop-types.js index 9908426d..f7baee89 100644 --- a/frontend/src/prop-types.js +++ b/frontend/src/prop-types.js @@ -39,6 +39,10 @@ const Metric = React.PropTypes.shape({ ...BaseObject }); +const MetricType = React.PropTypes.shape({ + ...BaseObject +}); + const Dataset = React.PropTypes.shape({ uuid: React.PropTypes.string, type: React.PropTypes.string, @@ -57,11 +61,6 @@ const Sections = React.PropTypes.arrayOf( React.PropTypes.string ); -// consinder renaming this to 'Types' as it could be used for any -const MetricTypes = React.PropTypes.arrayOf( - React.PropTypes.string -); - module.exports = { account: Account, link: Link, @@ -71,7 +70,6 @@ module.exports = { service: Service, instance: Instance, metric: Metric, - // consinder renaming this to 'Types' as it could be used for any - metricTypes: MetricTypes, + metricType: MetricType, dataset: Dataset }; diff --git a/frontend/src/state/actions.js b/frontend/src/state/actions.js index e0811e7c..7e5262ed 100644 --- a/frontend/src/state/actions.js +++ b/frontend/src/state/actions.js @@ -9,9 +9,12 @@ const APP = constantCase(process.env['APP_NAME']); module.exports = { ...require('@state/thunks'), - updateRouter: createAction(`${APP}/APP/UPDATE_ROUTER`), - toggleHeaderTooltip: createAction(`${APP}/APP/TOGGLE_HEADER_TOOLTIP`), - toggleServiceCollapsed: createAction(`${APP}/APP/TOGGLE_SERVICE_COLLAPSED`), - addMetric: createAction(`${APP}/APP/ADD_METRIC`), - toggleInstanceCollapsed: createAction(`${APP}/APP/TOGGLE_INSTANCE_COLLAPSED`) + updateRouter: createAction(`${APP}/UPDATE_ROUTER`), + toggleHeaderTooltip: createAction(`${APP}/TOGGLE_HEADER_TOOLTIP`), + toggleServiceCollapsed: createAction(`${APP}/TOGGLE_SERVICE_COLLAPSED`), + addMetric: createAction(`${APP}/ADD_METRIC`), + toggleInstanceCollapsed: createAction(`${APP}/TOGGLE_INSTANCE_COLLAPSED`), + toggleMonitorView: createAction(`${APP}/TOGGLE_MONITOR_VIEW`), + switchMonitorViewPage: createAction(`${APP}/SWITCH_MONITOR_VIEW_PAGE`), + createMonitor: createAction(`${APP}/CREATE_MONITOR`) }; diff --git a/frontend/src/state/reducers/index.js b/frontend/src/state/reducers/index.js index 9f428409..c87158f0 100644 --- a/frontend/src/state/reducers/index.js +++ b/frontend/src/state/reducers/index.js @@ -11,6 +11,7 @@ module.exports = () => { instances: require('@state/reducers/instances'), intl: require('@state/reducers/intl'), metrics: require('@state/reducers/metrics'), + monitors: require('@state/reducers/monitors'), orgs: require('@state/reducers/orgs'), projects: require('@state/reducers/projects'), services: require('@state/reducers/services') diff --git a/frontend/src/state/reducers/monitors.js b/frontend/src/state/reducers/monitors.js new file mode 100644 index 00000000..1c8a8204 --- /dev/null +++ b/frontend/src/state/reducers/monitors.js @@ -0,0 +1,30 @@ +const ReduxActions = require('redux-actions'); + +const actions = require('@state/actions'); + +const { + handleActions +} = ReduxActions; + +const { + toggleMonitorView, + switchMonitorViewPage + // createMonitor +} = actions; + +module.exports = handleActions({ + [toggleMonitorView.toString()]: (state, action) => ({ + ...state, + ui: { + ...state.ui, + active: action.payload + } + }), + [switchMonitorViewPage.toString()]: (state, action) => ({ + ...state, + ui: { + ...state.ui, + page: action.payload + } + }) +}, {}); diff --git a/frontend/src/state/selectors.js b/frontend/src/state/selectors.js index 7c154b3d..23a06af4 100644 --- a/frontend/src/state/selectors.js +++ b/frontend/src/state/selectors.js @@ -93,6 +93,12 @@ const metricsByServiceId = (serviceId) => createSelector( metricTypes.filter((i) => i.service === service.uuid) ); +const metricTypeByUuid = (metricTypeUuid) => createSelector( + [metricTypes], + (metricTypes) => find(metricTypes, ['uuid', metricTypeUuid]) +); + + const instancesByProjectId = (projectId) => createSelector( [instances, projectById(projectId), collapsedInstances, metricDatasets], (instances, project, collapsed, metrics) => @@ -119,5 +125,6 @@ module.exports = { servicesByProjectIdSelector: servicesByProjectId, instancesByServiceIdSelector: instancesByServiceId, metricsByServiceIdSelector: metricsByServiceId, - instancesByProjectIdSelector: instancesByProjectId + instancesByProjectIdSelector: instancesByProjectId, + metricTypeByUuidSelector: metricTypeByUuid }; From bfa8abb93f7960a7ba39f8943fcc341b7c0571b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:49:48 +0000 Subject: [PATCH 09/28] remove APP namespace from actions --- frontend/test/actions/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/test/actions/index.js b/frontend/test/actions/index.js index 19ba1faf..57199cd9 100644 --- a/frontend/test/actions/index.js +++ b/frontend/test/actions/index.js @@ -12,13 +12,13 @@ const { } = actions; test('updateRouter action', actionTest(updateRouter, { - type: '/APP/UPDATE_ROUTER' + type: '/UPDATE_ROUTER' })); test('updateRouter action', actionTest(updateRouter, { transitionTo: '[Function]' }, { - type: '/APP/UPDATE_ROUTER', + type: '/UPDATE_ROUTER', payload: { transitionTo: '[Function]' } From 7592648abc012748e30e2dd84c148c4fc9b5db51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Mon, 16 Jan 2017 19:53:05 +0000 Subject: [PATCH 10/28] update dependencies --- frontend/package.json | 18 +- frontend/yarn.lock | 570 +++++++++++++++++++++++++++++++++--------- ui/package.json | 14 +- ui/yarn.lock | 450 ++++++++++++++++++--------------- 4 files changed, 712 insertions(+), 340 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 9c0d54eb..856c1b4c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -33,13 +33,13 @@ "lodash.uniq": "^4.5.0", "param-case": "^2.1.0", "querystring": "^0.2.0", - "react": "^15.4.1", + "react": "^15.4.2", "react-a11y": "^0.3.3", - "react-dom": "^15.4.1", + "react-dom": "^15.4.2", "react-hot-loader": "^3.0.0-beta.6", - "react-intl": "^2.2.2", + "react-intl": "^2.2.3", "react-intl-redux": "^0.3.0", - "react-redux": "^5.0.1", + "react-redux": "^5.0.2", "react-router": "^4.0.0-alpha.4", "reduce-reducers": "^0.1.2", "redux": "^3.6.0", @@ -49,7 +49,7 @@ "redux-promise-middleware": "^4.2.0", "redux-thunk": "^2.1.0", "reselect": "^2.5.4", - "styled-components": "^1.2.1", + "styled-components": "^1.3.0", "understood": "^1.0.1", "url-loader": "^0.5.7" }, @@ -66,17 +66,17 @@ "babel-plugin-transform-runtime": "^6.15.0", "babel-plugin-webpack-alias": "^2.1.2", "babel-plugin-webpack-loaders": "^0.8.0", - "babel-preset-env": "^1.1.4", + "babel-preset-env": "^1.1.8", "babel-preset-react": "^6.16.0", "babel-register": "^6.18.0", "enzyme": "^2.7.0", - "eslint": "^3.12.2", + "eslint": "^3.13.1", "eslint-config-semistandard": "^7.0.0", "eslint-config-standard": "^6.2.1", "eslint-plugin-babel": "^4.0.0", "eslint-plugin-jsx-a11y": "^3.0.2", "eslint-plugin-promise": "^3.4.0", - "eslint-plugin-react": "^6.8.0", + "eslint-plugin-react": "^6.9.0", "eslint-plugin-standard": "^2.0.1", "fast-async": "^6.2.0", "jsdom": "^9.9.1", @@ -85,7 +85,7 @@ "node-hook": "^0.4.0", "nyc": "^10.0.0", "pre-commit": "^1.2.2", - "react-addons-test-utils": "^15.4.1", + "react-addons-test-utils": "^15.4.2", "redux-ava": "^2.2.0", "simple-mock": "^0.7.3", "tap-xunit": "^1.5.1", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 24982c3d..eacf3b79 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1,10 +1,14 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 "@tomgco/joyent-portal-ui@alpha": - version "0.0.1-400" - resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-400.tgz#533d2641a7c0d9e15a5335e01bb3b7ce853d761d" + version "0.0.1-501" + resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-501.tgz#2cc50b93fb6525008d5cabcab7de127d8832c9a0" dependencies: + build-array "^1.0.0" + chart.js "^2.4.0" + chartjs-chart-box-plot prerelease color "^1.0.3" + d3 "^4.4.1" lodash.find "^4.6.0" lodash.first "^3.0.0" lodash.flatten "^4.4.0" @@ -16,8 +20,11 @@ random-natural "^1.0.3" react "^15.4.1" react-dom "^15.4.1" + react-select "^1.0.0-rc.2" reduce-css-calc "^1.3.0" styled-components "^1.2.1" + svg-react-loader "^0.3.7" + transform-props-with "^2.1.0" abab@^1.0.0: version "1.0.3" @@ -84,8 +91,8 @@ ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.0.tgz#c11e6859eafff83e0dafc416929472eca946aa2c" ajv@^4.7.0: - version "4.10.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.3.tgz#3e4fea9675b157de7888b80dd0ed735b83f28e11" + version "4.10.4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.10.4.tgz#c0974dd00b3464984892d6010aa9c2c945933254" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" @@ -120,8 +127,8 @@ ansi-escapes@^1.1.0: resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" ansi-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-styles@^2.2.1: version "2.2.1" @@ -211,6 +218,13 @@ array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" +array.prototype.find@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.1.tgz#1557f888df6c57e4d1256f20852d687a25b51fde" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + arrify@^1.0.0, arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -621,14 +635,14 @@ babel-plugin-detective@^2.0.0: resolved "https://registry.yarnpkg.com/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz#6e642e83c22a335279754ebe2d754d2635f49f13" babel-plugin-espower@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.1.tgz#d15e904bc9949b14ac233b7965c2a5dc7a19a6a9" + version "2.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e" dependencies: babel-generator "^6.1.0" babylon "^6.1.0" call-matcher "^1.0.0" core-js "^2.0.0" - espower-location-detector "^0.1.1" + espower-location-detector "^1.0.0" espurify "^1.6.0" estraverse "^4.1.1" @@ -1023,9 +1037,9 @@ babel-polyfill@^6.16.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-preset-env@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.1.4.tgz#d876f9fcff5fe0612db3dcbc0c87503b41d4873f" +babel-preset-env@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.1.8.tgz#c46734c6233c3f87d177513773db3cf3c1758aaa" dependencies: babel-plugin-check-es2015-constants "^6.3.13" babel-plugin-syntax-trailing-function-commas "^6.13.0" @@ -1198,8 +1212,8 @@ babel-types@^6.13.0, babel-types@^6.14.0, babel-types@^6.15.0, babel-types@^6.16 to-fast-properties "^1.0.1" babylon@^6.1.0, babylon@^6.11.0, babylon@^6.13.0, babylon@^6.3.26: - version "6.14.1" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.14.1.tgz#956275fab72753ad9b3435d7afe58f8bf0a29815" + version "6.15.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.15.0.tgz#ba65cfa1a80e1759b0e89fb562e27dccae70348e" balanced-match@^0.4.1, balanced-match@^0.4.2: version "0.4.2" @@ -1346,10 +1360,10 @@ browserify-zlib@^0.1.4: pako "~0.2.0" browserslist@^1.4.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.5.1.tgz#67c3f2a1a6ad174cd01d25d2362e6e6083b26986" + version "1.5.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.5.2.tgz#1c82fde0ee8693e6d15c49b7bff209dc06298c56" dependencies: - caniuse-db "^1.0.30000601" + caniuse-db "^1.0.30000604" buf-compare@^1.0.0: version "1.0.1" @@ -1371,20 +1385,26 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.0.0: +buffer@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.2.tgz#41d0407ff76782e9ec19f52f88e237ce6bb0de6d" dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" +build-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/build-array/-/build-array-1.0.0.tgz#385e66f6b05c29ff16870c6e9944ccae77f7f100" + dependencies: + type-component "0.0.1" + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" -builtin-status-codes@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-2.0.0.tgz#6f22003baacf003ccd287afe6872151fddc58579" +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" bytes@2.3.0: version "2.3.0" @@ -1447,9 +1467,9 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -caniuse-db@^1.0.30000601: - version "1.0.30000604" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000604.tgz#bc139270a777564d19c0aadcd832b491d093bda5" +caniuse-db@^1.0.30000604: + version "1.0.30000611" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000611.tgz#1075d14d9b3cc153caf5e9e35f45565b03304c37" capture-stack-trace@^1.0.0: version "1.0.0" @@ -1498,6 +1518,30 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" +chart.js@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.4.0.tgz#44198073f0f43e5e16662e108420d92652a3c9a3" + dependencies: + chartjs-color "^2.0.0" + moment "^2.10.6" + +chartjs-chart-box-plot@prerelease: + version "1.0.0-16" + resolved "https://registry.yarnpkg.com/chartjs-chart-box-plot/-/chartjs-chart-box-plot-1.0.0-16.tgz#2544012ae84b04fa9922fe528017f5b748346497" + +chartjs-color-string@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.4.0.tgz#57748d4530ae28d8db0a5492182ba06dfdf2f468" + dependencies: + color-name "^1.0.0" + +chartjs-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.0.0.tgz#7f60c7256589b24914814ece757659117381e35b" + dependencies: + chartjs-color-string "^0.4.0" + color-convert "^0.5.3" + cheerio@^0.22.0: version "0.22.0" resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" @@ -1552,6 +1596,10 @@ clamp@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/clamp/-/clamp-1.0.1.tgz#66a0e64011816e37196828fdc8c8c147312c8634" +classnames@^2.2.4: + version "2.2.5" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.2.5.tgz#fb3801d453467649ef3603c7d61a02bd129bde6d" + clean-yaml-object@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" @@ -1611,6 +1659,10 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +color-convert@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + color-convert@^1.8.2: version "1.8.2" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.8.2.tgz#be868184d7c8631766d54e7078e2672d7c7e3339" @@ -1649,7 +1701,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.8.1, commander@^2.9.0: +commander@^2.8.1, commander@^2.9.0, commander@2: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -1904,6 +1956,222 @@ d@^0.1.1, d@~0.1.1: dependencies: es5-ext "~0.10.2" +d3-array@1, d3-array@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.0.2.tgz#174237bf356a852fadd6af87743d928631de7655" + +d3-axis@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.4.tgz#bdfdcf5e859824062e0f17ad920f76236e72512c" + +d3-brush@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.3.tgz#4fa5374cc3b755d0990bf76b71b7a66417751c74" + dependencies: + d3-dispatch "1" + d3-drag "1" + d3-interpolate "1" + d3-selection "1" + d3-transition "1" + +d3-chord@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.3.tgz#a398bae7cb632a3c4ea687a555a6b9ee4609d990" + dependencies: + d3-array "1" + d3-path "1" + +d3-collection@1, d3-collection@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.2.tgz#df5acb5400443e9eabe9c1379896c67e52426b39" + +d3-color@1, d3-color@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.2.tgz#83cb4b3a9474e40795f009d97e97a15649830bbc" + +d3-dispatch@1, d3-dispatch@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.2.tgz#5b511e79a46a1f89492841c0a8f656687d5daa0a" + +d3-drag@1, d3-drag@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.0.2.tgz#d634cc3f7689f99dd03fd7eb1af2945c0f4339ad" + dependencies: + d3-dispatch "1" + d3-selection "1" + +d3-dsv@1, d3-dsv@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.3.tgz#049fe43c0f5f60c7ff7d376616bc76d6fc9d378f" + dependencies: + commander "2" + iconv-lite "0.4" + rw "1" + +d3-ease@1, d3-ease@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.2.tgz#b486f8f3ca308ca7be38197d65622b6e30983377" + +d3-force@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.0.4.tgz#f84dcbb3200be41de7bc30fa71923143156758bf" + dependencies: + d3-collection "1" + d3-dispatch "1" + d3-quadtree "1" + d3-timer "1" + +d3-format@1, d3-format@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.0.2.tgz#138618320b4bbeb43b5c0ff30519079fbbd7375e" + +d3-geo@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.4.0.tgz#15e58c414b5bafa1a960eeeb29059c94a60d8408" + dependencies: + d3-array "1" + +d3-hierarchy@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.0.3.tgz#986b4925e81f1e0b4087e9442850f950cf27d338" + +d3-interpolate@1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.3.tgz#e119c91b6be4941e581675ca3e1279bb92bd2c9b" + dependencies: + d3-color "1" + +d3-interpolate@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.2.tgz#b52e6927a04fe1fe2a4cffc139e5389ed3e5e790" + dependencies: + d3-color "1" + +d3-path@1, d3-path@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.3.tgz#60103d0dea9a6cd6ca58de86c6d56724002d3fde" + +d3-polygon@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.2.tgz#6552c0fb03aa2d05023351da6e0e8adc4df0202b" + +d3-quadtree@1, d3-quadtree@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.2.tgz#e7e873af06aaa427eaa4af094cc4cbfb350b9e38" + +d3-queue@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.3.tgz#10ee4dd0574a1affaabfb931d0ba4f117926edc6" + +d3-random@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.0.2.tgz#83ff6a391206209c30565299e43c6549866db269" + +d3-request@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.3.tgz#63fc7dfd784607db0df5d535d7cb898fceba755a" + dependencies: + d3-collection "1" + d3-dispatch "1" + d3-dsv "1" + xmlhttprequest "1" + +d3-scale@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.4.tgz#50e28bf6a193b706745528515ed9b3d44205a033" + dependencies: + d3-array "1" + d3-collection "1" + d3-color "1" + d3-format "1" + d3-interpolate "1" + d3-time "1" + d3-time-format "2" + +d3-selection@1, d3-selection@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.0.3.tgz#e63e51416172427854c1bcdfa066eb5fe872c108" + +d3-shape@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.0.4.tgz#145ee100ccbec42f8e3f1996cd05c786f79fe1c6" + dependencies: + d3-path "1" + +d3-time-format@2, d3-time-format@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.0.3.tgz#3241569b74ddc9c42e0689c0e8a903579fd6280a" + dependencies: + d3-time "1" + +d3-time@1, d3-time@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.4.tgz#2ceba09a76b7450c992a1ded4e10fc6195e69649" + +d3-timer@1, d3-timer@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.3.tgz#7a308a10c8524778e6b32d1d6c1c329209ae0ebf" + +d3-transition@1, d3-transition@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.0.3.tgz#91dc986bddb30973639320a85db72ce4ab1a27bb" + dependencies: + d3-color "1" + d3-dispatch "1" + d3-ease "1" + d3-interpolate "1" + d3-selection "1" + d3-timer "1" + +d3-voronoi@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.1.tgz#998544dca98ef0e89a6c40c0bac3510d1bc1b8b9" + +d3-zoom@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.1.1.tgz#d2362d8f7043c1fc5d96a438de69f4e02ef1e67b" + dependencies: + d3-dispatch "1" + d3-drag "1" + d3-interpolate "1" + d3-selection "1" + d3-transition "1" + +d3@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/d3/-/d3-4.4.1.tgz#2cbb08f92970364076ffe91ab83ef66b80610785" + dependencies: + d3-array "1.0.2" + d3-axis "1.0.4" + d3-brush "1.0.3" + d3-chord "1.0.3" + d3-collection "1.0.2" + d3-color "1.0.2" + d3-dispatch "1.0.2" + d3-drag "1.0.2" + d3-dsv "1.0.3" + d3-ease "1.0.2" + d3-force "1.0.4" + d3-format "1.0.2" + d3-geo "1.4.0" + d3-hierarchy "1.0.3" + d3-interpolate "1.1.2" + d3-path "1.0.3" + d3-polygon "1.0.2" + d3-quadtree "1.0.2" + d3-queue "3.0.3" + d3-random "1.0.2" + d3-request "1.0.3" + d3-scale "1.0.4" + d3-selection "1.0.3" + d3-shape "1.0.4" + d3-time "1.0.4" + d3-time-format "2.0.3" + d3-timer "1.0.3" + d3-transition "1.0.3" + d3-voronoi "1.1.1" + d3-zoom "1.1.1" + damerau-levenshtein@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" @@ -2176,7 +2444,7 @@ error-stack-parser@^1.3.6: dependencies: stackframe "^0.3.1" -es-abstract@^1.6.1: +es-abstract@^1.5.0, es-abstract@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99" dependencies: @@ -2297,10 +2565,11 @@ eslint-plugin-promise@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.4.0.tgz#6ba9048c2df57be77d036e0c68918bc9b4fc4195" -eslint-plugin-react@^6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.8.0.tgz#741ab5438a094532e5ce1bbb935d6832356f492d" +eslint-plugin-react@^6.9.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz#54c2e9906b76f9d10142030bdc34e9d6840a0bb2" dependencies: + array.prototype.find "^2.0.1" doctrine "^1.2.2" jsx-ast-utils "^1.3.4" @@ -2308,9 +2577,9 @@ eslint-plugin-standard@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz#3589699ff9c917f2c25f76a916687f641c369ff3" -eslint@^3.12.2: - version "3.12.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.12.2.tgz#6be5a9aa29658252abd7f91e9132bab1f26f3c34" +eslint@^3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.13.1.tgz#564d2646b5efded85df96985332edd91a23bff25" dependencies: babel-code-frame "^6.16.0" chalk "^1.1.3" @@ -2342,14 +2611,14 @@ eslint@^3.12.2: require-uncached "^1.0.2" shelljs "^0.7.5" strip-bom "^3.0.0" - strip-json-comments "~1.0.1" + strip-json-comments "~2.0.1" table "^3.7.8" text-table "~0.2.0" user-home "^2.0.0" -espower-location-detector@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-0.1.2.tgz#d43be738af3e0b18197eeb5c22b95512dee6b83c" +espower-location-detector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" dependencies: is-url "^1.2.1" path-is-absolute "^1.0.0" @@ -2514,7 +2783,7 @@ faye-websocket@~0.11.0: dependencies: websocket-driver ">=0.5.1" -fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.8: +fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.7, fbjs@^0.8.8: version "0.8.8" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.8.tgz#02f1b6e0ea0d46c24e0b51a2d24df069563a5ad6" dependencies: @@ -2658,8 +2927,8 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" fsevents@^1.0.0: - version "1.0.15" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.15.tgz#fa63f590f3c2ad91275e4972a6cea545fb0aae44" + version "1.0.17" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.0.17.tgz#8537f3f12272678765b4fd6528c0f1f66f8f4558" dependencies: nan "^2.3.0" node-pre-gyp "^0.6.29" @@ -2737,7 +3006,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glamor@^2.15.5: +glamor@^2.20.12: version "2.20.20" resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.20.tgz#546cb86bfae760b0fd5c019ba859007d08e6238f" dependencies: @@ -2831,7 +3100,7 @@ got@^5.0.0: unzip-response "^1.0.2" url-parse-lax "^1.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2933,8 +3202,8 @@ heavy@4.x.x: joi "10.x.x" history@^4.3.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/history/-/history-4.5.0.tgz#7313388109333bf5796fff7407cee1850e8c5061" + version "4.5.1" + resolved "https://registry.yarnpkg.com/history/-/history-4.5.1.tgz#44935a51021e3b8e67ebac267a35675732aba569" dependencies: invariant "^2.2.1" loose-envify "^1.2.0" @@ -3022,7 +3291,7 @@ hyphenate-style-name@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" -iconv-lite@^0.4.13, iconv-lite@~0.4.13: +iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -3149,9 +3418,9 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ipaddr.js@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" +ipaddr.js@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" iron@4.x.x: version "4.0.4" @@ -3486,8 +3755,8 @@ jodid25519@^1.0.0: jsbn "~0.1.0" joi@10.x.x: - version "10.1.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-10.1.0.tgz#8c3a87577c159ffeba129a5054f3238f9efd7159" + version "10.2.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-10.2.0.tgz#2c9dba08240d453e58145667f0d5006de527e328" dependencies: hoek "4.x.x" isemail "2.x.x" @@ -3498,6 +3767,10 @@ js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" +js-tokens@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1" + js-yaml@^3.2.7, js-yaml@^3.5.1: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" @@ -3644,7 +3917,7 @@ loader-runner@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.2.0.tgz#824c1b699c4e7a2b6501b85902d5b862bf45b3fa" -loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@0.2.x: +loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@0.2.x: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -3721,8 +3994,8 @@ lodash.isempty@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" lodash.isequal@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.4.0.tgz#6295768e98e14dc15ce8d362ef6340db82852031" + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" lodash.isfunction@^3.0.8: version "3.0.8" @@ -3785,7 +4058,7 @@ lodash@^3.5.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: +lodash@^4.0.0, lodash@^4.10.0, lodash@^4.12.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3794,10 +4067,10 @@ longest@^1.0.1: resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: - js-tokens "^2.0.0" + js-tokens "^3.0.0" loud-rejection@^1.0.0, loud-rejection@^1.2.0: version "1.6.0" @@ -3927,15 +4200,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.24.0 < 2", mime-db@~1.25.0, mime-db@1.x.x: - version "1.25.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" +"mime-db@>= 1.24.0 < 2", mime-db@~1.26.0, mime-db@1.x.x: + version "1.26.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: - version "2.1.13" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" + version "2.1.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" dependencies: - mime-db "~1.25.0" + mime-db "~1.26.0" mime@^1.3.4, mime@1.3.4: version "1.3.4" @@ -3986,6 +4259,10 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: dependencies: minimist "0.0.8" +moment@^2.10.6: + version "2.17.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" + ms@^0.7.1, ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" @@ -4039,8 +4316,8 @@ nigel@2.x.x: vise "2.x.x" no-case@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.0.tgz#ca2825ccb76b18e6f79d573dcfbf1eace33dd164" + version "2.3.1" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.1.tgz#7aeba1c73a52184265554b7dc03baf720df80081" dependencies: lower-case "^1.1.1" @@ -4106,8 +4383,8 @@ nodent-runtime@>=3.0.3: resolved "https://registry.yarnpkg.com/nodent-runtime/-/nodent-runtime-3.0.3.tgz#49a25f4f4efb092c40d97be9e73de7e53a5f8361" nodent@>=3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/nodent/-/nodent-3.0.8.tgz#53bd61d2b5d3bfdcb44c28b63065d6c86cf552f0" + version "3.0.9" + resolved "https://registry.yarnpkg.com/nodent/-/nodent-3.0.9.tgz#0b6bf91e49b44e2fbf8b69bab4d192f81de30ffa" dependencies: acorn ">=2.5.2" acorn-es7-plugin ">=1.1.5" @@ -4201,8 +4478,8 @@ oauth-sign@~0.8.1: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-is@^1.0.1: version "1.0.1" @@ -4654,11 +4931,11 @@ promise@^7.1.1: asap "~2.0.3" proxy-addr@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + version "1.1.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074" dependencies: forwarded "~0.1.0" - ipaddr.js "1.1.1" + ipaddr.js "1.2.0" prr@~0.0.0: version "0.0.0" @@ -4769,9 +5046,12 @@ react-a11y@^0.3.3: dependencies: object.assign "^4.0.3" -react-addons-test-utils@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.4.1.tgz#1e4caab151bf27cce26df5f9cb714f4fd8359ae1" +react-addons-test-utils@^15.4.2: + version "15.4.2" + resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.4.2.tgz#93bcaa718fcae7360d42e8fb1c09756cc36302a2" + dependencies: + fbjs "^0.8.4" + object-assign "^4.1.0" react-broadcast@^0.1.2: version "0.1.2" @@ -4783,9 +5063,9 @@ react-deep-force-update@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-2.0.1.tgz#4f7f6c12c3e7de42f345992a3c518236fa1ecad3" -react-dom@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.1.tgz#d54c913261aaedb17adc20410d029dcc18a1344a" +react-dom@^15.4.1, react-dom@^15.4.2: + version "15.4.2" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz#015363f05b0a1fd52ae9efdd3a0060d90695208f" dependencies: fbjs "^0.8.1" loose-envify "^1.1.0" @@ -4802,6 +5082,10 @@ react-hot-loader@^3.0.0-beta.6: redbox-react "^1.2.5" source-map "^0.4.4" +react-input-autosize@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/react-input-autosize/-/react-input-autosize-1.1.0.tgz#3fe1ac832387d8abab85f6051ceab1c9e5570853" + react-intl-redux@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/react-intl-redux/-/react-intl-redux-0.3.0.tgz#f42041c0b2edbf88ad693def6fbd00adef673d63" @@ -4811,9 +5095,9 @@ react-intl-redux@^0.3.0: redux "^3.6.0" warning "^3.0.0" -react-intl@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.2.2.tgz#266a38334671937bec92729eb4973b4360c07996" +react-intl@^2.2.2, react-intl@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-2.2.3.tgz#8eebb03cddc38b337ed22fab78037ab53a594270" dependencies: intl-format-cache "^2.0.5" intl-messageformat "^1.3.0" @@ -4826,9 +5110,9 @@ react-proxy@^3.0.0-alpha.0: dependencies: lodash "^4.6.1" -react-redux@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.1.tgz#84a41bd4cdd180452bb6922bc79ad25bd5abb7c4" +react-redux@^5.0.1, react-redux@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-5.0.2.tgz#3d9878f5f71c6fafcd45de1fbb162ea31f389814" dependencies: hoist-non-react-statics "^1.0.3" invariant "^2.0.0" @@ -4845,9 +5129,16 @@ react-router@^4.0.0-alpha.4: query-string "4.2.3" react-broadcast "^0.1.2" -react@^15.4.1: - version "15.4.1" - resolved "https://registry.yarnpkg.com/react/-/react-15.4.1.tgz#498e918602677a3983cd0fd206dfe700389a0dd6" +react-select@^1.0.0-rc.2: + version "1.0.0-rc.2" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-1.0.0-rc.2.tgz#9fc11b149a3dc1ac831289d21b40a59742f82f8d" + dependencies: + classnames "^2.2.4" + react-input-autosize "^1.1.0" + +react@^15.4.1, react@^15.4.2: + version "15.4.2" + resolved "https://registry.yarnpkg.com/react/-/react-15.4.2.tgz#41f7991b26185392ba9bae96c8889e7e018397ef" dependencies: fbjs "^0.8.4" loose-envify "^1.1.0" @@ -5170,11 +5461,15 @@ run-async@^0.1.0: dependencies: once "^1.3.0" +rw@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.2.tgz#14ef5137ff7547c73ecf0e0af1f0aee07e5401ee" + rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -sax@^1.1.4: +sax@^1.1.4, sax@>=0.6.0: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" @@ -5260,8 +5555,8 @@ shebang-regex@^1.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" shelljs@^0.7.5: - version "0.7.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.5.tgz#2eef7a50a21e1ccf37da00df767ec69e30ad0675" + version "0.7.6" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.6.tgz#379cccfb56b91c8601e4793356eb5382924de9ad" dependencies: glob "^7.0.0" interpret "^1.0.0" @@ -5340,13 +5635,13 @@ sort-keys@^1.1.1: dependencies: is-plain-obj "^1.0.0" -source-list-map@~0.1.0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.7.tgz#d4b5ce2a46535c72c7e8527c71a77d250618172e" +source-list-map@~0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" source-map-support@^0.4.0, source-map-support@^0.4.2: - version "0.4.8" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.8.tgz#4871918d8a3af07289182e974e32844327b2e98b" + version "0.4.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.9.tgz#45eaa04f067e049d987b27599ed014a37750aaff" dependencies: source-map "^0.5.3" @@ -5403,8 +5698,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + version "1.10.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -5452,10 +5747,10 @@ stream-cache@~0.0.1: resolved "https://registry.yarnpkg.com/stream-cache/-/stream-cache-0.0.2.tgz#1ac5ad6832428ca55667dbdee395dad4e6db118f" stream-http@^2.3.1: - version "2.5.0" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.5.0.tgz#585eee513217ed98fe199817e7313b6f772a6802" + version "2.6.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.2.tgz#bdfe40d2ee9262eb6bf2255bb3ad0ec0cdd6526d" dependencies: - builtin-status-codes "^2.0.0" + builtin-status-codes "^3.0.0" inherits "^2.0.1" readable-stream "^2.1.0" to-arraybuffer "^1.0.0" @@ -5522,18 +5817,22 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~1.0.1, strip-json-comments@~1.0.4: +strip-json-comments@~1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" -styled-components@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.2.1.tgz#5884267dd9c6a8199d4abd3e0714afb973772b42" +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +styled-components@^1.2.1, styled-components@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.3.0.tgz#0711b5a82fe784b458fd6e5054b842751c543a6b" dependencies: - buffer "^5.0.0" + buffer "^5.0.2" css-to-react-native "^1.0.6" - fbjs "^0.8.4" - glamor "^2.15.5" + fbjs "^0.8.7" + glamor "^2.20.12" inline-style-prefixer "^2.0.5" is-function "^1.0.1" is-plain-object "^2.0.1" @@ -5558,11 +5857,19 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.0, supports-color@^3.1.1, supports-color@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" +svg-react-loader@^0.3.7: + version "0.3.7" + resolved "https://registry.yarnpkg.com/svg-react-loader/-/svg-react-loader-0.3.7.tgz#a88a92a6349260f599f922ac6def7753787b9216" + dependencies: + loader-utils "^0.2" + lodash "^4.12.0" + xml2js "^0.4" + symbol-observable@^0.2.2: version "0.2.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" @@ -5612,8 +5919,8 @@ tap-xunit@^1.5.1: xtend "~4.0.0" tapable@^0.2.3, tapable@~0.2.3: - version "0.2.5" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.5.tgz#1ff6ce7ade58e734ca9bfe36ba342304b377a4d0" + version "0.2.6" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" tar-pack@~3.3.0: version "3.3.0" @@ -5723,6 +6030,12 @@ tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" +transform-props-with@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/transform-props-with/-/transform-props-with-2.1.0.tgz#845fdbc7771689a500dec95bbdd39ecd20639f76" + dependencies: + lodash "^4.10.0" + traverse@^0.6.6: version "0.6.6" resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" @@ -5753,6 +6066,10 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-component@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/type-component/-/type-component-0.0.1.tgz#952a6c81c21efd24d13d811d0c8498cb860e1956" + type-is@~1.6.13: version "1.6.14" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.14.tgz#e219639c17ded1ca0789092dd54a03826b817cb2" @@ -5991,10 +6308,10 @@ webpack-shell-plugin@^0.5.0: resolved "https://registry.yarnpkg.com/webpack-shell-plugin/-/webpack-shell-plugin-0.5.0.tgz#29b8a1d80ddeae0ddb10e729667f728653c2c742" webpack-sources@^0.1.0: - version "0.1.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.3.tgz#15ce2fb79d0a1da727444ba7c757bf164294f310" + version "0.1.4" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.4.tgz#ccc2c817e08e5fa393239412690bb481821393cd" dependencies: - source-list-map "~0.1.0" + source-list-map "~0.1.7" source-map "~0.5.3" webpack@^2.1.0-beta.25: @@ -6044,8 +6361,8 @@ whatwg-fetch@>=0.10.0: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.1.tgz#078b9461bbe91cea73cbce8bb122a05f9e92b772" whatwg-url@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.2.0.tgz#abf1a3f5ff4bc2005b3f0c2119382631789d8e44" + version "4.3.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-4.3.0.tgz#92aaee21f4f2a642074357d70ef8500a7cbb171a" dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -6107,10 +6424,10 @@ wreck@10.x.x: hoek "4.x.x" write-file-atomic@^1.1.2, write-file-atomic@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.2.0.tgz#14c66d4e4cb3ca0565c28cf3b7a6f3e4d5938fab" + version "1.3.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.1.tgz#7d45ba32316328dd1ec7d90f60ebc0d845bb759a" dependencies: - graceful-fs "^4.1.2" + graceful-fs "^4.1.11" imurmurhash "^0.1.4" slide "^1.1.5" @@ -6148,12 +6465,29 @@ xdg-basedir@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-2.0.1.tgz#4d8b8f1eccd3419aa362061becef515e1e559635" +xml2js@^0.4: + version "0.4.17" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.17.tgz#17be93eaae3f3b779359c795b419705a8817e868" + dependencies: + sax ">=0.6.0" + xmlbuilder "^4.1.0" + +xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + dependencies: + lodash "^4.0.0" + xmlbuilder@~4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.1.0.tgz#687e84d9c4145af8db438d8bec88805df66249f4" dependencies: lodash "^3.5.0" +xmlhttprequest@1: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" diff --git a/ui/package.json b/ui/package.json index 377fe482..682630bc 100644 --- a/ui/package.json +++ b/ui/package.json @@ -26,16 +26,16 @@ "lodash.isundefined": "^3.0.1", "param-case": "^2.1.0", "random-natural": "^1.0.3", - "react": "^15.4.1", - "react-dom": "^15.4.1", + "react": "^15.4.2", + "react-dom": "^15.4.2", "react-select": "^1.0.0-rc.2", "reduce-css-calc": "^1.3.0", - "styled-components": "^1.2.1", + "styled-components": "^1.3.0", "svg-react-loader": "^0.3.7", "transform-props-with": "^2.1.0" }, "devDependencies": { - "@kadira/storybook": "^2.35.2", + "@kadira/storybook": "^2.35.3", "ava": "^0.17.0", "babel-cli": "^6.18.0", "babel-core": "^6.21.0", @@ -46,20 +46,20 @@ "babel-register": "^6.18.0", "dangerously-set-inner-html": "2.0.0", "enzyme": "^2.7.0", - "eslint": "^3.12.2", + "eslint": "^3.13.1", "eslint-config-semistandard": "^7.0.0", "eslint-config-standard": "^6.2.1", "eslint-plugin-babel": "^4.0.0", "eslint-plugin-jsx-a11y": "^3.0.2", "eslint-plugin-promise": "^3.4.0", - "eslint-plugin-react": "^6.8.0", + "eslint-plugin-react": "^6.9.0", "eslint-plugin-standard": "^2.0.1", "jsdom": "^9.9.1", "memory-fs": "^0.4.1", "node-hook": "^0.4.0", "nyc": "^10.0.0", "pre-commit": "^1.2.2", - "react-addons-test-utils": "^15.4.1", + "react-addons-test-utils": "^15.4.2", "st": "^1.2.0", "stylelint": "^7.7.1", "stylelint-config-standard": "^15.0.1", diff --git a/ui/yarn.lock b/ui/yarn.lock index 685d46e8..02414d4b 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -1,7 +1,5 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 - - "@kadira/react-split-pane@^1.4.0": version "1.4.7" resolved "https://registry.yarnpkg.com/@kadira/react-split-pane/-/react-split-pane-1.4.7.tgz#6d753d4a9fe62fe82056e323a6bcef7f026972b5" @@ -34,8 +32,8 @@ resolved "https://registry.yarnpkg.com/@kadira/storybook-channel/-/storybook-channel-1.1.0.tgz#806d1cdf2498d11cce09871a6fd27bbb41ed3564" "@kadira/storybook-ui@^3.10.1": - version "3.10.1" - resolved "https://registry.yarnpkg.com/@kadira/storybook-ui/-/storybook-ui-3.10.1.tgz#d0ab3b00fce419fff11c45d386104e74765f953c" + version "3.11.0" + resolved "https://registry.yarnpkg.com/@kadira/storybook-ui/-/storybook-ui-3.11.0.tgz#a5ccdcc479aa5e08465c58e7df493e37e4b2a14a" dependencies: "@kadira/react-split-pane" "^1.4.0" babel-runtime "^6.5.0" @@ -45,6 +43,7 @@ json-stringify-safe "^5.0.1" keycode "^2.1.1" lodash.pick "^4.2.1" + lodash.sortby "^4.7.0" mantra-core "^1.7.0" podda "^1.2.1" qs "^6.2.0" @@ -54,9 +53,9 @@ react-modal "^1.2.1" redux "^3.5.2" -"@kadira/storybook@^2.35.2": - version "2.35.2" - resolved "https://registry.yarnpkg.com/@kadira/storybook/-/storybook-2.35.2.tgz#2314481e66effdf1ff129d41e3fda986b6375b38" +"@kadira/storybook@^2.35.3": + version "2.35.3" + resolved "https://registry.yarnpkg.com/@kadira/storybook/-/storybook-2.35.3.tgz#8106195e1733623baf60db6adaa678dc29285d12" dependencies: "@kadira/react-split-pane" "^1.4.0" "@kadira/storybook-addon-actions" "^1.0.2" @@ -98,13 +97,6 @@ webpack-dev-middleware "^1.6.0" webpack-hot-middleware "^2.13.2" -JSONStream@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" - dependencies: - jsonparse "0.0.5" - through ">=2.2.7 <3" - abab@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" @@ -199,8 +191,8 @@ ansi-html@0.0.6: resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.6.tgz#bda8e33dd2ee1c20f54c08eb405713cbfc0ed80e" ansi-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.0.0.tgz#c5061b6e0ef8a81775e50f5d66151bf6bf371107" + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" ansi-styles@^2.2.1: version "2.2.1" @@ -717,14 +709,14 @@ babel-plugin-detective@^2.0.0: resolved "https://registry.yarnpkg.com/babel-plugin-detective/-/babel-plugin-detective-2.0.0.tgz#6e642e83c22a335279754ebe2d754d2635f49f13" babel-plugin-espower@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.1.tgz#d15e904bc9949b14ac233b7965c2a5dc7a19a6a9" + version "2.3.2" + resolved "https://registry.yarnpkg.com/babel-plugin-espower/-/babel-plugin-espower-2.3.2.tgz#5516b8fcdb26c9f0e1d8160749f6e4c65e71271e" dependencies: babel-generator "^6.1.0" babylon "^6.1.0" call-matcher "^1.0.0" core-js "^2.0.0" - espower-location-detector "^0.1.1" + espower-location-detector "^1.0.0" espurify "^1.6.0" estraverse "^4.1.1" @@ -792,14 +784,6 @@ babel-plugin-transform-async-to-generator@^6.16.0, babel-plugin-transform-async- babel-plugin-syntax-async-functions "^6.8.0" babel-runtime "^6.0.0" -babel-plugin-transform-class-properties@6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.16.0.tgz#969bca24d34e401d214f36b8af5c1346859bc904" - dependencies: - babel-helper-function-name "^6.8.0" - babel-plugin-syntax-class-properties "^6.8.0" - babel-runtime "^6.9.1" - babel-plugin-transform-class-properties@^6.18.0: version "6.19.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.19.0.tgz#1274b349abaadc835164e2004f4a2444a2788d5f" @@ -809,6 +793,14 @@ babel-plugin-transform-class-properties@^6.18.0: babel-runtime "^6.9.1" babel-template "^6.15.0" +babel-plugin-transform-class-properties@6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.16.0.tgz#969bca24d34e401d214f36b8af5c1346859bc904" + dependencies: + babel-helper-function-name "^6.8.0" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.9.1" + babel-plugin-transform-decorators@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.13.0.tgz#82d65c1470ae83e2d13eebecb0a1c2476d62da9d" @@ -864,18 +856,18 @@ babel-plugin-transform-es2015-computed-properties@^6.3.13: babel-runtime "^6.0.0" babel-template "^6.8.0" -babel-plugin-transform-es2015-destructuring@6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.16.0.tgz#050fe0866f5d53b36062ee10cdf5bfe64f929627" - dependencies: - babel-runtime "^6.9.0" - babel-plugin-transform-es2015-destructuring@^6.18.0, babel-plugin-transform-es2015-destructuring@^6.6.0, babel-plugin-transform-es2015-destructuring@^6.6.5: version "6.19.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.19.0.tgz#ff1d911c4b3f4cab621bd66702a869acd1900533" dependencies: babel-runtime "^6.9.0" +babel-plugin-transform-es2015-destructuring@6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.16.0.tgz#050fe0866f5d53b36062ee10cdf5bfe64f929627" + dependencies: + babel-runtime "^6.9.0" + babel-plugin-transform-es2015-duplicate-keys@^6.6.0: version "6.8.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.8.0.tgz#fd8f7f7171fc108cc1c70c3164b9f15a81c25f7d" @@ -943,17 +935,6 @@ babel-plugin-transform-es2015-object-super@^6.3.13: babel-helper-replace-supers "^6.8.0" babel-runtime "^6.0.0" -babel-plugin-transform-es2015-parameters@6.17.0: - version "6.17.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.17.0.tgz#e06d30cef897f46adb4734707bbe128a0d427d58" - dependencies: - babel-helper-call-delegate "^6.8.0" - babel-helper-get-function-arity "^6.8.0" - babel-runtime "^6.9.0" - babel-template "^6.16.0" - babel-traverse "^6.16.0" - babel-types "^6.16.0" - babel-plugin-transform-es2015-parameters@^6.18.0, babel-plugin-transform-es2015-parameters@^6.6.0, babel-plugin-transform-es2015-parameters@^6.7.0: version "6.21.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.21.0.tgz#46a655e6864ef984091448cdf024d87b60b2a7d8" @@ -965,6 +946,17 @@ babel-plugin-transform-es2015-parameters@^6.18.0, babel-plugin-transform-es2015- babel-traverse "^6.21.0" babel-types "^6.21.0" +babel-plugin-transform-es2015-parameters@6.17.0: + version "6.17.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.17.0.tgz#e06d30cef897f46adb4734707bbe128a0d427d58" + dependencies: + babel-helper-call-delegate "^6.8.0" + babel-helper-get-function-arity "^6.8.0" + babel-runtime "^6.9.0" + babel-template "^6.16.0" + babel-traverse "^6.16.0" + babel-types "^6.16.0" + babel-plugin-transform-es2015-shorthand-properties@^6.18.0, babel-plugin-transform-es2015-shorthand-properties@^6.3.13, babel-plugin-transform-es2015-shorthand-properties@^6.5.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.18.0.tgz#e2ede3b7df47bf980151926534d1dd0cbea58f43" @@ -1021,13 +1013,6 @@ babel-plugin-transform-flow-strip-types@^6.3.13: babel-plugin-syntax-flow "^6.18.0" babel-runtime "^6.0.0" -babel-plugin-transform-object-rest-spread@6.16.0: - version "6.16.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.0.0" - babel-plugin-transform-object-rest-spread@^6.16.0, babel-plugin-transform-object-rest-spread@^6.20.2: version "6.20.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.20.2.tgz#e816c55bba77b14c16365d87e2ae48c8fd18fc2e" @@ -1035,6 +1020,13 @@ babel-plugin-transform-object-rest-spread@^6.16.0, babel-plugin-transform-object babel-plugin-syntax-object-rest-spread "^6.8.0" babel-runtime "^6.20.0" +babel-plugin-transform-object-rest-spread@6.16.0: + version "6.16.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.16.0.tgz#db441d56fffc1999052fdebe2e2f25ebd28e36a9" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.0.0" + babel-plugin-transform-react-constant-elements@6.9.1: version "6.9.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-constant-elements/-/babel-plugin-transform-react-constant-elements-6.9.1.tgz#125b86d96cb322e2139b607fd749ad5fbb17f005" @@ -1047,14 +1039,14 @@ babel-plugin-transform-react-display-name@^6.3.13: dependencies: babel-runtime "^6.0.0" -babel-plugin-transform-react-jsx-self@6.11.0, babel-plugin-transform-react-jsx-self@^6.11.0: +babel-plugin-transform-react-jsx-self@^6.11.0, babel-plugin-transform-react-jsx-self@6.11.0: version "6.11.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.11.0.tgz#605c9450c1429f97a930f7e1dfe3f0d9d0dbd0f4" dependencies: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.9.0" -babel-plugin-transform-react-jsx-source@6.9.0, babel-plugin-transform-react-jsx-source@^6.3.13: +babel-plugin-transform-react-jsx-source@^6.3.13, babel-plugin-transform-react-jsx-source@6.9.0: version "6.9.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.9.0.tgz#af684a05c2067a86e0957d4f343295ccf5dccf00" dependencies: @@ -1069,7 +1061,13 @@ babel-plugin-transform-react-jsx@^6.3.13: babel-plugin-syntax-jsx "^6.8.0" babel-runtime "^6.0.0" -babel-plugin-transform-regenerator@6.16.1, babel-plugin-transform-regenerator@^6.16.0, babel-plugin-transform-regenerator@^6.6.0: +babel-plugin-transform-regenerator@^6.16.0, babel-plugin-transform-regenerator@^6.6.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.21.0.tgz#75d0c7e7f84f379358f508451c68a2c5fa5a9703" + dependencies: + regenerator-transform "0.9.8" + +babel-plugin-transform-regenerator@6.16.1: version "6.16.1" resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.16.1.tgz#a75de6b048a14154aae14b0122756c5bed392f59" dependencies: @@ -1077,7 +1075,7 @@ babel-plugin-transform-regenerator@6.16.1, babel-plugin-transform-regenerator@^6 babel-types "^6.16.0" private "~0.1.5" -babel-plugin-transform-runtime@6.15.0, babel-plugin-transform-runtime@^6.15.0: +babel-plugin-transform-runtime@^6.15.0, babel-plugin-transform-runtime@6.15.0: version "6.15.0" resolved "https://registry.yarnpkg.com/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.15.0.tgz#3d75b4d949ad81af157570273846fb59aeb0d57c" dependencies: @@ -1212,7 +1210,7 @@ babel-preset-react-app@^1.0.0: babel-preset-react "6.16.0" babel-runtime "6.11.6" -babel-preset-react@6.16.0, babel-preset-react@^6.16.0: +babel-preset-react@^6.16.0, babel-preset-react@6.16.0: version "6.16.0" resolved "https://registry.yarnpkg.com/babel-preset-react/-/babel-preset-react-6.16.0.tgz#aa117d60de0928607e343c4828906e4661824316" dependencies: @@ -1255,6 +1253,13 @@ babel-register@^6.18.0: mkdirp "^0.5.1" source-map-support "^0.4.2" +babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.5.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1, babel-runtime@^6.9.2, babel-runtime@6.x.x: + version "6.20.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.10.0" + babel-runtime@6.11.6: version "6.11.6" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.11.6.tgz#6db707fef2d49c49bfa3cb64efdb436b518b8222" @@ -1262,13 +1267,6 @@ babel-runtime@6.11.6: core-js "^2.4.0" regenerator-runtime "^0.9.5" -babel-runtime@6.x.x, babel-runtime@^6.0.0, babel-runtime@^6.11.6, babel-runtime@^6.18.0, babel-runtime@^6.20.0, babel-runtime@^6.5.0, babel-runtime@^6.9.0, babel-runtime@^6.9.1, babel-runtime@^6.9.2: - version "6.20.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.20.0.tgz#87300bdcf4cd770f09bf0048c64204e17806d16f" - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.10.0" - babel-template@^6.14.0, babel-template@^6.15.0, babel-template@^6.16.0, babel-template@^6.7.0, babel-template@^6.8.0: version "6.16.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.16.0.tgz#e149dd1a9f03a35f817ddbc4d0481988e7ebc8ca" @@ -1293,7 +1291,7 @@ babel-traverse@^6.15.0, babel-traverse@^6.16.0, babel-traverse@^6.18.0, babel-tr invariant "^2.2.0" lodash "^4.2.0" -babel-types@^6.13.0, babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.20.0, babel-types@^6.21.0, babel-types@^6.7.2, babel-types@^6.8.0, babel-types@^6.9.0: +babel-types@^6.13.0, babel-types@^6.15.0, babel-types@^6.16.0, babel-types@^6.18.0, babel-types@^6.19.0, babel-types@^6.20.0, babel-types@^6.21.0, babel-types@^6.7.2, babel-types@^6.8.0, babel-types@^6.9.0: version "6.21.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.21.0.tgz#314b92168891ef6d3806b7f7a917fdf87c11a4b2" dependencies: @@ -1425,7 +1423,7 @@ buffer@^4.9.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.0.0: +buffer@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.0.2.tgz#41d0407ff76782e9ec19f52f88e237ce6bb0de6d" dependencies: @@ -1507,8 +1505,8 @@ caniuse-api@^1.5.2: shelljs "^0.7.0" caniuse-db@^1.0.30000187, caniuse-db@^1.0.30000346, caniuse-db@^1.0.30000604: - version "1.0.30000607" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000607.tgz#f9d5b542f30d064c305544ff8938b217c67b88e9" + version "1.0.30000611" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000611.tgz#1075d14d9b3cc153caf5e9e35f45565b03304c37" capture-stack-trace@^1.0.0: version "1.0.0" @@ -1774,21 +1772,21 @@ colormin@^1.0.5: css-color-names "0.0.4" has "^1.0.1" -colors@0.5.x: - version "0.5.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" - colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" +colors@0.5.x: + version "0.5.1" + resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" dependencies: delayed-stream "~1.0.0" -commander@2, commander@^2.8.1, commander@^2.9.0: +commander@^2.8.1, commander@^2.9.0, commander@2: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -2074,7 +2072,7 @@ csso@~2.2.1: clap "^1.0.9" source-map "^0.5.3" -cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0": +"cssom@>= 0.3.0 < 0.4.0", cssom@0.3.x: version "0.3.1" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.1.tgz#c9e37ef2490e64f6d1baa10fda852257082c25d3" @@ -2090,6 +2088,12 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + d3-array@1, d3-array@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.0.2.tgz#174237bf356a852fadd6af87743d928631de7655" @@ -2169,7 +2173,13 @@ d3-hierarchy@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.0.3.tgz#986b4925e81f1e0b4087e9442850f950cf27d338" -d3-interpolate@1, d3-interpolate@1.1.2: +d3-interpolate@1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.3.tgz#e119c91b6be4941e581675ca3e1279bb92bd2c9b" + dependencies: + d3-color "1" + +d3-interpolate@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.2.tgz#b52e6927a04fe1fe2a4cffc139e5389ed3e5e790" dependencies: @@ -2300,12 +2310,6 @@ d3@^4.4.1: d3-voronoi "1.1.1" d3-zoom "1.1.1" -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" - dependencies: - es5-ext "~0.10.2" - damerau-levenshtein@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" @@ -2450,7 +2454,7 @@ doiuse@^2.4.1: through2 "^0.6.3" yargs "^3.5.4" -dom-serializer@0, dom-serializer@~0.1.0: +dom-serializer@~0.1.0, dom-serializer@0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -2461,7 +2465,7 @@ domain-browser@^1.1.1: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" -domelementtype@1, domelementtype@^1.3.0: +domelementtype@^1.3.0, domelementtype@1: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" @@ -2475,7 +2479,7 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domutils@1.5.1, domutils@^1.5.1: +domutils@^1.5.1, domutils@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" dependencies: @@ -2488,11 +2492,9 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" -duplexer2@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - dependencies: - readable-stream "~1.1.9" +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" duplexer2@^0.1.4: version "0.1.4" @@ -2500,9 +2502,11 @@ duplexer2@^0.1.4: dependencies: readable-stream "^2.0.2" -duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" eastasianwidth@^0.1.1: version "0.1.1" @@ -2642,7 +2646,7 @@ es6-shim@^0.35.1: version "0.35.2" resolved "https://registry.yarnpkg.com/es6-shim/-/es6-shim-0.35.2.tgz#45c5b3eb2f792ed28f130d826239be50affb897f" -es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: +es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: version "3.1.0" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" dependencies: @@ -2710,7 +2714,7 @@ eslint-plugin-promise@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.4.0.tgz#6ba9048c2df57be77d036e0c68918bc9b4fc4195" -eslint-plugin-react@^6.8.0: +eslint-plugin-react@^6.9.0: version "6.9.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.9.0.tgz#54c2e9906b76f9d10142030bdc34e9d6840a0bb2" dependencies: @@ -2722,7 +2726,7 @@ eslint-plugin-standard@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-2.0.1.tgz#3589699ff9c917f2c25f76a916687f641c369ff3" -eslint@^3.12.2: +eslint@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.13.1.tgz#564d2646b5efded85df96985332edd91a23bff25" dependencies: @@ -2761,9 +2765,9 @@ eslint@^3.12.2: text-table "~0.2.0" user-home "^2.0.0" -espower-location-detector@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-0.1.2.tgz#d43be738af3e0b18197eeb5c22b95512dee6b83c" +espower-location-detector@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/espower-location-detector/-/espower-location-detector-1.0.0.tgz#a17b7ecc59d30e179e2bef73fb4137704cb331b5" dependencies: is-url "^1.2.1" path-is-absolute "^1.0.0" @@ -2912,7 +2916,7 @@ fastparse@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" -fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.8: +fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.5, fbjs@^0.8.7, fbjs@^0.8.8: version "0.8.8" resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.8.tgz#02f1b6e0ea0d46c24e0b51a2d24df069563a5ad6" dependencies: @@ -3153,7 +3157,7 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glamor@^2.15.5: +glamor@^2.20.12: version "2.20.20" resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.20.tgz#546cb86bfae760b0fd5c019ba859007d08e6238f" dependencies: @@ -3312,7 +3316,7 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" -hoist-non-react-statics@1.x.x, hoist-non-react-statics@^1.2.0: +hoist-non-react-statics@^1.2.0, hoist-non-react-statics@1.x.x: version "1.2.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" @@ -3380,7 +3384,7 @@ hyphenate-style-name@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" -iconv-lite@0.4, iconv-lite@^0.4.13, iconv-lite@~0.4.13: +iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" @@ -3433,7 +3437,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: +inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@2, inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3478,7 +3482,7 @@ interpret@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c" -invariant@2.x.x, invariant@^2.2.0: +invariant@^2.2.0, invariant@2.x.x: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: @@ -3488,9 +3492,9 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ipaddr.js@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.1.1.tgz#c791d95f52b29c1247d5df80ada39b8a73647230" +ipaddr.js@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.2.0.tgz#8aba49c9192799585bdd643e0ccb50e8ae777ba4" irregular-plurals@^1.0.0: version "1.2.0" @@ -3731,14 +3735,14 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - isexe@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/isexe/-/isexe-1.1.2.tgz#36f3e22e60750920f5e7241a476a8c6a42275ad0" @@ -3826,6 +3830,10 @@ js-tokens@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-2.0.0.tgz#79903f5563ee778cc1162e6dcf1a0027c97f9cb5" +js-tokens@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.0.tgz#a2f2a969caae142fb3cd56228358c89366957bd1" + js-yaml@^3.2.7, js-yaml@^3.4.3, js-yaml@^3.5.1: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" @@ -3920,6 +3928,13 @@ jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" +JSONStream@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-0.8.4.tgz#91657dfe6ff857483066132b4618b62e8f4887bd" + dependencies: + jsonparse "0.0.5" + through ">=2.2.7 <3" + jsprim@^1.2.2: version "1.3.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.3.1.tgz#2a7256f70412a29ee3670aaca625994c4dcff252" @@ -3999,7 +4014,7 @@ load-json-file@^1.0.0, load-json-file@^1.1.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -loader-utils@0.2.x, loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5: +loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@^0.2.7, loader-utils@~0.2.2, loader-utils@~0.2.5, loader-utils@0.2.x: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -4136,18 +4151,22 @@ lodash.some@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.some/-/lodash.some-4.6.0.tgz#1bb9f314ef6b8baded13b549169b2a945eb68e4d" +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@4.x.x, lodash@^4.0.0, lodash@^4.1.0, lodash@^4.10.0, lodash@^4.12.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0: - version "4.17.4" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" - lodash@^3.5.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" +lodash@^4.0.0, lodash@^4.1.0, lodash@^4.10.0, lodash@^4.12.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@4.x.x: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -4159,10 +4178,10 @@ longest@^1.0.1: resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" loose-envify@^1.0.0, loose-envify@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.0.tgz#6b26248c42f6d4fa4b0d8542f78edfcde35642a8" + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: - js-tokens "^2.0.0" + js-tokens "^3.0.0" loud-rejection@^1.0.0, loud-rejection@^1.2.0: version "1.6.0" @@ -4301,39 +4320,43 @@ micromatch@^2.1.5, micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -mime-db@~1.25.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" +mime-db@~1.26.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: - version "2.1.13" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.13.tgz#e07aaa9c6c6b9a7ca3012c69003ad25a39e92a88" + version "2.1.14" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.14.tgz#f7ef7d97583fcaf3b7d282b6f8b5679dab1e94ee" dependencies: - mime-db "~1.25.0" + mime-db "~1.26.0" + +mime@^1.3.4, mime@~1.3.4, mime@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" mime@1.2.x: version "1.2.11" resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" -mime@1.3.4, mime@^1.3.4, mime@~1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: +minimatch@^3.0.0, minimatch@^3.0.2, "minimatch@2 || 3": version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" -minimist@0.0.8, minimist@~0.0.1: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4347,14 +4370,14 @@ moment@^2.10.6: version "2.17.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" +ms@^0.7.1, ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" -ms@0.7.2, ms@^0.7.1: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - multimatch@^2.0.0, multimatch@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" @@ -4384,7 +4407,7 @@ nearley@^2.7.7: railroad-diagrams "^1.0.0" randexp "^0.4.2" -negotiator@0.6.1, negotiator@~0.6.1: +negotiator@~0.6.1, negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" @@ -4564,8 +4587,8 @@ oauth-sign@~0.8.1: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" object-assign@^4.0.1, object-assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" object-is@^1.0.1: version "1.0.1" @@ -4986,8 +5009,8 @@ postcss-merge-idents@^2.1.5: postcss-value-parser "^3.1.1" postcss-merge-longhand@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.1.tgz#ff59b5dec6d586ce2cea183138f55c5876fa9cdc" + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" dependencies: postcss "^5.0.4" @@ -5286,11 +5309,11 @@ promise@^7.1.1: asap "~2.0.3" proxy-addr@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.2.tgz#b4cc5f22610d9535824c123aef9d3cf73c40ba37" + version "1.1.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.3.tgz#dc97502f5722e888467b3fa2297a7b1ff47df074" dependencies: forwarded "~0.1.0" - ipaddr.js "1.1.1" + ipaddr.js "1.2.0" prr@~0.0.0: version "0.0.0" @@ -5300,29 +5323,29 @@ pseudomap@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + q@^1.1.2: version "1.4.1" resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" -qs@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" - qs@^6.1.0, qs@^6.2.0, qs@~6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" +qs@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" + query-string@^4.1.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822" + version "4.3.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.1.tgz#54baada6713eafc92be75c47a731f2ebd09cd11d" dependencies: object-assign "^4.1.0" strict-uri-encode "^1.0.0" @@ -5331,7 +5354,7 @@ querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" -querystring@0.2.0, querystring@^0.2.0: +querystring@^0.2.0, querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -5381,7 +5404,7 @@ rc@^1.0.1, rc@^1.1.6, rc@~1.1.6: minimist "^1.2.0" strip-json-comments "~1.0.4" -react-addons-test-utils@^15.4.1: +react-addons-test-utils@^15.4.2: version "15.4.2" resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.4.2.tgz#93bcaa718fcae7360d42e8fb1c09756cc36302a2" dependencies: @@ -5400,7 +5423,7 @@ react-docgen@^2.12.1: node-dir "^0.1.10" recast "^0.11.5" -react-dom@^15.4.1: +react-dom@^15.4.2: version "15.4.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz#015363f05b0a1fd52ae9efdd3a0060d90695208f" dependencies: @@ -5475,7 +5498,7 @@ react-stubber@^1.0.0: dependencies: babel-runtime "^6.5.0" -react@^15.4.1: +react@^15.4.2: version "15.4.2" resolved "https://registry.yarnpkg.com/react/-/react-15.4.2.tgz#41f7991b26185392ba9bae96c8889e7e018397ef" dependencies: @@ -5511,15 +5534,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@^1.0.33, readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -5541,6 +5555,15 @@ readable-stream@^2, readable-stream@^2.0.0, "readable-stream@^2.0.0 || ^1.1.13", string_decoder "~0.10.x" util-deprecate "~1.0.1" +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -5638,6 +5661,14 @@ regenerator-runtime@^0.9.5: version "0.9.6" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029" +regenerator-transform@0.9.8: + version "0.9.8" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.9.8.tgz#0f88bb2bc03932ddb7b6b7312e68078f01026d6c" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + regex-cache@^0.4.2: version "0.4.3" resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" @@ -5780,7 +5811,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4: +rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -5804,7 +5835,7 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -sax@>=0.6.0, sax@^1.1.4, sax@~1.2.1: +sax@^1.1.4, sax@>=0.6.0, sax@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" @@ -5814,7 +5845,7 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: +semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5874,7 +5905,7 @@ sha.js@2.2.6: version "2.2.6" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.2.6.tgz#17ddeddc5f722fb66501658895461977867315ba" -shallowequal@0.2.x, shallowequal@^0.2.2: +shallowequal@^0.2.2, shallowequal@0.2.x: version "0.2.2" resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" dependencies: @@ -5941,8 +5972,8 @@ source-list-map@^0.1.4, source-list-map@~0.1.7: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" source-map-support@^0.4.0, source-map-support@^0.4.2: - version "0.4.8" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.8.tgz#4871918d8a3af07289182e974e32844327b2e98b" + version "0.4.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.9.tgz#45eaa04f067e049d987b27599ed014a37750aaff" dependencies: source-map "^0.5.3" @@ -6009,8 +6040,8 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.1.tgz#30e1a5d329244974a1af61511339d595af6638b0" + version "1.10.2" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.10.2.tgz#d5a804ce22695515638e798dbe23273de070a5fa" dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -6058,8 +6089,8 @@ stream-combiner@^0.2.1: through "~2.3.4" stream-http@^2.3.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.1.tgz#7d20fcdfebc16b16e4174e31dd94cd9c70f10e89" + version "2.6.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.6.2.tgz#bdfe40d2ee9262eb6bf2255bb3ad0ec0cdd6526d" dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -6071,6 +6102,10 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -6102,10 +6137,6 @@ string.prototype.padstart@^3.0.0: es-abstract "^1.4.3" function-bind "^1.0.2" -string_decoder@^0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - stringifier@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" @@ -6162,14 +6193,14 @@ style-search@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902" -styled-components@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.2.1.tgz#5884267dd9c6a8199d4abd3e0714afb973772b42" +styled-components@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.3.0.tgz#0711b5a82fe784b458fd6e5054b842751c543a6b" dependencies: - buffer "^5.0.0" + buffer "^5.0.2" css-to-react-native "^1.0.6" - fbjs "^0.8.4" - glamor "^2.15.5" + fbjs "^0.8.7" + glamor "^2.20.12" inline-style-prefixer "^2.0.5" is-function "^1.0.1" is-plain-object "^2.0.1" @@ -6256,8 +6287,8 @@ supports-color@^2.0.0: resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" supports-color@^3.1.0, supports-color@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" dependencies: has-flag "^1.0.0" @@ -6393,6 +6424,10 @@ the-argv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/the-argv/-/the-argv-1.0.0.tgz#0084705005730dd84db755253c931ae398db9522" +through@^2.3.6, "through@>=2.2.7 <3", through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + through2@^0.6.1, through2@^0.6.3, through2@~0.6.1: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" @@ -6407,10 +6442,6 @@ through2@^2.0.0, through2@~2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" -"through@>=2.2.7 <3", through@^2.3.6, through@~2.3.4: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - time-require@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98" @@ -6618,7 +6649,7 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util@0.10.3, util@^0.10.3: +util@^0.10.3, util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: @@ -6751,7 +6782,7 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@1.2.x, which@^1.2.4, which@^1.2.9: +which@^1.2.4, which@^1.2.9, which@1.2.x: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: @@ -6769,17 +6800,13 @@ widest-line@^1.0.0: dependencies: string-width "^1.0.1" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - window-size@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" wordwrap@~0.0.2: version "0.0.3" @@ -6789,6 +6816,10 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -6853,7 +6884,13 @@ xml2js@^0.4: sax ">=0.6.0" xmlbuilder "^4.1.0" -xmlbuilder@^4.1.0, xmlbuilder@~4.1.0: +xmlbuilder@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" + dependencies: + lodash "^4.0.0" + +xmlbuilder@~4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.1.0.tgz#687e84d9c4145af8db438d8bec88805df66249f4" dependencies: @@ -6863,7 +6900,7 @@ xmlhttprequest@1: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, "xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6923,3 +6960,4 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" + From 0fbe168764e754d258ece9f465999e01b7cadbdb Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Tue, 17 Jan 2017 11:18:49 +0000 Subject: [PATCH 11/28] correcting font style for H1 --- ui/src/components/base-elements/index.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ui/src/components/base-elements/index.js b/ui/src/components/base-elements/index.js index 8c7cf170..e4fd8de5 100644 --- a/ui/src/components/base-elements/index.js +++ b/ui/src/components/base-elements/index.js @@ -3,10 +3,15 @@ const Styled = require('styled-components'); const React = require('react'); +const fns = require('../../shared/functions'); + const { default: styled } = Styled; +const { + remcalc +} = fns; // If specificity is an issue (i.e nested elements) check base/index.js first // before using !important @@ -14,8 +19,12 @@ const elements = [ { name: 'H1', properties: { - 'line-height': '70px', - 'font-size': '60px' + 'font-size': remcalc(36), + 'font-weight': 600, + 'font-style': 'normal', + 'font-stretch': 'normal', + 'color': '#364acd', + 'border-bottom': `${remcalc(1)} solid #d8d8d8`, } }, { From baa00dfc27decc0557ef5d709528b2b6e18d36a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81rgio=20Ramos?= Date: Tue, 17 Jan 2017 11:30:57 +0000 Subject: [PATCH 12/28] turn create-monitor into a form --- frontend/package.json | 1 + .../src/components/create-monitor/index.js | 157 ++++++++++-------- frontend/src/components/monitors/index.js | 15 +- frontend/src/containers/metrics/monitors.js | 46 ++++- frontend/src/state/actions.js | 3 +- frontend/src/state/reducers/monitors.js | 1 - frontend/yarn.lock | 58 ++++++- ui/src/components/input/index.js | 3 +- ui/src/components/select/index.js | 3 +- 9 files changed, 189 insertions(+), 98 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index 856c1b4c..77cd7b45 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -45,6 +45,7 @@ "redux": "^3.6.0", "redux-actions": "^1.2.0", "redux-batched-actions": "^0.1.5", + "redux-form": "^6.4.3", "redux-logger": "^2.7.4", "redux-promise-middleware": "^4.2.0", "redux-thunk": "^2.1.0", diff --git a/frontend/src/components/create-monitor/index.js b/frontend/src/components/create-monitor/index.js index 43637046..58f60906 100644 --- a/frontend/src/components/create-monitor/index.js +++ b/frontend/src/components/create-monitor/index.js @@ -1,3 +1,4 @@ +const ReduxForm = require('redux-form'); const React = require('react'); const ReactIntl = require('react-intl'); const Styled = require('styled-components'); @@ -9,6 +10,10 @@ const fns = require('@ui/shared/functions'); const Row = require('@ui/components/row'); const Select = require('@ui/components/select'); +const { + Field +} = ReduxForm; + const { FormattedMessage } = ReactIntl; @@ -51,75 +56,85 @@ const PeopleInput = styled(Input)` margin-bottom: ${remcalc(24)} !important; `; -module.exports = () => { - return ( -
    -

    - -

    -

    - -

    - - - - - - - - - - - - - - - - - - - - - - - - -

    - -

    -

    - -

    - - - - - - - - - - -
    - ); +const CreateMonitor = ({ + handleSubmit, + pristine, + submitting +}) => ( +
    +

    + +

    +

    + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + +

    +

    + +

    + + + + + + + + + + +
    +); + +CreateMonitor.propTypes = { + handleSubmit: React.PropTypes.func, + pristine: React.PropTypes.bool, + submitting: React.PropTypes.bool }; + +module.exports = CreateMonitor; diff --git a/frontend/src/components/monitors/index.js b/frontend/src/components/monitors/index.js index ae60ceee..62903e4a 100644 --- a/frontend/src/components/monitors/index.js +++ b/frontend/src/components/monitors/index.js @@ -4,10 +4,8 @@ const Styled = require('styled-components'); const constants = require('@ui/shared/constants'); const Close = require('@ui/components/close'); -const CreateMonitor = require('@components/create-monitor'); const fns = require('@ui/shared/functions'); const Li = require('@ui/components/horizontal-list/li'); -const ManageMonitor = require('@components/manage-monitor'); const Modal = require('@ui/components/modal'); const PropTypes = require('@root/prop-types'); const Ul = require('@ui/components/horizontal-list/ul'); @@ -65,21 +63,13 @@ const View = styled.div` const Monitors = ({ active = false, + children, handleDismiss = () => null, metricType = {}, page = 'create', submit = () => null, togglePage = () => null }) => { - const views = { - create: () => ( - - ), - manage: () => ( - - ) - }; - const links = ['create', 'manage'].map((name) => { const id = `monitors.${name}`; const className = page === name ? 'active' : ''; @@ -111,7 +101,7 @@ const Monitors = ({
      {links}
    - {views[page]()} + {children} @@ -120,6 +110,7 @@ const Monitors = ({ Monitors.propTypes = { active: React.PropTypes.string, + children: React.PropTypes.node, handleDismiss: React.PropTypes.func.isRequired, metricType: PropTypes.metricType, page: React.PropTypes.string, diff --git a/frontend/src/containers/metrics/monitors.js b/frontend/src/containers/metrics/monitors.js index 4e196513..00d775ae 100644 --- a/frontend/src/containers/metrics/monitors.js +++ b/frontend/src/containers/metrics/monitors.js @@ -1,9 +1,17 @@ +const React = require('react'); +const ReduxForm = require('redux-form'); const ReactRedux = require('react-redux'); const actions = require('@state/actions'); +const CreateMonitor = require('@components/create-monitor'); +const ManageMonitor = require('@components/manage-monitor'); const Monitors = require('@components/monitors'); const selectors = require('@state/selectors'); +const { + reduxForm +} = ReduxForm; + const { connect } = ReactRedux; @@ -14,10 +22,39 @@ const { const { toggleMonitorView, - switchMonitorViewPage, - createMonitor + switchMonitorViewPage } = actions; +const ConnectedCreateMonitor = reduxForm({ + form: 'create-monitor' +})(CreateMonitor); +// const ConnectedCreateMonitor = reduxForm()(CreateMonitor); + +const MetricMonitors = (props) => { + const { + page + } = props; + + const views = { + create: () => ( + + ), + manage: () => ( + + ) + }; + + return ( + + {views[page]()} + + ); +}; + +MetricMonitors.propTypes = { + page: React.PropTypes.string +}; + const mapStateToProps = (state) => ({ metricType: metricTypeByUuidSelector(state.monitors.ui.active)(state), active: state.monitors.ui.active, @@ -26,11 +63,10 @@ const mapStateToProps = (state) => ({ const mapDispatchToProps = (dispatch) => ({ handleDismiss: () => dispatch(toggleMonitorView()), - togglePage: (newPage) => dispatch(switchMonitorViewPage(newPage)), - submit: (meta) => dispatch(createMonitor(meta)) + togglePage: (newPage) => dispatch(switchMonitorViewPage(newPage)) }); module.exports = connect( mapStateToProps, mapDispatchToProps -)(Monitors); +)(MetricMonitors); diff --git a/frontend/src/state/actions.js b/frontend/src/state/actions.js index 7e5262ed..ae351c99 100644 --- a/frontend/src/state/actions.js +++ b/frontend/src/state/actions.js @@ -15,6 +15,5 @@ module.exports = { addMetric: createAction(`${APP}/ADD_METRIC`), toggleInstanceCollapsed: createAction(`${APP}/TOGGLE_INSTANCE_COLLAPSED`), toggleMonitorView: createAction(`${APP}/TOGGLE_MONITOR_VIEW`), - switchMonitorViewPage: createAction(`${APP}/SWITCH_MONITOR_VIEW_PAGE`), - createMonitor: createAction(`${APP}/CREATE_MONITOR`) + switchMonitorViewPage: createAction(`${APP}/SWITCH_MONITOR_VIEW_PAGE`) }; diff --git a/frontend/src/state/reducers/monitors.js b/frontend/src/state/reducers/monitors.js index 1c8a8204..537657c3 100644 --- a/frontend/src/state/reducers/monitors.js +++ b/frontend/src/state/reducers/monitors.js @@ -9,7 +9,6 @@ const { const { toggleMonitorView, switchMonitorViewPage - // createMonitor } = actions; module.exports = handleActions({ diff --git a/frontend/yarn.lock b/frontend/yarn.lock index eacf3b79..ed9abbf4 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -200,6 +200,10 @@ array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" +array-findindex-polyfill@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/array-findindex-polyfill/-/array-findindex-polyfill-0.1.0.tgz#c362665bec7645f22d7a3c3aac9793f71c3622ef" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -2214,7 +2218,7 @@ deep-diff@0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/deep-diff/-/deep-diff-0.3.4.tgz#aac5c39952236abe5f037a2349060ba01b00ae48" -deep-equal@^1.0.0: +deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -2468,6 +2472,10 @@ es5-ext@^0.10.7, es5-ext@^0.10.8, es5-ext@~0.10.11, es5-ext@~0.10.2, es5-ext@~0. es6-iterator "2" es6-symbol "~3.1" +es6-error@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.0.1.tgz#eeb3e280f57e2ec48d72a9fccaf6247d3c1f5719" + es6-iterator@2: version "2.0.0" resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.0.tgz#bd968567d61635e33c0b80727613c9cb4b096bac" @@ -3219,7 +3227,7 @@ hoek@4.x.x: version "4.1.0" resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.1.0.tgz#4a4557460f69842ed463aa00628cc26d2683afa7" -hoist-non-react-statics@^1.0.3: +hoist-non-react-statics@^1.0.3, hoist-non-react-statics@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz#aa448cf0986d55cc40773b17174b7dd066cb7cfb" @@ -3408,7 +3416,7 @@ intl-relativeformat@^1.3.0: dependencies: intl-messageformat "1.3.0" -invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1: +invariant@^2.0.0, invariant@^2.1.1, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: @@ -3933,10 +3941,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" -lodash-es@^4.2.0, lodash-es@^4.2.1: +lodash-es@^4.17.3, lodash-es@^4.2.0, lodash-es@^4.2.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7" +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + lodash._reinterpolate@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" @@ -3989,6 +4001,14 @@ lodash.indexof@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/lodash.indexof/-/lodash.indexof-4.0.5.tgz#53714adc2cddd6ed87638f893aa9b6c24e31ef3c" +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + lodash.isempty@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" @@ -4009,6 +4029,14 @@ lodash.isundefined@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" +lodash.keys@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + lodash.map@^4.4.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" @@ -4058,7 +4086,7 @@ lodash@^3.5.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" -lodash@^4.0.0, lodash@^4.10.0, lodash@^4.12.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: +lodash@^4.0.0, lodash@^4.10.0, lodash@^4.12.0, lodash@^4.13.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.2.0, lodash@^4.2.1, lodash@^4.3.0, lodash@^4.6.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -5264,6 +5292,20 @@ redux-batched-actions@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/redux-batched-actions/-/redux-batched-actions-0.1.5.tgz#b39b84775f4499a4724f3154b882968073b58bed" +redux-form: + version "6.4.3" + resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-6.4.3.tgz#bd83a77770d9805f7b595a4ff18f00fe4267d3c8" + dependencies: + array-findindex-polyfill "^0.1.0" + deep-equal "^1.0.1" + es6-error "^4.0.0" + hoist-non-react-statics "^1.2.0" + invariant "^2.2.2" + is-promise "^2.1.0" + lodash "^4.17.3" + lodash-es "^4.17.3" + shallowequal "^0.2.2" + redux-logger@^2.7.4: version "2.7.4" resolved "https://registry.yarnpkg.com/redux-logger/-/redux-logger-2.7.4.tgz#891e5d29e7f111d08b5781a237b9965b5858c7f8" @@ -5544,6 +5586,12 @@ sha.js@^2.3.6: dependencies: inherits "^2.0.1" +shallowequal@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-0.2.2.tgz#1e32fd5bcab6ad688a4812cb0cc04efc75c7014e" + dependencies: + lodash.keys "^3.1.2" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" diff --git a/ui/src/components/input/index.js b/ui/src/components/input/index.js index de997652..9e2068c2 100644 --- a/ui/src/components/input/index.js +++ b/ui/src/components/input/index.js @@ -1,4 +1,5 @@ const fns = require('../../shared/functions'); +const reduxFormProxy = require('../../shared/redux-form-proxy'); const React = require('react'); const Styled = require('styled-components'); @@ -77,4 +78,4 @@ Input.propTypes = { warning: React.PropTypes.string }; -module.exports = Input; +module.exports = reduxFormProxy(Input); diff --git a/ui/src/components/select/index.js b/ui/src/components/select/index.js index 8168fac2..e4f514e5 100644 --- a/ui/src/components/select/index.js +++ b/ui/src/components/select/index.js @@ -1,4 +1,5 @@ const fns = require('../../shared/functions'); +const reduxFormProxy = require('../../shared/redux-form-proxy'); const React = require('react'); const Styled = require('styled-components'); @@ -88,4 +89,4 @@ Select.propTypes = { warning: React.PropTypes.string }; -module.exports = Select; +module.exports = reduxFormProxy(Select); From bbdf0fec616b2a03d760430e20e695572aa23524 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Mon, 16 Jan 2017 14:17:23 +0000 Subject: [PATCH 13/28] Updating react-router and deps --- frontend/package.json | 2 +- frontend/yarn.lock | 171 ++++++++++++++++++++---------------------- licence.js | 22 ++++++ 3 files changed, 105 insertions(+), 90 deletions(-) create mode 100644 licence.js diff --git a/frontend/package.json b/frontend/package.json index 77cd7b45..52d06020 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -40,7 +40,7 @@ "react-intl": "^2.2.3", "react-intl-redux": "^0.3.0", "react-redux": "^5.0.2", - "react-router": "^4.0.0-alpha.4", + "react-router": "4.0.0-alpha.6", "reduce-reducers": "^0.1.2", "redux": "^3.6.0", "redux-actions": "^1.2.0", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index ed9abbf4..0de389f5 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -1,5 +1,7 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 + + "@tomgco/joyent-portal-ui@alpha": version "0.0.1-501" resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-501.tgz#2cc50b93fb6525008d5cabcab7de127d8832c9a0" @@ -74,6 +76,10 @@ acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: dependencies: acorn "^3.0.4" +acorn@>=2.5.2, acorn@^4.0.1, acorn@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" + acorn@^2.1.0, acorn@^2.4.0: version "2.7.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-2.7.0.tgz#ab6e7d9d886aaca8b085bc3312b79a198433f0e7" @@ -82,10 +88,6 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^4.0.1, acorn@^4.0.3, acorn@>=2.5.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" - ajv-keywords@^1.0.0, ajv-keywords@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.0.tgz#c11e6859eafff83e0dafc416929472eca946aa2c" @@ -1691,14 +1693,14 @@ color@^1.0.3: color-convert "^1.8.2" color-string "^1.4.0" -colors@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - colors@0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" +colors@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -1938,7 +1940,7 @@ css-what@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" -"cssom@>= 0.3.0 < 0.4.0", cssom@0.3.x: +cssom@0.3.x, "cssom@>= 0.3.0 < 0.4.0": version "0.3.1" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.1.tgz#c9e37ef2490e64f6d1baa10fda852257082c25d3" @@ -2307,7 +2309,7 @@ doctrine@^1.2.2: esutils "^2.0.2" isarray "^1.0.0" -dom-serializer@~0.1.0, dom-serializer@0: +dom-serializer@0, dom-serializer@~0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" dependencies: @@ -2322,7 +2324,7 @@ domain-browser@^1.1.1: version "1.1.7" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" -domelementtype@^1.3.0, domelementtype@1: +domelementtype@1, domelementtype@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" @@ -2336,7 +2338,7 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domutils@^1.5.1, domutils@1.5.1: +domutils@1.5.1, domutils@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" dependencies: @@ -2349,16 +2351,16 @@ dot-prop@^3.0.0: dependencies: is-obj "^1.0.0" -duplexer@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" - duplexer2@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" dependencies: readable-stream "^2.0.2" +duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + eastasianwidth@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.1.1.tgz#44d656de9da415694467335365fb3147b8572b7c" @@ -2505,7 +2507,7 @@ es6-set@~0.1.3: es6-symbol "3" event-emitter "~0.3.4" -es6-symbol@~3.1, es6-symbol@~3.1.0, es6-symbol@3: +es6-symbol@3, es6-symbol@~3.1, es6-symbol@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.0.tgz#94481c655e7a7cad82eba832d97d5433496d7ffa" dependencies: @@ -3303,10 +3305,6 @@ iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" -iconv-lite@0.4.13: - version "0.4.13" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" - ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -3355,7 +3353,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@2, inherits@2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3404,7 +3402,7 @@ intl-messageformat-parser@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.2.0.tgz#5906b7f953ab7470e0dc8549097b648b991892ff" -intl-messageformat@^1.3.0, intl-messageformat@1.3.0: +intl-messageformat@1.3.0, intl-messageformat@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-1.3.0.tgz#f7d926aded7a3ab19b2dc601efd54e99a4bd4eae" dependencies: @@ -3667,14 +3665,14 @@ is-utf8@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + isemail@2.x.x: version "2.2.1" resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6" @@ -4115,7 +4113,7 @@ lowercase-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" -lru-cache@^4.0.1, lru-cache@4.0.x: +lru-cache@4.0.x, lru-cache@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" dependencies: @@ -4228,9 +4226,9 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -"mime-db@>= 1.24.0 < 2", mime-db@~1.26.0, mime-db@1.x.x: - version "1.26.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" +mime-db@1.x.x, "mime-db@>= 1.24.0 < 2", mime-db@~1.25.0: + version "1.25.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: version "2.1.14" @@ -4238,14 +4236,14 @@ mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: dependencies: mime-db "~1.26.0" -mime@^1.3.4, mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - mime@1.2.x: version "1.2.11" resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" +mime@1.3.4, mime@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + mimos@3.x.x: version "3.0.3" resolved "https://registry.yarnpkg.com/mimos/-/mimos-3.0.3.tgz#b9109072ad378c2b72f6a0101c43ddfb2b36641f" @@ -4263,25 +4261,21 @@ minimalistic-assert@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" -minimatch@^3.0.0, minimatch@^3.0.2, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2: version "3.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" dependencies: brace-expansion "^1.0.0" +minimist@0.0.8, minimist@~0.0.1: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4295,9 +4289,9 @@ ms@^0.7.1, ms@0.7.2: version "0.7.2" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" -ms@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" +ms@0.7.2, ms@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" multimatch@^2.1.0: version "2.1.0" @@ -4756,16 +4750,16 @@ path-parse@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + path-to-regexp@^1.5.3: version "1.7.0" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d" dependencies: isarray "0.0.1" -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -4983,22 +4977,22 @@ public-encrypt@^4.0.0: parse-asn1 "^5.0.0" randombytes "^2.0.1" -punycode@^1.2.4, punycode@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" -qs@~6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" qs@6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.0.tgz#3b7848c03c2dece69a9522b0fae8c4126d745f3b" +qs@~6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442" + query-string@4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.2.3.tgz#9f27273d207a25a8ee4c7b8c74dcd45d556db822" @@ -5010,7 +5004,7 @@ querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" -querystring@^0.2.0, querystring@0.2.0: +querystring@0.2.0, querystring@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" @@ -5148,7 +5142,7 @@ react-redux@^5.0.1, react-redux@^5.0.2: lodash-es "^4.2.0" loose-envify "^1.1.0" -react-router@^4.0.0-alpha.4: +react-router@4.0.0-alpha.6: version "4.0.0-alpha.6" resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.0.0-alpha.6.tgz#239fcf9a6ba7997021022c9b51d72d370f7b6bf4" dependencies: @@ -5466,7 +5460,7 @@ resolve-pathname@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.0.2.tgz#e55c016eb2e9df1de98e85002282bfb38c630436" -resolve@^1.1.6, resolve@1.2.0: +resolve@1.2.0, resolve@^1.1.6: version "1.2.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" @@ -5487,7 +5481,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.0, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4, rimraf@2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.3.3, rimraf@^2.4.3, rimraf@^2.4.4, rimraf@^2.5.0, rimraf@^2.5.4, rimraf@~2.5.1, rimraf@~2.5.4: version "2.5.4" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.5.4.tgz#96800093cbf1a0c86bd95b4625467535c29dfa04" dependencies: @@ -5521,7 +5515,7 @@ semver-diff@^2.0.0: dependencies: semver "^5.0.3" -semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0, "semver@2 || 3 || 4 || 5": +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5693,16 +5687,16 @@ source-map-support@^0.4.0, source-map-support@^0.4.2: dependencies: source-map "^0.5.3" +source-map@0.5.6, source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3, source-map@0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - source-map@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" @@ -5808,10 +5802,6 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string_decoder@^0.10.25, string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -5827,6 +5817,10 @@ string-width@^2.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^3.0.0" +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringifier@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/stringifier/-/stringifier-1.3.0.tgz#def18342f6933db0f2dbfc9aa02175b448c17959" @@ -6015,10 +6009,6 @@ thenify@^3.2.1: dependencies: any-promise "^1.0.0" -through@^2.3.6: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - through2@^2.0.0, through2@~2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -6026,6 +6016,10 @@ through2@^2.0.0, through2@~2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + time-require@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/time-require/-/time-require-0.1.2.tgz#f9e12cb370fc2605e11404582ba54ef5ca2b2d98" @@ -6214,16 +6208,16 @@ url-parse-lax@^1.0.0: dependencies: prepend-http "^1.0.1" -url-parse@^1.1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" dependencies: querystringify "0.0.x" requires-port "1.0.x" -url-parse@1.0.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" +url-parse@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.7.tgz#025cff999653a459ab34232147d89514cc87d74a" dependencies: querystringify "0.0.x" requires-port "1.0.x" @@ -6249,7 +6243,7 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util@^0.10.3, util@0.10.3: +util@0.10.3, util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: @@ -6419,7 +6413,7 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@^1.2.4, which@^1.2.9, which@1.2.x: +which@1.2.x, which@^1.2.4, which@^1.2.9: version "1.2.12" resolved "https://registry.yarnpkg.com/which/-/which-1.2.12.tgz#de67b5e450269f194909ef23ece4ebe416fa1192" dependencies: @@ -6441,6 +6435,10 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" @@ -6449,10 +6447,6 @@ wordwrap@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -6580,4 +6574,3 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" - diff --git a/licence.js b/licence.js new file mode 100644 index 00000000..f37001a0 --- /dev/null +++ b/licence.js @@ -0,0 +1,22 @@ +module.exports = { + allowedPackages: [ + { + name: 'colors', + extraFieldsForDocumentation: 'Licence is MIT, but was not found by tool: https://github.com/Marak/colors.js/blob/v0.5.1/MIT-LICENSE.txt', // optional + date: '17 January 2017', // optional + reason: 'MIT Licenced' // optional + } + ], + allowedLicenses: [ + 'CC-BY-4.0', + 'CC0-1.0', + 'MIT', + 'ISC', + 'Apache', + 'BSD', + 'WTF', + 'Public Domain', + 'MPL', + 'Unlicense' + ] +}; From 40613c8535b62600f92a2905ef2e916924ad6db9 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Tue, 17 Jan 2017 16:46:33 +0000 Subject: [PATCH 14/28] Adding Organisation Tabs --- frontend/src/components/article/index.js | 1 + frontend/src/components/header/index.js | 2 +- frontend/src/components/navigation/index.js | 8 + frontend/src/components/navigation/org.js | 139 +++++++++++ frontend/src/containers/app.js | 6 + frontend/src/containers/home/index.js | 34 --- frontend/src/mock-state.json | 6 +- frontend/src/resources/logo.png | Bin 4359 -> 0 bytes frontend/src/resources/logo.svg | 2 + ui/src/components/avatar/index.js | 26 +- ui/src/components/horizontal-list/li.js | 2 +- yarn.lock | 257 +++++++++++++++++++- 12 files changed, 433 insertions(+), 50 deletions(-) create mode 100644 frontend/src/components/navigation/index.js create mode 100644 frontend/src/components/navigation/org.js delete mode 100644 frontend/src/resources/logo.png create mode 100644 frontend/src/resources/logo.svg diff --git a/frontend/src/components/article/index.js b/frontend/src/components/article/index.js index 123833b2..77e57f8a 100644 --- a/frontend/src/components/article/index.js +++ b/frontend/src/components/article/index.js @@ -6,4 +6,5 @@ const { // Main Contonent Wrapper Styles module.exports = styled.article` + background-color: #fafafa; `; diff --git a/frontend/src/components/header/index.js b/frontend/src/components/header/index.js index e34123b3..110c7683 100644 --- a/frontend/src/components/header/index.js +++ b/frontend/src/components/header/index.js @@ -6,7 +6,7 @@ const Column = require('@ui/components/column'); const Container = require('@ui/components/container'); const Avatar = require('@ui/components/avatar'); const fns = require('@ui/shared/functions'); -const logo = require('@resources/logo.png'); +const logo = require('@resources/logo.svg'); const PropTypes = require('@root/prop-types'); const Row = require('@ui/components/row'); const Tooltip = require('@ui/components/tooltip'); diff --git a/frontend/src/components/navigation/index.js b/frontend/src/components/navigation/index.js new file mode 100644 index 00000000..6fd1406b --- /dev/null +++ b/frontend/src/components/navigation/index.js @@ -0,0 +1,8 @@ +const Styled = require('styled-components'); + +const { + default: styled +} = Styled; + +module.exports = styled.nav` +`; diff --git a/frontend/src/components/navigation/org.js b/frontend/src/components/navigation/org.js new file mode 100644 index 00000000..e8f493c5 --- /dev/null +++ b/frontend/src/components/navigation/org.js @@ -0,0 +1,139 @@ +const React = require('react'); +const ReactRouter = require('react-router'); +const ReactRedux = require('react-redux'); +const Styled = require('styled-components'); + +const Avatar = require('@ui/components/avatar'); +const Container = require('@ui/components/container'); +const PropTypes = require('@root/prop-types'); +const selectors = require('@state/selectors'); +const Ul = require('@ui/components/horizontal-list/ul'); +const fns = require('@ui/shared/functions'); + +const { + connect +} = ReactRedux; + +const { + Link, +} = ReactRouter; + +const { + default: styled +} = Styled; + +const { + orgsSelector +} = selectors; + +const { + remcalc +} = fns; + +const StyledNav = styled.div` + background-color: #f2f2f2; + border-bottom: ${remcalc(1)} solid #d8d8d8; + + & ul { + height: ${remcalc(60)}; + margin: 0px 0px 0px 0px !important; + } +`; + +// TODO: refactor colours into constants in UI +const NavigationLinkContainer = styled.div` + padding: ${remcalc(11)} ${remcalc(12)} ${remcalc(12)}; + color: #646464; + border: solid ${remcalc(1)} #d8d8d8; + height: ${remcalc(24)}; + background-color: #f2f2f2; + + &.active { + background-color: #fafafa; + border-bottom: solid ${remcalc(1)} #fafafa; + } +`; + +const OrgImage = styled.div` + float: left; +`; + +const OrgAvatar = styled(Avatar)` + display: block !important; +`; + +const OrgName = styled.span` + margin-left: ${remcalc(12)}; + margin-top: ${remcalc(3)}; +`; + +const NavLi = styled.li` + display: inline-block; + padding-top: ${remcalc(12)}; + padding-left: ${remcalc(3)}; + + & a { + text-decoration: none !important; + } +`; + +const OrgNavigation = ({ + orgs = [] +}) => { + const navLinks = orgs.map(({ + id, + name, + image, + }) => { + const to = `/${id}`; + + return ( + + + { + ({ + isActive, + href, + onClick, + }) => + + + + + + + {name} + + + + } + + + ); + }); + + return ( + + +
      + {navLinks} +
    +
    +
    + ); +}; + +OrgNavigation.propTypes = { + orgs: React.PropTypes.arrayOf(PropTypes.org) +}; + +const mapStateToProps = (state) => ({ + orgs: orgsSelector(state) +}); + +module.exports = connect(mapStateToProps)(OrgNavigation); diff --git a/frontend/src/containers/app.js b/frontend/src/containers/app.js index f26290cc..87ccdbc0 100644 --- a/frontend/src/containers/app.js +++ b/frontend/src/containers/app.js @@ -10,6 +10,8 @@ const Footer = require('@components/footer'); const Header = require('@containers/header'); const Home = require('@containers/home'); const NotFound = require('@containers/not-found'); +const Nav = require('@components/navigation'); +const OrgNavigation = require('@components/navigation/org'); const { updateRouter @@ -71,6 +73,10 @@ module.exports = (props) => { return (
    + +
    diff --git a/frontend/src/containers/home/index.js b/frontend/src/containers/home/index.js index 8c759608..2e2e8ca7 100644 --- a/frontend/src/containers/home/index.js +++ b/frontend/src/containers/home/index.js @@ -1,57 +1,30 @@ const React = require('react'); const ReactRedux = require('react-redux'); const ReactRouter = require('react-router'); -const Styled = require('styled-components'); const Container = require('@ui/components/container'); -const Li = require('@ui/components/horizontal-list/li'); const Org = require('@containers/org'); const PropTypes = require('@root/prop-types'); const Redirect = require('@components/redirect'); const selectors = require('@state/selectors'); -const Ul = require('@ui/components/horizontal-list/ul'); const NotFound = require('@containers/not-found'); - const { connect } = ReactRedux; const { - Link, Match, Miss } = ReactRouter; -const { - default: styled -} = Styled; - const { orgsSelector } = selectors; -const StyledNav = styled.div` - background-color: #f2f2f2; -`; - const Home = ({ orgs = [] }) => { - const navLinks = orgs.map(({ - id, - name - }) => { - const to = `/${id}`; - - return ( -
  • - - {name} - -
  • - ); - }); const notFound = !orgs.length ? @@ -59,13 +32,6 @@ const Home = ({ return (
    - - -
      - {navLinks} -
    -
    -
    diff --git a/frontend/src/mock-state.json b/frontend/src/mock-state.json index 937c0396..bb1cec86 100644 --- a/frontend/src/mock-state.json +++ b/frontend/src/mock-state.json @@ -210,7 +210,8 @@ ], "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "id": "nicola", - "name": "Your dashboard" + "name": "Your dashboard", + "image": "https://pbs.twimg.com/profile_images/641289584580493312/VBfsPlff_400x400.jpg" }, { "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "uuid": "e12ad7db-91b2-4154-83dd-40dcfc700dcc", @@ -220,7 +221,8 @@ "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "uuid": "551f316d-e414-480f-9787-b4c408db3edd", "id": "make-us-proud", - "name": "Make Us Proud" + "name": "Make Us Proud", + "image": "/static/images/make-us-proud.svg" }] }, "projects": { diff --git a/frontend/src/resources/logo.png b/frontend/src/resources/logo.png deleted file mode 100644 index b33679916790ce7f4e51c1fc6ae721c50888efc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4359 zcmV+i5%}(jP)QoGcM%Gk&seR%uk({tDFt)EuA z(n@>|ay93?GoO3s&hO5hd+*FHkRn4(O-;FJnhWt$O2q-7Q7QEzA!H+C><^UE7n+-! z4;D#o8tpwi12A6S)~#E2NhlP$PD;6+5OO}}9JJO%DMbK)P)doH@7G#yCxkrM-QE58 z!Gi~f$D=(Be@AD4$K&x*Y@xfmJAL55fj7r#jfTVFvqGWJP(h}st*t%3q@?5gs9? z!}tYmTGw@dnn)!6vCw?r99L9S;HE!AYYj9XqHWt(l$4ZgVT}DXA;gqYj>!;6!rLa45=!Y@`~aYG ztobM}FFz;443t(d#`;Dvg>BoPVT}C}0M0>Xm`p&%AcO#=bi@4l^B-QcXi?c@=wKa6 zX%(fknlVjB^?uQQufYn@q;LSu1V_Xy{F2I_`V${8b=qQ1WVN=oUy zC>;tN6)28^A7d=$tuoHWEU3F1(mL04RTOIM8D1Oyf*!2DWb9dg6^Y z-e}WWzm5h&cA?gMj?hkok0k3Cu3}n-)uUaHW_2zq?DeQub#&kSJl_o z|E{&Q^)A2Obo}0$ft@>d9wvm~m)*ToN_iLOylSi?!&~%+T3TA34-Uz;?P~xaFH<0% zcbwc74u_virBZ(g)}2nj^D}_bb|S50Bt;|=2?N08V=;tJ)OFo_isOi5$j9|#WG2Q~ zIp_S#gpg19?^8+{lu|d9 zO7)@cTmY9eG&IZ}9v+_Ix~}T#>Ox#m2zSMb6;-ol%~}Bf=-;VQN}T|J7a3z)T3TA( z$gOwTWtUYtj#F+J#&C0U^Xopmwzl?9L!r=0DP^^Hr2dgHwymY503^5CR>8D{b38k5c+CgpfwgxoH?ic1%*rqdPagAWY)9sDwkrIh)k0`9ONny>X{ z%W!cx=Q9Z*4TO+?&jQ|tL^vE?V4CKyIOhwn9U(-Il=4}n)G>5#0Ki(#`56H4CD(O7 z7>~z4n#&kk>zS0&av=ovam*m4EHzED900fwV&uRHA*)xfKC85}^cRL<)M0<5lzXI< zPfICZ2Y~sM(vLC5&If=8W3gCYTU*=HeuG-;LF@-1|@?1OU?qB7-`PQ*fMoczAe;Wm)L7@atr(38hp& zA*9C>qgk;704K7DrxJUF5J3f11Hc)CkPndX{{>(;QBRd*8K39XP)`5T->*sKYH}&rwqeb z?=9@Dt*x!!%cY5)UfZ^JQA$?=0L}*< zG4@$XX~=P$DC$nRc-{%{az{r;OD?QX9!1{`-T+4606<12jVPR027T?P#E-`mTI*Ty zcswi0CPs23c03-(L-JZIl~Nu&eE9I)BQZ|pwr<_}l2YmsWO&YbnPpk=Q_#03HFxgZ z5CCjIYEsJG6%`fVFGLyV*IO{0r%@6IVN%M+aq$b$P)cp~B|N3{!a{gj>#Xac5Kgch znIdxz2MfJ)_Q=Qs8@EU)mAAgunjJcH=%f}nE|swnT-Uu2tqczm1Q;ObLFC(nMZ^`Au|kx>^=mSt@ZDm+*(91edd6bj9DoKt+jIbYn)u3c=pVa-L47_j1k!npb{9C^aah ze~zDD=EnmA1D6s)cKCUWIp^O+vkz@(Kj32JN*`|l$KBCBjqzfwbx=1MSF)Xb_Sw>L z92xW(jMv6Q;QnnSntzsMJ%)9W0er0=m3gJqYw2|QS3^TX-`%!t+aD)F|J}mnB_$3nou-r?(^{hx+Xn!<7-P@1w6tVBl@p==ZsBtDghiv#|6q)L ztC&V7E7ClX`QpBP`?eL+PBA!2sXk;rZ=K&aULADU7>40rzxM|5Q87jd0sz#r2xTI=AYo_G z*yAF2ms{ByT5H^iuXzhpgW7!-m?yzGza0C5$C&H7NgoBD_-U=tdy6^%y8RdXu-rHn zi>+gfEz8FguIqN8Qx!J=rL-}(?o`QVxnTC}+4l$`n#WVZIOq4-w%uvl_7;p|vDkJ1 zSP|4mf`j)Y#Bm|S=L<*)yniX^hX;U5ke*V?1%MG}aVnKUzeFpx!8yO6va<5ZVB5j; znl)?i<<=)WTDwD`P*)I6DQ&_$J-IXPK>Q#a)6r7C(lc$8DBrlw|2C=~iRz8Ap-lTzYM=_&h}5OUns z^!4>E+p}lSAkv6Nqc@tSc@L&t*S)sAz5Rgz?GefP`ugRBkmqm{ODQ+CwzhuSN5BWu z^XJchmN9m**N-hqsfQV3gIeollu~>@b3-DL80BOe#VPpKVPIh3G9knd@RH`FH1(Sr zKgLP)I=S6(occlxfs|f(<(2(Pshg#gJy_2)&5KOaywWtyYfRHziN7%+gq)C4-j+xt zHWg~Uy}kWAj^o^nZwxu-<(6fA&NR&jN=ix|DJdzrm2-}}yH`qiV+PKqOT3YU| zsHj+`l==ahm^h*7bh^oLoDa3Nwf$8pmBQn4EK^n|5{WN5j&loIN1SuRG|dkihVgBb zR-sVnPRp{cM4yK1x+$&ojeGX&$$Bo)`oTHJ57ULljOFQcIj$yf3uB`k?8O5{|4v$Yf7o(Qpyd5 zcB|If&9#U;vO1YeerMIHRgaXGmag~iSu`n>D9?a5>ke>^pU!P4pUxv zvS>8=ccy9HEu|cAUH30KIyw@${f)(9zvi5OSO{_G*s)^^ckI}4Bo}8Y=krR6+ySLh zsojJS{Qe1l!%=ar%W@Hc2tpnF|w{hxvAr%iI2DFREWweI#TsdM}L`>zjx@Ifw%Mx%erIY);Y zf}Tnw5?g~fr%Sph>*I78?0DnApYNNdnM4n*I_bAhXsvhQ-3|b(Lhmiw{ODwJ9A|wh zl{zpU&8Y~VW{R9ui$VEyj_Shvbwh`acIzt{)V-Poe+-002ovPDHLkV1hyz BUxxqy diff --git a/frontend/src/resources/logo.svg b/frontend/src/resources/logo.svg new file mode 100644 index 00000000..a9da7b24 --- /dev/null +++ b/frontend/src/resources/logo.svg @@ -0,0 +1,2 @@ + +logo diff --git a/ui/src/components/avatar/index.js b/ui/src/components/avatar/index.js index dc5b24c2..b43210a3 100644 --- a/ui/src/components/avatar/index.js +++ b/ui/src/components/avatar/index.js @@ -23,37 +23,41 @@ const Picture = styled.img` `; const Letter = styled.p` - font-size: 2rem; - margin-top: 0; - margin-bottom: 1em; - line-height: 1.5; + ${verticallyAlignCenter} + max-width: 100%; + margin: 0 0 0 0 !important; + color: #FFFFFF; + font-size: ${remcalc(13)}; + font-weight: 600; `; const Avatar = styled.div` border-radius: 100%; - height: ${remcalc(42)}; display: inline-block; overflow: hidden; position: relative; text-align: center; - width: ${remcalc(42)}; `; module.exports = ({ alt, className, - color, + color = '#ACC014', crossorigin, + height = remcalc(42), longdesc, name = '', sizes, src, srcset, - style + style, + width = remcalc(42), }) => { const _style = { ...style, - background: color + background: color, + width, + height, }; const letter = name[0]; @@ -84,10 +88,12 @@ module.exports.propTypes = { className: React.PropTypes.string, color: React.PropTypes.string, crossorigin: React.PropTypes.string, + height: React.PropTypes.string, longdesc: React.PropTypes.string, name: React.PropTypes.string, sizes: React.PropTypes.string, src: React.PropTypes.string, srcset: React.PropTypes.string, - style: React.PropTypes.object + style: React.PropTypes.object, + width: React.PropTypes.string, }; diff --git a/ui/src/components/horizontal-list/li.js b/ui/src/components/horizontal-list/li.js index 7b7e1661..70ab8303 100644 --- a/ui/src/components/horizontal-list/li.js +++ b/ui/src/components/horizontal-list/li.js @@ -16,7 +16,7 @@ const { module.exports = styled.li` display: inline-block; - margin-right: ${remcalc(64)}; + margin-right: ${remcalc(24)}; padding-top: ${remcalc(10)}; padding-bottom: ${remcalc(10)}; diff --git a/yarn.lock b/yarn.lock index 7e101b1e..deabafd5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,27 +1,95 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 + + +abbrev@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + argparse@^1.0.7: version "1.0.9" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" dependencies: sprintf-js "~1.0.2" +asap@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" + +balanced-match@^0.4.1: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +brace-expansion@^1.0.0: + version "1.1.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.6.tgz#7197d7eaa9b87e648390ea61fc66c84427420df9" + dependencies: + balanced-match "^0.4.1" + concat-map "0.0.1" + buffer-shims@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51" +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +chalk@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + ci-info@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.0.0.tgz#dc5285f2b4e251821683681c381c3388f46ec534" +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +debug@^2.2.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" + dependencies: + ms "0.7.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + dependencies: + asap "^2.0.0" + wrappy "1" + duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" +escape-string-regexp@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + esprima@^2.6.0: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -30,6 +98,30 @@ events-to-array@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/events-to-array/-/events-to-array-1.0.2.tgz#b3484465534fe4ff66fbdd1a83b777713ba404aa" +glob@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +graceful-fs@^4.1.2: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + dependencies: + ansi-regex "^0.2.0" + +hosted-git-info@^2.1.4: + version "2.1.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.1.5.tgz#0ba81d90da2e25ab34a332e6ec77936e1598118b" + husky@^0.11.9: version "0.11.9" resolved "https://registry.yarnpkg.com/husky/-/husky-0.11.9.tgz#28cd1dc16bffdca1d4d93592814e5f3c327b38ee" @@ -37,10 +129,23 @@ husky@^0.11.9: is-ci "^1.0.9" normalize-path "^1.0.0" -inherits@~2.0.1: +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@~2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + is-ci@^1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.0.10.tgz#f739336b2632365061a9d48270cd56ae3369318e" @@ -51,6 +156,10 @@ isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +jju@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.3.0.tgz#dadd9ef01924bc728b03f2f7979bdbd62f7a2aaa" + js-yaml@^3.2.7: version "3.7.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" @@ -58,22 +167,107 @@ js-yaml@^3.2.7: argparse "^1.0.7" esprima "^2.6.0" +json-parse-helpfulerror@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" + dependencies: + jju "^1.1.0" + +license-checker@^7.1.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/license-checker/-/license-checker-7.1.1.tgz#b0a3ec47f2469fe3a639e52a1151cd26fc2c2905" + dependencies: + chalk "~0.5.1" + debug "^2.2.0" + mkdirp "^0.3.5" + nopt "^2.2.0" + read-installed "~4.0.3" + treeify "^1.0.1" + +license-to-fail@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/license-to-fail/-/license-to-fail-2.2.0.tgz#6d5929f3b1edfb0866e05eb22919a5e1de32ff37" + dependencies: + license-checker "^7.1.0" + lodash@^3.5.0: version "3.10.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" +"minimatch@2 || 3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + dependencies: + brace-expansion "^1.0.0" + minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +mkdirp@^0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +nopt@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-2.2.1.tgz#2aa09b7d1768487b3b89a9c5aa52335bff0baea7" + dependencies: + abbrev "1" + +normalize-package-data@^2.0.0: + version "2.3.5" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.5.tgz#8d924f142960e1777e7ffe170543631cc7cb02df" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +read-installed@~4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/read-installed/-/read-installed-4.0.3.tgz#ff9b8b67f187d1e4c29b9feb31f6b223acd19067" + dependencies: + debuglog "^1.0.1" + read-package-json "^2.0.0" + readdir-scoped-modules "^1.0.0" + semver "2 || 3 || 4 || 5" + slide "~1.1.3" + util-extend "^1.0.1" + optionalDependencies: + graceful-fs "^4.1.2" + +read-package-json@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-2.0.4.tgz#61ed1b2256ea438d8008895090be84b8e799c853" + dependencies: + glob "^6.0.0" + json-parse-helpfulerror "^1.0.2" + normalize-package-data "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.2" + readable-stream@^2, readable-stream@^2.1.5: version "2.2.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.2.tgz#a9e6fec3c7dda85f8bb1b3ba7028604556fc825e" @@ -86,6 +280,37 @@ readable-stream@^2, readable-stream@^2.1.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" +readdir-scoped-modules@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz#9fafa37d286be5d92cbaebdee030dc9b5f406747" + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +"semver@2 || 3 || 4 || 5": + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +slide@~1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -94,6 +319,16 @@ string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + dependencies: + ansi-regex "^0.2.1" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + tap-parser@~1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/tap-parser/-/tap-parser-1.2.2.tgz#5e2f6970611f079c7cf857de1dc7aa1b480de7a5" @@ -122,10 +357,29 @@ through2@~2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" +treeify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/treeify/-/treeify-1.0.1.tgz#69b3cd022022a168424e7cfa1ced44c939d3eb2f" + util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util-extend@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + xmlbuilder@~4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.1.0.tgz#687e84d9c4145af8db438d8bec88805df66249f4" @@ -135,4 +389,3 @@ xmlbuilder@~4.1.0: xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" - From 0c0b2dd145dbc3c4b23c0f524761e9ad9f979852 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Tue, 17 Jan 2017 16:47:26 +0000 Subject: [PATCH 15/28] Adding licence checker --- Makefile | 7 ++++++- cloudapi-graphql/Makefile | 4 ++++ frontend/Makefile | 4 ++++ nginx/Makefile | 3 +++ package.json | 3 ++- ui/Makefile | 4 ++++ 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 96c84855..df647ef0 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,13 @@ check: @yarn install --prefer-offline -@./bin/setup +.PHONE: licence +licence: + ./node_modules/.bin/license-to-fail ./licence.js + make licence-check + SUBDIRS := $(dir $(wildcard */Makefile)) -TARGETS := install clean test test-ci lint lint-ci # whatever else, but must not contain '/' +TARGETS := install clean test test-ci lint lint-ci licence-check# whatever else, but must not contain '/' # foo/.all bar/.all foo/.clean bar/.clean SUBDIRS_TARGETS := \ diff --git a/cloudapi-graphql/Makefile b/cloudapi-graphql/Makefile index 8bdaf473..f4312ebe 100644 --- a/cloudapi-graphql/Makefile +++ b/cloudapi-graphql/Makefile @@ -48,3 +48,7 @@ lint: lint-ci: mkdir -p $(XUNIT_DIR) -$(bindir)/eslint . --format tap | $(XUNIT) $(XUNIT_OUTPUT)-lint.xml + +.PHONY: licence-check +licence-check: + ../node_modules/.bin/license-to-fail ../licence.js diff --git a/frontend/Makefile b/frontend/Makefile index 97eab1ff..bf505633 100644 --- a/frontend/Makefile +++ b/frontend/Makefile @@ -63,3 +63,7 @@ lint: lint-ci: mkdir -p $(XUNIT_DIR) -$(bindir)/eslint . --format tap | $(XUNIT) $(XUNIT_OUTPUT)-lint.xml + +.PHONY: licence-check +licence-check: + ../node_modules/.bin/license-to-fail ../licence.js diff --git a/nginx/Makefile b/nginx/Makefile index 6505b6ea..59869a1a 100644 --- a/nginx/Makefile +++ b/nginx/Makefile @@ -31,3 +31,6 @@ lint: .PHONY: lint-ci lint-ci: + +.PHONY: licence-check +lint-ci: diff --git a/package.json b/package.json index 40f62fd9..538e8eaf 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "prepush": "make test" }, "dependencies": { - "husky": "^0.11.9" + "husky": "^0.11.9", + "license-to-fail": "^2.2.0" }, "devDependencies": { "tap-xunit": "^1.4.0" diff --git a/ui/Makefile b/ui/Makefile index 49427d20..4c6e60a9 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -69,3 +69,7 @@ lint-ci: .PHONY: publish publish: docker build --build-arg NPM_TOKEN=${NPM_TOKEN} --build-arg CIRCLE_BUILD_NUM=${CIRCLE_BUILD_NUM} -f Dockerfile.build . + +.PHONY: licence-check +licence-check: + ../node_modules/.bin/license-to-fail ../licence.js From 860fc5803760d7eeefd2857691ac5a5267ea2797 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Tue, 17 Jan 2017 17:16:10 +0000 Subject: [PATCH 16/28] Updating section --- frontend/src/components/section/index.js | 36 +++++++- frontend/yarn.lock | 110 +++++++++++------------ yarn.lock | 4 +- 3 files changed, 87 insertions(+), 63 deletions(-) diff --git a/frontend/src/components/section/index.js b/frontend/src/components/section/index.js index f3f92154..beae6895 100644 --- a/frontend/src/components/section/index.js +++ b/frontend/src/components/section/index.js @@ -1,12 +1,30 @@ const flatten = require('lodash.flatten'); const React = require('react'); const ReactIntl = require('react-intl'); +const Styled = require('styled-components'); const ReactRouter = require('react-router'); const H1 = require('@ui/components/base-elements').H1; const Li = require('@ui/components/horizontal-list/li'); const PropTypes = require('@root/prop-types'); const Ul = require('@ui/components/horizontal-list/ul'); +const fns = require('@ui/shared/functions'); + +const { + default: styled +} = Styled; + +const BreadcrumbA = styled.a` + text-decoration: none !important; +`; + +const BreadcrumbSpan = styled.span` + color: #646464; +`; + +const { + remcalc +} = fns; const { FormattedMessage @@ -36,12 +54,20 @@ const Section = ({ const link = ( - {part.name} + { + ({ + href, + onClick, + }) => + + {part.name} + + } ); const slash = ( - / + / ); return (i === 0) ? link : [ @@ -52,7 +78,11 @@ const Section = ({ return (
    -

    +

    {nameLinks}

      diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 0de389f5..64942149 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3,8 +3,8 @@ "@tomgco/joyent-portal-ui@alpha": - version "0.0.1-501" - resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-501.tgz#2cc50b93fb6525008d5cabcab7de127d8832c9a0" + version "0.0.1-504" + resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-504.tgz#05b00fccad0152b19356fd530c36926ffa23b6da" dependencies: build-array "^1.0.0" chart.js "^2.4.0" @@ -20,11 +20,11 @@ lodash.isundefined "^3.0.1" param-case "^2.1.0" random-natural "^1.0.3" - react "^15.4.1" - react-dom "^15.4.1" + react "^15.4.2" + react-dom "^15.4.2" react-select "^1.0.0-rc.2" reduce-css-calc "^1.3.0" - styled-components "^1.2.1" + styled-components "^1.3.0" svg-react-loader "^0.3.7" transform-props-with "^2.1.0" @@ -151,9 +151,11 @@ anymatch@^1.3.0: arrify "^1.0.0" micromatch "^2.1.5" -append-transform@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.3.0.tgz#d6933ce4a85f09445d9ccc4cc119051b7381a813" +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" aproba@^1.0.3: version "1.0.4" @@ -1707,7 +1709,7 @@ combined-stream@^1.0.5, combined-stream@~1.0.5: dependencies: delayed-stream "~1.0.0" -commander@^2.8.1, commander@^2.9.0, commander@2: +commander@2, commander@^2.8.1, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: @@ -1956,12 +1958,6 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" -d@^0.1.1, d@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" - dependencies: - es5-ext "~0.10.2" - d3-array@1, d3-array@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.0.2.tgz#174237bf356a852fadd6af87743d928631de7655" @@ -2041,13 +2037,7 @@ d3-hierarchy@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.0.3.tgz#986b4925e81f1e0b4087e9442850f950cf27d338" -d3-interpolate@1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.3.tgz#e119c91b6be4941e581675ca3e1279bb92bd2c9b" - dependencies: - d3-color "1" - -d3-interpolate@1.1.2: +d3-interpolate@1, d3-interpolate@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.2.tgz#b52e6927a04fe1fe2a4cffc139e5389ed3e5e790" dependencies: @@ -2178,6 +2168,12 @@ d3@^4.4.1: d3-voronoi "1.1.1" d3-zoom "1.1.1" +d@^0.1.1, d@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/d/-/d-0.1.1.tgz#da184c535d18d8ee7ba2aa229b914009fae11309" + dependencies: + es5-ext "~0.10.2" + damerau-levenshtein@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.3.tgz#ae4f4ce0b62acae10ff63a01bb08f652f5213af2" @@ -3017,8 +3013,8 @@ getpass@^0.1.1: assert-plus "^1.0.0" glamor@^2.20.12: - version "2.20.20" - resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.20.tgz#546cb86bfae760b0fd5c019ba859007d08e6238f" + version "2.20.22" + resolved "https://registry.yarnpkg.com/glamor/-/glamor-2.20.22.tgz#86c11a143deee7d4c051de50d69387d8b4e700ba" dependencies: babel-runtime "^6.18.0" fbjs "^0.8.8" @@ -3301,10 +3297,14 @@ hyphenate-style-name@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.2.tgz#31160a36930adaf1fc04c6074f7eb41465d4ec4b" -iconv-lite@^0.4.13, iconv-lite@~0.4.13, iconv-lite@0.4: +iconv-lite@0.4, iconv-lite@^0.4.13, iconv-lite@~0.4.13: version "0.4.15" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.15.tgz#fe265a218ac6a57cfe854927e9d04c19825eddeb" +iconv-lite@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" + ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" @@ -3707,10 +3707,10 @@ istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-c resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0.tgz#c3f9b6d226da12424064cce87fce0fb57fdfa7a2" istanbul-lib-hook@^1.0.0-alpha.4: - version "1.0.0-alpha.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0-alpha.4.tgz#8c5bb9f6fbd8526e0ae6cf639af28266906b938f" + version "1.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0.tgz#fc5367ee27f59268e8f060b0c7aaf051d9c425c5" dependencies: - append-transform "^0.3.0" + append-transform "^0.4.0" istanbul-lib-instrument@^1.3.0: version "1.4.2" @@ -3923,7 +3923,7 @@ loader-runner@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.2.0.tgz#824c1b699c4e7a2b6501b85902d5b862bf45b3fa" -loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@0.2.x: +loader-utils@0.2.x, loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: @@ -4226,9 +4226,9 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.x.x, "mime-db@>= 1.24.0 < 2", mime-db@~1.25.0: - version "1.25.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.25.0.tgz#c18dbd7c73a5dbf6f44a024dc0d165a1e7b1c392" +mime-db@1.x.x, "mime-db@>= 1.24.0 < 2", mime-db@~1.26.0: + version "1.26.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.26.0.tgz#eaffcd0e4fc6935cf8134da246e2e6c35305adff" mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.13, mime-types@~2.1.7: version "2.1.14" @@ -4285,9 +4285,9 @@ moment@^2.10.6: version "2.17.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.17.1.tgz#fed9506063f36b10f066c8b59a144d7faebe1d82" -ms@^0.7.1, ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" ms@0.7.2, ms@^0.7.1: version "0.7.2" @@ -4405,14 +4405,14 @@ nodent-runtime@>=3.0.3: resolved "https://registry.yarnpkg.com/nodent-runtime/-/nodent-runtime-3.0.3.tgz#49a25f4f4efb092c40d97be9e73de7e53a5f8361" nodent@>=3.0.8: - version "3.0.9" - resolved "https://registry.yarnpkg.com/nodent/-/nodent-3.0.9.tgz#0b6bf91e49b44e2fbf8b69bab4d192f81de30ffa" + version "3.0.10" + resolved "https://registry.yarnpkg.com/nodent/-/nodent-3.0.10.tgz#687291507548afb475f7524811feff2f4378dba8" dependencies: acorn ">=2.5.2" acorn-es7-plugin ">=1.1.5" nodent-runtime ">=3.0.3" - resolve "1.2.0" - source-map "0.5.6" + resolve "^1.2.0" + source-map "^0.5.6" nomnom@~1.6.2: version "1.6.2" @@ -5085,7 +5085,7 @@ react-deep-force-update@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-2.0.1.tgz#4f7f6c12c3e7de42f345992a3c518236fa1ecad3" -react-dom@^15.4.1, react-dom@^15.4.2: +react-dom@^15.4.2: version "15.4.2" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz#015363f05b0a1fd52ae9efdd3a0060d90695208f" dependencies: @@ -5158,7 +5158,7 @@ react-select@^1.0.0-rc.2: classnames "^2.2.4" react-input-autosize "^1.1.0" -react@^15.4.1, react@^15.4.2: +react@^15.4.2: version "15.4.2" resolved "https://registry.yarnpkg.com/react/-/react-15.4.2.tgz#41f7991b26185392ba9bae96c8889e7e018397ef" dependencies: @@ -5286,7 +5286,7 @@ redux-batched-actions@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/redux-batched-actions/-/redux-batched-actions-0.1.5.tgz#b39b84775f4499a4724f3154b882968073b58bed" -redux-form: +redux-form@^6.4.3: version "6.4.3" resolved "https://registry.yarnpkg.com/redux-form/-/redux-form-6.4.3.tgz#bd83a77770d9805f7b595a4ff18f00fe4267d3c8" dependencies: @@ -5460,7 +5460,7 @@ resolve-pathname@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.0.2.tgz#e55c016eb2e9df1de98e85002282bfb38c630436" -resolve@1.2.0, resolve@^1.1.6: +resolve@^1.1.6, resolve@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c" @@ -5505,7 +5505,7 @@ rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" -sax@^1.1.4, sax@>=0.6.0: +sax@>=0.6.0, sax@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" @@ -5682,21 +5682,21 @@ source-list-map@~0.1.7: resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-0.1.8.tgz#c550b2ab5427f6b3f21f5afead88c4f5587b2106" source-map-support@^0.4.0, source-map-support@^0.4.2: - version "0.4.9" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.9.tgz#45eaa04f067e049d987b27599ed014a37750aaff" + version "0.4.10" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.10.tgz#d7b19038040a14c0837a18e630a196453952b378" dependencies: source-map "^0.5.3" -source-map@0.5.6, source-map@^0.5.0, source-map@^0.5.3, source-map@~0.5.1, source-map@~0.5.3: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + source-map@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" @@ -5867,7 +5867,7 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -styled-components@^1.2.1, styled-components@^1.3.0: +styled-components@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.3.0.tgz#0711b5a82fe784b458fd6e5054b842751c543a6b" dependencies: @@ -6514,13 +6514,7 @@ xml2js@^0.4: sax ">=0.6.0" xmlbuilder "^4.1.0" -xmlbuilder@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.2.1.tgz#aa58a3041a066f90eaa16c2f5389ff19f3f461a5" - dependencies: - lodash "^4.0.0" - -xmlbuilder@~4.1.0: +xmlbuilder@^4.1.0, xmlbuilder@~4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-4.1.0.tgz#687e84d9c4145af8db438d8bec88805df66249f4" dependencies: diff --git a/yarn.lock b/yarn.lock index deabafd5..4e0ab1a9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -340,8 +340,8 @@ tap-parser@~1.2.2: readable-stream "^2" tap-xunit@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/tap-xunit/-/tap-xunit-1.4.0.tgz#f7c49221905914f100c5ca1463e734e8f1116d93" + version "1.5.1" + resolved "https://registry.yarnpkg.com/tap-xunit/-/tap-xunit-1.5.1.tgz#e58e6d26f5896a87cdc6ffbb146dd8c1f418a8a6" dependencies: duplexer "~0.1.1" minimist "~1.2.0" From 3568b86426f37a439040a40e18194490fdcd8028 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Tue, 17 Jan 2017 17:40:49 +0000 Subject: [PATCH 17/28] Move avatar.png to correct location --- frontend/src/mock-state.json | 2 +- frontend/src/resources/avatar.png | Bin 3212 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 frontend/src/resources/avatar.png diff --git a/frontend/src/mock-state.json b/frontend/src/mock-state.json index bb1cec86..3be8081a 100644 --- a/frontend/src/mock-state.json +++ b/frontend/src/mock-state.json @@ -5,7 +5,7 @@ "id": "nicola", "name": "Nicola", "email": "nicola@biztech.com", - "avatar": "/src/resources/avatar.png" + "avatar": "/static/images/avatar.png" }, "ui": { "profile_tooltip": false diff --git a/frontend/src/resources/avatar.png b/frontend/src/resources/avatar.png deleted file mode 100644 index 68b6ad913ad6c1d749dcf8cd02107022dd0f2b68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3212 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 Date: Tue, 17 Jan 2017 17:45:09 +0000 Subject: [PATCH 18/28] Upgrade nginx (autopilotpattern) to 1-6.3.0 --- nginx/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx/Dockerfile b/nginx/Dockerfile index c3efdc94..9f2a862b 100644 --- a/nginx/Dockerfile +++ b/nginx/Dockerfile @@ -1,5 +1,5 @@ # a minimal Nginx container including containerpilot and a simple virtulhost config -FROM autopilotpattern/nginx:1-r6.1.0 +FROM autopilotpattern/nginx:1-6.3.0 # Add our configuration files COPY etc /etc From 855d088e2d88bfa5ad72a119373631f6f085bc7d Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 11:47:32 +0000 Subject: [PATCH 19/28] Add missing file-loader dependency --- frontend/package.json | 1 + frontend/yarn.lock | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/package.json b/frontend/package.json index 52d06020..afefec9e 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -80,6 +80,7 @@ "eslint-plugin-react": "^6.9.0", "eslint-plugin-standard": "^2.0.1", "fast-async": "^6.2.0", + "file-loader": "^0.9.0", "jsdom": "^9.9.1", "json-loader": "^0.5.4", "ncp": "^2.0.0", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 64942149..37e6496d 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2815,6 +2815,12 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" +file-loader@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.9.0.tgz#1d2daddd424ce6d1b07cfe3f79731bed3617ab42" + dependencies: + loader-utils "~0.2.5" + filename-regex@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.0.tgz#996e3e80479b98b9897f15a8a58b3d084e926775" @@ -3923,7 +3929,7 @@ loader-runner@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.2.0.tgz#824c1b699c4e7a2b6501b85902d5b862bf45b3fa" -loader-utils@0.2.x, loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16: +loader-utils@0.2.x, loader-utils@^0.2, loader-utils@^0.2.11, loader-utils@^0.2.16, loader-utils@~0.2.5: version "0.2.16" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.16.tgz#f08632066ed8282835dff88dfb52704765adee6d" dependencies: From 3311b06dd409238425fa8c4a9ab92204e7b0238c Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 11:49:36 +0000 Subject: [PATCH 20/28] Increase instance size of frontend --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index a6f00d52..02ad5b0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,7 +39,7 @@ cloudapi: ############################################################################# frontend: image: quay.io/yldio/joyent-dashboard-frontend:latest - mem_limit: 128m + mem_limit: 256m labels: - triton.cns.services=frontend - com.docker.swarm.affinities=["container!=~*frontend*"] From 116f806d8f537544819651c748da7362aa0add43 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 12:01:51 +0000 Subject: [PATCH 21/28] CI was not failing on failed builds due to PIPE Luckily we can remove these lines as the online time that the creds are leaked are in "on-changes-publish-ui" --- circle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 0eceb64d..1074cfa7 100644 --- a/circle.yml +++ b/circle.yml @@ -32,8 +32,8 @@ deployment: commands: - ./bin/docker-login - ./bin/on-changes-publish-ui - - make -j2 build | sed '/NPM_TOKEN/d' - - make -j2 push | sed '/NPM_TOKEN/d' + - make -j2 build + - make -j2 push - ./bin/deploy ## Custom notifications From abd113d00928e570930d6ebbad360cf4c1329c22 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 12:39:28 +0000 Subject: [PATCH 22/28] Fixing UI and frontend compilation --- frontend/webpack/base.js | 15 ++++++++------- frontend/webpack/production.js | 2 +- ui/Makefile | 1 + 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/webpack/base.js b/frontend/webpack/base.js index 8b0b5919..3c8ab616 100644 --- a/frontend/webpack/base.js +++ b/frontend/webpack/base.js @@ -50,7 +50,7 @@ module.exports = { ], loaders: [ 'babel-loader' - ] + ], }, { test: /\.json?$/, exclude: /node_modules/, @@ -60,7 +60,7 @@ module.exports = { ], loaders: [ 'json-loader' - ] + ], }, { test: /\.png/, exclude: /node_modules/, @@ -68,18 +68,19 @@ module.exports = { FRONTEND, UI ], - loader: [ + loaders: [ 'url-loader' - ] + ], }, { test: /\.(eot|svg|ttf|woff|woff2)$/, - exclude: /node_modules/, - loader: 'file-loader', include: [ FRONTEND, UI - ] + ], + loaders: [ + 'file-loader' + ], }] } }; diff --git a/frontend/webpack/production.js b/frontend/webpack/production.js index 392f4a00..0307a183 100644 --- a/frontend/webpack/production.js +++ b/frontend/webpack/production.js @@ -3,7 +3,7 @@ const base = require('./base'); module.exports = Object.assign(base, { - devtool: 'hidden-source-map', + devtool: 'eval-source-map', entry: [ base.entry ], diff --git a/ui/Makefile b/ui/Makefile index 4c6e60a9..9d80ba55 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -41,6 +41,7 @@ install-production: compile clean .PHONY: compile compile: install + cp -R src/ dist/. $(bindir)/babel src --out-dir dist --source-maps inline .PHONY: build From 8a8da6b4bed2956a6d3aa108e3c9b8039d4a4a33 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 12:46:44 +0000 Subject: [PATCH 23/28] Make directory on compile --- ui/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/Makefile b/ui/Makefile index 9d80ba55..d22be54a 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -41,6 +41,7 @@ install-production: compile clean .PHONY: compile compile: install + mkdir -p dist cp -R src/ dist/. $(bindir)/babel src --out-dir dist --source-maps inline From 9943f5cc969a20f861f4bd3ed182bf769a8d8c5b Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 13:36:38 +0000 Subject: [PATCH 24/28] Bumping frontend version --- frontend/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/package.json b/frontend/package.json index afefec9e..159bb8a0 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "joyent-portal-frontend", - "version": "1.0.0", + "version": "1.1.0", "private": true, "license": "private", "main": "server/index.js", From 081c379d0b615e01668b46fc6ab59005c0069645 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 13:56:55 +0000 Subject: [PATCH 25/28] Adding a files directory to package --- ui/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ui/package.json b/ui/package.json index 682630bc..ac423003 100644 --- a/ui/package.json +++ b/ui/package.json @@ -3,6 +3,9 @@ "version": "0.0.1-2", "license": "MPL-2.0", "main": "dist/index.js", + "files": [ + "dist/" + ], "scripts": { "start": "cd docs && npm start", "lint": "make lint", From caef3ca57e43152c25cb4e870d861d4168bdb1ce Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 14:58:54 +0000 Subject: [PATCH 26/28] Fix asset copy on npm publish in ui --- frontend/yarn.lock | 116 ++++++++++++++++++++++++--------------------- ui/Makefile | 2 +- 2 files changed, 63 insertions(+), 55 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 37e6496d..bbcf77b6 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -3,8 +3,8 @@ "@tomgco/joyent-portal-ui@alpha": - version "0.0.1-504" - resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-504.tgz#05b00fccad0152b19356fd530c36926ffa23b6da" + version "0.0.1-516" + resolved "https://registry.yarnpkg.com/@tomgco/joyent-portal-ui/-/joyent-portal-ui-0.0.1-516.tgz#656af8b5c920d82ca87a4a5331284b476c161f61" dependencies: build-array "^1.0.0" chart.js "^2.4.0" @@ -76,7 +76,7 @@ acorn-jsx@^3.0.0, acorn-jsx@^3.0.1: dependencies: acorn "^3.0.4" -acorn@>=2.5.2, acorn@^4.0.1, acorn@^4.0.3: +acorn@>=2.5.2, acorn@^4.0.1, acorn@^4.0.3, acorn@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.4.tgz#17a8d6a7a6c4ef538b814ec9abac2779293bf30a" @@ -1476,8 +1476,8 @@ camelcase@^3.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" caniuse-db@^1.0.30000604: - version "1.0.30000611" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000611.tgz#1075d14d9b3cc153caf5e9e35f45565b03304c37" + version "1.0.30000613" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000613.tgz#639133b7a5380c1416f9701d23d54d093dd68299" capture-stack-trace@^1.0.0: version "1.0.0" @@ -1534,8 +1534,8 @@ chart.js@^2.4.0: moment "^2.10.6" chartjs-chart-box-plot@prerelease: - version "1.0.0-16" - resolved "https://registry.yarnpkg.com/chartjs-chart-box-plot/-/chartjs-chart-box-plot-1.0.0-16.tgz#2544012ae84b04fa9922fe528017f5b748346497" + version "1.0.0-17" + resolved "https://registry.yarnpkg.com/chartjs-chart-box-plot/-/chartjs-chart-box-plot-1.0.0-17.tgz#c17005d36bdfa8bca0191c47324367c39072c834" chartjs-color-string@^0.4.0: version "0.4.0" @@ -1672,8 +1672,8 @@ color-convert@^0.5.3: resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" color-convert@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.8.2.tgz#be868184d7c8631766d54e7078e2672d7c7e3339" + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" dependencies: color-name "^1.1.1" @@ -2037,9 +2037,9 @@ d3-hierarchy@1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.0.3.tgz#986b4925e81f1e0b4087e9442850f950cf27d338" -d3-interpolate@1, d3-interpolate@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.2.tgz#b52e6927a04fe1fe2a4cffc139e5389ed3e5e790" +d3-interpolate@1, d3-interpolate@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.3.tgz#e119c91b6be4941e581675ca3e1279bb92bd2c9b" dependencies: d3-color "1" @@ -2134,8 +2134,8 @@ d3-zoom@1.1.1: d3-transition "1" d3@^4.4.1: - version "4.4.1" - resolved "https://registry.yarnpkg.com/d3/-/d3-4.4.1.tgz#2cbb08f92970364076ffe91ab83ef66b80610785" + version "4.4.2" + resolved "https://registry.yarnpkg.com/d3/-/d3-4.4.2.tgz#7173647bd46c7f9b9dc6b41c1b999de0fc206a26" dependencies: d3-array "1.0.2" d3-axis "1.0.4" @@ -2151,7 +2151,7 @@ d3@^4.4.1: d3-format "1.0.2" d3-geo "1.4.0" d3-hierarchy "1.0.3" - d3-interpolate "1.1.2" + d3-interpolate "1.1.3" d3-path "1.0.3" d3-polygon "1.0.2" d3-quadtree "1.0.2" @@ -2401,7 +2401,7 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -enhanced-resolve@^2.2.0, enhanced-resolve@^2.2.2: +enhanced-resolve@^2.2.2: version "2.3.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-2.3.0.tgz#a115c32504b6302e85a76269d7a57ccdd962e359" dependencies: @@ -2410,6 +2410,15 @@ enhanced-resolve@^2.2.0, enhanced-resolve@^2.2.2: object-assign "^4.0.1" tapable "^0.2.3" +enhanced-resolve@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.0.3.tgz#df14c06b5fc5eecade1094c9c5a12b4b3edc0b62" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.5" + entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -2903,7 +2912,7 @@ foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" -foreground-child@^1.5.3, foreground-child@^1.5.6: +foreground-child@^1.3.3, foreground-child@^1.5.3: version "1.5.6" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9" dependencies: @@ -3708,17 +3717,17 @@ isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.0.tgz#c3f9b6d226da12424064cce87fce0fb57fdfa7a2" +istanbul-lib-coverage@^1.0.0, istanbul-lib-coverage@^1.0.0-alpha, istanbul-lib-coverage@^1.0.0-alpha.0, istanbul-lib-coverage@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.0.1.tgz#f263efb519c051c5f1f3343034fc40e7b43ff212" -istanbul-lib-hook@^1.0.0-alpha.4: +istanbul-lib-hook@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.0.tgz#fc5367ee27f59268e8f060b0c7aaf051d9c425c5" dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.3.0: +istanbul-lib-instrument@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.4.2.tgz#0e2fdfac93c1dabf2e31578637dc78a19089f43e" dependencies: @@ -4164,14 +4173,14 @@ media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" -memory-fs@^0.3.0, memory-fs@~0.3.0: +memory-fs@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.3.0.tgz#7bcc6b629e3a43e871d7e29aca6ae8a7f15cbb20" dependencies: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: @@ -4470,8 +4479,8 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.3.9.tgz#8bab486ff7fa3dfd086656bbe8b17116d3692d2a" nyc@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.0.0.tgz#95bd4a2c3487f33e1e78f213c6d5a53d88074ce6" + version "10.1.2" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-10.1.2.tgz#ea7acaa20a235210101604f4e7d56d28453b0274" dependencies: archy "^1.0.0" arrify "^1.0.1" @@ -4483,9 +4492,9 @@ nyc@^10.0.0: find-up "^1.1.2" foreground-child "^1.5.3" glob "^7.0.6" - istanbul-lib-coverage "^1.0.0" - istanbul-lib-hook "^1.0.0-alpha.4" - istanbul-lib-instrument "^1.3.0" + istanbul-lib-coverage "^1.0.1" + istanbul-lib-hook "^1.0.0" + istanbul-lib-instrument "^1.4.2" istanbul-lib-report "^1.0.0-alpha.3" istanbul-lib-source-maps "^1.1.0" istanbul-reports "^1.0.0" @@ -4496,9 +4505,9 @@ nyc@^10.0.0: resolve-from "^2.0.0" rimraf "^2.5.4" signal-exit "^3.0.1" - spawn-wrap "^1.2.4" + spawn-wrap "1.2.4" test-exclude "^3.3.0" - yargs "^6.4.0" + yargs "^6.6.0" yargs-parser "^4.0.2" oauth-sign@~0.8.1: @@ -5317,8 +5326,8 @@ redux-promise-middleware@^4.2.0: resolved "https://registry.yarnpkg.com/redux-promise-middleware/-/redux-promise-middleware-4.2.0.tgz#052a7ac2df0e3468e196279f14bdefe711d10cac" redux-thunk@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.1.0.tgz#c724bfee75dbe352da2e3ba9bc14302badd89a98" + version "2.2.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.2.0.tgz#e615a16e16b47a19a515766133d1e3e99b7852e5" redux@^3.6.0: version "3.6.0" @@ -5716,11 +5725,11 @@ spawn-sync@^1.0.15: concat-stream "^1.4.7" os-shim "^0.1.2" -spawn-wrap@^1.2.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.4.tgz#5d133070fef81cd26d8259acaa07fc1a86fd45dc" +spawn-wrap@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.2.4.tgz#920eb211a769c093eebfbd5b0e7a5d2e68ab2e40" dependencies: - foreground-child "^1.5.6" + foreground-child "^1.3.3" mkdirp "^0.5.0" os-homedir "^1.0.1" rimraf "^2.3.3" @@ -5874,8 +5883,8 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" styled-components@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.3.0.tgz#0711b5a82fe784b458fd6e5054b842751c543a6b" + version "1.3.1" + resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-1.3.1.tgz#219aebf87405d890e0c60c8f702089d947aafc0a" dependencies: buffer "^5.0.2" css-to-react-native "^1.0.6" @@ -5966,7 +5975,7 @@ tap-xunit@^1.5.1: xmlbuilder "~4.1.0" xtend "~4.0.0" -tapable@^0.2.3, tapable@~0.2.3: +tapable@^0.2.3, tapable@^0.2.5, tapable@~0.2.5: version "0.2.6" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.6.tgz#206be8e188860b514425375e6f1ae89bfb01fd8d" @@ -6137,7 +6146,7 @@ ua-parser-js@^0.7.9: version "0.7.12" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.12.tgz#04c81a99bdd5dc52263ea29d24c6bf8d4818a4bb" -uglify-js@^2.6, uglify-js@~2.7.3: +uglify-js@^2.6, uglify-js@^2.7.5: version "2.7.5" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8" dependencies: @@ -6312,7 +6321,7 @@ warning@^3.0.0: dependencies: loose-envify "^1.0.0" -watchpack@^1.0.0: +watchpack@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.2.0.tgz#15d4620f1e7471f13fcb551d5c030d2c3eb42dbb" dependencies: @@ -6355,7 +6364,7 @@ webpack-shell-plugin@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/webpack-shell-plugin/-/webpack-shell-plugin-0.5.0.tgz#29b8a1d80ddeae0ddb10e729667f728653c2c742" -webpack-sources@^0.1.0: +webpack-sources@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-0.1.4.tgz#ccc2c817e08e5fa393239412690bb481821393cd" dependencies: @@ -6363,29 +6372,28 @@ webpack-sources@^0.1.0: source-map "~0.5.3" webpack@^2.1.0-beta.25: - version "2.1.0-beta.28" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.1.0-beta.28.tgz#8f9402c05bae04ab8d3918489b3547544a2e2641" + version "2.2.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-2.2.0.tgz#09246336b5581c9002353f75bcadb598a648f977" dependencies: - acorn "^4.0.3" + acorn "^4.0.4" acorn-dynamic-import "^2.0.0" ajv "^4.7.0" ajv-keywords "^1.1.1" async "^2.1.2" - enhanced-resolve "^2.2.0" + enhanced-resolve "^3.0.0" interpret "^1.0.0" json-loader "^0.5.4" loader-runner "^2.2.0" loader-utils "^0.2.16" - memory-fs "~0.3.0" + memory-fs "~0.4.1" mkdirp "~0.5.0" node-libs-browser "^2.0.0" - object-assign "^4.0.1" source-map "^0.5.3" supports-color "^3.1.0" - tapable "~0.2.3" - uglify-js "~2.7.3" - watchpack "^1.0.0" - webpack-sources "^0.1.0" + tapable "~0.2.5" + uglify-js "^2.7.5" + watchpack "^1.2.0" + webpack-sources "^0.1.4" yargs "^6.0.0" websocket-driver@>=0.5.1: @@ -6548,7 +6556,7 @@ yargs-parser@^4.0.2, yargs-parser@^4.2.0: dependencies: camelcase "^3.0.0" -yargs@^6.0.0, yargs@^6.4.0: +yargs@^6.0.0, yargs@^6.6.0: version "6.6.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" dependencies: diff --git a/ui/Makefile b/ui/Makefile index d22be54a..fc915dcc 100644 --- a/ui/Makefile +++ b/ui/Makefile @@ -42,7 +42,7 @@ install-production: compile clean .PHONY: compile compile: install mkdir -p dist - cp -R src/ dist/. + cp -R src/. dist/. $(bindir)/babel src --out-dir dist --source-maps inline .PHONY: build From 77373ec32dc8c6e033c36fb54cdada5590f575c8 Mon Sep 17 00:00:00 2001 From: Tom Gallacher Date: Wed, 18 Jan 2017 15:33:32 +0000 Subject: [PATCH 27/28] Adding images as a route to frontend --- frontend/server/index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/frontend/server/index.js b/frontend/server/index.js index 64eed390..4dc5745c 100644 --- a/frontend/server/index.js +++ b/frontend/server/index.js @@ -50,6 +50,18 @@ server.register(plugins, (err) => { process.exit(1); } + server.route({ + method: 'GET', + path: '/static/images/{param*}', + handler: { + directory: { + path: './images/', + redirectToSlash: true, + index: false + } + } + }); + server.route({ method: 'GET', path: '/static/{param*}', From 2b1a94fbfa2c68b273614ad4cf1f487b4a6f5f25 Mon Sep 17 00:00:00 2001 From: Alex Windett Date: Wed, 18 Jan 2017 17:00:59 +0000 Subject: [PATCH 28/28] starting work on impliment people/members module --- frontend/src/components/people-item/index.js | 31 +++++++++++ frontend/src/components/people-list/index.js | 39 ++++++++++++++ frontend/src/containers/org/people.js | 57 ++++++++++++++++---- frontend/src/mock-state.json | 11 ++-- frontend/src/prop-types.js | 7 ++- frontend/src/state/selectors.js | 10 +++- ui/src/components/button/index.js | 1 + 7 files changed, 141 insertions(+), 15 deletions(-) create mode 100644 frontend/src/components/people-item/index.js create mode 100644 frontend/src/components/people-list/index.js diff --git a/frontend/src/components/people-item/index.js b/frontend/src/components/people-item/index.js new file mode 100644 index 00000000..8bff9fc2 --- /dev/null +++ b/frontend/src/components/people-item/index.js @@ -0,0 +1,31 @@ +const React = require('react'); + +const PropTypes = require('@root/prop-types'); +// const List = require('@ui/components/list'); + +// const { +// ListItem, +// ListItemView, +// ListItemMeta, +// ListItemTitle, +// ListItemOptions +// } = List; + +const PersonItem = ({ + person = {}, +}) => { + + return ( + + {person.uuid} + {person.uuid} + {person.uuid} + + ); +}; + +PersonItem.propTypes = { + person: PropTypes.person, +}; + +module.exports = PersonItem; \ No newline at end of file diff --git a/frontend/src/components/people-list/index.js b/frontend/src/components/people-list/index.js new file mode 100644 index 00000000..304314d0 --- /dev/null +++ b/frontend/src/components/people-list/index.js @@ -0,0 +1,39 @@ +const React = require('react'); + +const PersonItem = require('@components/people-item'); +const PropTypes = require('@root/prop-types'); + +const PeopleList = ({ + people = [] +}) => { + + const peopleList = people.map((person) => ( + + )); + + return ( +
      + + + + + + + + + + {peopleList} + +
      MemberStatusRole
      +
      + ); +}; + +PeopleList.propTypes = { + people: React.PropTypes.arrayOf(PropTypes.person), +}; + +module.exports = PeopleList; diff --git a/frontend/src/containers/org/people.js b/frontend/src/containers/org/people.js index 044d7278..31109005 100644 --- a/frontend/src/containers/org/people.js +++ b/frontend/src/containers/org/people.js @@ -3,6 +3,13 @@ const React = require('react'); const ReactRedux = require('react-redux'); // const ReactRouter = require('react-router'); +const Row = require('@ui/components/row'); +const Column= require('@ui/components/column'); +const Button= require('@ui/components/button'); +const PropTypes = require('@root/prop-types'); +const PeopleList = require('@components/people-list'); +const selectors = require('@state/selectors'); + const Section = require('./section'); // const { @@ -13,23 +20,53 @@ const { connect } = ReactRedux; -// const { -// Link, -// Match, -// Miss, -// Redirect -// } = ReactRouter; +const { + peopleByOrgIdSelector +} = selectors; + +const buttonStyle = { + float: 'right' +}; const People = (props) => { + + const { + people = [] + } = props; + return (
      -

      people

      + + + + + + + + + + +
      ); }; -People.propTypes = {}; +People.propTypes = { + people: React.PropTypes.arrayOf(PropTypes.person) + // toggleCollapsed: React.PropTypes.func +}; -const mapStateToProps = (state) => ({}); +const mapStateToProps = (state, { + params = {} +}) => ({ + people: peopleByOrgIdSelector(params.org)(state) +}); -module.exports = connect(mapStateToProps)(People); +const mapDispatchToProps = (dispatch) => ({}); + +module.exports = connect( + mapStateToProps, + mapDispatchToProps +)(People); diff --git a/frontend/src/mock-state.json b/frontend/src/mock-state.json index 3be8081a..d7cb4fd0 100644 --- a/frontend/src/mock-state.json +++ b/frontend/src/mock-state.json @@ -211,18 +211,23 @@ "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "id": "nicola", "name": "Your dashboard", - "image": "https://pbs.twimg.com/profile_images/641289584580493312/VBfsPlff_400x400.jpg" + "image": "https://pbs.twimg.com/profile_images/641289584580493312/VBfsPlff_400x400.jpg", + "members": {} }, { "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "uuid": "e12ad7db-91b2-4154-83dd-40dcfc700dcc", "id": "biz-tech", - "name": "BizTech" + "name": "BizTech", + "members": [{ + "uuid": "fd853d8f-e1dd-49b5-b7b3-ae9adfea1e2f" + }] }, { "owner": "b94033c1-3665-4c36-afab-d9c3d0b51c01", "uuid": "551f316d-e414-480f-9787-b4c408db3edd", "id": "make-us-proud", "name": "Make Us Proud", - "image": "/static/images/make-us-proud.svg" + "image": "/static/images/make-us-proud.svg", + "members": {} }] }, "projects": { diff --git a/frontend/src/prop-types.js b/frontend/src/prop-types.js index f7baee89..cc1ce973 100644 --- a/frontend/src/prop-types.js +++ b/frontend/src/prop-types.js @@ -61,6 +61,10 @@ const Sections = React.PropTypes.arrayOf( React.PropTypes.string ); +const Person = React.PropTypes.shape({ + ...BaseObject +}); + module.exports = { account: Account, link: Link, @@ -71,5 +75,6 @@ module.exports = { instance: Instance, metric: Metric, metricType: MetricType, - dataset: Dataset + dataset: Dataset, + person: Person }; diff --git a/frontend/src/state/selectors.js b/frontend/src/state/selectors.js index 23a06af4..da58c2ac 100644 --- a/frontend/src/state/selectors.js +++ b/frontend/src/state/selectors.js @@ -18,6 +18,7 @@ const services = (state) => get(state, 'services.data', []); const collapsedServices = (state) => get(state, 'services.ui.collapsed', []); const collapsedInstances = (state) => get(state, 'instances.ui.collapsed', []); const instances = (state) => get(state, 'instances.data', []); +const members = (state) => get(state, 'members.data', []); const metricTypes = (state) => get(state, 'metrics.data.types', []); const metricDatasets = (state) => get(state, 'metrics.data.datasets', []); @@ -110,6 +111,12 @@ const instancesByProjectId = (projectId) => createSelector( })) ); +const peopleByOrgId = (orgId) => createSelector( + // [members, orgById(orgId)], (members, org) => org.members + + [members, orgById(orgId)], (members, org) => org.members +); + module.exports = { accountSelector: account, accountUISelector: accountUi, @@ -126,5 +133,6 @@ module.exports = { instancesByServiceIdSelector: instancesByServiceId, metricsByServiceIdSelector: metricsByServiceId, instancesByProjectIdSelector: instancesByProjectId, - metricTypeByUuidSelector: metricTypeByUuid + metricTypeByUuidSelector: metricTypeByUuid, + peopleByOrgIdSelector: peopleByOrgId }; diff --git a/ui/src/components/button/index.js b/ui/src/components/button/index.js index 7fa255d2..1c3b0563 100644 --- a/ui/src/components/button/index.js +++ b/ui/src/components/button/index.js @@ -130,6 +130,7 @@ const style = css` `; const StyledButton = styled.button` + min-width: ${remcalc(120)}; ${style} `;