From 5be795d210b040dfa09cd3ad81636b7710ccceac Mon Sep 17 00:00:00 2001 From: DimaDP Date: Tue, 21 Apr 2020 19:55:50 +0300 Subject: [PATCH 01/12] Sulution --- readme.md | 4 +- src/index.html | 118 ++++++++++++++++++++++++++++++++++++++++++++++++- src/style.css | 20 +++++++++ 3 files changed, 139 insertions(+), 3 deletions(-) diff --git a/readme.md b/readme.md index 3137dd2df..dac4be565 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,7 @@ # Human rights 1. Replace `` with your Github username in the links - - [DEMO LINK](https://.github.io/layout_human-rights/)
- - [TEST REPORT LINK](https://.github.io/layout_human-rights/report/html_report/) + - [DEMO LINK](https://dimadp.github.io/layout_human-rights/)
+ - [TEST REPORT LINK](https://dimadp.github.io/layout_human-rights/report/html_report/) 2. Follow [this instructions](https://mate-academy.github.io/layout_task-guideline/) ## The task diff --git a/src/index.html b/src/index.html index b9976a452..5109682f2 100644 --- a/src/index.html +++ b/src/index.html @@ -9,6 +9,122 @@ -

Human rights

+

Universal Declaration of Human Rights

+

Preamble

+

Whereas recognition of the inherent dignity and of the equal and inalienable + rights of all members of the human family is the foundation of freedom, justice + and peace in the world,
+ Whereas disregard and contempt for human rights have resulted in barbarous + acts which have outraged the conscience of mankind, and the advent of a world + in which human beings shall enjoy freedom of speech and belief and freedom + from fear and want has been proclaimed as the highest aspiration of the common + people,
+ Whereas it is essential, if man is not to be compelled to have recourse, as a last + resort, to rebellion against tyranny and oppression, that human rights should be + protected by the rule of law,
+ Whereas it is essential to promote the development of friendly relations between + nations,
+ Whereas the peoples of the United Nations have in the Charter reaffirmed their + faith in fundamental human rights, in the dignity and worth of the human person + and in the equal rights of men and women and have determined to promote + social progress and better standards of life in larger freedom,
+ Whereas Member States have pledged themselves to achieve, in cooperation + with the United Nations, the promotion of universal respect for and observance of + human rights and fundamental freedoms,
+ Whereas a common understanding of these rights and freedoms is of the + greatest importance for the full realization of this pledge,
+ Now, therefore,
+ The General Assembly,
+ Proclaims this Universal Declaration of Human Rights as a common standard of + achievement for all peoples and all nations, to the end that every individual and + every organ of society, keeping this Declaration constantly in mind, shall strive by + teaching and education to promote respect for these rights and freedoms and by + progressive measures, national and international, to secure their universal and + effective recognition and observance, both among the peoples of Member States + themselves and among the peoples of territories under their jurisdiction.

+

Article 1

+

All human beings are born free and equal in dignity and rights. They are + endowed with reason and conscience and should act towards one another in a + spirit of brotherhood.

+

Article 2

+

Everyone is entitled to all the rights and freedoms set forth in this Declaration, + without distinction of any kind, such as race, colour, sex, language, religion, + political or other opinion, national or social origin, property, birth or other status. + Furthermore, no distinction shall be made on the basis of the political, + jurisdictional or international status of the country or territory to which a person + belongs, whether it be independent, trust, non-self-governing or under any other + limitation of sovereignty.

+

Article 3

+

Everyone has the right to life, liberty and security of person.

+

Article 4

+

No one shall be held in slavery or servitude; slavery and the slave trade shall be + prohibited in all their forms.

+

Article 5

+

No one shall be subjected to torture or to cruel, inhuman or degrading treatment + or punishment.

+

Article 6

+

Everyone has the right to recognition everywhere as a person before the law.

+

Article 7

+

All are equal before the law and are entitled without any discrimination to equal + protection of the law. All are entitled to equal protection against any + discrimination in violation of this Declaration and against any incitement to such + discrimination.

+

Article 8

+

Everyone has the right to an effective remedy by the competent national tribunals + for acts violating the fundamental rights granted him by the constitution or by law.

+

Article 9

+

No one shall be subjected to arbitrary arrest, detention or exile.

+

Article 10

+

Everyone is entitled in full equality to a fair and public hearing by an independent + and impartial tribunal, in the determination of his rights and obligations and of any + criminal charge against him.

+

Article 11

+
    +
  1. Everyone charged with a penal offence has the right to be presumed + innocent until proved guilty according to law in a public trial at which he + has had all the guarantees necessary for his defence.
  2. +
  3. No one shall be held guilty of any penal offence on account of any act or + omission which did not constitute a penal offence, under national or + international law, at the time when it was committed. Nor shall a heavier + penalty be imposed than the one that was applicable at the time the penal + offence was committed.
  4. +
+

Article 12

+

No one shall be subjected to arbitrary interference with his privacy, family, home + or correspondence, nor to attacks upon his honour and reputation. Everyone has + the right to the protection of the law against such interference or attacks.

+

Article 13

+
    +
  1. Everyone has the right to freedom of movement and residence within the + borders of each State.
  2. +
  3. Everyone has the right to leave any country, including his own, and to + return to his country.
  4. +
+

Article 14

+
    +
  1. Everyone has the right to seek and to enjoy in other countries asylum from + persecution.
  2. +
  3. This right may not be invoked in the case of prosecutions genuinely + arising from non-political crimes or from acts contrary to the purposes and + principles of the United Nations.
  4. +
+

Article 15

+
    +
  1. Everyone has the right to a nationality.
  2. +
  3. No one shall be arbitrarily deprived of his nationality nor denied the right to + change his nationality.
  4. +
+

Article 16

+
    +
  1. Men and women of full age, without any limitation due to race, nationality + or religion, have the right to marry and to found a family. They are entitled + to equal rights as to marriage, during marriage and at its dissolution.
  2. +
  3. Marriage shall be entered into only with the free and full consent of the + intending spouses.
  4. +
  5. The family is the natural and fundamental group unit of society and is + entitled to protection by society and the State.
  6. +
+

Articles 17 to 30

diff --git a/src/style.css b/src/style.css index e69de29bb..f22910188 100644 --- a/src/style.css +++ b/src/style.css @@ -0,0 +1,20 @@ +body { + font-family: Arial; + font-size: 13px; +} + +h1 { + font-size: 17px; + font-weight: bold; + margin: 0; +} + +h2 { + font-size: 15px; + font-weight: normal; + margin: 1em 0; +} + +A { + color: green; +} From 9f3cef7793417b34d4833493a7e5b96c8122125d Mon Sep 17 00:00:00 2001 From: DimaDP Date: Tue, 21 Apr 2020 19:56:24 +0300 Subject: [PATCH 02/12] deploy static content --- .../Articles_17_to_30_link.png | Bin 0 -> 1312 bytes .../bitmaps_reference/Entire_document.png | Bin 0 -> 202793 bytes src/report/bitmaps_reference/H1_heading.png | Bin 0 -> 2554 bytes src/report/bitmaps_reference/H2_heading.png | Bin 0 -> 989 bytes src/report/bitmaps_reference/Ordered_list.png | Bin 0 -> 15798 bytes src/report/bitmaps_reference/Paragraph.png | Bin 0 -> 62922 bytes .../Articles_17_to_30_link.png | Bin 0 -> 1312 bytes .../20200421-195427/Entire_document.png | Bin 0 -> 202793 bytes .../20200421-195427/H1_heading.png | Bin 0 -> 224 bytes .../20200421-195427/H2_heading.png | Bin 0 -> 206 bytes .../20200421-195427/Ordered_list.png | Bin 0 -> 15798 bytes .../20200421-195427/Paragraph.png | Bin 0 -> 62922 bytes .../failed_diff_H1_heading.png | Bin 0 -> 1233 bytes .../failed_diff_H2_heading.png | Bin 0 -> 456 bytes .../bitmaps_test/20200421-195427/report.json | 153 + .../a96f14595379b7c348d66e115ec65a93.png | Bin 0 -> 12777 bytes .../html_report/assets/fonts/Lato-Bold.ttf | Bin 0 -> 121788 bytes .../html_report/assets/fonts/Lato-Regular.ttf | Bin 0 -> 120196 bytes .../assets/fonts/lato-bold-webfont.woff | Bin 0 -> 33272 bytes .../assets/fonts/lato-bold-webfont.woff2 | Bin 0 -> 26248 bytes .../assets/fonts/lato-regular-webfont.woff | Bin 0 -> 31860 bytes .../assets/fonts/lato-regular-webfont.woff2 | Bin 0 -> 24992 bytes .../b815e28b1e230cff6e9d7b749edcd562.png | Bin 0 -> 12777 bytes src/report/html_report/config.js | 153 + src/report/html_report/diff.js | 1843 +++++++++ src/report/html_report/diverged.js | 340 ++ src/report/html_report/divergedWorker.js | 6 + src/report/html_report/index.html | 44 + src/report/html_report/index_bundle.js | 3602 +++++++++++++++++ 29 files changed, 6141 insertions(+) create mode 100644 src/report/bitmaps_reference/Articles_17_to_30_link.png create mode 100644 src/report/bitmaps_reference/Entire_document.png create mode 100644 src/report/bitmaps_reference/H1_heading.png create mode 100644 src/report/bitmaps_reference/H2_heading.png create mode 100644 src/report/bitmaps_reference/Ordered_list.png create mode 100644 src/report/bitmaps_reference/Paragraph.png create mode 100644 src/report/bitmaps_test/20200421-195427/Articles_17_to_30_link.png create mode 100644 src/report/bitmaps_test/20200421-195427/Entire_document.png create mode 100644 src/report/bitmaps_test/20200421-195427/H1_heading.png create mode 100644 src/report/bitmaps_test/20200421-195427/H2_heading.png create mode 100644 src/report/bitmaps_test/20200421-195427/Ordered_list.png create mode 100644 src/report/bitmaps_test/20200421-195427/Paragraph.png create mode 100644 src/report/bitmaps_test/20200421-195427/failed_diff_H1_heading.png create mode 100644 src/report/bitmaps_test/20200421-195427/failed_diff_H2_heading.png create mode 100644 src/report/bitmaps_test/20200421-195427/report.json create mode 100644 src/report/html_report/a96f14595379b7c348d66e115ec65a93.png create mode 100644 src/report/html_report/assets/fonts/Lato-Bold.ttf create mode 100644 src/report/html_report/assets/fonts/Lato-Regular.ttf create mode 100644 src/report/html_report/assets/fonts/lato-bold-webfont.woff create mode 100644 src/report/html_report/assets/fonts/lato-bold-webfont.woff2 create mode 100644 src/report/html_report/assets/fonts/lato-regular-webfont.woff create mode 100644 src/report/html_report/assets/fonts/lato-regular-webfont.woff2 create mode 100644 src/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png create mode 100644 src/report/html_report/config.js create mode 100644 src/report/html_report/diff.js create mode 100644 src/report/html_report/diverged.js create mode 100644 src/report/html_report/divergedWorker.js create mode 100644 src/report/html_report/index.html create mode 100644 src/report/html_report/index_bundle.js diff --git a/src/report/bitmaps_reference/Articles_17_to_30_link.png b/src/report/bitmaps_reference/Articles_17_to_30_link.png new file mode 100644 index 0000000000000000000000000000000000000000..9e235bc63f1d795c9a378f87086698c0781e4f72 GIT binary patch literal 1312 zcmV+*1>gFKP)Px(+DSw~R9J=Wm_KaVSRBW{psHlS?r_RtL!>4;DRMHj3#3F!Pig>lxgjAS-F9TT zElE4WnI*T>bUAe?9d3-xT7|F>sR=N3Xbejlsli^-E;dWZ@@~jI#|HDS(djM{U&#Y{ zzxUqn{rr2M-_LjmAp{fM8F~L}2PPU%lNWZ!{BB>& zj)~=W%hq0Qu}Uc^hd&M*Vv|@ANk9q^c9$h$MI^&yTpA=&h>T?0EzQ(OFdrmJLm7MS zII3wi!tSypm=6-o)CSs$6>*@QSP@C25Fy5;@m;>qcqQeeR&Bi6DiV`pgxAua>}2yr3oEbTy6WdJrLme0yKxi~>=E{24Vz{$l4 zn%|n%W_nx4;+sXhJa`F@=s_SKz_Y)e;iz?lY$c23cgrw4W)BkW=%F_KRBRRpqNy8W zgV3e7b;u1FwapsDpTvQIG&?3m?)9OJ^Y0L|2{V@I!IQchaez5D7Ca)U5C65OtIQcha) zl!jsI` z8VCEQ``BLE2IFJE_!vZIqo``tp5`Mu8wKNI24*aktjb6~N`v!rV0;Wd{Q3czl}wKv z#jzbnoS%aflTi3rfZo=jUZ_3UdcJ*bq2o4^RT=TQ_*iREpWW~^tenusgO{#Roqn7i zd0#I8luk=vr&xsfur&~yi@~@wP}6FT3EkIqkW-qejbz)tYNKVgu)eqMz{~pHx@AKT z#Y_B9^o%3Dt)r?{kq{DN&7(ed$0IfugV8b2zH0ZKOOuym38a_=;ZMOr>@eMkELJdXlYVAwCsdZ|$g}329H(+sLXl zBWm^GDi)>}P&zGPE4+mO6M%Z5_QWB;1mM5#hnF@RwapqxmN*_|L+NQgMit{@M(WN0 zfM zWmU$)^aAF8nC~$R^I@=4EJ~-Pfg3cwHeAOOLc*#+K>v?w&d(wJC=ID9Ina<&QdVb~ zJIpx_OUW=!O?6Y_Yr_i0FbUIw)zQ&9Z}*vg8uast-eP;1DW8?mGFuk%6GFmuO^WP$ z`=|RT{9JI|fCjSgv4H14K6gDtLP%hJZyi;wisSULV{C1H?K(UDL2V=u!TVp{yRJjA z7Jhq!CTh?47-Uv5*TJ=6J1Hb@g+p3rqqEVG>}kMxiHEYGAhVKzFfBNI9)xJl&*3sej%X{qHMwDTO@9ME WG#$G1?~9fI00008oU=k)Zt{`b9}^}Kvu+_!5MItwR$$8qfX?C<^sJXVk;K0|#5fj|&HxG$}YKpcmE zo_s)b68@^|Hz0w(jyzYEl|-GA)J%)0>#ArYCF+HYT>&Uai3V7Y&ZAVf38o(r>?8LJG|~yd#!j)Xm)3J z$0M~c>86tXLGD*UZwTJ76SmcraJTKh0JL2=_SCT}iQ~!TG8Dd8~$$t97 zkjq7s?qX1b-@=Xu9bMR|0`+tK7X43WrX8p}Jw4|Z7Np9xk+?N1)OzT6U(8a@NMs)(#MC^`AYeNT*AT@Xj#=Y+YAv79!y2de%tK2-&Upd z*|N^S8u$L;_n@mi4!}o~t2U}9{1yhM|DeSLjp$D>jwUaVzt zF-Io-(!IMZkw+0z4nnXp+aBUSJ3FP6F8bDw>#%eE*}dHeYYoI>e;10Nd%a)uJ-4eg z1gkZOz7W;&Kh)AASv_R1P9-xn?)G1#7`}Z|fRn;%W#nxHDS?Z)71=)V;EPZ&47T@h`Jv?d>18(ZX;woQ*149NI$qLvo+_6v^yLE zm=#YY8}gF3?WW!Er&L@39h!VtS#kSdq4wYrsQ@DfgL?w6BIVaGU0ZeNA}5dT$9POdq?%-dVyU}^b)WYtAm z;o@Nri@sP;KNI#F^a-!esJ5yTSmCnnpr$36n*RZ>(ik$Agl(RPM6o=N`T!i5V_t_w_C zFJHet5ie+O*eRn|wKeKaE%f2ThdSA-o}aRszJEWOo{=%V>>)n(SdpjPEd4fCU0eG& z!qLeoIW@I@qXrJDQ*REN#lfV+fs{%T{+(cobb|U^;rZZC8f{c!o33ZA3uH^KY8kuQq~jR z`LPP8HaiBURxTc%SBE=Ehu@sXJpD&Ub>Ba{0jEzg8G(qMwH>VrfX}9y$RQcj)6%lE z6mfEPw)9d|R5UU$xLag$=RH?+Tg$zd+U%!(Hw+wAYJ~s%tID;PSE9`6Lh=fOFM7!} ze=sN}hKlM8d+W1{2RiwKCSrX%Z}19oa+K`URMWSo8sAJ$n+SzpUi)a1FL(18;zLZ# zH#pSAI@R1 z4Xv$bSRx-v(b=Gt+gDcX>W}ysDkt5){u}2;oWvU4_SI=2%KSiPZ+kLKdG@sj8ynll zCoIVs8K<0=euX2`A2aKFdC?tic^}T+A3Obz3Ay&822LPwH10Sp8&<;tN?17i!vjw% zD=U2?qhnjkW3slk9Foao2z^gaS|4Q3jhkBdxg(xJh`QyiNo?6zlx^QG9{+o5H<>wb zM)YWbniyReV}e3zYO0Ye2}Snc!qBf@$5$8}M<-XC1@=>{St0}DhvJ2u&LF0Kpl!mc z(G~Md4p=K1r>lBZE=n`c_qOeYsQNgliAhKpE(f&;2fb!wm8Q;m@~|}pHkTnBv67;* zMQu3Vwt!5kX^_$Rmik0v4M*za?50@ za$A&a!(~!D-RQpTRXgVReg2{oZ{T)DsGIrgyu3WWTGV{hklOO~GvBPWFyyw&_ud~_ zVW9qYhJMm!O~B%;NIXX5kB`e2EcPsXy>U`+#7EC#w{O~E z?Cfz8o?lD5jURZtxN{X*_2rAt&WY%*QJeGMO^KR=~9uwudOFQ`p{a_<^fj zuHiYiz+Z1Y;^ywocVQh_7NQ~6hwWj(G#uYQ`cB3 zNSiII>3P1+ufd;r_39O@{945aLE|C~HV%%qLiL0zc`{Yim$%%ib&a{H+Ubzwx};U= z9%RWF>`ZGUYqM#QL)@#1_J(JDK8+C*{mJc^{euZ?KI+zN?m+H{b!wjM&4_Rl)n(M6 zf4RUbbwTB%TOY-}@6ehQj$~4Z^tq3tU#MrQ_zwi#kHy}+LejQ=p%BG3GczN%eCezN z=7CGKF1&%crAETsze~P*L{;x{+%adq-Xy^l5rP*_w(5Z=y=Unru zWf8(UmB)rObG3LngVv}L*p|T;yPlXRa>wwH_PK9rjZd{i5IdwUIpcPYq3FwA`_>YbpG#P9@bA%TcWa6JkK_z}8p~?&7iLamJ!xJ0EmAq_?(S|s*+{&xu~GLY zMD{L@Cnh9BX84PsCKoRjcxzWX-Sti>|M-~M>}LI{OBH>URy@*%-`u9e#wJn1c_}{C zb7kCa$ga~P`LSJJh633>`{?7drH}kV9{abPRnB@M6*C;;|MnF9vZ>y<83pFm-bNBr zUxeIEKDQ4K(^i%b50>R;b9Lp;S8Wbkmf{uuNhq4V>Qb2l3(>EyK@e{J8^bQOPw0pz zHLa|0f~N}aoaO75_>;%Iok0zBBF;;`p~B=|$J}N!tbFOUK>EjoKJk4;+#y0;+VEe^ zvad++|C8NKT(LQF?cXF&a`Q+q;(t8R{=eo4I2W87E%@sd7g6FvJRbj;J=!@XJ`XZL zc%%=m?}*CC%0edT{N>5t#cEy}7d)zuL|zU|F*^te2^s(X`fR3ZHd;gGpO8)XQGEZA z76Rf40s>G;8t30v5~1jZktgqzXg0*~JX_hBO{$+dppP)8F#NBVKI7x#eo}~rPs6k8ExRXAo`jHm1VKYX(rBAN!yp_8d-Zo8r z6PKoZT1Q7m&~@$89=auhsk^`bHMskXcB#K5%%Zub@NqjYFI}FUQ$Bfl>^p~%4^QZM z;x6rZ)tZj$8ycq2?|X>by6vxw*RSmE=dlcojO6ZMw|4o+Prk(AoWLSb@XeQi>kkQp!$9{>CBpSh_5*!--+O9K?L_40r5D-F&0x&x@w31_uUsYgr@D zh|(!aUBBz>Ebu1?X?8^XeH&D^)xy!b)ybyrv9U0@o3GreN%Spyt_C&mo?6Sz&u=@d zb(nsr^?jM?=FO>OpNXI&0n#Z3Z7;XqC*!-m!O5zr5pPd^`S(0FxBY}K1rY!O58|!+ z;=Wg{sL9x$NDtBL{qFLM-1U=z4Tg_0R>DF;=%d^Crm~u5*XffwQ`Om8xsSiPD<>~c zMJIFr?;2GFyIj1dgsdd{`w>Ja-BP}ze-8^0z56kC#NUgd-$nc%{RDji>^cMrfR!?J zHb09JmP1u2NyWuOA%zYO4NXyJE3GZwB}?5rcp9WJidfqsr8eU+uM?5z7-Rv3b!jjEsJSbem8g8nMN}SzWbCuRh*Cpg1{Rb+S0?O|e6QBOYh?QKS6J+e%t2C-0JS7tu2jFun1aRIwDoABFq z(PnOGsd1#z*?w(`kWKV0IEi{6TnS78-$#Fi(+(dJ67Gr8*?!Gq*Qy+v7cPBRWKBlmpGLd*Ac$T|61sGz7;t#riy=SGW#_Hw5 zU_Q-E7Rgp2OISr{N)o);^mDvjoax%5j9z8Bd)~3Q+NWBvB`=hyAbhT@j7!PKWt%+k zC3h301Gf?{^jxMjP2+%JzoFrtc7@~VvuDq~k!FBW_{a9P%PY3nl5$~NCp^;O(?A0l z36o+XWjaR>x5XH2>G-$-RQ9|>!G;BI;NRewwV_HXjf_dKXE8!trYbxJM9k5`v}*zMRRDC)~ZxHD4+5qO3*kQMhRzEoMqRmS!_;^LmBLQ zTA(E)By25I`uVl=ue-}2>#VAHFcf8OUKGqRk#Rd{V$c|8iiWLI%xV-s3`w2n)-R(Sn5Ib6#i|&^oak|IAo7)bmPI(;Y&{E9Y*JFw+#GX9yio78 zY*WvLzO8{WH4*C=s+4@J<8UUM%-ZLuOVwj(HfkBquPKFMH+FvxtBiP=?pq4fWF@H_ zj%3lQZUy!3^dM2;3601jbr1oD3XIe>HIIJb>kgAig)q6@rg!i%B!n2H1dL3)tg0#) zQtM>Z?Bwk1v%S5&h|=TM&!1laj1`!2jg06w6fSG!aEKt(12!U5%a9~}h>d-xMWUSb zKK{KfoP+@Bqu?aqEoy783fPWH|5J!`i#lV6`BYM;Z+1d>D=6TiBIgniIHmtcNjdA{ z!?g1k?|tj*y9h+*Hj@p;vbwq&>Z4fh4<*r%lrTmp^a=X+6OnivsAC-z;-w))1x z^M!%iz181j=Ao*;7SW;)wC%NIGQD?dp~kf9bnB(#M~|RvJaO{fdjHAi8Vjenl|c}z;pj9e=ge^k_ZP=o8A9m+R=MTE4_*m zm`U zo2OK%C@)V)SVOH2!x?4edhIQWaLAA9Z2ZB_GTePRx`O5c8E^1UST2EAGcq-mS$Bu` ze|o5ycFYPDk>rIx4O^z1bqz8BlcK|QiNm6C-PF}wozmHoL0wDq_Kc$yzoCJ_ksS}+ z*0H9m-Z?vB5)xyN=@@s&<^ef@w>0LCIf**$Uk{lNWJ=$v-M0{R1N?%K#~4$(nJ-gN zOfRRU-9QtmFjdUp-1sI_iAMM=k7aEB_$TX_Obrv4%z7dzN+SO4m(q@qH;LdB=4W>d9h z>$|y8kK3u2M$Az#AvM2T@JiAL+zYVCd`>F+prlaG@a`w&EU5dgB`7=^u|g(}|F~%z zO^Y(W;(6j@WhD(Hdk%-SW6RNJk3otFXWzDVzf>mc)IaI(IL?iWlM|u;sCjv`ItZ8x z@lN^k*)Qegw`dIQ>>jgU2M9+<2e(%z5v7~%31aS-A3b{HFy=QDme(PB%~yKSnH#M& z#oGx+C+f9Fnfy4D{t%W%nt>cjRm2dt1r)+yq848-2Q_dC3TEDVrQ|Nuz+#IK^w{Pk zFsqM6MHlw>_vOU+@ew4 zw~Y+Dgy#ml+ysq~rMGy1_K4!kYpp~myP+p#;k#oVf-k|;W zVsVH7KmW?cyb92JgqAfwFR!us<O*_hYD*D?6!8~T71G4Fb7 zAO(m$aeZGhB!)z=fXnnl8cL3KapM$cnG@3KDx3^R?oBGf?|=HnPlftoCm5`pWvu0# z?WkFR0w6CO*katXaxPMJ<9psnJOic|XaIpLjhRmKF6d=DB7VgkUShe`oeGQsL0OavNRQxy&+9}>kD#laroCz z7qYUl7AEA_rC7>*D0!jf&cGS*s=xoKtb#WWax_5E%J)LGo#8_1quRw8VpUJ$eq9^P zNbos``Dl8W3Gwq4L7%hXMr2!Vf5>>0ZX=!h-gvqO*%l*kSY!HE) zwi*bv5(vGFfL%+J@Mc%@6&4XWQl*}DJMtm1yL0e+LSY905MQv>?(BQXZ@h@BYM(Om^sLU^wF(*T4hhy6u{7rR zHJ2rPJQsNPDvhgCruy~s=FMX*;tvE!0-wg(Ed2gqsukJxc}YQCORFB*4L7yz3=Jip z>xRUt4);FT4J^~baCOcR+h)6UTT~ti!Et@or2 z$26%FH~0rE7E9lSnKpTdpt}OEz(EG*4tD0c^q#Wmr`_kj`$%?RRpf~d)ZtzW$hAwM zP{7+%ZnW8q{!S0;!}iNnmo1!QD|>$V1uEtO>|ZQ)bN9FmRxN+fdiJ#qR*iK%7&&Zw zw+LxmX11MSvMz*_YEt_2geEnLz5X7rjr%0z--z0{IlT%%0 zIJgn<;MNz|inV2M^lL%|)GXi64h{~|`Y*>$pGJ&%A6Ac>moPju6fjd86?y6phS&C( zaZ^#K={>>!3@31A|BBfB8QY;SM3KJ*QV6Bnpd zt6rIif&dj7N+K^f)7<=Kn&*2m&~)X4Gp{9kP0S)qF$mra32cr#OJvVfE_2|dzzg&X zqV9`E?}g=*x^i?E{eCX`dO8x;`fF7uTd*g`a3a>Uaw=5={rlwV%a#Y*wRHh`j(P1i`AfNg8-^!kqVZeA98F9%<%;d?-o@x(*9 z`;8fIAe8ku12;F#B5E{S@?)af!~NxgiV6$LwR2WfJrK!+GKJfvkh@1}*rW*Oz|=^;kFGYwrCf?J_d^ah z$%fIjcw#X4iV_sYo^nXDncuCbY|tv~5<{?_FQXRf32W&i@z?@lo6{#>se|)b_C9o% z6@R0m^IWQEQ#yD@lH>>7vQbm$H$XO>mgt>hZaIrpk&0ILDmM)OF$evASygPwh0Qx5 zkqQDl&&Umy8N^EVDhql=#1nd`wxc1hfYk9F_5c>vtyzZqcL80n8N@z2- zPOpV_@+?9M)njwzHUgpb%EHz*-!vtE%zeh!MKtuzwQEu;KTgNUbOH&|u6DaL+nE$? zU<$DQP1B@8LHyZU;e9VjwrImQ(sFGDzvuw5U@(PxA+V!? ztEI*8chSTEjha3faUP2djYxz@Bh7H6c8oNv>D8c~_Xy4+hmw*Z{0;9m99x&k5P?s} z41Yi*=S^0H;5xUwTqbr*(lbr8#$!i;r*mzJOFR86gWHmDuar%ngkb zFRK{*Ja%fI`0ZaUzy|*u1i8ZeAG%Hkvp%_(^t1QhiYJk_7%TgI53v3DnS$ykp-2v) z5iqVCt?{g!7I0`ENT%AiSKfki^sB}b-NQd`{Q>(LD|hd?+#y*pI4%tlOp50g(18at4njigT9MTn==I4k3C&S--m1KHSgzIQOXwR{ z+lNk;y?L-fV_RiFb3n?Ak5a8jzk0RZtRXRT`p)*p3F4fJ{hYlcscRoluB=I4HFINI z?O5HC({<)44ft%oU>LJEEuOjdXY6Phr1#1opNf@nN2rwq%PS~6bagh$aQ?o0Azsw= zJd;BFTYjmzR~m;0aDa-7^(?%FAowf-Z(tf)a&1&Vg=2pZ5P0^DA%E!R?4fJ-X~g$8 zR0bm)3u~F9+qO4)745OZB~en*pan?jp39?2h^DePTtc#|hgYAn=BF14v&(T7c@jm& z`njJ4Ivy+Nv4hfaP2mI?XXmY&D1+5otI`a251*3)&-LLA^NN$odh(sHT~YN@&DpQT z<;=~^Peb`)bt{i%6F07M&XdjSm0LVLqX)?kPXEvGPS*S8w!1iYvMcC z;+vqq`s=H`(I83cHTP&(@rk98N{8HBe=A)y5faMT;J`+6t zU=(Bt&pP76lOFvC=igu8{4am|-xM9{>s&-7OeBH|3%S-V+GoX6}M_af3~ORyicyJ4m%s0zP&v; z;!8on5yaf$qBOKDW@c^zF@Y}jHL|*fAc|>*JO8PxbltIhF|zQKJz6SF`9%uz_IyUt z3gmCrS#1CL6up9xqhx1ZLqGDRTXiU4+F$_hJL|K+jvxt^gf=bWH!Sr1>*v?pr)N77 z>U%R3ry1@FUg6*KTbr0*I3M6!g@o+)inzyD>r2=F;>kC!PWW_mC?K?$w(@gwe(N1f z>+#lt;lg)K6!$z+J7ycJ;OtzMdK6sw6=BEb?&`m|3}>&pmUX@uJO<+p31bfkb8UZ%>19Ua2A z*3Hdj?qLvrms&Em{!i!Wi=^B^{rC!d^nWhd)z$vukuPyMd3g+!=a!IMf3NCobgbCb zBX|DubO5zZj`+{3%xV7@%KQI8MI)o}QwMMk0fm0lW(UM<2u|E<*e<{5!t``Bm5+xw zc;()Y$85NIa-&ZOICL$!Em2TesZ~y|yMF4O_p6O=GXdb#SaPncx1;K(@E3|Nn6pg# z3o_B0L8I0bmF7IoanWhwDPf=-N^bvUljB&5;(xMREb_XSD+R@s`SfSwk7_uWzD<*N z_4LL%9-si@J3CLpVJmzA>I+ENN$x2U6$~62zakby>pN9hN?EGefIFf7g&N<#a~56TfV~0T z4^vZ9%>&^kn~mkR`vB%D>wBPo$x*xKFxI-FP@u)#ap3tPQhx00KRT%bwbt?{&_W~+ zYjUonEQRKe5flheg|-+wlm(@Zo0v<9Y*w(BzA{}<&mRQ3$tfZd^sg)_?%~(xivyy8 zlSyLG{({U#F-iPhuIjNB!xRZ#USF^+SG_dlyI@jGZBvo6|DlxxZ2u|bkAB6dEa>hg z7t}PBI>!r1q3ca{A>m;f!=d}{x+8lSwc78kt%2I(n%dfZL|8~+y9WoKQL-c`WQ?!6 z{9bk8%{FF;XN1PrO0+{cTkooiXzV420t@!MEGg5R#9l_p3Nbp;JiS`>!#olWC4axH z`uZOO{;R9@?PKkj%ubGo7Bk6b(%WGN8mS(ACYXhVdiV_ag-njx3VCUVoT8 zA@XE-Ftc7gi*oJ-iE6od^fxOlP^&fm0dvP7n*abRFZf=Q!l;0fJ0>{YHW*{xSBohe zeq9%XqU6z_5dNf4q?t=N@{ANRg=vks9a<<7&-*b-W`^KELDmDRs42b-B-iDjamX9| zaF6|)saoFa{P+gfNxbfCRFBBDnwwU<-HUm)vBr!aY~`PG`rc7WW1uSFne?VsfOS$b zsef86`jNNJ2*t!Qp6osk`kZ>$pd0eh@`iOzo_{3!ymiG;y4ej8Jbxi|QLbZm%aBI? zpgpJ^KumM(d_ePTd*eyZ3M8@z`@u?pUA=$M>Riu4(#Qw%nV=78wvp*d?lk?C>TKX{ zuf?@bKuTq8rjlBCDd=APrgg(u&)|dN>I&#G+)PC(?-nC@7gz;x_iz>4z;TZuV8d-P z53z;qrbdRaaNFBoWmKh;0vA*_8#BdnJnp9!2G)S2=Bvvp11K0EB{R^;oe{o6YZ~fqwQxc(-Do*A)-HGhT zW09PvcD|0Xm%Y*hH#%0=1l0cE-yDh!VI0{ z@D^jg^V9PAa}{K3(X-B#MHCM- zIzTemCagKF#vUF1Fb({TarrW2mmsXF_sG*OXJ~Vr?V$bH-X61=ir2lT^!8!e+qP-r zF_ZrdX*v{Uv8#Y-7ou_u=o$>k;Q?L)aOb?EW@)*wcej_t30-ydJK{YEQHAe~1nf{Y>h@@J5SRs`c?`09g~c4>Gn|7@ z#Xx=41hAbH&?O31Z~s09 z+BB7PC6-9Cf1<0E$)gaOgt9_f1*jIUQ=1bfS&9h*_cofiVYe# zG;7Y5^@!g=95r?Q*=otmXU+#4XVS3$l4&}{d6GcvoNu-)f5jlR<|av>r7SCWMH zsA}{E|2}}zqW84>+h%;GTJtHr1-<_jYC`$?OVxy*f37znHWr{Qh1`CeX_IlPSLs?V zXhOhXLIDE919~)Z>^7(!AJdvQ8hE7nXRd5#!7DP!kL#M7i6Bxv6V%Oa+)HZU=7je}U-+X9N4=WkW!s1_fSxQRG8{yC9^1bwSKakY1@BEC6garfYAd z{QYy5_~a`>AvQTe=oy0AP6OF3n-YwyFn$*IYkS>7x+~N1{rvdMaUo=BNcmDm^)BoxOy!HfrZkvd? zZ?Z*2MNQEe7cf0c2)n}@+pqf;{4sD&S8QLF3Lw)j1|meWy=I3+nfW@jxoZnhczyr= z@`?)p3Fx)w-+I*yQa3{^ z0P3Q^whip;x;Vq&V;~m*76m_r?B?4rI5+#%iF=SlwR%x>Qbo$^M}-QXzxQbp=LQ)e zwO4lc)~gCp1mzxpd2uolq4O71Um5V{v82!N0zn|6p+Qs*Q&xUpxMcji-{B>0~GkTK`#GZsQL) z=+^fkkbr{59)y*TMoKM6MS?e+&CKpc!yz6hjWRyH=R4nkCii&had5>+wcgVE1Lto><# zarjEoL+@KVkDI7TidiA+iNz3)NwGh48~);3j{kvgYyV&It-8O0uIHW56-jL+;R&jk9rZFzFy-$n07$8lZ=v25&K(5?L zOG`_BwE=Eg*f;^V4(0>`F%pN~J}3~k@eBEB;awR0@-JcE3EZJsn*&LWEmhyNlcCX1yIu)Zr{_Ih3MSh7m!E-&0ObM6^4r?} zS*&2m2)6KbWtuZ6Ylw~?wHA8ToSC1~D9eZ8LWi&qha|ZD#9LZh6GPKFmaH43>2O$( z^Mc(JsfEKks>uDxfm3}(?`vq1vM-4kJmJqSs!8RHZ>X}T^6@W589j9&0WN#P#7JTET}itH8j4}?zPpL zdHG8wmu}}D72uvJUc&5{TqC=~5Z<+S`2sS-q_|Mt2A_&@tydT#DHGI0kc}VI?v5#>evJ^YxH&30$pxG)0#bv0Hk0%KJJn?2S^3Th1P2ubZOm!M5Kae=4Fxw= zC~VdJ6au{46B})3IEB(uQ;!kQ#iQ!dAndy=?DyGq(1wjFQC5&E7>ivzGroyMZ+jmu zADZ7(&TWl~?5HfDRp2ZNs+1R*zMa%L`6J+hgZrH{WiB18O@E`{{ME_|&%^z#&^2e4 zNkYkxDEe)9I5rpo%hc_ASozKBMJDZ{@2HcLlL1JXuo?bk!s1JQ?CHw4ZB7wjNdVOpA``*B1)U6B(t+k%jKnx`Z-o zAXkgH)JeoqOZrJ=gH1=O4BNHColfsYLSED%viuvk`*v^A0pxHm^z(P~CvI;M%8ii` zVlW%viIZ@dc_}6*&|JvkxP92=VQ=ihu39$G-sQJk~v$t*%QUuiO2)Zn= zSDmF!@{owm+3C>>ID=Aeo-q3TY(0A-pwV3KK1I^tVqSy%w2+ZF0YMI(x=Z8;AaSQ z6+6td-1o$;C&{W7D-DJ^Wd#&Nczd4|*5* zmbg*6Gy59QrRnN=>p0P0svMROqU7D7YRj51jLfcZLLw)c!x_1Qdl!pBY>calid5*R zDbJmpM(024Oe`$H%N%7DQ=b-9jY=cgE2u<9>;TTRqYbhZ ziAw)DDU!)=uN3`kof!wpaY!qQfYv6N;p1^crw|Fu(Hc;lRV;oZ#}i zbCaN=Bz%@c%>mxB&ALQJus}Z7aN0;PO{cW}7BuC2a$9kmn-*6t?TcG7{UIw zyl%QzJ~~3no@#&x+@Xso`_|-}m5-oWXlZ$X%EHe|3*jKLfk3Xsks#{Wj+&296#q6e zlYXuZvVKCcvLFo64{{I)3NZInb%0;smM~apcwRT~uogwv1Xz0Ab!)^qZI#D@@I-2A zVpZ^6%O}&9<}xs81lXG%y#@z7oi!U%0ZSV%=B`Su;upSpPj51b;pvdC z_cG<^w&kt1qSG5+SC6z~auvtqW83iz3g!)vAa68a>Gf2_bMcmvZknr?;_)dyCG40# z3G&DX=8hAOYkwE_Sc^b)T7B@jNs%>YMpVY@v*4+_zGVxYfk$Jv^b$JaG;dIcOu)2= zACP*Bnp<`jahl&+o9rHfJWWM3FooG#F;XyHn|%@#Bn>5&gTtjq<#WiBw8%S{%_Zg? zsUZsvJ^4tI$W`O_2YFpno3WY@ea@kQ6L%z=+x#bq5IuAo^m3pb09vSzCULrEoYC$7 zB%m{@#I2cu-glAzN>NL;WVLRS-XVT4s*L%(q^{S2Y1!E?W6&+Q4#PvN3H~5Bo?722 zjkl6(w)se+bslOs?uwUWYd!T`aaAlpCHG*kYk`2e3s3!qKJ~w(&-iK`}RXx$}WFPiCjV~>%LLh|RE7|MH_ z6lk}TcSIy|*I0U%6qVlCDt2^q)U0LXbNppzubH@(Il;AVueEVlFQd<{ZL_olYzOaE zQoOpfG1YPbI99#gEppX`>!gf}!=QGeoXI6^<7V-O?FXKcUIkl`96W*E1Zoj}|2WkA z2Pzpr6ilvy(a96Ndn)!LV^n%f%ysRD5;{mYG%U<=?a7$!<&!3=1g#TPk3hqqEm20l z(Y`3eDAd;$5P2@ZPDF&N$6s2rC6U^RW?{MH9i!*LV7{J!+*qb4{;@;0@R<#ROqou~ zmPv&{H4Y}|(otT$8ePcT+GmxNov%~lp%GC=6Gs-*umY^{!)Ab4HgpFG(=wpL@S|P8 zp>wKIIsuuBEN(A)+K>=54LgDli#w&lnB896nefA6_lh7HNUe;!RCfG$2$&{eLc!eYt zM)*JrM}Tqwp=N|cVq)Ur>JvnqjWzPM%MCS2?Q^x+K?Mk~>8{d6h`a=)n}gyWZeb9J z5HK^leY{i1p5VNCSpU~-^PB-EHe zQl?J4^@}l@xu(ovA{u(t@q6_Wd&dab6l6Cbf}{sga^LJr5@5~& zuQ}!ib8~%ug7Yd)uDJ1Pz?>IhWa*(1O&{_TECcj|*zc?3URMwwdw~F5q)+a0`Qd7q z_xsWkAZ<{x!c5C86sQjbVKJe>WJq1JSWE&?gn-rHj6g>;Pp2|{UX784!AzzW>!^2I z1b$m)Gs5kpoV#~|3D49>!j<*;2@5nTU=)UU&Ai`6hUh8?;s~>lJUl$HV=2`MtzW&^ zo*1Q(D(v!JA+a>Z5Mb8gS%HHO6=ECWF&ebN7)#TPT;tZCdcA{c`2^!gAT>*;aO>l@ z09_$xEzksyP1G|$HoU*yO*b+rqmPKmScATr0GQN6^H*K2WIZ_p*R9Lb*86ZYWVjLR zLuf{*TSdTCb4T|ja_2RkYw+jgGrx)@=&?V#kJf>W*f0GOLTD*GVF<5-&L3Rqf0S<# zU4ZfpO-vddxBMAW`B$ZfAU1!q(NA=YV{;=0ThwY=)WZq5wY?_OPLORY|1(qPxE&?T zXRm2OiUA*xz#C++6Ea-KW_uSLD_|_p$xZoya8QVVVE`aQ&dgm6jVv%Tn30g3R+-gd zi6rQA2xH4b!)>0MiyCaVrM_mvT?78y7vQ$Wz$CI z&Q`y#SQRmlGfXyPobFi*^dW~ob8JYbDuJr~C}Ln>0Gz>>($bT^8@^kx7MlBO&~6}8 z|A-dX${{tq%YFwE==u{E@ABZSGny<=-O=)$ogldlPK3DDTZ{IN>{{TE&C{J_PLzgDO&^)vN*op6CyE%YlA<( ztPke&T%o4s?mL?*DvfX7_P6n5$mYdbRnYugD}LuJW-5$Y;_3`YtZ2FLrK}gbb{1!p z7kS$eec)Rh5!HbJ7w57uM-I(`b2^~1AwU(F8Kquwu26g6sRtc=7=ip*&lW6Ol@%z> z;Ag-Ksa*O_meem8MVdydh$#%$fnJjUHSrr+^P{8xbfRAsxICKP;AD3i1rPx0=DE4K zwceK4$HAAi0gM`-5N+UO~MBCE-`^LvaWZ zu*95PT*;?T#KTxRkS+woiVwoJ$o+g7S{vrkt_t}k=o&)}7`lFOsJ}p`GZPhp4?M{4 zx44Zfr!Fy?kVfL1o-;C8Ms0$=iPZ7jjV$4K?(+d=c|v0TcSb1O zps&m?Ag~HsPiQ%VXB*g4<;W?O;>W4?-=*ys?(U{frIgS$Lhe@#|`C8uR%xn(7s-R77s2~qwFPR=_vWkCv z>iG-r-@YwvI)ri*_%Mwkakbt0Fe|MX*U}qkx-ThUlt*rZhLG94M(+c&6H((F6G`0< zJz1f6iz$6dsVI0QYOB4YgWB&Lre$^=?nB^vjyU@XOCAHlX8;Y3lK@WMpOg<9T!=&? zg1;Y*z*HK8RLl>F)q(aLI@_vMnO+my%Lcr0@`Ddeb8cq5mb|NS2(M}GA9=!(R-Vor z=urm^2iok> z5#|(UUYAD0pfzD+ogiQ5@LD|!+<0$-qPET(=GNO@_m8}7|5wuYbsHpo>A%1$g-WjE zet9=*YCQ7hpIZkkicpCxPNDKfVjC>t9Rm}tlw>RRFZxQ%oMep|Ch=}(X*abp;yEx7 z@k|*hotL4Ed?wIXg`7nN>zNHoC|DbaEE3b(*n6Dx8A?+52YUoS(VUn_2g>92(Pj_v zWsG|&$dsBwX(P;^WcT~M678$4tgIv+E5)p1F&Ky9)(W`h)5LL!iO5Swx%@8x4r$bLopIMQRb~vft}$(x7~T> zreWrZF{0%+0Fly;;Dn!it{33r>p8r49)UBI7lWZi(fAnv+z_l{kJZEEWncpX zsA=gWyuh&$w~vin+oTM%<4S&}@J1#zR?HWcEs8rQueKsT2V*9~)4AyA*-l39+P+yn zY@nyBJ5W_%t%}qF)u4H+7TaZe7$Kly|3#8xb)VIfC51~mGtKMDm+zlBg12YA51tY3 z79j&YH4pKt&_aS>%Rr&3l_gt5kkA_&OZ&a(Xm4*3o+D-5*xiR7LFRm1n(0QRh8X`u zzW08%sc7f4gI~}9(g@}-;RX)xpIyvE*FC7@3yKVOMj~TFU%TZ@HCrbMC)3uvp;OYU zKAb)NXCv9=aVQ1C0q}Tlx>t|HOIKR=;y%nz*#x^{JBp}kyYjr_ha?5CiuXleJL^D; zWPBe574k2Y{T8Mquu>JjJl^$vs3$;-RR=9);(S+8I=JD8E8UA&;2ETLYyVW}1TmSJ zR_OED4)gCT_}yLThb&th%8Lx&(K~<$Cr|yaGES2_6V8QNzHS2ub4EJWMx969Pjof;%$RgJ%C;+ z-TAHE=`HX6!96c;m9b-&cWb2aF>)tiG{fOb3Bwfrt8Q*g%!56>RBUy;0}~Og4tl5c?aKzKkR`PgC?1zY0X) zT*<|;!OLeYk+@RKS+Q^WWblUEQ!3u<4_I*!-3TsKd~Zcc_E{v+j}J^!WJ7N56<@!a zG5dqj)tJ}vr-C-2fSe$+0|E6CGi`POWUP$g_hI;j@sF^L*s0W_%(UR0z5P%gN20587x2uLKqx@O@NAwpi`*bX}7&1W_d#ea;HcVjU7v*_-|XU zbsECWLY`KtPcvKAB0D=$ypdQ_$#%uHeoz& zR!@bhc{SJ;B$q(lNubSr5BOn(Rz5={(IuD zqyLp4Z5A&44+#>=%ZdW=BOn@I8_=mw1T$_h#Z~~VS-5#kRPD1$6#(qANiFtnV{Lb! zVFbh3R*G4dXL*KjX$Rs3wq28}i}(z=_yL1_qfh?%)EHrYtubs@uiAsHmb06$6tE}a zLj~OWO3{mlTf)V(=+11Hhj;~aI<|S)q(_A@emK_@t5vipqZczjq%gQ|Quq1x*076y zC8BF&B!qA)nxljNV`j2t_eVzTsOxNkH4A1FCLrPFEywZ)EqB_rah@EEmP0{kxW4WGMam5P430~7z?iE%p^2In9 z8R@FJ7x(g4Um6}4P~W+sI!Wy6`ru{+8Y5EjXiHC(X2KV_)8cL&?9y)@E&q#j-?S0| zqC3KH2ULp)j+=PG%!!^}^wv|BOBott4m9tcT{hGPM`;&m@2M14qj_ZpK%+>rWG*m6U=OWE^SxQguDm1oR{~c*m zrS4Cj0S+R5tZq$+kD(Jh4-j>3~{y6Wn{fz?ets&h5kkjGm`3 zzLbw8PRDyLiOb?qb`1cXuXf`{54M{mCN}1KV~auY1$qEq$fhA2YS8geaZV7lIM}IT zT|9q(#<)x=!S;TCJJ!DJR?RN;9k7L*EN$M5jB~tbY7NYD`$I-ToepF5@FiY=kK3tI zp`riku~TS}@N**r2C@1$K;ix@VKYWOV4$q%0!?!Cts+revIqX{0w|yeTFp({Mj2G{ z@-s#%M+O0yw2F}7;hwo}%NV0<)Mwisd`fk&&uB&h?khC0x3f;n-q-&7gwFOR0{*9^@s8pO#rYlRl$+ zSgx|Vo2A=gIBf--zEI2dSsQ-ZwK$Ya3JsU%dn6l%(!O)G)h2^gGHP+LNC_+>p4zjv zqq8#(-!eHlNo+7`v1`gFBZ%9{St`P0n>MKkecdBNv2!2{2hzSb&Efs6vC)t1 zBc28aviq;j%XH8H1^WT`N35T1ARr(BSv+6}IM@VbO;Vd_5r{@yR(>CW0S|WVuRd@S znDS{Dw|nr)9i&l^fdEJW-~tU|P@i0YJRA^$%g_i&J|Ed;0#czr_hW*01*iW1@bxCpRIcy)_||+%G@Oh{gHj=7EJCFybICRn zGEXIxS*K75QRX6bkYQ&gv!awCnQf9J3415=%)Dt^AA|m)bm;m+-kG${?or_KC)oj6jXT#l8*EHi2#K1pGkNo zzmB?Szxf+>_>}22{*UR7UC|V}!xzrQo`fsCRiUdoGdk+b#_!Iw1GynSX@uO-ZSwm=PvA=^(($~ZD9}l6 z_n!<<3q!#Iu1@cNpGAzU9=3GJcO3;k!rWU{>w6&v%9@w zuj>4X&?R9ms6y8s6Uw}fx#)Mgg6eY5 zW^GMO%EzyfB04yYcq<~N$6F1FYQw~&#-e#!QZFE%_Nps|wttibbT)Kc7A3o;a{Ci1 zDZ!Gd6VleZC0%Q1x3m`rEA4U&p@I_WsfBLC57iR&+fE$_8`QrExbu;6drCA4*#nA6 zA38etJWhS~DgB;Md|klBWss8hH3z7+MIx6jmlz;<9mM9 z`ZW2#t-)Tc)z-g6U`2L&(q<05vW)HMG;h(Q+#Oz)C(&}C!!9(?v*>cq4c*!!{;!{G zeY(zP8ASHU%~rCd+5z^?nQ@gh&wn-YRkIM*eVLv3ORST-V(^zxJM$cL+Kr4lsIwe)0J0;j#7Oj6ou0$n2O9un-66B2 z*V6l(q?Z}3XfN*L@^;)$nb>teKmdt9Z*M=Iib*^yxg)x^ib1usulgB{Oy6

MEbB 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 z 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 XiWbWHT6&&@uZ!no&&Hm){@4El(=-(u literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_reference/H1_heading.png b/src/report/bitmaps_reference/H1_heading.png new file mode 100644 index 0000000000000000000000000000000000000000..7a99e7af33bc024696a6af85a597677eed0ea4d5 GIT binary patch literal 2554 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 literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_reference/H2_heading.png b/src/report/bitmaps_reference/H2_heading.png new file mode 100644 index 0000000000000000000000000000000000000000..9fa884cb7c589a58ea99f3df4f2cc577024e19b5 GIT binary patch literal 989 zcmeAS@N?(olHy`uVBq!ia0y~yVEzDP3v#dl$*T44TYwZ}age(c!@6@aFM+btJzX3_ zD(1YsyV1KSUgr46{`1RT?+v(6R9Gak+#x2ag%@Zr7314ghIW8K*_GI{+Q`*=8h|xC z$gQtoyZ60TRz~KRiiBYaw&4!$|FJ!)38?FF2>iC8O_v~e|~nQ_;K;)wXsJ3 z|NPlw^4?wb>-yw~7$r^dvbsxifnl1x^&o+}yTy?p)c{#1$Va)~sHw zy>ngmyv*&lwWgm=^SfSZD#NFI|KRu9x9{EoMP^Ezdb-JLsgS1)$o2=v4LJWie3-bT z^RA8NHl5Qp6HY%B=|8UOSzcaVRaJHA;>C%Q=hHUdx_$fd)2B;SR>rMg9k+gV;pt6N z&Za3hPC1==^l>2&JuR{f)e=oLlJuOEd;8X%J2AWV-^`g+sdGALZ`}0+gASFak3UBA zJzf!^GwXcU(M2-HFJ_qhdUBo>@qkZsy=k43kK-aQ53UqD^(W;G< zfoMxw%5twz=I_71)|+12KL5Qh=K9sIU$@>oJO6CjuKoMtQzJd~JAW#j|18pdRLT11 z$&{eWFGCy!*6dLOYk$2dh-v=Glr4MruFc!N`eu&WOVvz$5iW1ur^_y{-1)A=s(xwB z-isMCmX&?(`w9%MpilPywf7udRyp~k%gd6gm6~#3WA5Md;;gZe3*UZws!H*(JKJ(E zKfSw2XYQOiEAHma{`~yX>B{QsrQxrb;#Xfak>F9v-j^0Rt?lr_nCqs7OM*1NR_!&P z{Sut=Kgb?EWWaM>mIZ9=j~iarpezcE@azc(m_dvW%zv1*Kg`H~^HVPl#P@Xdb6Mw< G&;$TbNZ3yR literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_reference/Ordered_list.png b/src/report/bitmaps_reference/Ordered_list.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d774317426821ebf8cd73d0570cb2726a23f47 GIT binary patch literal 15798 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

)=@Q zeBI)=_L=(qtvN%_n*G^$#I}0{r77AhjmpT4LS3fNLZXY-Sl6D3nmO++Ufxz5i8j$? z-+7!g7?)@WE(`slL=*dXIkOpGL0ztHVJRIWt@+7$*m7$S?BwR1w1mKN96TI%c1LL-MEq8`zU`5iR_DVq#>w- z)N`?L#AWBO)0_UeO0E252_>~XY0v$7n7fsa)m+T}-18^eT54CT?pYy+{S7QjN$P%I=CmT$M^8L5cU)f z+zEC|A4k!osVf6K*K7aOj$l2}_g-uQcby(_ZQwYi7L}Cr5|VFHVH%U}UcIQ}=tvB7 zY#aBmx!Er>nLAwk$6^G{LahweU3`k;|5thxN(%p_5b(@RTxaLz3=KPe{_IuMn@F@| zYY`&Le*QTt)9ji;Y zod{YYIi5d*g(YPCjzflLp(ZZfbD^Fgn>?jxw({*bXr7Azjb4>$oEEm#u`*$*wuODN2qGyrk_!7koyN5d1JkDyrZpyhCwHNJ zj&SljttT_#WXA5WrSf(DPIilp^;oC8sS@u0Lfy2HRwcIG>xcst{4*3t8w3I%M&fj| zGXz**0}Rz^S~GzuXYw+EMA5A&(F`#xEV2`E-wE7 z0!9!Ke1Q~`_v=r55^?m-Ae59VtZ~8aQ);SD+lOV;>ij%scUQ|zZ;oR?!xR)0cCt72 z$pc?7X;r?3sDs<_{v4t^Ors+R2gfQqxS*b2K2pt5@Nfu|&g9%6EdKxm?POO|nBDZr zUg*iM^e(KhmBP~qrj!&8FJ)KCK4r-#9lUujQTK>jX$FYAH&2gu)-eJ}&g)}O#^mV{N2ix~4`Q5~ccX>Ti z%>_2R+e+g_4=G(kS|HIgApKv}R?u9;jQ^JUQx)~L8Jn;EOKc6OCEaws&Z%2&vC$r1 z_RF;or-T@e8bq(etX9k~FTa5>5`1t8Zp1tmZzA3U z{A$}W4Pz^-T-T*evs~0#OmR$$tOOuJW^<%Mzx@|^^RL*3=%P_pMI9Zi>eeGfw9sUb~iayl#PvVjKX@qTzF0g;yV{Y)oAn`f`D3pG>Y_c zn*0}0sm;JIts%0`Z7GrjQPSeOhR7)P50Fq`VL9uymgJ1iq#?Wv8CrcOr<eGb}Zy)WsQ5Qd)Bpz~g9R#Dt++}!Ur zHa5zSZ*I8$hoC6V)K{eY4Qd#FrZ~MIh?bXac^9C5XI*Qb4>oxch3`#zJoJ2ckNwf@@CG=x`)0<(y?d4`dw`Rxt`I45tbtl0r+Uj zLOXWu&;uT7uZ#wGA2RqLx|2t(Qdf2`N05`TJgEHQ+xt_+bKw;ytD!`RTm(PxvD1Ks zO|*6sjQhhh5)mQg*I>qeH4KveG^hC;{NnJJ0dRF^k1;hTWG67Fdoa{YO7W`_28-e| z?p?bWC-^7o8NYbP$5DFS=8jv!lUtlW$uS)3r|6_0+3}xD4U{FSkn%Hsek?qJMkH%f g{*%FpI`oWgj=tFYrji6ch>ehVDkJhuNaywc0o2sABme*a literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_reference/Paragraph.png b/src/report/bitmaps_reference/Paragraph.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6a3c7f25fba5b846f62ee36369e929d80f81dd GIT binary patch literal 62922 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

MEbB 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 z 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 XiWbWHT6&&@uZ!no&&Hm){@4El(=-(u literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_test/20200421-195427/H1_heading.png b/src/report/bitmaps_test/20200421-195427/H1_heading.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb46af62407938a85636dfa43547689908bc56c GIT binary patch literal 224 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

)=@Q zeBI)=_L=(qtvN%_n*G^$#I}0{r77AhjmpT4LS3fNLZXY-Sl6D3nmO++Ufxz5i8j$? z-+7!g7?)@WE(`slL=*dXIkOpGL0ztHVJRIWt@+7$*m7$S?BwR1w1mKN96TI%c1LL-MEq8`zU`5iR_DVq#>w- z)N`?L#AWBO)0_UeO0E252_>~XY0v$7n7fsa)m+T}-18^eT54CT?pYy+{S7QjN$P%I=CmT$M^8L5cU)f z+zEC|A4k!osVf6K*K7aOj$l2}_g-uQcby(_ZQwYi7L}Cr5|VFHVH%U}UcIQ}=tvB7 zY#aBmx!Er>nLAwk$6^G{LahweU3`k;|5thxN(%p_5b(@RTxaLz3=KPe{_IuMn@F@| zYY`&Le*QTt)9ji;Y zod{YYIi5d*g(YPCjzflLp(ZZfbD^Fgn>?jxw({*bXr7Azjb4>$oEEm#u`*$*wuODN2qGyrk_!7koyN5d1JkDyrZpyhCwHNJ zj&SljttT_#WXA5WrSf(DPIilp^;oC8sS@u0Lfy2HRwcIG>xcst{4*3t8w3I%M&fj| zGXz**0}Rz^S~GzuXYw+EMA5A&(F`#xEV2`E-wE7 z0!9!Ke1Q~`_v=r55^?m-Ae59VtZ~8aQ);SD+lOV;>ij%scUQ|zZ;oR?!xR)0cCt72 z$pc?7X;r?3sDs<_{v4t^Ors+R2gfQqxS*b2K2pt5@Nfu|&g9%6EdKxm?POO|nBDZr zUg*iM^e(KhmBP~qrj!&8FJ)KCK4r-#9lUujQTK>jX$FYAH&2gu)-eJ}&g)}O#^mV{N2ix~4`Q5~ccX>Ti z%>_2R+e+g_4=G(kS|HIgApKv}R?u9;jQ^JUQx)~L8Jn;EOKc6OCEaws&Z%2&vC$r1 z_RF;or-T@e8bq(etX9k~FTa5>5`1t8Zp1tmZzA3U z{A$}W4Pz^-T-T*evs~0#OmR$$tOOuJW^<%Mzx@|^^RL*3=%P_pMI9Zi>eeGfw9sUb~iayl#PvVjKX@qTzF0g;yV{Y)oAn`f`D3pG>Y_c zn*0}0sm;JIts%0`Z7GrjQPSeOhR7)P50Fq`VL9uymgJ1iq#?Wv8CrcOr<eGb}Zy)WsQ5Qd)Bpz~g9R#Dt++}!Ur zHa5zSZ*I8$hoC6V)K{eY4Qd#FrZ~MIh?bXac^9C5XI*Qb4>oxch3`#zJoJ2ckNwf@@CG=x`)0<(y?d4`dw`Rxt`I45tbtl0r+Uj zLOXWu&;uT7uZ#wGA2RqLx|2t(Qdf2`N05`TJgEHQ+xt_+bKw;ytD!`RTm(PxvD1Ks zO|*6sjQhhh5)mQg*I>qeH4KveG^hC;{NnJJ0dRF^k1;hTWG67Fdoa{YO7W`_28-e| z?p?bWC-^7o8NYbP$5DFS=8jv!lUtlW$uS)3r|6_0+3}xD4U{FSkn%Hsek?qJMkH%f g{*%FpI`oWgj=tFYrji6ch>ehVDkJhuNaywc0o2sABme*a literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_test/20200421-195427/Paragraph.png b/src/report/bitmaps_test/20200421-195427/Paragraph.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6a3c7f25fba5b846f62ee36369e929d80f81dd GIT binary patch literal 62922 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 FCIB?MyKMjf literal 0 HcmV?d00001 diff --git a/src/report/bitmaps_test/20200421-195427/report.json b/src/report/bitmaps_test/20200421-195427/report.json new file mode 100644 index 000000000..69bf55ba1 --- /dev/null +++ b/src/report/bitmaps_test/20200421-195427/report.json @@ -0,0 +1,153 @@ +{ + "testSuite": "BackstopJS", + "tests": [ + { + "pair": { + "reference": "..\\bitmaps_reference\\Entire_document.png", + "test": "..\\bitmaps_test\\20200421-195427\\Entire_document.png", + "selector": "document", + "fileName": "Entire_document.png", + "label": "Entire document", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\H1_heading.png", + "test": "..\\bitmaps_test\\20200421-195427\\H1_heading.png", + "selector": "h1", + "fileName": "H1_heading.png", + "label": "H1 heading", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "10.39", + "analysisTime": 14 + }, + "diffImage": "..\\bitmaps_test\\20200421-195427\\failed_diff_H1_heading.png" + }, + "status": "fail" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\H2_heading.png", + "test": "..\\bitmaps_test\\20200421-195427\\H2_heading.png", + "selector": "h2:first-of-type", + "fileName": "H2_heading.png", + "label": "H2 heading", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "1.95", + "analysisTime": 10 + }, + "diffImage": "..\\bitmaps_test\\20200421-195427\\failed_diff_H2_heading.png" + }, + "status": "fail" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Paragraph.png", + "test": "..\\bitmaps_test\\20200421-195427\\Paragraph.png", + "selector": "p:first-of-type", + "fileName": "Paragraph.png", + "label": "Paragraph", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Ordered_list.png", + "test": "..\\bitmaps_test\\20200421-195427\\Ordered_list.png", + "selector": "ol:first-of-type", + "fileName": "Ordered_list.png", + "label": "Ordered list", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Articles_17_to_30_link.png", + "test": "..\\bitmaps_test\\20200421-195427\\Articles_17_to_30_link.png", + "selector": "a:first-of-type", + "fileName": "Articles_17_to_30_link.png", + "label": "Articles 17 to 30 link", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + } + ] +} \ No newline at end of file diff --git a/src/report/html_report/a96f14595379b7c348d66e115ec65a93.png b/src/report/html_report/a96f14595379b7c348d66e115ec65a93.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5adc37b2a8af0688dd640f6e7b759c2b0d31a9 GIT binary patch literal 12777 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 literal 0 HcmV?d00001 diff --git a/src/report/html_report/assets/fonts/Lato-Bold.ttf b/src/report/html_report/assets/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..74343694e2b2114272f38b1124813b972cb592e5 GIT binary patch literal 121788 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 literal 0 HcmV?d00001 diff --git a/src/report/html_report/assets/fonts/Lato-Regular.ttf b/src/report/html_report/assets/fonts/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..04ea8efb1367727b081dea87e63818be0a4d02f0 GIT binary patch literal 120196 zcmeFacYIvMxj#H}%I>PIv|UlIRhK2%mSx$NTqXBzV;eB0g8|2YX%5%~ z98*FIA)MyCx4Kg#`xi<80&wcXUWp`Wuak} z@z-_$%)DqxS>=B{^3YaXKLGf#^*hJ+488W*|A#TdDpdIP`t$aC4gW~L2QN5)=b=q| zHt*cKVsDtSq)x#6dh__cJxZw%LcKm9`?)Bq6 z*B?&A`_VqBWas#SJ(Ah@FO)xw^4?wJJ2yVNAb%m_`;IeaId9MIeft~#zS_a~RcVaL zx9{1zanF6mPrFc_-ro<*ps4#)$uDmB%i7fD_gIGU`?$kixn<2BaegCo)l_HX7Sq$l zQv6O}65Yi=lrugVS%zEEROeKO>1k1u_Dlo7I|1fkS1==6hp~{DpOvx(JiO8HYy9F& zR;>I+rZT1;Q0;(C*Us`Y>;V6pNtRMoNs<&*iU6QJFXmNwK%pJa#^o>2^-?yVaKHr zb~TPZ*~`Z8Yy(Drjr62Ak4V3p`Wx;w<9G$f792Zp6hzN-y$c7GJI4RXE~A64aomdI zk8&3C8+Nc|>L5#0&Fm3%1zVy1l0Bjv!Lb9spTqBW*dx*=_NshyW%to)9dlsDNj^y8@X$EiQyyaMk( zDFe5tJ1GAh^{ipX<@;D4&b>-H>yz$gZaKm#l@WF`hV}}6dg@!ae;n8M8Md*T={}BL zWe{hSk%R1Jc>`;ae#c61|DXawQcp9p{4UGFwOPJ{b>qDyINruFg7@#&agXaGII3|R z!XaSfKeD}On;CuUlpbcQ>0xQT!&!{_h~FJ4)KS?rv3%|--h$6IDVlF zu>tf~8wVPT_yc&s?=X&oGY*V}7&Dxy-}HX!t9akN=qrsq##m{=I9$PMsedScv*||k z?`6EBmo?Hj6RnAJl(uAyFVWbHGk6L3A{wK^j>C)N2^@6)Y8+M^Yn0bmIo@#x=;{ve zS0j!UbVxs8jX3B`^m<j>M0ghf6SKQdX>5d{TpE| zIEL~2m~xPXaNQ_-r-=6^aL}1}@sBtzV{9s->}PJ}Ugk!dFwRr2;dmF;d)+ zyPU0OyVxZADF)(SY$v;zy$c<51-pvf#{QFim;IW(&3?yz&wj(+VNY{~y}*9R{>I*8 ze_?;+25w}3WEZgCvOlmtvqS7Ub|t%>9bq@H8`(|lDEl@aN3;HF$!Jq24`rUqyzu4dFAMN#i_4O zJu-FM)ZwWMr_P-^XKLkCZ^RL?M+}p>Z@&8G_ul;OoB#RdD{sE==F@LZygC1k*WUQS z>wka!udo09_20ez*6VM+{@UwLy?)p0Cx6!X(>n~Xt3*rxxBvYA`2D|&Uod8gcf*8t zY*S!@4UTLaEuG-F;hlJXa6$>Lm{7V_j`#w;%p)V-iNV1U-$Zyc(>qa5SM{T#-id^+ z@eLCN^fRH$J5f#-N+yhf_6Y+HMn}hlp=0sLgt4ReF;G~?So?%?V;11#5LCCi zskn5)RDzpHW8MzDW{m2_|BFWg-e&v^OjtK&W%_(*c|ysAsd&OvR63DZ;`R2RqdMLK zcQEeW}rODEFic#58{2ZW{MQHeS8ydiIoAOmGv-DAG>Vox#x?{dl#cNY7;m{_ zJQLSrqZodGjpM!GoIv+@eP#glbkmraIz(NlLaPdI0FB}YkWoCL5;0I&lmowja8bLA zzu=S1fNylVMhuCax&u)^p$4Pf2{faZ4smtXz0-dZU?bu#BKxc)3@ER+X7lIIs+yXuXJd10OrHE+d>m&jD6Nw?q`=g%DCM& zkqQ`3$%F-`K*@x)Sg(9WyMiSXw&Ek87b1)!;DNSMsO{5+FvCI+8w;>UusIp%HqCd7A_EnZCF|_l-sy;sw)#&~wmiKlNQ7hCJ%7 zkH(6c6m55`hdI>4F5tl14GE@qD!*jH9;={$eoUmJ-a>JefvX~c7~FQ_M{&u7BL-bU zKLm8CxFYC~xFXQ9k_l%Fw48nj&Ni7|jruGRb(D`^mqAV3Zo|Hy^El&I$ zeM~7ZbPaXlo+1?s0T=!A6l~w8@ZYuUI*LZ9&&cmF7I{#8aOz$48AYA?OXQe<{3#Rv z@rC^B(#!HYs@)JYY%<(#_^xr#c&|w^`As`a#}ljxcO-Tu6(v2Dyeq|!vc{ZielfK- z^;c=;wC1!87Pqy<`YqcgyVZV?{cT6PQ*!QgKHv(vUQRcq-fJeHE`(Hdh|6N~>zFda_!l%+Wt!jFp>6gvYyzsoSd0%fSYI&q}P3zI{w(!r}(%Me7o7?xaKhg2?uKMnGdmiX{ zqUZUZ@AUkn=T|-N_D=Mz=-bq{x9^g^BYn5_-QD*{-!uIi`uFr-)PK1DSpTX1hx=b0 zcxvG51K%I``M^5^e_OC?Vei7>g<}hMEIhFA(83!Bf4TVmA;XY$$TL(lR6Eo@v~Xy} z5^0HfiF-+KN#&B3C4EaC9=>(>?%_vJaEdBAa_eaJ?c8nYty?w<`SK3z| zSo!wKzpRX`9$OPxo4D4w*1tBiwsCFu+M%^;)^1yS-r6h1YR4`a`_9;F>Yo+r<#-)rA{YVR-iJ&b{K?ub%tM^Lo$Qa^8*SegAyx z`76#pdj3xitUB<-fp_5#B9UtOg~~ zSlmCcc5o!z!8n3!9wtj%l6fWLio}(2kewtmiNiUBi)m6+x=KheAoj=%hNK*3G8yUG zXiPSG6EgcJcA%=ZxvMh3H#H+p24$&+seAeHLFGj`uSfIv0gnH_tEhl-8C9 z6wAS6#a&ug?w#LISYMEpl##r?rQBJNZLwq*ILliicgf#9U0ErwKYgcit}~cz34~YH z*9|rm2lHH8&-GUo7laxMs+z4%tMl{+Wnqh_(B&%dSXz~P-``xTQgl^fKb`tB{~^XK zh56VeVKZZ%EV~uIQj7*wAE!(}!b{3kVA28q5(W$Smt`xgk0|~#@C?G zB!?vxcM=VXA=X!WaspSNsXf#g>a{8>GWyNXmHvr$Kx_Fi5b;Pr1vDrW$VEB&&!=RD zO9dpl=m82u3?`uBED^=CAfb~APz8Wjqew8CIY^?6TYQ$-C9g`8vvS zy#5()AmIHB_fKC@UuzMUUyQ!Cuy)=M2JN@EgonOpS!mzt9$B`rn9uqfz#Fo7G5Nja%Wl8OK>%S|*%27@_=aFfiuYIO9A0c9{& z(?fz(;8jb(Srt){R3-?9kXWx35y+}JvmnP9umDv-t;iJ(qAQ;vGd#wO3C3!cU`VJY zih~TP#1L0OO{ON9QYp-ZaFm*u#3|s#L~B5l<`fR<4zT1jo+2lw5S=Pa<``RgXr{Md zc7uVkSrm7%c;EY>TuMvbm68+z< z&v9mbB-Xn=Vf#2!IrK%|bVD7A7bLUjlhz|s=OCq+qEeTG=qBpT)vEUyH40HfJRg)m zg34us*n-e%^!w4QF1%m&0CK*7u((D!p4CLU+;B$x|;Xhzdc#XbhPv1dEsRh{ zfyp2Fn+MB0ZENRwl9R^!hmy>}ijYaNIck<(K0g229bL+eHqXl`Lyhg844=;!$#PZ? zUASt+$pig{30t;wRb_8=FfC#>lyX0?J4+5U zIU&-(RW(_~(DYCEQLg%<%K@GW8)y^^2CE@PbM<<_oxI~NR>V>MN#x=k}4G4F|%Bm1Ys^O#R07wGSmEI5Pj?V;Y5&{QwLNr5kL^Ndt zwUD{s0JT(Awn&1sG&=eSNa>~O<@;MZ_bn?gU$(Eaj@NXJ(euxgtxt zEG0YrvJZZnm}NVp)>JRwHx0gjS^1IK;7aT8RV&NOS6(%|?CMqJ<*Tk<*1oFA?QUAt z-nOzKBcov@Ki^_||4>RA9~wSHfQN>cT|&RjVp0BAL{B_KK)6pdXEdM2k=j zsK#K3R^uR18SeggH5e2XTc&H4`=5(Z(Q@W*9bY|eeJk4L_5cHXpdTkYm!tGh4WHtbn&^TPR;t*!gut+w@@ zfuT@hV}jEe_M1m9Wxe-AZvLkmmr`K{L@HUo-{I`PwJkhpKx7K36= zTGYR_&Esj?+P^5toVazTbncHMJHMQiW-?oi<@Kj|_wZv++EVeFiv7QQ z>zxY@{^nP|+*gj*n9`EI%qi!9voU$C^ql%j%&u(__$+7T=`MlK4A8W{w6Gx8o0Dlv zg9&9+UOE@IVu@p{reDNGWsG5KR;vHoB60#W#dNQD>)xcJMT`g#?jMurGt`MKc zt6(j)@K&fuP^X9IaOz>cGn?~us?qLyxa8s7JbS?Ug_17>oC(Geb5f=S_bfiE)n~y? zYZd|=YrkRhr)AjJ_iu2>Qd089{tb4oHP8O?Hwtr7ok_Tzlq^X}Nw}ZnO!MWxEZVmL zGsu4BDCR294I|$L=cL306C536aKOxk%puD(54s7~4>|>&gXK?Rh6PDsNrVlFPQtj4 z!9@*8GAV(NIpI}}?tBiPC1CN@_$<=3{I}hiTs%l zVs6jF)`kt483skt>E4>kx$wq_qB&2danT&$Sx-{Mh-GTvVo<~oiDEQlQJ1SO&d)Lu z)z!7gbtEX(SaM3-p0b=YcX>~#C&iqY>Vu=jkpqz|4N3PvXyt_sj8- z=(~+A2^+|^i1i)TJJmw{wsNl&?RVT=2i=Xni{z#bPNjUZP_gm-rEZSQb|!b7={xeN zzfIjI{at+lv4qmFA;G9fqD|L>R+6d7HFyCy1n*9yj#cBu#S)FTOW1s55Z-03%kGy( zQ_6k)j(}hNFRvepf;CV5Ss8#HB>U?8aH4KaDf(!;qm~ou7b*_56E|8lFN$;#vbd&g z7Bai&xr1EQurK}*JOZIfq9AnAoo>4%R0D_EVHLJ4x6U>^l!3+9eQoEiuUt1cc->ca z?flwxi=VDreXza#;HtX1RdilmCw=F+$p1VsGV%nsJ@*{9e`#doOOZc3ckdgAo0<;4 zaqqpa)A@Bm)+=x&a@0G}iT?;ETP-6fNC{T^6d379Iss=|4T{IUQ(wD&D(*>x0axTlx04Dv*yQ-%m(d2cj zNygRY!3#gDJ_u`J&EVmS&z%>!Bq_z8xnrKKz{3Btar=(lt*vWYa=Z--%d+7%r>(nf zQw`yB$JDz@2>9%y2qb46ZA}doNaljhjs5-S^apbm->_%pv(u#K6D?G8A*N1t`?Vt7Kvq zpM1@K+3b(qIeC>mTd_({-*>01PW}TduWm|nMy}x(xGXE>J0s7!o4u1w8lB4#;3mZ0 z45x)k3-fcb-H7O!NNMU6-b4YBl440#og7q+hz{a9vOY~Vx3l{9|>D|Aiv}ABkNALc{#qzF(ouA#b{-H~HyDt6Go;9x>2mXHikblAVMvj@&k;Gy`8&wvDVLoUN(Q^fBAU4(1@fK){6%B*MutTNXD_ z1vwK$oroI4wt}w*Q;Xs=R1TV3izGrTBw7lOpje3i z;>yRDffa|*ul)#ckS1h*TseAYR4c2(;V0iqk0=p(G*ytVi~eZ9z&7i*)Uo}s%ers8 z`kZ|&dq2Bw{M6o-{d=yyvFFmqws-GdP*|~KM^n>|B^8AWc6WELZ^`ntjfcbIZN99Q z^=S>;Zd-HY@nF&Y`xhPA)Y!P`$fEuC7X=?bvgWpJ4M+2P);ITUZO_SR-`dx_z9(Or zDDGKRQ905c47QI{R;=p59JPeZMW)n7$Kp=nwQ}h03>SC}_@CyrY$5d#9093->wx|k z>%d$VhLFx{{wOSDxkB0!`eC}1B*Ffn*_tR27!oG^G$dL>`V|%>Ma89@y5} zxxFt~wr~?T1-QEm{?i5WPlZo$e3nm<3;J^dNl_7RCbk3foJK5?YtdcFSh}p6#Z|31|9kzyxi&%tq{sTM(17QQXT22Zv@h zR1Zh2=9p|qvqxI(r5PEecK(7r?ezQ7%lxKGEg6ZwN=h}TX^C$oy3;P>H*0ixEB~_m zXZd8juXd3COLwRbF}eb96{8*YF=- zBLM%1_Wo6GFBVQE71xpbkp~@sz)~K?oVeqUY1GQ%jErJxb(*aH?y@vD+L)$d&hl4@ z8J0^UyZf}Z`ltRZ{S)%106FI`hs_OjWu^IfelO)N#H3FZ*>`s6VEAKTD6mT`e?gP` zs0va@AvuF-BMKnXBpIoIinA952ZQy5e9{XdWDGm1@ne-y$yXssrM;9+QTu6DE&>z+ zk`Xl5Ok^WyGY-0w;LqtF-Q2wBnsxQ1T|+%piuGV}Y1g8zQh(#3(s|39^O7^npPo%) zYDRW-fh#n8pnqW3l6keYz7zK)6}2@qbd59@cUQPQxgOUCr)JZd#FkB23|Zi z0gjsq4x34{yRf80N(3sC6EHYQ5;Ksu3>9s}j4F_%st7wEi-b--a^k*;dY4D*P597y z6SR7Hg3QEh&PP_CkQpBNWHqCy319`NG$hS_Sj)9klRQNKrz8C2;K>Gk+DIQ~hu!MI zTqOd@Rh2p1palH6L7Hn)pu7|s`8+78I-AH)aoC;84GY($G#*~qJkpficG=f1?$}tm z+GfoubXAOWeKmD&8j{kOPYO*6SV|(OJU-&}g$3MHcZo_pCzr17B z#GQxM*38>}Q$)&XZK|*gm$&cu^3?+e?3K&f zcz#0brbAu5%fV?9<_DNMANFPn!e3ttCnKzsoRnZdtTq-|%C^#EKcXkVEhq%Z0kWK= zXENx5Tn9qVNA)x$I5IwWp&(il0pSrv05Q2q&LUV3HA8OEiNZ;tI8b722#rd#w`%SJ z(P)y7CUaz;$U5Lva0_X0jq3bc-ConxlNVoY^k>{E&HF~=X36ynCz4na-FD;%+-J>F zPn^C`>Zx5^*yTo)2dh_@atb)H!>TP}Plufj2V+GAey=0P;YoMmzD?$0u8s6uNis#1 zfFC1-nr_abbGc}5Y%bNnMbufhW{aX_fPCa?3Ar_0S~Jk81hgP**{Tl(hFMQ+87m~r zdd;6fJWaQ+qJaz~#|VQp7|7Eve2?&NANtybO}>teop+wzS`H|f4%GyiLBjvLK zbCe0t0U`FEVXV|8-#XnXP-Ww-U>f*bBHF@!=TAztO`TS z+iAC15)jRa`Gs*YZ{asb2@uIfI*ZO3^M;T3iDKRme=sL16{i;Lrt20-J-q3e$mx@l z??~w2+#4TscD-nO?0TP-B&MP^!m|qe}5TcV19kXKF0h(N5bO3s~9Hr(6P=vQ( zSC*UwN&z8)mvm?y?WwgB=>m4brRjczv(_DuxrC< zxRbzQGi5Ow2toR|9#P9^0$%hec{(*P3pY_Cj#*tvm1)fKVLr(CG2!3)NXN(`*?nqZcf>;Oj^F7F_rI^-0bgJ8yQT?V9{)eq+8( zaQMC4{KB@3vW}vW%p`L`o_o9j#5*^(qS@8FE?$ z>;9#C=5y4VOY|T(T#L|x%s|qD#G}ewt11eL2aG0Yi-jN-S{Zs5(v-|8@-+kts>EBl zf)NFEk?-Y0JQguo=o?FwTL04N(=WXwD=$gcP3}jM>E+U;pp92S%E!<@nJtdZZ)$#G zG6)v5FCtmfvy&ht@tSB9%Y`cFf1+;f0iB|=lX!gBcl`t*ra9Eow+c)>* zy}`w_dA{wi?(ww3l`N$^`a{*QS%K1S!)Bo)(^nPygbw{2ftH>oa zK45d((o7Lck}boRKJvl~avp*}Ss9MW+g#qngxt)@QA1){g4B>~NmeKK2;vd)TmCt& zRkk5)5(y40mOW#`@Cr&rU&*vUAVX(9JVH2HjDUEg2>?+ThF)My3i6pg&*kwU5B zd!!wwUw!eOd#Dkj4Tj5c8DP(clf9noET@gE@|Z=QMcNP}sENr+;!v9F6%EqI&vPaW zz;X#n#8$M?D>wrR$j2yBl~Hgy)7X^(l+0XxijRB&8gCjvQk$flsR;g134P=c_W(VM zv4e!5*&58>`13goQj!?3qPV=<>_|*>n)$C&vfMX3BuNoRMrl@QMkG;|AG*PvmBRld z8PaPqv#Q+kIj+R_H!InW@{H4$m6pm^x+@(YyrrHS^9(`-szM!Eg8O!OhKRa1Xfe*sS+b?wb|hyvX-xWf!}}l z+lSh^uld&HZ@<0d(q$zNe*SGKeexakMC<;0H*UD^K*#MRi*~ht>UN@CjBDg42Fhp1 zLblll;pEcdfG@+9nqtyclu+JzFbR^AxDYL?iM9pQDFSBEj>1zSFVhhZ9ShaY03@B8 z#soBJy^miv1>S7*ko*A|k1_lPKOhf~+(!EH~9tnrIbsvE!FuA zct8}Rs)Ck*7YY@`&AL~dy(sNjL52#6g=j%-w!QIVmHCiab}fb&4Fn*9NOoLMU*n(& zgpfg-O+<+Cx&(WgrL=3jt8GJvziIr!%P$;n3Sap6-fMroxZdP4J8Bp2Thg_ozo2Oh zkH(ss_Iz&pftUM~r&Ck?h5kVE;v1ea2g4hSj1q!^$mCPb*=f2hIM9a->H}wXn>pENU>Q7Px({U6kPVC1#VA6z%^Y}$B)7PS z7gQBrZLY^s~|H#;aaf zbjxdp4!w44(F;}M*Wcc}k+z=z(C8INV`Du%}*=An(4BffO> zG4;ns_rcdfIqE%9V3Z>#4Z|lFM@`Z*`bJ%K#`TnourUvq?{fPMyug%VFq#wiVnZOK z-VN7qk=1NSH1R?;ka1h2?UBf*VVNhWky{=SxX8+E@%vld@~fE5;Z&QvMDcWwN`&iJ2Le)RZJxBl;*i%!1H7+Axzz8aK|axQ9gTQHxa{ zYv1%^jaaFYD4b5y1%LtJBM=4dCOr&h1d)+woXc)a!2Ac06!pOpxG-MzjFAr_`7b!^ zCVn2mq2mdT)TbkP{P)j0Gfa`oj7gCr2`2jH+QHO2v zduDR%LGQ}1fD1djG;FeCwh-%7Vwgw<La`3)4JBkQRs|;~k=TuKKqiJ4qEQ#QR7hB=IxzD+JU4gT!)dp@}S3iRO>(Fe?y1MP`MRgv`Ba)@uyen+A5roucFN!-XD69H$eAVPSJrX!;kAu?>a!GMP3 zQs-cA>&t8Bee4R*wq#KYY9O}}-jtrGjL7$ytw7=`(n1AKz_8NV1N%L`3OGVYQSP0q zG}4;UTuPTdqZagpVZ%BWpe|{Rp_5qjC?c+u|4MP|=;E~4774hmEvRTJ-PgXct9kdbI%Uy$7x)T&Hgm(`!TJqHmrnlL7O3?8P|2z6EGlTsvjBA% z*W*)vQJmmwC(Gk&!_IUpVadsM<)!E04t5P7X(Hwl$eS(BblcEz;m@)Z%ofDFbvsS{ zk7qu)I5@1C36;{Wl`u17D#C(GSwoBEXBFOWeEfg=>+(wQr6!^)o5-qNr)=gn$fY2 zdK_5K$o&SRMIkmgTkqLAa&$v&^EvlyTKB1{1XGYNUVdd=`MJGEj|bYv)E6f2 zo1FUrj5j}NQ7lZ?hp6K0Z=H7aV(-*ev^RdN zGQvM3{f0ru3?rRr-bje$8NQxaU`%--+TECo*JVmeO%2p8sPEgmAiro}XJ^}ReXiA& zRN4OWuC@0Z=xV*-v3=X_ZI#=Sk~2IRH5-nOth!;m3Mtf>zQu2`6|t=%PDb$Y8Naf$ zmSR7cQ~!`sl!}`i&z?f0X-Qe-GfKk9$HEUyC=;WQD2!ukl+!t-Z0>RZX5cizESgtJ zePF~ajUQS9{37FhoD_R-`js={N3f<;Fnxh%G1K>!93(a6y%i#OS9Z|k!=64KWr_H1=uwc!fTUe?))@s}i(zG=g_x zYRm=U<%8Ig0xNId(~3m-HB$NT{@#x9?lOxrxze|4>z=x;k6zx}c5q_v<;Sd2zQ28~ zqR!j*;EtlKv7>9ta&o~y1x-O)&!=9wa@$kaEV%O1hgvrG7ZM+FtU+MXG4&DV;dvt8 zz{4=NlIeC>DV`uAd6gKCVwfnfjzGwm>>z`Q>;MsLLM3pvu}+e}gC;Euc>v=1&(uyI@sAt_S0a5_qaACgUhbQ8f*YCyGje>FGl8OY%rs(aR|k z*f3oR9Vb6ztWra;=9xW?%u^LBFB|M^ zRJb=gC)8h?&GRC^kXNUu4*UFd%dc5oZXdOq(rZWBR$qSl6s*z8$Sv~gih(s?$Klm{ zES$AyA!o~%E?m86bzg6|g`(YQX0)e)HzbiaKr5`fOx$Ryv|#CITalz}0L}!eI zFjR>oMnSNgBP-ivB6dM)A+bv=4Z*4HWiTI=_0Fyg@F-)doV(Hwt&hh2jK+O99l1rDCJhpYmqE9u#=zF+pN!`Yy%O)?BuG)9$K-;8~-hTz&a+&%# z*viFTqzHiBnrOl=^j$>(t%C1_DM1r!#1nA~+8+9A>C__{nII*au7iA!bY9R0*BLVhLfX0Rc8W78_kD z!ABnZsUv_5&`JY#d!Q5>p#>cBd#97+_jpU}UKu?rLsd+g`c~waz=@p|a849OYatM+ zvRgn?f}#j3*zOBrp6o5nU_|Z{rU)g-B(#kB%HaM8+lR!^8PFi9xuFT6foRmjZnniPExok>Mkp7{>Srx4p_h$Yn8tP7Q* z=+KOj5S!4<%!xrtK?pjUf|&gwyE~1CQ#~1XN3JzzTCCYA{JK-l9CPIHRF9|farK4M zcP3f*a;!z!XK^Pc=h!337Aya(BPEgrl;a;~_ug+P)H93vea z7|#J3%^c8N6b%?t6jU>jLP!UOEeL{RfwL6?YK5#1Qvo9dLR6!SS5wYe6#@W8DvSea z9cmsHC9=%P86`bLn|Z=+pmS_1EJOt0i&9Jg6B^nsno%u)6y@j@>4R;-#FYALS8cvD z%h9!LymIj3<)O#6tS?#A9C&Qqn)Y+besu&mTDd zg~NTP4}ANHFTGN|?uHdBj*e3noy2aAJgB51K1^}Mb7#d7Mf54U0)w<~DATQCdA4!5W}4AA&ZYkB1T9;BrmQG(s$v886~1(D83|uk}`!8i5XA< zrH}||M6;yA`?JMliMB?U=3Fc@ql+X*Qrqs|DWWBN?%A~Fsw!>~!IIwVDY}S#u?O-F zEE?;$k^&~zFK%gwgq82kiZ6l(A`i;nh>rDnv&MRM%y?#eD=tW^1-Epjh|6sfV?85w zbhc91Of!}dCB_=1WIdKf!CMF>JrXO;c%NP}HrDYaKdcO-5n*07Ym*hkp%fX5y%n4Q zK}jwyjSmeF%ZsBOux&Il7ApZb+D!xEBvup!KvHB=Q!P{n$cs+Xp=7cdW`@SF+>Or+ zjeX;>@I71gz}UJ^)g~tfBllA*`8+K&CcpRo6a0VrR_Nie?(m|#)7MjUEL<0jjtPAs zy)VZ47eZe+8MrykOctGxbu?POWN2)M0e+7}X{;o?b)^C3#!g1Mz@w#CIv~iI*8WtY zTeI|sR)*M~&^u?DcvYeRJ@Bd^eF(QTbG~9)J;W4Bv{=j;)8g|q52mSOvDKjFjcv+y zD#_I+HWzhfyNv1P#_H7<7s>BAGf!?i-)6Zg!?t7dB)ATH4GE zlOc*J@(rq*Iajlhm>VB=hsKJ}lY)GSr8~vvNu9mubnrY@Fq$XzvC4c%o|M?z^<$<< zNk2}`NDbBvRG0QvWtR4>S-+;Qv~u0i)!QC!E;2c-)`Et`^QsqCXO#A>UB9-kl=jx# z@YzOrq0^a(?Ye7n@~eZ{zJliE^SaMpUfEUKnPSfJXJv+({Y7>8+1|pIm2HjN7nirz zfnb2^608|`Mr~m}zKGVpWM^WIgSOd9!OW+R`$T-5qJvdfUMlAxkBp*&GO|m^-p2}B za2GKs`Ncv?z{3}TTWmU}3x$fa6h#n@bBrq36QUxnpiZ)%tRPk%P(iXo8$Zq)k!(cL zBKBr#fe%5cF!uAF(Nj**D{R$Dt8}nV4{44dG;&bj?aWbyzCEjo-JrE8^*XWhvsgoA z7pohzi4*>f1D796bKX}dIV~$_PwtkAtU`~&WKOCMU6FS6CDIO?y~n{DQf-lYE}uLV zZb`MKT9y`9h;cgz9{C2o!Qf*5)a_4e8s&Ve^0fVF#`*`i=a8h)cm+9B(X1L>miT4? z!Eq#YKmr1=ZDjpj5S6Ku`*V8(f!Bwz^9D)mqDKd|ofOX1{DiQk)(Ju~Ml-xZg0 zMv;M;IcM>YXXc#I`gX@0kCDEijdF(m5Y50Qq|hZ=&RQ{&2YvJmqfSfykZuH>j5Lqg zNof?U5?N_BE$c|I2|T#?pB%}!lnR3NFEUn8n6GnYsV|z$s>z=8V>QFJ!0uLmkYq8b zX$dc@S+=VqPhIa$eAASus)?qzk~~*Oan|AYcjQVprrPbPlY0W4K3{K+hC#pdMOT^2 zRqmP`@(X%E-l+U4=pmCmG)I1#%Wg(68%!lK)XYetoIw>CGal>A7MG70hzB@pmRga3 z`owu^Hf%jlaS<&~4Prnf&+tnlpZ~nmZu)0}<)?}E)O)c$b^Yg&r8Z?W{~^(3|15Gh z{%B5#9Lmb#VY4NYHTfrOLwS9+D{{ZcQ8U9veHZv}vJ1l|RD&cnkqtw3qTP)ArD%#8 z7)02RL>#1{^=G7GkT3&c=CQ0y>vTCm9E>u8oOJW7`Dru-V>=^5jX#@^nRV#t$eP<- zZUawENKq+c(P+rF9F6?Qp3ZNUpK+NduW**QTqQ2);xq@^i1u`2jF+NMskEY)R{m3t zS}X^VRuoTbG=hgDoUz6z9h8oc7+h&`BBIZ=3^iZ;BWN~?hv^^$sVAt>zEdJW4Y`HB z8lSw>oHY4!sc=$FNtW^_-;mywAG8I`lfi5IQUYnx8`p_SN+NH-ww+{Q)+6@kFHc8| zpVn$Y;)g48!D$pVhg^l&MAPs(__cJU%(c;nfw&K@YYlm@+SG6pCP8SKl9>6R$rGbT z>_(669hxw!k_~3m0Ke4T(b1h|ODkM*;ZRLhvVFm**=lwc*7wuV06Tza4py??HcM)*QEXk|+;SkGehQGxmQVJZ59A5O~B81G55q(DKNG(J+d)ATUK}g)c!TAK{U9 zN+W!UJ&b{>7)I-~t)CGh09vu;R^Rvu7_D+3%l01Nr)cQIkvLQYAVN5Q5NKLYI4m2q zTQ@8hILr%I6Ar7|f&z!jHd^hALWIK&>(*6<2e&WQ`n;c?RIDKDOwbPYCrEc%k$RhG zLYOX-XJQUGT*_e3A!%4rY7laZMvmZ7Ve%1O$1N}?`b<0;?K4zwRdkwx?E64;szLfk z+kAdwUe~5@^`^DUaUX^9T7r0nu5Z+x8!%}l4 zs!3rgfiNp6u%XB>MrjQftqOrBuB8CtO?HDw-b?zoE5p}1W>-cs{eP`xSbp4|{oCZ$ik74#OM1F-(xBw{vl5K0y?w?n;+q@4zWaHX z^iM;>`om~0<(e{OrTPGC;bmca%e>lZvDXyl1MJqM1VxJNHb_Yja$T{6~yM2EYge=4}9Q-@F2dBr6-xy%~1i~AB`l>s47+*-^J2hu<$1+ZZu*TXf9uC1)azd z>;2FwfDMyMDfCcp7*I_>Bb(*Ss>mS|x{h+3qe4pC!zA_z1d+WRK+=E#JIz<&jJyFK z?Q&}gRC}|puHAL-u7ww@=}PZSbR?QHlI(?5?WL__VK0B$e#2liS!M$EH`Adz9yhvtml`R&yh;Y4zVQz1i9&cZVjjVY5hN?IAx@}Xf3oAvXnECTSIcJ7>V65mC#q(%9#Wz zCXiJm9Ajo1^n~uxvRT0my7LErux}OQ7Gyv68-f*7Sz?s* zeP^1^us-QO#6Mww*7$Dbm60u>$d#A3HuTk&E7v5K}+rsAV z&eGz7pf6`eXmI^wI?4#ikEsV6ECw~22+wP0&jk*p+FM1zFo z3u>||7H!(PX;H<(;fj{Z@f%hlP*`YkS*!((OIs@!)n-)=ZP~SDsB+or%GPMGaPrID zI}f$gmV2tZ7Y!G**D8Oe;9*8leNM2UtTMe9R3v#U1oC2q-&}-$JX|p<4p~q^a?;hf#6>0*$eu!TME>{u3 z717ra<9|b9vd*c$sQ-dK4q^BBb$mtGxpwuE#a$hBHMHMzmfL|99f~BrU`e)JkBeik zZH_r8I2cG^5}!)bw*P`*hcG_%24rN?$VmU}lL0y!AD<*@1Z!$vu_QtEzfqlI`lFa# zXKx)oj42tAJR_#!&uC|?ZKw<%#$5Ps*MpB^65HtYQJ3lCn8f$mbi(X}bL3`{PZ|xa zYoEQE-l7m&l!X-NBWzhH^pV)IOfi^}4A|ajUc-I+*WI&h>vkM(2&rkw=A6ob zCTvSxjBRpT@M+k*(?iv3ufF@4jT@i6`|7pTbp7ncjnB~ahLWMZ*WEpG=r^BVUpln! zx_d?rz5UQS{yo)bFofIZcOHCT!^Q_M=;*9#GbDqxO0mu5f(wRJUUr(TEM@>M= zYi+h-0yeRzBIIu#u8RCP7}zRVGGV|WNC-cUU5-4nyO9l7$P&T^SD|E=u;*=!P5ZzT zB5xvwNhzpv-aPWJMzcBbvu1N@%4bzItFdg>Z^_`|S7jNUDVDUz2k9whXXFEu)s&Tz z#jiTc1ELe`!^@lGccr%=K!#@Q;X{%q8(LT5NC-#NkrXTS1L8!>xxt;h%$>YDwZeZNPE$T3FCVD<@K_Yl&_gmhtr#0D*o14_sOhVaxaS$$m_5&Hi@ zEtr1RSI0HaZVQwG=v$NHbF?bf64XJi7U{dLPg=)Z_BrHkzg7>@rxa|Fh!_E3ryLlV zyF~^KPcTrSL}yw1By=@{KepfNoWfKk`;oq9N_LD3pFE{ty}ols2=TDaPbNU$zJq%o zzHj?BOGeVKj``BQosi)k++Vk#%wa3;u0AAv=M%`zHzOzIi!MI6=1@kW#~yhsgNIVg zdmROh!91);0#dM{g7Q6SNbQ6c|M=gYvP&(KFRGpA6906|`O>S9%d{WSl3Df*QJ4!b z!g(SIsS{(&)csIzOEYz&&Z?Hi9+GBzR^62&=XZ6TKT@fmFZI;UFDmM-^>}J~i;Cvg zdXz04=Pj?STz+0h`?<@js+OPIhPydA1l3oUlT$|YGAsn}l#S%wr7 zpSdfgh$|4ShG3$=D$^`@L=z}B1xbRXGjP30u)vEa!2*wkF`C}1g?|;dQ`W~UXb>u2 zOqmJ?#X`~YxNo3Ew##2V-L5_1NpEF=KWs%vU8tLn;&%xRdW*tSj3_ON`BGz2`% zV~^1{jcTjQLq&xJVprNUGn>cfi4pAwHrg8KW6W@b?Z};m#em6>_-`7`{UIVwK2t8p z8q+%DvHm-CfQ(QH;&Ei|Bg{Z2MB!qXi+*~7>^t%8mYH85f+sWsi85bTHPqxizrCxd zYh`)E@Vw&Gx>R#^lELaJ_U4p%(=7RIWy^aS%gY;*Y4Li3+F>kd8#ZjruIenftkkx! zrEa((JENkvEZyKr!A`XHoC1fZILo}8H&<6ymldR8Q~u#LFM{1BH8lCpC@aQ^m_$HL$r>*AaVrq{3J!$E0&6$pE$IL#j`d}oIn(`Nyg9;y{ z+%U{hW%E&y1D?&qw|cZ0ei17sZ#pO@+U=k@$pb!|Je0f=_)>V27KkEXIOC+Af}$X5!#Xdjlq5?%6(Xvo&O;I*lmlvtl?D>^vIwzgMd=iu z{B=eGK`>uz&_}5oyky5#J&&N{`sICl@{NYkU?Fk|cI`Z%=MwaGR)va|2P3~N$i>_7 z%A%<{)rmNijomHA&Bm;=z8OiF&4y5<%(P0-JZJ#OCqtYP>){5|dMm zPipTA zk>B6B<-T)UThG03i+bY3`*rHK->;Kb&)a%*@v`eT)}!4Q@vrdvrFYOr=*{Ri7o#(9 z#LqwjjS~nS$QIvhoTbMuauwEka_S4x(+lczJhg=`X>t57JVhNSe<*Sn{}Uo!+3Y3S z|LFf^?#<()I9KRVmuis3P$z<}zyMN=@&g&T`AbrpC-0oIO z2%9AH$CqFH=u&-eojRvZovJ!@stRYq;eJQ7h>Xy#oU8;lRDZlw03DfOn~M20HPuGj z1h*1p$s^$=4u8>BILdo$P`EkX%8>Ww;fY5d(dll&ItBBDz-L|UHQ6$D2G;BRBYlHW zOOM=tGp#&l#`dur*G%-T&YQL@)8qUvTwR|vE@@n1 ztmCVzlNZmMSTH%s6IX1FU+zO+x5#-bdhG*&6YO#72eg7#i1(FbMe86}E(!;4JVZ-} zXwmEuEoe1#YTAq|U&I@F6)qTfRt@kDcZC6F##iNC`8GY0pLFLT*oWV)n6ZGk*A>zF zDOsn#5%GoCxYX#}-_$n`eBS=AX8(+vqvJ|`aQRC&q8^QEd%5k~u&+rti+*z`K0Gre zGb}!wEh!D_LBj`Gs4>H%QP#DEb%**J?iI9_w}V05SO*_t-oNCo)iY9$e}M%&J@c_ z&b8p7Tk>>g1|?fHE;$KP*~z$B0&M|90t^iDIpT|k*BQQNIH_U1AbeQoSZqsz%iIc^ z#K?-9kAe$H^TYGOi_S;{4?3KMSIH_Y6Lb*FWF-o-@1BE>pmt#W;0mT1UQCLz{q{=6)# zJwB5(Gj-rQuV#*M)MiXXQ>Q-N0)3i=(dAO}^{NS`v2^jms`=$*rQVXFf;qFpN8KTP zT3$RikFkk?u{SSav2+T(76K|wOSkOOtyr|-z;HaqQY~m2Iu)E6MAZsTzN<%OiI;=w z^~t$H&cXbkWz3ISw&rihPqPM11FUi~|E%bs!riExaap%D@!&8!21*A>(wDLBgq7Y{iRl!24BVq#tS zMr3qUG&by`IY&pjELRkqtWj8v&T)qfC1e~E!;xNmf(=8xpuvo@wAuwNq~ZPS{{Wfz zc;s%;O5mt+1gRL1Vi3lbQAou*VjS@?`6D?)HbzXW0|6H~pUR|VBFPpS7ullC-S)TA zionhYj_{*K6>Ny6%yP{5D*v_9Gf-4B&Xzwqk5|w|ppxBm2W@uTC^p-DHJfeu1VV$q zYn<7RH0%k(4f~~qf6dI--Yol{Jk+?t?Z55$zj$7JsdiXDVKZh9?88!#177m^#&cD1 zrD$E;%MrR4jRWoi%-=Y~#+DZZpkY0N3$chfgWobZX^TL>7h`2H2Gw?QjtSUK@~-|V zrvmt3N?0D&wP;uW1VJQ$C_jEoGZ>`FoB|UjN9g3Sh)S~{6^=RFgk`PRYK?ZpM8|H+ zTz>P`t6z+kgHs_R2kshqHQLX4Guq6xJD0DxbH%*8xmgb%jh$JMKc{?k+04bd87(#@ zB4Om!XoI*r9QN&c=SQ$IlvE@FfxloFqol_UOaFD~eYd$Y?ERNR>50SAKM19}!qX#X zh0;Cd-Jow9d=v3izr5_HXvfmy^nE zb1wgWzU?!YF3r9C^QU5_jO#RiY5q%HY(`w@A|7-1z~SUHtVF#(Z7~BRA&HFxkLymV z!TBX0?FUoc(tRO^S zsOGdIC>p;TjzLcG@JAP;y-~6Pz$J{la+3qYJ?s9=G zeFEN)EZNwpXk)ao*hn`@dhD=t+F0v-x4AIvecDnh-DRZ@zKDkVJ>`#xHmtcv|2O_1 ze_WMd`*K)%td&0a9@2L?nZNZu8ZX};`~d0qIhnte?m`nq5_eZQ{slHU!N@ZHqbhNN z6(pCEfPhu1w)XqcBI9-(P`5{7x`!Huua{~ch>Hs}fv^Kc=}})}?JJ$u`~K zmOX_*iMYKDfp5IQE&n-NsxIfyg&mjQdM@G@xWnxp?2&02Xfbc(Egkk)+gEjko33-S zJ)F<0+y)YS19si!7N~niiIe>$_vS@nk@=UZGu>CBI%C&BUHQMGrpFFTXI)zFyUqU$ zd!PAR>50SAS;tnoi|LT={l>3w_V>+L!HcZIItT8zjkZNbgj*cAQuH4cxi%OK8h1qXe;) zaYY5wr%p&uO>xHrZnx!07sYAtr{>SinUaaFGA;^kdCWx7qw}r~9F;QMYT^fW=V3cU zNBtbWOZZ)x$0vQxSxnJr)Q3KY3B(x}G*sN{DcagAT2*n)-=Wb^HG|(X8;%IIRwdP9 z@T>MH@ru-ddBgHfnHf1I(SbN|oKM3TB}XBSs?iouhjm9x{r6UF8B?0E@`u}Z>86;w zU#MA|JaOWdQ+I6t^Md7zZQm&GyoqGqh? zc@5)J-??qz?UNm^TyJlgK7+T&-2YG2ms*$b9vRpW-6tS@ED7l2qtdUD>9J;bI`z?d z-)$ZXd!Kq|rMm*@QLv4_SN`S7Ki2f(@6i1<3D|wIuPPCnP|}h-us}E!ms@PKnnjzF zg?9tH{=@GRk<|&EwZ#g@*nIRCL5`}WBekk#2F8P*@-~N;VHeu)D4D>)55ums`O)iF zTxnw_4E(|I&4K^E@=_bqxH$NSh@Fln5R3Xg_uE{zaDLg8Y>vB(YO`7#v)xP|Z({lb z|2*2O4Kp9>2oE?77_?%oiy{(`Q7as=Qbx1KW0rKaFEA_)eg<2OuYyD5nZv�r(aJ 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 d3)lz{Xfc9M412p literal 0 HcmV?d00001 diff --git a/src/report/html_report/assets/fonts/lato-bold-webfont.woff b/src/report/html_report/assets/fonts/lato-bold-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..d02221df5b1fe1ee13eeb0988408ef43a795d786 GIT binary patch literal 33272 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 literal 0 HcmV?d00001 diff --git a/src/report/html_report/assets/fonts/lato-bold-webfont.woff2 b/src/report/html_report/assets/fonts/lato-bold-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d330650bc325af7126b1411b2bfaee8747826c1f GIT binary patch literal 26248 zcmZ7cbFerpw8sl?+qP}n-oI_zwr$(CZQHhO+xGjMbMCxz=Qhn$f7NPz`qrx4rr`j{|5IL8|5wKZ0L04wpVt33@r#Km%iv&pxd8W0eUu7g7mxj^+URK zYzcmBabVNNXURfmi#v{qKVNVB{h5(cL=3S-N!~W2z|$j1Bmh-1wboL(7#3o_Co97G zP%2Bcn5zD}c;ARM+0rQm6+f4nwujOEE%n0VI&#T(4a57A$S}Ie+<~+mn^_;+%?R}$ z$Y(llg%^fn)F-wMZTLOHUWnA#quo-Ukk}KpnUH79Q=(Pn?W_Z%&CZ3VAsZ?28Rzvz zy+u`$V@v^Uh4oTgw(d$pJ6!gX3`Ia0cgb|v1SH}%0)p?~&JLa@ZUu}o6dcJ^N0IWZ zHwI?Iz*Zq9{U-@6A_`K4@M5ZuGFtb}WVf<3HT3rNV`szp22HfdM;OUg7YtJnzZ)+q zOm20~Qe&vYa?zX}Nv4wS`6C3xN<@b2=dIUOnK8S*ZG;);VhTktd%LaCYmI~pA~@+= zoJVapfR``~PC?KFVd^Ff@aOaU{ME~x8qfv%Ey1K)R9g{^_32LuCTZ{LvSCLn&L2TG z>0%*O0#1Obs+;8kx0s;;r6{RfXsY;pw3MPvfc5B=R!M3PLV<)3 zp(DXVmFG-pe~0!4h%e;&a#ZMYGP%@MbD=FRdq;JAIVQiNev7>A1Kq=J2SA>Pf!T4cZ-{%5oD`kKq!qwk`8Zr)aYvHb*IYG<5H4x_$B+7l0>_Kd1l15 zO646JE?Ngb2}oMrZe3`79gbnyVEyZ2S=F0~FHk0c{EGxjJ=iKKyH#el0-K+iSg?=c z2e|GqSgCwUoEZ69P$2RTt_{h0ta%5714xG5R42|{J&ZfgEpxFQ+6Dkv9Z(j7T7X<* z;pAJ+VN`Y1^);S0=gxK1`XLh_wnZM3o=Vim&sN^UaVElU-^1jry`1UL{_Wzc{eM;-A)Wi31lG}#E(Qf z-aY~3LvNoc(Vi&43C?xXu0+8%K<`10cFLNqWZA@Z%37Gflr5&Ge=TM){E#>HX=X0H zs1H20)zwt90|3!MOp`6uFD8%ig*(w%=gEu?ms+X_g5nBt93j(h%g_5QiOJ*X7J8+# zI3ddkS>Fl|DBcK206=@E?ivh$!^h3d3;>}0wW3A{XA3SIygo-Dx9vdBeIPd64dvP{ zMMJQQM?*0a@V4UdMNr|Po4Ltt9NwbQnauVqL$irN(eE%Pkm zIr%l)75(igy=fVrp4vpbXOh(~9EV8K=(r$-)dLA1M-8o0b-h^31IOAr=uRM)N_Vru zb^Tw%79zgA#X4Ia`EjKQFNo>Fpu7WgnCYh#0xy`#gJ(#Ja}NJ#LTmVVa{?-v{nmm|(G6jTs#JW`_KB2%MIjpZqq zIu0gPD&2 zXbolXc~P^p1pUFmktui5BxZi1aStxD54sUzm70~1(vq9Y&1(8otx(m|(Z$@swf|=r zIg7QEotn$sF}BQ$mMt!Exu5Mr4Bq4QE@L4Kq++nZhz#gZykPuQ9SiU)N*{sxo$pIU zneH0~d|nLJ82{x^>yXd1n)aOxtv2kpSYO&uHNUPnpMkh4|Lg%rix?qO&v&sX_L{rS zumxTmQ>xTcF_*y;IIydj`cS_AxzfcXQr|*pr`Y5N=J_S=MwLf>IAKf4s zFXgqh&$p>{Ro+Ilr%}-%1*Is=tdg1rSZ;7~bT^(mpKqW*p}~!vKC`_5Vewc(c?_I@ z>-Q0miGK;H2{N~ax`K=)>?tlUJ~n?t6L-;ug}m^Ff<`m ze&-w22*hc8|vSBRE z4W-ZjPCPPYq2bu+z3~OixTQX+0Z0MS1Q0!eOihf=_Ky!`&F1xZg{I7m(*r`H&>!3&E&4p^m6}$e*-zk6 zLME$in|*Rt*}+T@<&OT3wMX2L0YnK%NlFXMjbuFK)s@oMo&~$m0OqqTH9GA)sB}T^ z=1GF59Uw70WHh?nl_M4D(09(jLOHW2KZ*aa%{d7}?Dkm^c9` zNlCFutaTgQiU;RP+Yek32QoCe9p0TUQAKXa*w7d~0R>661SV?JhmDK3LHJ)D+w_32 zezVRrm8zX=hW1DkdTe;vKZ&#Mt=`=2pm>MTTe}sypq^+1<*=nhP zU3orSRRW&P?(_H{dZZ9FKbF4hgso*QqdX9O2rf>*tJ7;G4UIeF@8OxZdyX1n_|Be@ z&#KqMGDi_rK;d25iSn}eU;Kll^Z);%P?ajS^F0&vrw}+lWUr+6+YR5lo)-i-s}D!p z&$-1;#LlZQ`G)CX{~B|-@$q(T%4!Y*P%ePr4?8*rE5p8X_d z2vLg3oL*96gY60@OLyDn?R2#hrdgTHTh>7_~YS1Y6H@Vx|t+D>h{^SNuWinU5cZO$ILW1o|XK;K8+V!5&U za|ugnI@iiV?aWfA=aPMhStMI(lhEe_Yg*{PNj)UcE49ZNdl0no0#!#xIXJHUKk3e% zt^I9llix(4_@rqU{nirtXWCkgp7MY46u;Kdxx;*Q{?p%rsU0w$eU_syD#Ou?DFLDys{u46O~W4zCZe*(~hX0+;u-PCu(rY^n_E=9d~VvrE6# z2-m+LvByIJ5$KF0=9G5y1QJ|)?!{8G`&WhT@yXmL)OUvse&Fl&Unq`T(RPT0!u#2Y z*ntELrxI&`n@5xn=q1RObSaY{F)L?% zEC2#UO-O)eRg4a!=sKTEomXz3sfi!}iBf87?tX*(J7opju6XD!z?(HA7a6(5rSpvE zZckz#9|FpkJ${Q!d!n7ga!v9@wW|eBZvi}nIPIUm*QKhf8K}R9yP2UR_&6S(_j`Z0 zY3}Qrr&do~yqi1XHa)31OLnVkkjzX}7lzaHi{<4!S_EO$WdvBW#3~m)5#`DjPhwWB z8`-usd>HYg31>Dv8a1nhIeNOf(4Ci=o1GqB9zNc_?pT%NW(PBKBh-v6p9BEk-s*-WH3g)0!=}+w~T&yIddUCUAHhuJ54-BXU`wPD~k5 z{xv(AHolq`fYE5+PT>0GgHT0e{h5W<@5Lq#_P@lnT~^Q6?Vc}qbl>j_i2ZxU{w47~ zem}tTuYE*)5x=qi#e#!`0hKC1=G7WKD?)AeMO1)iU;u(vNvGK?mq{IX-q%HT?@|85 z330&pyiJ)WxKIM_+m5?XBf2nL-%-ZHm<%b>((scpb8pS1b4+2FHWiBHlD72s10A;e zSmWNVLj<+^kWU@BkLC4hJON_ifx1`~|7{D}HI^fJfdW&d1Pc1|yTcAdp0|p>D1Ksj z#d@iweaxhB7**B3{C~IGy@-S^RS|mh8NpZFZcv6E>Vuc6PAvU99wH}=^#&Qj3ZQAw z{d4hZ0>7zluvcpXLKc3UQ`8BDIs6W5hBicu@$xB~lvgr@|tW zf%w*q1el_u0UAO)1xqm{se|D`_s|97W*{ZE&9~AYh|LkN$1ks?W~4i9Tq&HOXzq-u z<$k0&?XO#L{7P=nq9M<{ZpkY`~(u^559N;hG@fpcXZAb!|u z47uy_BXzmr+Q9_&0pcIf=U2Ftzg+=?YUXm17?LM>E+J;8jHIib4{3lK<7RZy?z{^_ z#n_gEill{N<#dz!aVIBM5efhtZYi&&MWo3U(!!h&<1?g8qPNdIt@HoQM?#9EEvIIa5L*yxsM-UlKgycoL4Pti*^IMEI3~b!;4W-0POF(#~G_ z&umF-C~<~}b{VFyBF(XOxD3fjpW)SFK{iNTfmC#**73qBZMRz8Ch=+Q>s;6d6E5Td zYrd=$UZ)fNtf+)QB+ekeNi^VT+RgQ*H(Zs~*kG#6aETcmX-a8eP!Kk}Q%63(#3>A> zPB3`r*?|`MDkkVK2E{9+lIn2BL6(=#^_^8aop`J})r825%}`E-W!6DvMI1<;SAVmR z9TLd7i76TdFa+k4f=LlDP-P8U;gEPL9A#Dk+FXw)`_B_?^%c~C9U(s{-7eM^g}Eu6 z=zItdVZ>ceT>w33J0faG7z2JRCw6OO4pM$E9mgo%#E}400H5|GPS_eB!^DnK8!y?l z8%+);NhqOj;8OyHW#Nf#Qs4mF>N~Y%?z;y9i?a_;3jsNeO*K_qK9S9=8Z50~V#^|L zsI9bB93C~Cw19Ui&l6@BD@y|4tBg`_87lVdIY+6XS9iwRR8;d4n8^^$rUA`+R;#4m z3c1EYShKNa5bH`f?K0ko;lI=^?LNpOLPIX}!?3 z?hO-K52%*1^KkGMQWG%WeM-t*2agA9_&v>IzzLZY&*1V*fN(WATE85?Mul`?i8|Cf z6b-pW|KmXI$`NTe)ZE0uFI~%3-%wD_D_V70brZqmlp>UaYJ_Dfz*?Qav5JT<6BaIA^3-4rE-n;Cn zN;;NY#(c^ZpK1wP!8#4T|1$~AoP9}DRw2o778(KHemr9(TpfUExd6w^BG)Z^7X^@4 z*c1&B=2^w0(IraKF#{IN8E-nYiVQkkZN_+Ab(hmHZwjvLujKDSt~iAy=mZfW-CkBlEIm zbNde3V7P>-V>_$!47T|#=KL)r_d67x!-2!J$UX(_-jqC;H$e~L3&h9vHzW3ER@E~8 z=fZRN7btW3(2z11hM)84h%PSnQ`I9!jA#2$p7!n=@CW=Z_jMyhxPn6Usj#&9;u?X) zM6lvua@LUO&pvdK?rI$9Mn-D>deMi?HM@;Pf`Y9PZXgN+EC%xV*9)QzKP}x)W59$sVz09EADXqej>tk?z_uTZN4Yh@4g$w7VcX zQ$HNkI`OiVJ@Hm?L|D@Z`!Kj6cLptz>l0yARr0hqbWh=fG!D#;1PsgQ{mS;#qcwE- z>+n;34d>Y-!t~5$(@deEf6VQRl_R1?iLqoa_kzgnL^12$-Im;$x>_hWuLf?rX@tAI zea!Y6Yb6)n<}L*|!~5d^8^rt*kUm|j+fR}V#RcH1Ye;42C=!{iR+)2IUPj!F62_tH zz%0l^qCN-{PQIn0%27QxrIghbgv&@Z+^B$88((KsS^s(JS`QoJLP2bU7T+cZ!?*R@ z;MMM;pIdBp1(zbtom?81431@E_$)cp!Qt-`Bh!$ge^m1*+tu{RIfa)!4n_sJKW$df zezo$X>hCI8kBtf?aWKyf^-1aRVCte4n#z?N(pvkPYCf{Kb~+2;-@=TXZ<=szsLHIZ za8}h|w~0&_kHNnrbV75QZ5Ezr8rX7W_I{D8gPurN_E1Km&;)51!Bc(nZ`*hgQ@mEK zS#Pge#|9jNoJ_;*Xs&6CREm?iaJru)Ckr)vj_qhN9hOCULVZx?z@%~;>r^kg2x%nt zOIS|2{)(p5Agfoy0|jSb3XJM)b$b7J-}WVhCJ|U7VPlZAaE!)C>ZC=%oj@@~DBZt3 zH+CtOvW%$j=fu^4(#}RvNIn1_x;On`u{BS2u?IY@IJvCBlPOZJVjZG&+@mTrXwE<$6)=IHy zDeWu833)cPy3Z?6vK{ z1yjP&1~)@QBimV8$#S@dc+`yzI>`#v786iOe>%PW*c7vW49xtECbP(=ZkUVN8Odav zBRsR`q-#2>hn;1mK)P867cjNW*Rcb=D{L%=#rTdt)WhE7SQ&lszI$%p@aw)Y;SQzFC1}Z%d(1) zfJ$pW@)W=QORa7_xbktu*(u2M!#7Caa7XYBSptI9uSq9RJA%ZBb5QK*O$vwz)i+}f zmlEcKsD8xDAOg+mWN>}$GXt`D`pY6`KqR83RGfUm4D3gBl#o9f{CGL8YNyFkasUzN zrXUO@#~s%O)sE|ynrlvpzB>z|Q0-oIu_Q-p4&YOAY>jV^|AuAdr{ni&*p(+~;)i6k znRRTDkY?Q;OPs+=*7`Y$I&&UbTm8AnOuMPecE?U(x^MVIq(+bQ2JtG*ji?9<_L4;}ss2v?W{I+Z}C|qxq zsI_EeO-@B_;cl16cHAOo%-StZv`P*bnfKGaThP%=?JAM%m6};ka+5+}#%~YTYfXQ^ zb@-?E$hCu9bR~tD4*@FmY`$z`9^VpdcA@4|%W{h?oAfp(w-isT3^Ha$+IWVFu^3hX zMzL>L7vGrgYx6z%!6mzyD={|T#RWnb*L7SYpYtDOXSPRMg9=ElN^YE=X;|Yui$G=Y z%}%(mh<|50GwUjv(>^lN4{Eq`Z1w!a!Os^8Cofh^T7ZTY=lFQQ(&!Kdz6J~+%T!A2 zc!TKXiZR|{IbkkZU{Ozd*$5N0MMgEpUBmcypz}>SrW7EWVhTS>zh>0AV+#k4%yI*e z4Jj&)lN0Bm12N$EPwE`7P|gZ{Lw2kdR(MJEN@`N}d||m=Nd{k&PTInyivXB2erb{p z3T^|7@Cf#aV_=?CFWsm`nJ)c{|Lj&~DqD!DUJmvdHay#rBd}$!EzfGC6m5=kl5K~m zLXM-GbD0V|(VbNV*iY|=vAqM$4bL-@(wDvPj^-Km%y~2`N%DrSziHSa!H*JMaA2cE zHq=>n@f$Nt3jYer{M;v4@Gjrx9<-U`A9;*T{105JIT5VGJ~LBGV7IH+_z6{M5#Tpl zHFCd!Qt?5B!H7JIUe+d9Y+DT2Bfm9L+$j{BWFKDTqal!}lt(#Z3U0~@yDeJLE7(r= zT8h$%^ArpRW<(QHN0^9rY(zG|?6^L^sec6193ORB6p~!nRoT;BP#K#)w(^-P=CA|1E3;iR$44@nFPI`#%$ z@u&;qEk@$PgSt(wj_gPDHk{;7h4n%Ku$e(IER>9}5lphr7Pd1(r-l_cI5zMun#VcY_CCv~ zfpy$&h-|?QcD~Af>b$ZkDPs>3PyIb5iWlf-SUpe2Wd^Ik=_X!qE#P655wYYr8ou-^9>V2nN?&}5L?FD}H_@5}5{mYRe3Ofz?P#428A0nK$NSiAK@%N>18^J~Ch6O_y zC#?4#;BI`vkMx>MSG_AS{sCdCXEx8(#NAIZAJxcy>&Z2i<2(_e7*_Q@z3#$ z-`a_G{4LTWdYTk++PXR|Qi`YhTYOcJ=x4-+ z37N2bO`JRUPMmD?jui)lbISBDpQ-6af2yJ7Q)>~@*M%yNNFbMb=b|&ld70(e-Y{Jfp20S zoqu;bq}cYcE}@ci>WwBTXXrWX5%sRK3U)p952ozO?U1z$VyzHQlhMn<u4eJ?$!qrTtgHVRFqd|dL+@*x=PRqM?99jF%m(B4BFh*=A7ngJM(30g<;c#2=_9pb z5mPEJJy+E^u9=t^-@gzlSh(jnyBas(#u*nCZh4ZAR+aC_C^JBEC0bU?wB z54m{G=)4}}AfB8iAXe%;t~YmS!6Mr7hK3$?efP+0Vr$lFO>&aiI=cMFal~nn;6pi+ znrYMs1CPtl%=qs2O`)fwh2;whsMRsSp6o^sD`R#B!pvFTjKHK$D1APhI%f&svmoj0 zZrR*1m{?Z1@DTwo3+8zO+w_MbyHo{*^r;v!UifYdO4>%;ZX>Q`ak<(%85AAZc!8m% zds@E=kIU6}^Rr1zoWBF8bDB3}GOu`0W@47Bk3%A9xWT2NpoPE^DJNgF4&;_df&{{jXsaev$&mgZ!L!A>Jj{rj|uc;29Od~t8Xx^KS`rmOod+Bc$`R3A` zn})J39ksRD@lER;LCf4j2$BD$ff*k6bu0yB4E^cclSQsITiM{C?yIh%!9-FfFt-2H zaQWC>8!oM6K=A^LCn;!!f_iT2;~QH?G7x!`cPhpUb}0|iLybkiLtCL9bkGqMxy8# zBt>w2GNBv@wT4v`PjyyCE*3q}NW+)f&BMmkK2d3K9Vaw;&?K~E@jgt)U7v_}rEdgg z*o(_2WiO(%{PCj3=FlWrz77>fz1OnuMOFKxzUp_gdd8qL*rTw~&n8k#-y|sMP((+X zQwzOSH-!Q^DWKda+4$-zQ5D20QR;^x6pVly<;5@=3^FCrq9eUFdA50qy0gv!yEFI1 zZl}m=t*vGMFKDaJ7>@MKU4@|8oo@)a1HFpr=|BSJ05D+6i!W-p%33h!k=3WU~4P=^XXp==!QB{QAQq{Ze_I%Ae)!@7~3- zi_up?Sm<2cqC*>xB=W2rS^8O3+n7FJ=P5129=d)xoT4~clyN{LJ_&j%G{!{5Ce)-Z z5*go)5>T%bf^w(z!pb03XlIcD=)o;MSottHq$?@26Qt}a3&%%iOiU0?=7cQ7F({!( z6wmjrW@U15WF?H9mX6n(5h4uW@6& zjM}DbKC;x|#$suxz+sF#R!JCokidb$m{4S`fJE?#X;tosH@DG$ZZ2T5%@$N8yT=$*PDVq}j6P@*X3gY`UaS8% ziS4!Gb5=*l>S2}`CLJZ|a&Sby>dr9lwB^Xh==Kej{~?Xl(G^u4lsTy8Em)Xc+qZ|1 zb|ea<-P;t0PJEaaHhFhH`I(NC-dwe_wm1i0hx?U86Rzd&!6tBpxL2F&gNm2ilfR)Y zxkZ&6@Sf5x%S>g}x4Zt7`N{%69K%0=<)# zw3I_#b4gQkJU_~@&}RLV0Gn2P=$y5*aTKfa4Z3O*UD1T-HgTp+fPgG7Uy$)4qn?n1 zK7DxqfluK*RUVs|JZrad;_TK!&rxWZ;5vY9L_MSpt;YS;{rus+ilaZyC^96quoe={~(kBsfN77J%Q{RKORR9PURBhSIi)&Hz(M?M7pyOQzW{l@LB zSpff0jFX=cz?f`LzmGXcZjHrD^13zOA}?P9YfDr^Mf+ar$NQ?lx_}3u{PHwc(KK8D z|KQx*4{YR5c5A+}t_-k>@9&oKR^4B(-!3>~J0U13?>5HQbhwi)M^v`sbI1@mYH~Yj zAxRr79w3N7T!&nHYg(=y7QA0bEF20XD7L1=I49CJW2;u zBQch}T9qjP%9Jx64e|zjyu;5pj5?mp!cN@C!L>aF-xI!6JP8nF@@|+30hj>0|1oxH zN0=%1%utrAEWO$X;$PGdc0^s6O>1`=^6)A;!=3IS%K|*Yf-kb+hu3=@p$HK~)+t(= zJZH5Je%~J7LUvAGMm*RSerRAMduZ9TEzmN4FP zuB1Uepa(z@5n1RH3Wb`A%=I?g*V*^M?uh2`x2RAh^_~nm~DZ-;V zPKK`tSWYM$ECPPe_GfV~$b*LD1eB$)v0S3H*wL#~t0jQPcnFiUoV$&gig2)H-$BE~ zGlT3l(QVpcrHti-TQ_S~PfLkm5Q8}X!Rr>BA0w>f>*mfYXYyhd9I6ay6FL93a%^0oK_>JeV8$?Bw46qon-{0P=Mt8xtpB z30!|4qe$MD42_x{IDdDBX1-){%9QFaEWNy<=FFVht zo;euWxazH0GDD~0M1{H5^DeW*Y_m&97YZG%;I_{e zkodNz=Y8TQ!`Gr#Yl&xR&(o%8!gQC#U&wbMdHxg!kM#lk49TBLC|dYADgJpCvHF{; z`TM{oIb#2$0RM%DF1KBOhUhUSH*M$Oq+qIB37ob?k7y!tBxKakA&H@MBq>YfJ2N{m zL*fM7wU>PE{9DUda$2P1JPr_L4U{Wz+w|g-l$HNX+;ZV8A#-Poq<4ACNnBpej(2{E zpkrl=pmTl6Ls47HMsjoOi3S${ArLlPY;IIu zpr<)6)#X?lQ)7z{=z=bN3Ysgo$T@O4&dIA>pw#7gZp=vwasP9$nCrKL=YN=(a3>8n z{#kb&Qbj`N=r^tOb;*#$3+D?p_yjOHm?(h~`UGGuj?Qg5aP#}?HB|s0{(h1W0{9g{ zQUzWqYAF!1Ef1KBt(a7)4rfKVL$)odAdBqrDTM~jr;sFLM)TrZ5fL;JsZ-yb@wvHo|(#!P8!7$ZGOmMYOyYB2DK&hSGOMC#uVKaT0 zQ~} zYtM(?F))-T-ygR`ob2^Me||HYNj5pVRsJvK@1+0fVGHx!$gE7kyXnnqj9=}~jcfpB zX#1Px*cmM%TywT`DqR7Oi@v9ePYiFhP~lDds^SEX`BvX7ZPCz#X=diw)_zS4ao~H! zO60JCks%J@q}FMzE92a;foWodvSrJ6PO-9=U$Y3xDq*bss>hM%Ss?=E<1MxlDBn3x zoNnQe8gI$gojh$3DJA+;H-4psE)wAI1rIGM);Z{Xn1bB~5e=DEBT?_=7MpjH@)MBX zMZ>PAOE!OM!v*y?LIKeT4x|z+Hs#T$-owSwzDZjLk+k%9u!)fgBXm~!P*)PpGNB3y z0Hz-j@vK68_g*bO-FA9%KB(Y}(>q&puzA%BEd7o495Qdga4#Zrd#b%`6I{-Ojmw?p z6`7!=*RR;U`N45x(gjj~ZcXJ?*5l2Tgb)e3zkH5|l$TjniY2i9w(1)+ypCb5XVQnK zrZCIn{VsC1y9Nuy$cuWu^-rykk=355__-*zwaIb3Q+ zWW$!~aCWT2OyY2E4B0WZ#I%{>ehzcQ(bZX0cl8mv;X2wrTC;F?>unR>mv@9L>QTg3DE(>6kWD5~EdKHUpYw=X6)s zK9jHHiq)F$yEjmFr)g%(Z^p*zi`Q++^`}YJTXv89$sG#UIxrtstrXGRU^o8h=MJC5_secD3_2kolqJyp zq|v$5?zX|dp-6gF{H?yhNSt5(gr`^jnQCDoBUiPhmK%M={Vxyy{0UKaig&dJK40oj zKB;}T;;A~R965p13+(~Vmc*DP#~2 z4{-8#Hj)%U`5n&+A>0ywoq;C+^b5cQx;O7gb13!f{-$I`x6zPdP zQcgdqQ7z9T5;+~wQc@d^Co~iERCIKldRuTS?AMc%?fuGcRe%gg>lcimW7~*j^8NRo zbuI_PuD|3~I~)12C8B%LJdD_U!{}v%8;M584G*Z8IxhYoNW47C)$wvlOa(NC?|jgd z-ieOm%Ly?sKi|iX4j&Qc7$!>8p19N4m#H9c$;`V1ovk075-PqkxK8tKN=;Bi5h-<$ ztXyz8o}}%0WPi$TF0OS&8MhXT;%pN6_XUU!`QJ@mv}B=Gxy_K_>}wOu%AzWR7jK{_{3;trdk5pan}7ns{G4zO#j=8jq3yp;k7|VH4l$$Z3e~XNhlGExrt8HXyhNjkUqP z5^q)4iFM@1Q(B)MJ`MnsAA>_t4C8K2_U36S3B6aYkJOWlwJXVO@;!#RSUUo4>{)=` zBcVNky|lGJXB7f6BBXb|`Wvu6|8HN67+d!*T_o4P913C0vBUfXc7I^?47YMaYhgJ=nv^(lKkjywJh=h8 zUrG{O>d_PuOC4ep<_UqDt}UEuYgSjpmA36Da9X%hKFqe!s=89MW=D4sabBFr<_2Mk z<#NuAWr`SZ{z3la+(@zbNLd~omiy_N-@RT_15#^FE;20#LLv@H(|39(nI`?aGPYLG z_uJYqZmGll7xHv zN*>*1)6?-2@h-i)(x}oT-yQN7nB}O(=G!0k$E|Ank8R>~Fa0lSAJA<#fo0{^C^Nd) zO2T3I1^EY}cxJqMGl`I7qJ$C6ghutN;faL1W$`FEFm(p@K|vj1&zeX*aBAGh@nUfK zV)J?SI18C5v3{^IgGS;yzg(~(wvbYOb8YWM#92>?LIU(&+c?$HqeZK{W-*y#-Qmdg zV)(j&k`4R`%gZ(C_spZ}dg!P+Ot%ftfI;qxywmVhuVZlWQETM64-tO+S!w8K!r|b< zAIl%0P{GjXxddzq@qpOjAH@fDbThQe{Z5CiY20x(Kem!?#z;e+?&^va!1e*CVDb8fHKmkBqoTa2ZkVAxY1{u-w7G>#+RTNt_DsA(CYn?48Ef zjl-$6RR^g;Q^ID|;%wQInn@k{Ef}CI_tb1-FPru#sHs` z&GvMGcdW~@HnQVJMYqUPlXV8`D41mO3Nn-EK?y!nuwyELSb%<`y_kV9>|RWvGU8(7 zz7gZ^<~fN5#DwOG51Sf31o?G3flZw9l{1Y-q|tkbA}cT9nTL^1t`-Sh@TziLKy;w( z=)tFA_jpaDg>QywaK;CbKINSm%MB}A7|KzSTgDq>v$P>k#>P@>w$^@qsac|1U6Zhw zRl9rIPU&3aXk%Uv+!s6=Q|AN-5Br<0M?0_``BmUfP7b9>g{$7ARG?Q2x#(;F{^o^- z`7z%@L)%*0HG&pQ(l-d*x+RVp16`ZwIJvicRB^$rWPGR!oCH0#kijF@#B}(s9%>F3 z$g{TxKdoU$YX~=*dw+N4Tcy#bwyD$tpsiWevDTqiU9kFSQbojZ`!_-YopVdhi3Ld- zZcYG!lcR7ul6CG4(ZC_6jGn#nD{Wsqfg?GjN9M|bQXX}2)1#2c=&4*|`b6nt?NmYK zB$W%VEVt8FLYFfVd!yptylGO)R0l8K5;|qrtEhTokuqSIo@Q%jo1mPtjvPDK4)12v z;B)n?QdHN~?*^;uS?${(R7zdf6e`3VtD-Z*A?Y|+=5e#fd9L2lExR?~Uvo?g{JIDji^N(sNF?{(sNzNu-Clf8n~- zzQ6PcyzYD3dM8zC-p$6?vd(-scy66XEUex09z5JK=~Cog z;zZ>_{%%jfgS0bvXO2*ir2>){l{z3#-?yJmUxlV@uyEJ;Ir6R4y$qL1_*B|$-Uy#mrVpoFcB+!T$!IiK(Z1E})LdXVh`}cxD@bZ@pf+`v=f<{ZF`4Jq%f@ zj?B}cLMNQp3HZ&H+pEEQ*J}6pq5S;?7ou<{bUd`dJ0$A9d!!ISYux%+(JyAh=?m*$ zZd*=?b|5(^u~scWl3ZSrykkrw^<>|ZuvqcK6{lB>&#D>yd8X(> ze@1{p*X%ZfbDNXCsOQ%JB;&pOucEK*$u1AP*lw$l&5*T1d~Ff3Smo3o>n%NYB9ea* zNp-ZJ*H`aRJ;?s>HGRD1(qQwVOjER^`-nQVDK$@S_pb~s>&7!|&Z--*&gx`y=*WbJ zx24&9Vo&_x_-Nw}gR`*EHTl}#5)O&GE-U}0VPiZoS>obVqQF~e0CCSg*7QlF2i~kx zABR<5terOB)>-CNx;S-hh@8A%#5F4yClS|b)TCtA>uU0zx4ogZkcs0j^wkkJyQ-ra zo!|D6%)V^L%Skk`>?9MA|4!W&|H5v1^^1yt4ubdz2FUN)nZfQCRP1A zjo)qjw&{(T3a$Nk%!}oTC+{Ax=qTmzFtADN?oQWvGMWT3;URX~%(g1k^IgrG*r{(~ zlAp?e-=M*My;i|M2g2_Bo<15EE?T;^G~b_GJxu6XS?_J>nRj~!`RI^S%`#dz{Wbx}K8*KH zWL2(7u`@4b?jZZ>gZzW)tKG+yZw}-24DfuCl=q_BdyO%NJ$*gp7_|vvRrYqUDfwyl zUTah6=|F#6z3Rb$PstR1afgm_lw!n4LKS&o6Pv~}e;%2$L`zMQ{^pG)J-Pc zj9Jk!^|}@YCJ!_M9UTD91rcoAv$KzqkT3CND`Iqzb}PN`;xlH*N5VFa4~T!<|Ab2? zY;a*y-5xTlKCzH@vgF@Y7<$M4Y=Ui~*chAm^yr4Zt1A>cs2I`JV0o4@CMXPoDrhl5%o-Z!TFQp{PI#S3 z{y?L*dYgZxy6{Hz9Y=+GY$AHL3MFYvy@neibAO9BRpPnhe?M6j7?ID-6_ZG_28Ew! zb}n$7zR1H3Lsm}N^%?pN2vfdV6lW`SWzmC8!0h=Cw~S2-X#DV7n2!aACYKjC`%7VQ zNW@)L(Zu4Ej(PXG8V?8sgLcy>53~s-tp)!1w>QWjk*M1^3~^8!4@?%I5pNnYNHpY6 z0;wo4)u+9L*|$>-@(ITk|AaGU4O1Do6L29>M+hplOrO!Z8(Q+K&i^xD z9R5X1ewr*oSu&wBEP7S{$!X$jb#2q-+Ekzgq^>4MUmYnb7DrQdOOL<3Z`=GX;BL5x zEzB7%HKJB`<=A1FDYNIi6p4}l8!Ec3M}ji@mMjUIt*R61S60+dkP={R|5zD}o-(dw zs9WX+KrUsw2Q~r-3kr1NN{ZbIwuFuKkG>NJIc3@8X4JVnmF9#&KWEeARPCCVrFMpw zU#4s}n{(kGyw~R~N*M?eRnx+*-{im1<69Sz)sTnlzaS+49T$^C0PU?VAU~8{=t`rl za0|3sB&!IRLm92Ulh_L$SH6~$&@yD8ipe9VcoLZzhlEOwJ1}Zy7jh1kYYPhtYM$5e!#HBTxb0Xm}vNBrg!ZqZGH z1X8#OaQ?xJLn=&7(d#%Reoz+B%IStD#Q2)E5juYd(kki=NAjhHZX*Kf^8`K5Rn~H< z^&k7WQY1U4Jq75VgaEdkW5Z0ru8iCMW>i7sE@sM7PRymq>s%`IyQiA&R2$+SO&llw zZ&gK#RW8`V4Cu4?d=0{?Mlb|x`Y_HWLO??O4NCx!RAZ?0TMXZC%+&;zZQ_$VGB$?G zF<@~3NMkDIa{{poP1o+=$;hAs3Cf)IUmh9}8YT8H33i@~6jknIvx&w$6%%EJ?>>t` z2NA1mgvL$H7pN_2z?Q>#_%PR5X{HQ9*RLa13pKBHhAxu_?YErbC_g0%r zK_VSlm{ylmkJRKu!yU?ZI1|-L+ZjT+x%|XDv09o(3-Y^O{;=Sy{*PjC(Y$b z>uxA9;!Yu}6Ve-ne13765H-GI?ihDf0bU(h;!?$v19Qpcr6=4p|%n=vk{jRGKKFJH74Y7Xd8$HK0;B@(1WLRQ5RK(S#nytvb+z0L$578-<61A3~&44+=Dzp53${nM&yF*%``(7 zhf15T$ZHrAefSH*x;Y9&j2yRVG6fAQ;$;an6 zVJfj(Z0Q1tln^5r2rw}@6mXxG){Nxl(UkP7(rz29r z1S%j-tD*tkOaBc_r67B`;LOYt`YIO%Q3}e5Dm}m?bPJrUMT?{Yw#|^{jCyN2NnXH6 za2U>?I&PPm&NI;2oiPzSTCbAG?vCDxG0Ef*R#=x7Ukfh$8ssm3A8j)_tu=8a6myD? zqj=H8^mTHVCkw!1>EIWhKy`hax5sD1Q`FDXPrw(l0K(>v6HBuOM`!odvrY4Rr@8z8 zCkI=cXZ9P=i#BaNX4Ed-;n_-C`z=Wf>dR+-(0H|wUUR30tyi{>PNC29Uq`)+X=LvH z!#4WgvW4AOt3Av|xrcOqDV|`rCSUC5@|F*7NAJFTRrMpviW(|otweqcO9koD)xqE9 zV?@|Blke-We0)zPKxAVfqRN(Rx-xx`BbrQf461-X0FPPcnIojet>=%V1<9Uk;$me& z4^Gvy>-=ZS=#u8ym%!S|NZua9b zCKe>UmF7&Xdu;?{s|L|&jsEd1+k!vfIi~e^=z?g zzmII$O0sMx=;|2rBpKhZ-#xmx`MBW@s^uDj@nI}h0j(jBh9O`euLcI=`aEZB$5B~@ z%!tgT%79&5?8W`2=TZL!FB0|sCY#F`VNswy1G~sYH!(p=NJRl z2$GG7Z3K~83$>u6izW_QM@1oJoG(Tk(((>u0HucWZVZQvEb)$q zLye|k>VIu^1=|3S0rZa!fzdD5g>fy7BT?gArc~JeyUQh(6{Bim0!<8z~_qNB! zqC=#Vpk8kLgv52h{Sa0kTnPt7**3bQ@O}tL859X#w)B5+rT<|o{a;$?f6Cfiws-fz z_eOV5+Rrwb&sRrx*3Du9oaRD(-KL2JS(N3$3&k-TEOFGVX~LjA#3!*0^*}&{HN{Fg zkVGoLDw(0PI=;?IfR;4w4rQm#u0-XimJ0*G8$SK85?mOAi)JvEg4a*@ZxSRpfyDO| zI7!4G@!takQm;@ng}4n#0Nh@0yeoV(s+r!&*}0ga^2e{c{xwyBeedDQvp6E|>BGVY zpQNQIJBgkqydRFFFp7jA8Tvo#^5J>m{NnQJf6Z;NJVxk`>|9))--y&*j&yac9r;Fy zpG0OU@i-@o7tl#YfTY0edN7R!)6zlCaTZ*{CluhLaD;Wzvp=r=*^l7|Vs6L^HABwt z{+qA=S7EymZe#=eWDEw3t(r=j0CR>=A7;w*+>_&N*qJl$Mxpm;iPr$6?SKZy`^^?bYY zA$qyNmxnLNL5kvXE~;aq4NsGJY8qw%7G9_qvx!DAY)NtFJUE!jfid7nXq25S`O>TT z;CQc_Ni(|Ff8jA=>m!rw-%#G_URl*DT1}lIwiH&kclS``0zKYZJTgy!KEPVN*-}5+ zJxxk|1oQ2*AelRDb}HK(@#;3HO6=$?-juwKh(q8i2D>}?hQ}LOX?*F^Z|Y>%iCMH6 zb0<2Pt`(aqC6tHb?=#{#2H)cbI@TZ)wxa)`a&StVF@}fND~ng4z(QyQH!VH{Ud+TT zLLK@_Xz>H!@=5)7b2YVQ zPyc#v&PzPK2SuN!tra294$?K0weva_C{s{gW;COK=YUO9+#SP}CMm{PCvUdB6mL%ERa=n@qBqkNW%&DMGIJ`XX;pt|%ydZIrf%Devn@a{dxXI)wbXQN zF4?<61toF1EQv+ce)PqY*rt^;c7h`OXkMc$$NHl-5Nr4?_i4pTFLSJy@Qk*0pRHX> zpwIC8#}NM6)NPG#iX87oQ|Wb$iC2#(R36gP#3!ijg%iw7rJpnuX~0xTlyI#T6F2nE z=-OxsjS|s;pGAiuYqBRH+)=+7Tn{x}S*j9Zm&#*iLGXDl7Yny6 zi!E`16-KBAN%nk~CND_#Qk6F8^aj=@ooui@V3KEOgfX=~QMsMD5>{A$?oVo%NH=y7 zMoGk`G$V~d@5SINjZT@y>5th`$KhC3ls)G4sw|7{qFGF6W`V(ZRysy%`$(kDxR{2TqDel4Rail ziV_6qEm;8y{FD$Wuq7sn1atZcd!43FQsxLsJQG|K4H<(yE=#7MArqerq1)*KlZRm` z1lyJBgLnk{OQ5t5xL26lSS6uOab66IXb6q=MAuOo;T*>D zl!}LgvZr_?w0QjsQZp(@%6Vp>#^o>nxBPDOS%oOt@8jdWyNf~E-6R!*F*!~r?^O0s z&S=C@%qdRDu!mlrT9xSj>~vYuxI}8d4?gg6=?SJMYcl9U&t)M-^FPvIj{1A-1Vzs1 zEPq3l+IQc4p4jN==rhI7J1Yq?3D14P{8gdY^ek>;b2S2fC)g5*)RIc#V>-cH@^Vc2 zG-?$?uDnAOeQ(tFu%C@D$4jz9-H$_fr#9S~M!MO^-ca*C)u!};qpWBM+x|xTs49Ja z@D3%i)b|E_pr7{-oeNYRq)K^LtCDaNrWO};3}p}Ky4b+6=)9d);A)KGOwALuI;tT` zTm)ya+`GmH7ne4gI1rLZ7`TRmY{GVyV5fA=YFGr#?Z#BAiV0@+!o>nDbk!L?y$P=+ z6m+kQ80leBX_>b)fUhsM z>>F=twKn+BOg;v)*8BCBG=FajJm|mBG>QGhG$~#)qe&=8|nIKr7U$;9)H?7fKPL&knPHZnJ&`vHBa8q{Yu8>9- zx{(CQt=ZBML%Q_^yDMg5F4WuQRF+LHB(;%Pmm&~goL+e_{|Yh!vWCO~vo>oW)6` zg^IuU$iat6jhdriX7u92k}${$YaFpGCAYRFwm;yuL@SK@6{u6Q3DT=vZ%m=xO;pCW2^>&l&WMsK zNe+e3gRu>}WJ$d`EkFrCkcjL+n#pLIt^>LwBdvEh+>1+lyGGv-wNQ_?#G>#mj94m7 zC=NQ?1raw+Nz^9msHKJ>syc+8Q~ZjYE0tA+u}f#HsLzdSHq}<@NKPPCNI{`%g+iKk zEHNwYtmK8O#qw^J*V;-1i>gsALNq)&4H&CrN;HaEcFoC(Y@j+z7p>74wulMp|B>-g z^`6uP8h|W&2nQaAXzw4IE4gS9DZwMP(YaEXgGPde)%aCm&3YQVM#??hqm{C5Tc=N# zcy;%Iexu|5S?{Dsuz}Znw7a!iZu~wqk9kQGD;R&aZ+n&w`oKQ&P-B+r1$cC6zt6Az zp%+U|YL+6jOfUArpi}OU18XUChv5t7VngDUnb!D*MmsH2mhPc!4m=y#_@}B{thzX~ zYk(^d=tvqct(z$&e4bx3wiZPu>nbrv5@N0lqs?OgZ|`GEN@m!c+#V^YBq;Wza7~L_ zN1H{`InGK|nA6?C!O-dzuP`S3;6Il z;^uLPb(dH|r_8Ij<7p0XeBiya;~@%9g!__LD5gKd}$ zGd>d^lT%VTt&xm0Cc1j2Q|6psUgE}8rjZjkec8l>w30(%pI;BBPf{9N%gXX9LtXif zAe#ufo7<4~wwV&}#thH9r$6aFH_KAx6MpfQOp&|Bg6)m2xQYvF_`n?F4hmSg5w%ulG(FbiHjVs@<+5Ksv9K5bA zNC`P;r7Q1pcUzJoi& zsh+kTrVPfp)D7-I@|r4v?)3CyKm%k80CPqNg{a;|MHCfp6j$ybMVTNEDW!_=$XG3y zfY_bpgTufPQ688|_c<@!AmpC9gYVpBRo(=kOfJQ#JxFF_$-56!V=SDx=AYz z=dd&)f`5M3c9?|hYAzB9bq|rMtlQSpyGa9?N>noCINWh$Ee)3&fT>7VL|I&43#5`T zW#HqX0|U(W41U61hor|!iFKe{$dV*cBeD1aN_HE?b-Ry{lcxS&!zUqI8mo;ZES-2|U}awLDUB$MvxEq3+^cOlg! zk7kg;J$J#}5ex)GO%(0>M9xnvIsVggHtRGuUTaC59i#$|_E*QGnzaOwi92(Cv z<;_zJ_S}cOy^t~s7%@qlMLqO+08e(Ktj*K;h(>9w7&8jemAJKue;SYEo2@ht2K)Qa zcaF+LljrD{V^%I-BFfP56!+HG6I+B#-EEd~d2qB9@=YgIcerfDustCenC9i9fmTvdp3e-*96;aG6)0V}sfWYZDLHhSK{Xoc?lL<)7$OU$ z?5MPV3<#dd?l76eA^EO2#^naf?0o+9oZ19adO9IJQihgO^NWN`!YR=w_oP1KB-re^ zSvL2T6lxB+$gb{*j;L6KeRJvE9+(Sd7DvxO?Z;W)S}~Ch%V;6B)p0O*C&9;>3e>No zGO*Nec~bHvghjM;&v9D+d%>|y7o)T-DVo6y&K`=jmn^{NvxVQG9X>c+zkAl?^r9kZ zS(ijvNOZ8MIr$3UN_NidF$0ZSmY2&(+kls2%#BaFmW4a?E7QU(mvugj$PFx5Ha66& zT=2HdXf~=IFT4O&3BwFw(YaLSplgjJgC-=G2;R8cVxAG1kI&v2q#Pg$J|ttRu9TPo zIe0-?Xu>~av#YJxG`OrS>aP7Z1^bpKlIxfX{=QRT;I?axE%dP^b}kjUz}AUe&7`0& zgMp$&2R_=1UA=Zj>-pGzMuWpPX&UmISHSD_qC!X1`-Fxv^jNeW=l8$N(C%zqPn5`} zF0+mYry0y^9KO4%Q(0u_NVBuJ(H%$Qqv&#L*K$8miY(m{{;%rhC;_LES;J+RS)xo0 zm|~>QY|@Ke7f#O|>seQiu!-M|AUtiDGo!tcthH9)ySRA;1jW-Z6m-QC&v!W#;f)@8 z@F;|X;w`Lo9KqxD{7yiudvuM) zQ-79brYUgfe2Y1g3dcoZZRA6PP1p_#yJZls!Dz^xU7k zh-o*b=VC+?PM&}*PnO`h5eS!2t_1xp5`eZY?wjRkD#;c9O-)n*|IPae-{*e=YBioGQFynn@-?2`vp1!y0I-kll^$Ka3_-cMaIzwC90Vtx z>&liWjsY#JSX8`t*2Yz7`3qCEr2NhIXDhbbMnS{>312D6mGYo7HFST>fTh=YSy~XL z72uEESUhrK=4b%s_{Yqi4jl~mI>t%N$sIFu7!K7y5XVYPbP{IHbq-3hrWSYe0a)Zg z!m3>s_&y_G+}81Ml@9Zb;66I$R{70eK47K^HH9*tv}M~pg{C3^?7C?-k7_-LzPgCr zdlFl)?Yzdn0}<$D=*|#&CBZz#jJ{c#J?%v|iDWjhyBfK9P&{?xlG!LFr zH8^z@1oUaAI)wj}9GU3W5lK%WU+ttPn}L@TZtS34(fDPp_q*z#A*mN+Y)F*>_kq0yYKJx)(yWb&Y#n2Fs+GsAM3>_sO^7}qg6 z01!|4_dEUw@Jc>M0R9)26GQ@`E3kWMQ8KK1jE%?xA|loS26rPaZ32;C$#O`NF1KL$ zBKQ<3GFJ*xMc000;i|XDns*ltBAe*t=aF636+Gl{c;&bIa*AE`6-R9WXnl?J2oW`w z00uWBu40@-f;Xv1QaLlR+~7^5Xq<16DswGC7Fu0J*0GcSMK+n2FGqIGm;a0$G2GEh zE2r$MPT_hes$x@#*}`ET9Pr}llmuAO%N{rowTz5S#5;)uWXSF z>e8o|ukb_q@I`BO&$<+*8$#ta)u^V*E4AateV<;w!Vfm*n(r$*D7HY=cNf!E15;JP z;&=9dWr0#^};rY5AiQc&m#;G*Zi?}}t5kW+^zukI{eU5y}M zG%(Y2MF7PGo4kPGd1)e|4TJ`B93mT~B|dYMO)}`z>Q1;5!4GjSHDvWTFwQUp;LNwW zm-M~E0LZa{oR1v~?v6p9=HcLETL0yMfDjiD4+4`j*`$fXZXJ-+m{3}cx~_*8%CXEz z4OSarJYXV+a9Cz@UDUBcx5A0y%pe>mma%{+6w8*f1i!SC%vmxJk7TB>DKj4?RyCZ- zkZuYZ8K}{nOZJG2gf z2sL0QM8ItosBlrm1RX9O4hq^uV4A*TBFBw&PYfc?0C>u#z#A1m_YHC;{z<7b5;3=1 zm`EcHPca4vIf>;FiLLexMmD&)JHut9$7`@L{I2;w>Eu~FKmc~*MT{Mk#!S6P>0v90 zD|EpF7b6rDBFvcijvx=o-2ql17@9UWV)208WnsqDXrC>>Z5=5SGSeMvLS$5|Vqs>{ z-c-mk2+?)=2nHDJrFaAYj{vx{kWR-&Do8a4u2EaMDOMRSh%K;!xKT0;VpSzwiU&Xo zfsvv#I6JHfdxs`mv_WvtazzNM(Mkhs(j6vTsZgUquARX=%w(f%T*bS5df|xzW1=K+ z!^kFc<`I(P46micHIAVn%oBf5HCi7BG9K$?uJKHKAGkCjaS^rHHFtLHF|YfchaUer zyb2p!5vcOiV#yyiP^26frioG1IlIu_cL z=e5kHLN)8a4(q~doAu{qgN_@Ve>;ZeSQ||r#Y&{DLn3v;ESVz2FCcCW-#=2Fxx(a` zt;g4e5h9sM;JtsTTC}=owg;5k=@J?|A#S*d$q-qXlUpfV14V1yv)p+1QIXxbPFj;m z;e&)K7OF|}2FfEi@+_3@9W(w5Jc# zW|_^<>AP+jql3lyxIVm!{?|khWs8J<8NGLM?3VB4d_1mq_r4Xu=r;F3(=nRB?Z)}$ zcqsX&Y0`X1)!OmPv7i6Pv6Hz9yD$E~^B}2dN+(UIQCavz37b~YFVstC#}EE;5%a>A z@p9U?^j~;T{-TNf(H5!{x85Z7TIb`3zb=P?5<Ka@bAa|W24206(?Q-O(I=DlHiW`k>-#}oZg_2WGQ>&@0CT? z{qfH)*Wtd{IJkKD1cZ`y%a0{Smyt`BvTJ^vX-JlA%H8v0o#FKi;fQ6s<#+$MRbJ>a zV5xPsnGP9aJ~Yr5;nMlM-4}etcPzEboQrnLm1ju4D~v9=?1rnZx$X}p z^KQCjj{@&8#XWc2Rp^yBdKEFVC}ve+gHq*!K|xolR;5O*m+IKmYtW?84<@x})@q5@ z-a2BheU9$S-yE)F+ZUBsw|DOK&bG!RL9p`o15z*N1WW*2@ z<0FpXgpix5z*=8c80}PDVvd?Uy6}R2v5D*`&yN?ziGi^+9mj}t0vHWrU@Rm-GNeE% zq;;0%$4-ong55^Dn#={&6~=r+WuX-sBN(16aNt*0lpS$MXk=i$CGq_;sAi9 zON%h~bt8Raef?b^LrelwU?H(kGl7rnJ+SyGV00q@fJznk5&&>tPg&85PIki_xrI2L zhfcX_AtQ@%hzS8GYC#pCS`Qho*{Y!+*tirc#ehE#H{{oBaGWA1?Xi&PVt}FNU$)z{ z($Z+JGIfHkn=;Eh88&2QI+qRrlH8`qbUiIR_b$x9Py3?COz)1que@Hq^G=>Wz90-0 zL};SuhlK0@mOg964Mmpv-c98H<+gR;Z=lhf;rH%3J>h>J`n|c_Zs{aVW82y~R8W)u zlqEmpJxTxOHc9VmI)?R8Tv%#kd!{TtGvB85?S7$W$Gtjt9}y9oYvMBzyZJUk>ZkEF zqxJ3i?nV7X_vSXTiJNu(QoXZty}J2|xpLXV1;IVies%RBbD~~3Lu!>;b#@x@TI1Dm zrPEMyvAvuV+lJsc{TaEaQ^kL^xP5e;vbIq#)uGt|k6nk9W#nVs7c_^f)x6Qbez0dv^mYS@H*|n8 zze4wK7!UQK`PX|LK7>7@D9-$~0ZyMn^d3g6(Iy8y#(`*Ouw-Yn+6|Q))&**bJ(k%G z)^tIzlY~9quiwijq&A{GPWu&m4cWE(nHQ+{rzHZiPpoSz#(GIUvL&(^Y$of;7D^?u zb1NcxC_b_etp7`#W#?E$S5S47{yzxo9P7chI#uqG`drOKxVfnaGjS&7++?^Z8Jmeu zJ*HNJ5KsDLcy&#y*{eHIRxEilw-5K>h7N{nmlk)$Rw3`<`v6B^A;thB&dA^H@%2d8 z=?>P;iw-WVzw^tM!K%bfSP@`;e!7F7*~(}xJ!S8lmcdzKf6K=um$2u)nz{ z7kjr&>P<9L&t}-i%Uk*-%MQsI!9^JS3e|~A z7oFKv+upj|w$qMl?-_CF!|g-WQqYqH@-cMu^JMI2tCPL}jZ-uf+JNYV~uHaKyp#Qcaz8T)QmBiD_zdWqtc1U}#tfS=a!&ljs@Hl|A zBk5F#v2*_>Up>n*h%VUu>{<=`%8dVqQfrC?+UD}`K3vn5$-9vK%J<& zT{g^{TlMg0SvBBOAAqpE7o=+Z>fU=l^{|tegSzEEDz@k@<+G%UFZ{L|Vz5H2A0$h~I{6Vk~{>^iCC1@M(;ptB+#DVY9Xr(|N^h3G8b~Z&8iiuN! z7VF({pV+p%JOAEi@W}*^-tp^yChx{OV`YLzTQ#9G@=%4OmdFEbtWrW(^sY1QMz`M! z>YDU_h{?9JJN;f)@H6uN5T@%CkJ?EulWu9{26?de$ukqw^GQ=te(E<&q?vGiF;Hfr zbfms$NK+98;y_Hj={HAJm5wSNYEEm`Wdjhl{kSq%k}DRM(sJ(VlJd+F%ghRkivJSJFiq&};i^~cwCq;#-QdzaUN>QV@LCPd$oa+A(G@E5O?HErY zDt!vxb`}=Nx8{GENi;< zhm)HlvuH>sHM3|~@xQmX172m^(qjxX za(+kjj}j!?TnN8Ed@FA6WFeXCu3q;Pn)hWErFwowrFM$e*@g$G*rlr+L&KD8a`g@s zGKwaNR7uJiMdKtYWaUh+etFbdX5*ZTH+?laFS9i|f5eioWGz`XI-cYy=VcRsBAu0r zvWU1T5(`J+BVli}0(PKnOf;!ysh(|XgjRUnd`Q<*V-%^yt8tng7vJD#(A;YTnsH{( zDAEqvfFH#?YI>dg_S>LxC+;`%DAr}?a73L@FH26rBW-tkfK{B7w*;1KD~`*!1eSm* z;D5XLSAZzv{yFa*snMp#c>n(`Kj+W?yZq>~e`(l2oy70*(CrqO+3m`9hFnx?%aJ-# z?V(a{bI~m{{@*i9tw*XM9?X?b!uc3n3N>oY@4rG@&@R-;)k-aLYh0`s$yG|X_^4G1 zHO;x?%F<=Yzsd6jLV(erl_`GzFEQ3gGto(P(O5S5kA%8lE}N*Q8T=1XPEgPhi-<-} zASaR+$rVXsRvp8vJd9RBmQ~{YCM_trR~+LkH+G|3(~)vbO=MOado4NiR&wm72IqqFNN~btpD^2uU@w^Z#9F_R$RUhbTX`bhU$_(br6a}@ywn*2*x9S z;4qlcwq)0dMVou`yRLnGUHMp=P@A@8990YYU>TL~vOJs&nb@{4uidS<0K3d-qF?Bi zd0!qYbD^SIsFN9Bf}3EW`Hw71mj0iuu@aotC}R59&Nju90WSRI*ShI27rv@{gB*m5 z{ZVXw{5)pn((Uhax|PZs2DtyJ8Yuqu{6FPF_QS{jt0=ICVkiDPbh;px=W4c|V^NxD zBG=(&fX4QYFMIL)2iLQ*Wp`Wm-+(VpuOKSpRSq=zkWxisHXilEvZ%qkX;tJ>Jz4ke zgR7tS7|(aZ{kxi>63;B&ft8p$MYnCVjpd!h!$|A?#_iUNE{|p2hp%-UIngiq;kYGt z3fG~9bDo0XjwN@NClSJ@;qFy@h<$yWNdCb+4rFm7n%JQTcedQ96Vc}rcS7Chw0*RfHj@IFj^jPVJ^eC*AGSnVz2g5dWi^-9GKOlOh^6LNU)c>hv z4H*n>jPxBH?x75JCnRacjN%RSfg+hdzGr$ti!kQgWjHg=B4E9Tiou3piS&`c8K9C4 z^o@2wDou?M0a46M=74%sL??d}4-8$v86fmTVE$Lt2+Zidfxc;(0fh+#$Xy1e2<9Nh zAW+F3BJ=XlP(+sN36H$LCMj zmjwhZMFrxGfrH`h$6Sy0Mg3EN#~Ejr_VzMhl8k($xRAvw>gxjo9G>Ar{yQgqeN%sZ zOmH!9#J?bijDfE-un_)D@Ik=wLmpt-{DevEv?TnrHb5n~Hq>9r;!=nJm#4+scJ ziOC5{ipmO0i_;VMEuk)=ETb)?D5WW;DyJ)`AgLj$BC8{;B&{W`Cco1=JGwf!IJwzB zKfXS^JiXmFH?}skG_^IbFtIVRGQ&^6K*2%6Lc>GEM8!qMM#o3U7?IyqSZOvs`6`W0 zuhVTkRKZ%gQnOL#dr(5V(PF#PW^|qF^Nty*w9s&+LPs^}p_w~1%bArQ96(qI{I7je zGc=_mOYu(dUuXOK*pv-3Jbs(&=Ti0VKX;_xO00+=0MXURxc_dL0HAPS9e_AMFdzkx4af(S0;&KlK%jsGKrWyV zPzI<0v;aB*Lx2fDD8Lbr3Frf)1KI$MfEa)X7}9^^L`R`RPD>DR3l0G!U~rXya~-uY zBYxN`9}H@6DaO#4JLCw`g55D8$^i&pAV36ey%zINevw2LIN>h|Zy`QHWM-@I0v2xW zMyKfvX6f;S3b!+>8Ko1F`2H>MDYj2JiRMPYbJ4{`OmtHagr>FW!??@)7YumTTr#&M z;E30b5&=_|J3zCk^lR<|I`sVm|DGG8iDltokqhdK5cD|9K|1IfbEP5ML@~Q1~l_)k#OnW0aZGFqNJWJJ-y+J1f?%z z%vnXLdGckwPp6^rR6mGnDga`2K-B{l4<3OGb-tBkoCXf*$*^(|5-AA>n)7IL?5jxN zRRVdqQ&NiiAha2LIANvt51V}BH&2$VjU8_Piv~`gTMwo**UM<=ItG#|k z!|9syB=??of|rP*Acvsragr#I%vdCwJVHcRj?CecaZEZRkNwab8XhWFEDh6{lRT-t zmgP{wnRn=I^-tVmv(mN@<*T^?bK~iJ)Mer|@=eMheeGAs2mLWzzr;&;n~0n^Vm(hG z!9$|@vCDk)*yE!iiAnbeKyCk8%&QRmVimOF0J6mn;V0i3pE zO9PeCmPm1;?YQ;4B9LD;Qv)SByh#AZr*u;7{GJSG^sqqxnaqpKkzPSD^ck&Uaq{*- zG{oewK)(XA`13(i)H$XfEnlazC|8%^8AHIx2gxUs3x2eQWO{@YFqz~ahYJJ|sWCFk<56%?DXQ%0B`}7XjuPo|J_F4)^6`sUvI>7f)I1fF6={|tyvf0n00g++6p{&M%upp-Wxqt zNp1~+MX)qNGtcq%}Rc7V}gy|m7n3>BTuA)Ti z)C&Vnztkv9j$dU7e*#%Mg(RHmQc$FcJJ-|#A7DQS;;z<-GbZWF3l@9J||Vtj_O)0TKVUcZ5=I* z9zi7iu6@{@*{=K?!a^N2*PUCvPn7>S2o{&x$R>r+*laAKK~7=Hb$9+Qh9RduN?uWH zJiKXdd%ikP*zQ-WDgIqkL5^ZDb}dOP z>!bE>US#Fmx`G{d83lIE>v3jMx52uLrBa}Q~^(y_P!?}XxwP-!KR?(!db!>&m{nop)^JY zJ;$-TqImd#U~0N~RgJan_YXxn@hkzviR&3otvYp(#r8cX&F_zMMyPa!rf_~s(L{yDlV?B_j6=L1)7^4o*AA&Oxm)A`k2H< zBv)9Wt*F-fICyEJ!BGl(SX}-L9=5JGsL#{re#_A*$i&9F+7frpW2HbXedinAJ;yz6 z0Vd5Ju1F1*Lq48Eeh}t_1tN&{gZgx_AoaS5s=vd(0cAUdSO;29U3llmi(!tQ+}6H) zLGEG92X9z-6n&q!IUP=Qak7cERRvieafEO-Gls))%MQjf9bAdiqflcT1awak7sR6` zb4kI)gyP7B@I+IRonG)NhUOwz%zDuMQP3qTCj0g}$GPs2gDf>i`Fvl3YCHKVmDMhSJx zlu|L;qv2pPV0?gg2eSWF@pQ~kHodz?(`GQHVr7c?#Fpg~9(}mtR*0LfSfA}tD9)!y zv2@xIOHsL|_d3}aR_q#R%Ky1O1&fyH6JkW<qELv69D-$kmiW z<>5yXz_^Jln!4wpr93kVl2wx=W7$FxSCqy#jHE4p;RU&%W*jp}lF=?*0@B4m zs02ph(n$`z{VLP`%?F)9EAjm9+b; zniCbgw=Pzy!CRK9g-Rh6=bzwy+87IB<8sv{VnDJlNILF{T%lhH*(7}^#x(MkkRc?) z%tIcT?1^aF<9Gg-I4rbJGqW%)oy$PHd)Xkv#w zAMMog@{cC%Ai?s9^}R_-WeEJ?cF42ppe-$v$j&bC{iL#7Xw8OwzNF_B`A=7dEBz9z zK|d`?`gdn`k?vg2()Blh&HGK3EcNeWoroH&-GwH{)w+NPq5I6&*~@ z7n?zUpIGTpe_TBlOY4#2n&o{z-VP5R^!R?g?s&K7?=AEQHhuB!erX<4>sM+;WTVFD zg6~U{*V7Sm8U-c=AuGimnR6n`Wdd=gES&zP1LG78&lN-WACyiSoQGD_$}s?CefDAc zMm+1fBX7v1(^kwxlle!FhaZ48#~ej!x~Y=5GS5x1iPRR|Kl)-X2eNf zP#_1*hqae7U|%t}zZVo*pUuQkuR7mL#U}>vBF)RJ@Iu#BbKa(ZJ-lKHaPs>M)Pr7 z>|Wc}TxQRi#t)n$jGeF&JCKJ=;!{q@_d%`zd|3^;-s8;(8Zv(*7K3@<<^J;$a!|_8 zd{DtuQFW1yw?66HF-oZ77-!q_>z;c0f0&;7*O3D-!X`PDOc^S?Dwb_CePzZ(F>+TH zlr}mlZaWcQ9WOEOe15|8Z4;FQaNrS%4$m#BBqz0%ReBq^oHC&sYNlCgte)O3K@m_D z#Vfdai)}__v2aIx&3lX6q3toxy99%4dpkhSU#5XoYK|-YV0f z5zt*H#vOHqmZ7_L?l?3Jo`vr3^}j35cXl{@YXHd>LQgC_!*}A>^%fSv@3OY8!9o=5BvR?V|;;J3n0EQ<3{MzLkcJ_F&>1 zv?ix6UGjB#3{12>J8wIfmRareyBqGoU2d_%4kt#rg5*8>!_tLvV(F(QA&*`h8A&J* z=}@dQB`JsIuz{KimOah(EKv^UEt8C2{b93`f;~Xh>Sx($AoyL=lkE^nVur(L1f@RS zEHGd?3x_uwm@{Z2G96Kd0qR{NG-FXba<>+&1eQEWq;cM#{19kxd){VQ1YZPLFNW&Y zjG((!AgBPlV$0X^{Nu>3ZC(K`P{YI(1clW{$%h1rtkrvGuaU|=f3t15`#4`E@lUcW zmW;I=#T0pyA~&kk3ZKXGp!?XTbfwnIRPX)^JC<+OXQYzbt=rS=Icv_ttG(lSGK%ci zrKS05GX*B4#oFvvSN__OoeqDgi%wP?kHgHx-f9#C`1RW6Y~5>a9|-+$f9+Ps+byn( z3pbwL%HRCbswy*Kqn#(V+EyFxX3DmTj?PZ6qv7Jq{NL}2gsD#yHx}Iz;_;#=3Jk6@E;Y1mtb0Dgii|_Fv^HI5 z{wl1k@%{Skc9Ngg!g9S;&&%yQWM1gGX(293)c9H6mBankuX5kA==u*UykBpZa|bH@ z4F1h0TKK#)pNuYkbVGD9xE|81-#y-moDo)`U)zbx3ov!32|6^*(c?r`@J10Vnx+lY zHtP=52z?-n92KsO6SESlKwT;=qu;3<$ZYU&9(qd^!rq#T(5FSwr$E__wO5At0>Qz;7|)0%m-^^ z92d9%+zCQIQ!tQ5{w5OYQnN5+0=p0L!sKHdZ-9ONj5EHtXyk#s!l z`S1%FsvZL{HKtxCdI*vtjoFOjZlgs&HJ`qfoCPG|MQ@${t9}iNxo80~h{12=#C=bg zmjUKA{F^7*jdc!pZy&bpwz^VHL!P2ox2fw$h;xVoS!rxx%djWLLViZf!MOJrnQCs_ zdQx=!fB36iWt>VEUguycRn;}!P8LcYYU6wGp4MsCnUve8jNU4wHYTnpL4#QPvVj-! zH`R&t+E)CTE>^!Lv3@u6ro>5yqlUj1khBu@(MlhI^n2I@rsbcmXjWxo1z5)f?$iNr zhQU1fLWI7L8GUmA1X$m1C;WzhdRV~Ve51F7V**Sbsbl_)B5ET}$g>FwfT-D@wUdl_ z9i+Kh=QDg*GxY-O981e!?!ojGP2fnaDR?8%k|xxOL_j1$VDPv4tZkrVow`N2M`$i{ z7A!hcVAG2o58UOjJCgrs>u4;_s+THy2<8l4%;2t}T z_3y@&_j^n1)a{a35WA%`-6bSF_v?YM_|AmQ`YV~kV*vSglSpYj1r9fi5s%)>cCBsU zKO39v)KFCJ->IiPHXf`?ZSP)%2sY($lRMw5*xYV8oNTlFer425Zc3lXU){y%N_*R1 z#&r!M8m+Hi30~7X8_h?L)Ck?mFXFZqUd{c>+a2~Ze(~iA+el89e`BJlkFEIvjddgu zC(-L(vHE3_VRE7LWq~}Ynm`5QbpurYkOnw0@<0h>GZW+m$rwO{Kg|iS&WjVDk0mc| zx|MB@Wb?hw-R6uK194O4OZl0xR!&kK$4KMKp|rKw&+is^FBVMxZi317P`|xV9!oQT zC95-6Fbq4z&j2zq{6GS$Jbv8Gcc1%hsBS+gR%a&36utgab+o!gh1(4@WT zW*0An9hB@wCZ~7VKZU7!K5>*FTgc??A~cu4{Ih67w_}PSWd_mqQ=|H{1!96|K+5Yf z7?Ob;g%WkykY=J`?IoxY)UJ;EiH2oJ6Nk#2I^CbNihgg4-#TpKrVQqr2{Jox%b#{T z%y!#bW-YC@cxMQWo?Wi`7JKK^d9vJ#>GdXq4{{HzA#mZDb{#zfEmnDjG1;`BhG=T1F{8AQRA916-; z6M7Vlg9ifxff=+DAnH!NIjP(um3>|Ak89Dtd@JlTwd=qCC2VgKn?3)MW45#QsJ!_) z;n#Ejw$jSQ`}@rwhx0lE0pUL^k^6g6F~mGtypSSRj0k&z*^x#X7FxILwii{5P&s5k z9U9G?fr@glYEU2ru?YF==(J-*tE~OjPSGrbJ(q4Zm!eD#>Z$Za8*Gk<$L%h|5u9Hs zHatK3D5FUTHZdX~V+;a1PK)b{hR6Ejy!^JXzcC)C8l1C2?4lTXYK|7Akcn(aoe!g2 zgn}WQMg@z1#un?~pJ(=aOh6-Uc>W3a_-+KNJrtO^BaKqTq?~1s#J6m+l!5&qbO;-b{p}6RNA>LoT&+04d;p0 z>$5Dk9d`J|T5LSX?{#zHopJB|EAlj-nw#gwjdDF6`OKdB0fjXrElr_{ri6H>n}mBe z-0!o(`z7?+2ax z;KJ;Lztbb^KIS-!o`ZXAetuPXRC>{(PC)0C2*Dxs=Acy60zKu%{i4$fT*y7qc){b= zB!UKACZ&jvaDu2?td~Siya)0lCM~3F9GXqG+?hxDFdg`!ztSyrU1?K~%D28vIC@yA zZNl+>SJJupa1y92zVYTyK(jDGwkQVHdl2loH7? zc_41XS4^bNv`wti09^qyOUm4>c}V@qjzO)|B*jCEk77YfJI^JKGV}+RKFhd((=C<@ z(zxelbFe+x7idOHJ1tul+e9LR zxnWxRi;OOW|A58l*EO95*;z-A1B17pGnnh-k~XaoTHZaQ+)?1 zl|uV{kEgnMUGsH(_pWt#d0z2(>3{!_ay{={mYj{|3++AN({KLVjrs!|i;s_ldxYt% z=iOIgao>m8k5`0G$ThNfk1-ShaoW|A<#Nq6_%flw0jAmnxpWHJek4h`N^u~!DjZPi zVk5Ku5DW|Q5Qi|sL(WA0uP$Pnt&wi8m;Mk@H&`|Avm=;EY+8uiou=ENpvwdP!tEN2 z&8@Gqq(HmB4L8CT^s{ItaVJQe*aek65-W}(D^!Hc)|sQQ#O-85I5!kVEoXJ~r>%rk zS%PM1jg9dbub1i9kQm+^<%Rdpu1V~?D3j~ZA?;e+e3_?N+b^3rDk0Tm5Eks|W~6*2 zydd*(tKoopnPkHpf*}qJ>t>@ntpraxG(`CLo!mof&u!vFe9>7R^Gq>T8Kq(1Cs0>) z#-an@e=@LUg5!|NNSr~ucr@1k~9QLl`N6U2S%4sRre(sVzd?!_*b z#Z_T(*7#P8DY3s>DT-UNM)HdI!k_GNoKAGq!xn#*i7)D#sss*sNGQ`_O4P?yPia7F z${&rCfLJPO!Ig1f$W~TTjth@&AdEgEm}8&{i(*%<7l)?#xd z{e0ci@<3~imHFR27;c2_1+{X9i#3sxx9OG`+<;-1Q&ppj>e|bW=kM-L#o{`)gAY#!XGl0xd5eBcc!k00VqyJqr-B`ZRO;+?-+Xv9zHI5tZg6h2h}i{_3Z=4;}D+ z4eAZNy8{D?h;%Vx5DMfYIb?HJ#dHWBP08o<>Muw2C8%{O-c3jVg~lY3^tpKc1^O!+ z@GE=HDL6N6m5#}NG;NJ8*P==Lg|{0wbR)m9Q_3kpDUb9HS*#cy>h2XQK)&BZ2_{0H z&15vL9u$<{^f-F9++_Si;-5hx(B(-E5M@TZl`&IwAWlLmSA$$nw6@`_WQt=$BBcwD zLfIG^U$r6=bcsDp7=^v4;ye!Iq{FP5Iy;wi>pS+|;4bh%$2c}?$U|Bl-FyfmkWRLU z#G?9}a;%W`EI?KYxf7;7KuA^9bXZkYa6cd_UV_kE8;1bFd@L#?(N0|k`Yx$1x~0F} zy>XY|`^%+LM|YK83C&h*b#n22v9&q#wsS~st@)q(1c%XrViwKtZEF*o0vW|WY_&*M zF%%{PIs4)JPN3j9qR>=(#Q+9fH4%Z2BYI9=D#z|}kz&WpF`$r@zL@VPYyqN$7k23^ z-tA+6N~xP(o7sm;1@@c~#xh>m0f;S9Sh>KpWI{T_XvQ3wdyaqS{1WDTSRx41ycr(b z+?3jvu%b!#9c#N&??LkBx3he&lgBmXLk>AKe@U_;zqc8d_}gJ3qg?8)B-9t5y0u44 z*r`N_Uf;>sg-S)g)Lca?(_agvUCN+ph$ z`UMsVzOhiVgA4a}Swy+iE3FVIP(KKE?vP=yusoFZMr&p0&Lkqr-|=e;PI3x_A0PzO zTnlPKdsT?k3o(%)!=d$Km7pwm2v?EG2NW@(|7H`pU6H%tnqEfQS;#O|UuJJwmIyBj zA8g2QIW|^rYAfivD_adS$)ftoh1Jpl7pt}Kf3Vvw47U{9q_7D`Y_`5^%1X!5$is4VMRU&g zxZC&)EC;+yOh*pSkH6~B=4!R+NG95Da%ZQ&ZadH7-(tJC2*aGS<*GAvYg}vNR#7v* zuCq@?ErzKZS&Tm$MX)bXE=%b7=p_O?nh^yJ;Sv^zHIXQ{1qT9!jqeIU_*<+$-I)2yNvj2`;4b-iFIzNAZ2tsB@5=}WL9CRU{?8g*pwD(l#gqeyCv7%{N zrHOTeBIJt#62F1Wbt&Mn5P*!CAa}%P?t?nUfOdycd)Kt}aQTis(V{x??5bg5uC2Kq z_Asdr*uu4mY7`8TO|kSdd(J#Ta8+!;?(xO9uTd#>aR0}OeXZAi_w~56T^DA9eSX39 zCOes>n?5olx^0b8#q2)i4JARBD+n;{1!eg7EwdK`#0=I;LoRu=~2M|xD^j8<}Cod2GVCgq7UkWnX zAQ{n#Xg1UQ{-I%Fz4z}66MY46QV~kcWQRVTKuoau4pbqzNY`ljKjG9=%lgr}O`s_> zc1}cV3k5_f&ZA%&xxeLR7^Fb>^6f#Kuw5ssd#I6Q=-`WX2HRA~8TH|lFD z=k--eKd4);r)+2NuXu%3-Zxg*aD9WR)^3lC?lYhLEX*dGpT1aAwh3++<`LOkckVyG zZMWC)ePAbwP{=-D?}h8k2ZVSv-!4R*`3BX^lBa$a)i;>*FoR_5~@-~uA zYh4nKLh`!1SN4naGCO<^Un;2XnUXehHP&0sZ&D5(bm5E$?X!7QIK;kn_JL&A-iYaGcG@#dJi`*_o*scsxBiO%9Ncb)C5c?g5`B|HLBVXIIpnBkdn* zOE8C>ZZBQRLFhek*G!qZ8!%YDiQGxI#nTMk#G183r!nH4B5+R;$-x*ZYRtyZ{=<+B zSKnEIx{VvEkmjn75yn)F^7=2h^>UBB@@RLT$2&k?Cae`8QJ^(do)=1le=o(QRwU5;k>u9x1*J3#kKCC`} z9XbYC?0{mZFh9y+Jrl}}fyF6UgR^*P0&e})ruL1?4dI2k)C|7$rmY!^bB&us!}E2m zMV;{jDB^M9H{Ujpw-rJ+F1Kn44-@lq_P}{KAU)leHm)wYEZ;Ex_{8G5jP!t zyd5|wMzp7~6=X7UY1cEJSTh(mb7@%cxKQuYrlm^S&a!)V#Ywvw9F_V*s;;)W6c?%` zKBWNtn8RN*nSpq5k6`W^a7M)u$Ocs?`A+&&Z|s;{etRm%>}gVxq%QNqw;ZqtK>3n@* zh>^z1LpS9RM#A<&XXVH>Ib;_b15!3m+bLRC&Kg`{E5+!WY>DnJ7sHW#!}DtFRkl6( ziUm+MmzwQ%I+uY>yj@>kD&}yT-j$^mq9|Nk&UGEH<0b)d?lJv5)r0<{;+M%9L{8e; z2&xXg{D~T9B<*<38hL+<^}9a~())I{yDshVy}v`bSlIFU-09BK{q|?r4ug@G z9`C&taJNbEUtx&PB`L-KN0dN8#2ODXojEAd3`wC$Twoq0p((27pcB3Cnr1~zUV*Y8V5+XU4P$9U2;{-_2jp*`OERwxxj~^H3Jv6ANj_UDgqSY* zP@Wmf$GloeWWyJW_9dUuvvNA zNk;TwE(Xm)3<4dd6-Bd;IfYT<*33{q$h7MXfyERt|7N&c_}BLK30rWPy@M86_HC@X zUM@|=bcL-*Z3{igoQAa2b<^7L+BMzP26qSE$O7DN3Bhq&AREOs;tu+EE~z<%LB#JT zBi@;`i(6lL)Hzw0VqQqNPlem%+7dBml!hqnrQ~p1A%4w_GT=jy+D36_loS;uqIMKB zjIU(*xYN)J#0N=icLXNR&H}lzG`Pk>S5c*G+3L+f8*BM2I|$qOG-cQjmYiYAf`+vVQd^rplw?bsX)GG>zp8Q>=}<`V_|c!uE*^w9ymh# zA5f?YXN~+`1TpEZ&nWcQ=4#>uJ!xFP>~uprSq~A)Er7t3DhwAGf>9VBrxW)|*G#Ml zA0b+)ScvFohsWb9YMqyN(UQQh+KU)CAlJ-t5yR~$;_-NJJttU)aE3HKJ3)p!y$=zQ z3p&ICyKyfs3$-VkQDyO^_*;ee2OX;kKDC@Kpt(H|ebYThzd)kgyux92El_P=`Q&D{ zlG}B%rxeH|X#MHLm8RY3Z}tZ$H0)(hS8WVd&xhLY+X+kdZTcHPa(Hk6qg(`M(znRu z+D%=th}3vfm5l9TB31cV_%6XG(JmsxYAOfd3R0 zGb+AgT0uF<)tDTbF3n(sS@bIRXRFmii`BZPIbg=2zo5t+*&Rty7AD7)^N5Rvx`G1Z z3Z6T0B}uY(w>K@ET;D?fgZr)5tg>#c(sH{DP?%hsH6l=3I5<5NAD)Y0?e{0&Kc!eb zBWgvH>#=4XgMl8PPchxP4_P>DNmD@mY>;{WRXinwIVPj&3nvN5C?R4|4T$PR6As2N zG|`BQ(JbT`6?WgC=1tSeI>o$YEjphmWAZ$IGiMOEmR@ETlzJyP8Xru`Q$XSZxqAx+ zcP&!Ti6ScR^>SJH!wZ6iR3+9opUOfh<&u(Ln_aJZ1upv*_4#yv9A)#Od{aCGR1H_( z2r1-LxD+z0=PZ#GD|w&E%>7-vabg_d1g0!mTY4@Gp1R ztb|jj;vY^I$!?X+0mAnUzd|sQz4M>HjZ80{y_P)^{aU_{S&lO6E_vBd=u|y&n8rLg z^xOt#H?U!}zyBA4Ky`zacp+Zw2%Z`X+vUjiS+*6biNP^@k#QW`gK!Wh`dDZ($Dkee zM=d`=kT{#|&k7EXyoNp88jd$KZiD$- zu+{Rmm14%00(!Y!I=a32c%Z~f!@kf!aT|ciTVvXI7md_?tr#pk%-WJSA_>`7n}rG$ zbw8)bGzpAWd_}~9QeZPOmaZ!yhOXVkKsI8S#V%vHtXa(J^J~2f4L)s(xm<@8#!d&- zB<78-!fGUNdGQSndqD>Rog7?tSeAIL8hfR*-)4z0gech-u6WsQQ@vr%7~)_}!me;_)-Y7i;}!g>zWJg^r!@}fwB_EZs@$}~EW1ygc(N2<<^04TZHl>{ zuYR}(;?||ochS_P*M-~ji0YxRK9V9kwQxn!plUA8)Uv_83%%=jSH5I4mNzRXuCP#@ z4FW&Qv63w-2%>-(44Jx3sJtOiJ6~NzwuH^ATAebP&8vz>iCea6o(Yi}eUJ(&G)HYE zKwYKYKHwh1U792d%}F9DF$D>WVpkD7S&ixqlR$&=zNm9(w3x2hW1A^QPz{xgLz_>3 zxW9>^g#D~zL-0oC4I_Iwn;nxq*0?pGE?9FxBC%qlUm~$#APere4>YkT279?w^VdI& zOpq0Jg4@c$_7lKsCy5xgKMlQaB->@7TK_?hpHybiqM| zugt%=NATT#32X6};8(CnLR5gbFjk*;m%;nMJ;cK7K<}`DUz!5(ns~qjZ_bj6fT@C(p?*CIDg7n-B)Wj^ zC(v7BygR;RWMw+Na%4$-{Jb#Ud#>svPDVn+i45^wB3Ftmcr?Y^z`=xtU5c4mS_TU{ zk`w}EObQk9aH%B8)#Aw{z+KCVOa2#^e}H)!0RSdF%LgqNIptY~i|9w0h!pr2)Q_ry zO5mRrzuNF?DSAbpiK5SpCh=V(_q5;s<(t)1iKR`y@JJ>h*Xh*$cuTBi z&XR^Ot1>Xj#;@#z+vaxN%9A(FdG**W>4E+8!<2OISMMF7Uo*M?q@I&(QK?v)U3TSf z5^tbHA)C`XS2k+&{2%4uku&?A{kn}-O6xWr$7?GMczi$eF408XO5`$xu&E0lJ?=^2P`{Y(y)wr7@$3 z@hu=ykw%cBa5|DnqNic0Vkv-AKLfGys*88%;wo3$8(7s~qJo?anTQ==; zAIF2j{zpt;IT?W=bN zN!98v+}cytxjdbaO4V9NWvMwfe|Kl$ue}D(#s1xKMn0e|v1#`!1Jzv#vJA=S5#qNJ zm*gN302w_ftSLSP-Z~B;D3QbhxQifr1rq5!&zFKDSPCA5xWNR3lP~pxfRIjC00~H( z9i`+Z2i`Yg00YAsag|*J9Pd$s$x$L~+8I@`!p9i{PsxSd$5tWSkg?)T1X7t*78d9w z3*+2EO~yK-_U_1vCn~np*KH|(a`_Y9fZzS(N;t2p+g$O~vL`%n-W_Nes;pepTw2<^ zsIqdXB_JtT{v>?R^VEtbE4DPiA3nb7Nsr&>ehU6@Yd!qo_Y*@+!C=!+qHr6 zV(O~|&b+u-n72EMl_C~EKGJ}q^%l(eW3oFRF!ZYOZ z!ZWW4Z)BEv!)_jbv$VnGZU|6qtn11*HgDfjc#~|~vVF6lw=Q0e~0hccl9>+ z;-UuL7)DyXJ^=(vW;qM{ic}x1!Fei9Wf0X?&6G6N%;3%B-qlbzGdAGN zcvWf+YQMAbbVEe#zyY1Ac{Q%&;FfJ$=BMT_PBy33J+N}e%S}-^D9>p9k~yitj4QQp z+n%ipQ>VIiA8F1cJ?ZYj#gXfQOb1;X3=>vt}wY7v7yj#$I)2Y#xl)4=8=5V~dI#yBLy=rB3PhE}I*qqCeK`fhg!+2)OzMA zajz$*OK^b{N(dQ1Ani% z?q&gXjW>uV@Ns_SJTuxSz7o8^c`MPfnYTm{%V#_A)huYP4%`BvqXmJab$EIuLaUe( zT=~NHf|&K{`7)TP7T@64!_~50*6^A+AWLK$maW7pt79J8=T=fiRO19`mIY^N+HN-q z+9?E*At@#_ktkWOUsWOGvx=1!o#{14pZ)5lO=q7yx~8TE9dF+BRX9#>tXR13zGs&n z`QytQ;tThE=DDRuF1)nmc5nycEY!X~*&s!~Xs z>Rvdo{`31=s9$V4``q2@(&=?~Kljzm8_zy__u6!N?cMOOWzXM#U{QP{|L3F2UU=Z9 zMTyO$e>t-0rCZuNvaM2$)oF__KG;9+mZ1ub$*yK(Qt6!bxt)i;DAZfiL)2R4yF>)6 z>v012NX#pQXyRnm5f@D4D+Hxil|Z#e79?XeLORKeQ%RL#?U5Pb*1X3oqBlM>t^BBx z&8erAA61|&=uWQy^NB2PR)|~ZK3*Xbj_{!}r0~**cGTB}tAlPB7w_W76WasZ7zP z%2*&=x{YE>N)g^84%0^Zb;1Nx3KAq2O>pG-yi;_tA=F@AJ{coYvBXAQSQ>X z$a}AI1MfX1+az-81A-wci#vvkU5O+LVV{Tucc{uqa7PyjF|khsbsh?^kJ7szr?wt1 z43OdfT~8m$G#$`GEGAyOz82{2Me9A^Ex@_%UNp3B)NHUNnXg%lbwLd>F-vAq06kz_ zdXvc1%!jkA1~(y`q7G2e#{3>w{N_MH*4`j4{={ZLzr-uQxL{ z7VE3^dTaXx`?--=AgPypALgthR!!MUj|$cp8awI|Tx=)Nq5?b#cFbjH#pqFS5W+|r zHR?5!(`eB>jj$s!r^Q|Lw6L~N%K{;EnGrVRPqy)*|MN<$*vf0cv18Pp_6+lr6z$;lt97S zvI^7<36w0SVRMYtlP!8I&A1B^PWcsE{!D~RbYfMxi(IHw|JqURGd0B%bvn7xAW<+q zx_h^zha3HlSjO|LtK)tNweu#Puv`$JI~pYd^Lzo!i+bD z@Cmfjs0swfq{JPMs*xcvvv7%X8u(yB>~@q&PVaO?&X}~=Ibcdhlf|_s(n?x45}nvcxX6X?!lD$s4hF zVlM4cvN4^isf_6LK#Q8ejMJ6wh};=B4mQ^=sdGD$y@jG{fO4@%l%1PVv#)e51YC051m%rCC0>PUggz8W-0@9& zp4Vtmo<2_qrk6;dq`eZQ0ky?0a9EM}%mKVrHNXOMV{;C?u#Il~)zgLFKE3tD19K$F z;S-y(PhK)If4pR*_cm=mfyVJk@>?WNT_OxboDgfQfGgq~?uCZ%vaKC{5omGM;vjVzX_gP?~NNIwM{vWEbmke3N7 zl}25-(GX>%s1H$lIP>+|!?Dxb!(~vjEnhmtW>Dcl_~5U1-Bnoih-9Z)Yf~^^e`|c( zk|pF@v7UpTPrU`}#6Y-F&o3kyMPD4aV-YKDJqU^MMo`E`JQp#hL#h!CqwIAt>L7mO#WCGitzW1?0c6q;CO zsx!u#Oejo;($&o*X{N)W;I)??SDw~r)wq8HJ|-~TmCVJ$ zh^Mgsw9dKDAx+suJ9Zr_Geg`0n~^DZ#2k{xQDO>rCDX{hwhyYh;$!cG2_ zT=~h}I?ck}g>wcAwf8SHEx9DhUBxnm?s7A8$nCv!&}$)8GiTSfYH5zi30E+Kb|TfB%A%!jMH5Q)NqO$%2eN`xyg?Yd^ruKS~Dhhj!q_&_Ok zeoGy&u6m|Wuaq4%S5-G-zc$g)kX)*PYS}RAo>#M5j)pAx3 zTPBJ@kxL+sWre&?Fu_|< zw}mE*T?{(hdKy&{SF6TG<<(I+*nC(P3VE?B2?mH!1MUXF$A z{a)eUS*K;zrb*iF=d=myhk&1?KnM?;|wQIumHx1(uaX->6l4b@p=q} zr8?Xz{(9s*_t*U2j;URWyX1^qa+kuT?w^gS(!`H`B$KX{NTk$SsqFIm6T}tAEWH9_ zju2JEzL{f=7RSu_02HTqn`CS>Wb>guYZ9T*JBh$@J|ZZq2<`$U#!7Gpu?XTs6qFE~ zCykUZE*3<_PyrokEgHXe^4H1sUY7=cx0cT-E1grHwwH#;^_Eymq;yV0jV%x&hi4^5 zRr%bs$LVoKL*>0SZa63pUVd*<-XtO)T|g5bP^E#`I+H5?397gfTx}|ER1ij(eLRWl zQnk246l$J;lt{`Xw46hob9se7i<>=CB(7pf8F)GF13;n{C!y<-VnP>-B$)A=0@qOF zU4y60Y>T46c+_SIdkonkAs%8qk$A*oFnA(XTbYNQMwl0he_{=zPlPYuD^i6@&$vTO zq0G$yjKt%6w0lP;+$a6fMmwY;(AeW zVe=^zc<@@X*I(k-1bHUG_lGR{$Gp`Y;j*q8kEf=qEZkA;U6!egXS4Cj%&Z!Kii7*^ zbXK;NgAxNmKq)|@_-}%QKtMY!mzc-NCaPilM@`i3D}P9hpL1dZ%=!sQ$4EI)>OWZEv)@TZKD4wmS8j^=5!6$7> zp^Ht~$sdOhm(d&$hPYbz8HhPxd0G^V(G`uQYC5~H!EH)`P}F3(E*8`YZpt<)CrZOp z`(%AcS2k2>FePa>-NB7hAG2NCqCY>YFFL$l(G|AD%B|oE2k-s;>EVy+;p4IHYp>-{%(>wu!AaCZ}UE?qnhQTI;x>vIJl*iIyT2CLF^`pDJ***5n`t4A@kRmoZ`G^+8gUNR))IzE+~|9 zAXf?k#T{`q2`&P_-5`{>m!a73fu01PY>G`!NUQ&xD5e+R#4X?`;v{_W<5*U8=sS^K z#y?Sm<4o%FsEMT*RX0vZ9s16bQ>AU;xk)j*_(QR|9Ch{2@Nx`fO^-8pITn4l0e`nS z!LjFglh`K2#Dbefk;<&NPjQCipy($%Q({)0n=UF7k0t1<@56JCfXtvhoKd2!xQi3l zm?XFm&f6PtNTj$oPYL`-*?JYI0wdm_gf{f}Ou}A&7}G2}IcES5?M!C>_MChMx36LH z#T{tS*IY*HGzEC#1KfMxhcFl3+s1;_)40PuNIgmDXbsw}faN_G5Hk!o+dKtj zPj-?+n^`R>-V5kD?nPaUoq(BQ73$tf$TsIre7W^dK&koif%I8%fYcWelyX0&g?NVY+Z&b&W30=7V z$)?&vo~dpLcLsq4(KdbT;Hr_3?&ugr1MQhvNSlG~@MwU0GV z>fI>@wm4TQo@?!O=9-;tu60x98vB>{Ia6~PUm8JM3tm~F!yn!z;N3#ppUH%`Bc;B5(8%RXiafvl%1E`DcwN%U`xZYI0La<;h!f!uLBOjlH z!=#>XfWrwuq+N4>9oBrN)P3a0ZTArtstw-djTlt^v> zd_x!&WJW<+6{Ji--cIf)oLoz;Ay=<0e2(03fc|z*Hp@lWSF|h<6x#4JVvTCiVZ-@o*#u`oVcfyRh!}*;80L*7BXs@{_4)qq zE?Q{v`8IM}Zotggb#`#0wcb7d>o?r`Zht3ry7AEw#Eth4d=@dMwMis;LuPM@^)KrS zzkV50K3R3#?Icy}$?$8(ems|cELIMrAHS`eM4Y(&d%eh><6ecJ-|a*I{SL;p-3m)* z>sA;PyA|fl4v$#9HEYMhNjo)5@51wwM(KK844Kt}A(}eQ;OyfJ%{I>P~ zGs`&1FHAEm*Bh&3=cF+yj#rAahO>@0Hrsg1C&%mhP`b{v7qble(ly56`Xira5U?#2 z#_xjhR}d|zqWUOWI+oY51UMk*m*R?>rw~^tHkst~qJv=^6SmYkS=_a{ z*vVzKX2svQFiW%I!uu@;p5MIjg@f&dF*08keM zZ|U4KSWf?A>r02)n^x^kHx9R_s;Yfu>3C)LmU;6JEs1y57JDDGhO*t&v4%x$HG^|9 zP2E+#wzNOC`1ZwDv?5l0kG_xj4*2FNz-;%==!A%BzfqcZ_I8NP)7l{l5Uv`CS*^#N zC$4FSh%j3<`qd+?A&My3#EvS=K?LfHCCSaW(T6vig=hT}#mH0gZ2xS3#1|);LtgkN zJ0&uD+)VOH*Nl#dQ)!w7nm#;Bcgd#f(lk8_O+T!~WXFsalZc{q6BOl~EY}QlP5*0j zo!V`3vL5bV=sS6GqJ-|B?LbNIDVE$7>G}rHH3MGN<1^^m2y~5Im#%Ho=-Q3xS_^co z)#LrY*U%MJdelyl)mHWuplqx>IgPdzK-;!|jkZqo8}Be<8Jn_qDeh47W3iD=Vi9aFNb00-f85g~XR;(7E?|-BIUHAu&?I zAn05sIa-})m1FL3Q84a{Fy%Y+W24ayLLSSv3!Ytv&{-XAz0Dw<%*;!r^0h+lYcaC> z?cnMuf(dhDFJeF~i`B*ae^Fh`>iEh2X(l}EtZFYSZOT;If@S1Rdu3Y$PLkGMYUH2f zhs0PlSm$*IT(OGE!8(sC;9h#AVP+#%iO83yaLqJ&k25_}IRjqGic~%! zY+D*i7Ju-n39+OJv7}nqxzwabKU_GuGPq&X$#FoqIgrQ?3rCYnW*t)RQDi*ZV8INq zyaN3KK(~P(T7h~a5|~2--}Ap?+C=zu3b$s)<3ASn?w`5K$~B#9Lo@eWeGEQspRo(; z^5yBu?EPzYX-)7|N@07^|Nr%NF0gH#*8#qlGy?=|K%An>*3|O;^Z%EZ5Ah*8!vI6(y_9h8Ip=?z|NqbV4mAlR|NG|=BX=h? zPL7lx4yF3|Bjr8W69`(0rp8Er8_S+fmWJ%D$nHDHS35%KPMI<7US!&_PGq+b#J2B% zS*8z{oF9Ubkh7<4yJnu@9v(+`hB{*pGUJpuvVMR$XwV(o+|als=JCX~G&XFGxo6Tx z+4nmqNmPO1h{F*X4m55II~?JSjm@2%&2Y+%$4+Uh#Es_tacYW6kzDCSZ-i?QuO$1x znsMHmfN+ISfZc4iO($ymAY5*1BsD=IZW$J{QIQpgkQIltPW+a9k-qfvalUK0bo*h5c{2_4&1GgS5pv z`RLKMCvL_ZlSj^U#~-cyVczv{EmPbYDN9pW5#3f^+z4olGay zn%(?4yl>~FLtRB7(+c_E$QF5b!87=?%JB<7ChL35XGXp*@R_636Iq1jpeRlMD}ZV4 zD1vE@@tEcmV{iu}Fv6?_HFE(szhTJ*8LZWHBAYYIg!_Rv%Y_v}d5p8@7X&b$ub0zV zdSSneUY0;FL@h~+JrXOX7?$B<$=0VB!MDF3#r#lk>dPyJeoe@nN$ch6KTljZ^k;(BOTS}=_n@X$j9Kn zDWjuYKYji1@9Q}p`ib?Rz{Tb)xBTw=JQ!TU>+1?`Oa0VN$Q3TbL5Hxr@klB{oV+-i zLU!dftRV6QI*12HmO!ade6{2o1$Q0v`Y_V#KnH4b1~)@aqaKu%E-sVsem|{FS3Ws@ z9sRVSZ2CMUy7xb5a(E8si>ataKGp*E=rCAD2)L*q0T&#lrZ^q zEwG)bm(h>5yk|&?K0~6!Nl4k*Y4D7fg`POQEaa$tF-e{xy7!Oh#}KZSqNCcWq*~a= z)8J?5Nm)Pi45%`vQ{zAkIqo*JhJT*ekkt!dmo=2ry!S3ku4T2|FShdnitqgjJ-Zz< z6UxXCF95kN(>f2rkW1b5>)~UBKru{dzU#*o_ z9qgIeRKMZrx1KzB{p%ykp@}0sn@>)(h_&roAKkEZeypDUx36A3H@bUr@n-)*r%WX^ zYetMUYQ|yFs5fYP!%uapDyy`^?AQMCr^mm&@`K%jPcI+e{*B$i=&{#NG;QDDi%gy& z>|@M&zlvG{OMR;dNgDZDoKpg$)RNcPBFAG}!XiX*@qlU65@4mul66XkHofFiYta2V z6Q9VC@{uis)(nK2tAoQ&xzi9J8DT{j)Z)T>1Z&aMY_Uy%LdkyB!UeYkN4S1LqXx3aUOmPimsn!|Cs5IZ&n{kCok*>va ze3_k+vekb{+3G>I+VZjqBV}pX-pP0~rDPKgXZ9nBY>+?ep~6rZ2g~M1vY79`VGo-Q_s&vNkW7U^E!Tmr2FTSwrlUY8ct;RNbyPDCrln%eS!s1C*5Qto zRNTAeJTWmfL;YORCHWq%6BeL00NXL8Ah~KhL&6_QIr%aeO#oK`dVyNG0(4Js6Vzzv zPa42Gi19Ry{2fDG-t~<5%cFcw0EB?apU_uT8WPW%hB;_=sd$ZE!RMa)W zIAJ1NZb2KeGwqB4Vm&3%n`$v*U7^R&d2<$;E6SqKy{Rk3AFZFn7C7cGExGa$@Y{c*8>c=vMS!+t@$E-~Afc*IzsB zF#qeuo2S9ZUeBn@D%$ab1EQ%|bmlv&BjNVhZ%@6vpZL6(KaS=EGt$OvK7rgK;yL>m zL+&k&A+Jfp6D)ZD$^dHM@d-SRJYmr#oW-H!nVGKup8Qo|x+@4Om%Ndl=E}+BxL=t7 ztvc3Lu6ZEk3#*i?y1UBaFvoVBEIIdfhC`JT?1=L(B>F>88*zDeY~f=8D=>QWIV zJ{n{aT@e^(V3ZD{QF=pK=p~Do5*8*|8dz$tRG|A!0m~fqfhx)kYgxM}L+!^%b5983Sp=jx z9H5$ugU!W4GcJxemuJu{1!3os!x>-;Uwei54O&*#P&)~K0l=}O+>~1kpz;JA5-P@^ zrH07FvM>eP`RaubuVx2`5~*8g(GttKb(~VnS6tDRuD7z>|F=id#a14YjzIOQ~QoB51h;Ux{NiAK`o_NZ2hUtPJa_%{z`*J2b92|v4Du113uk}FXA%9^lg}P~7b0bEe|Ouq@7}&} z;r5H;<1gOk{dVaUi3@3H1M);)qLNLZC0~SV6$76L`=h|(>PDAwHq~!zf*r+ve*2a9 zq+#TfhPBu$K^-K~kGlti;c3;x3ynguMHA9T!l>iq4G=n^Pb#fAzgMf{TprMr5vUC= zPXpZS*DX=nFu3-K?%YF>0w+$wffJp5B1jZhmp*eE=|6Mz&@(@eMt=6K9nT-?(OK~+ z)8WD1y#qmgRb{Jp_so&@GdDY;?_QjF?TP-kFJAhyMeoML8#m9zYefGklDm8MboB0z z2Z-Z(_V|%=nS&)^FY)m+^Jl@Az45^ZH>O@V*oJ&rS~ye^^YML7T(hl<+LasO2O~^0 z0+rh!=CPT@d)ua4Ts3Nf)mpp_r#IkOwFVN)jrX|M8wXfA+OcqO;J>dUO|4MGpk#m9 zXh#|?gRY6@@&03Trlzo#2eFXC$~^8)BUBd#@pRdnjydys&Tb>A7bAIJG>g`xHfoqk zSV9~F^fq>>g0b+q`4oDV9Y4!P7MV62Mw$i`!a_=AE5}%u>5K06d{}4!n9Xjaa>$Hd z=DSx!Ht|QI?~}U8dF;RpFz^*|L}WXEp8P)ZS^3{*Civg)l2p<`sf)5u9aORk*XvVI zau@@wUbxQm>Jtmc-cWI~4NSxAS-b8kb z)1x<$=`j}z6U1ee{F~^ZmVt)6Nfd*2{64Z*3cN^vke;g0x-Ix6j=5}m;jJWLwbBq| zJ6xWPex=f?Y!2@aPycXZ4O2;SxIdxCsLvn#Jhh!S{1}hzcf)u7CIx|0@b&{2T#VL}`b4ON zE$h~6V!C7RLyQ=W$yIQwPBckmySck*Ft<7qJBlrEYRU zpL7S{JGT|SbJy{b^L7HPLJ)aF`b2$+wo|uWQ_@kTw%Vd0LZe$9a%u5aCN19lK=##7 zMCWn)`+t(%{C_Wd(UvVO(d1Fz`>6ux;KK7n_cbHSuXM7IUR({8> zCK^efR&my5mQ5c>S14C_$~WgiA6HHx$td=&B;jouavK02Pa1?4DnjdXmG`X>Dw%vttOI5(TV zm69r{N(nBw1R2^=8doGOMp(YMZgw)Z=}YK&cQCuJhT;*AK`@x&qyEXyKm2tUxXbJ)l(u z5`jpHB1h^iY^p+m@6|@qDAj60l4EXh$~en%_23+{$$A_)RNo8`+jErRQRWa5LQGE(9~O`9CFnS6#7CXkW^ z4!XbQS(>I7E*tk>`pF+XdvjBtT&vdk`wos?{(Fz8#bLSoIr^IZrPI3li1VHAM0fTy zd2E&PO2z1=e}3WAPZuY3qV_|YYOOI~Jaq2E7sh7y3@gLzT8#)2VZP z^ih?^=dO~;`xJSXENcA5xwi`D^4vFX1C(CF0BB9_N$e^Pq%X$Eggsq&C?z zqi~uX@o@l6O6&4#(xIDCs6OZQi_N+L`p%7W^!JYFG|FqzN(m#EUsLF`M~^GsQn?N8 z%D3grLx&Hqs_5UYszm$bs@3<@HVyhmx2xoL|C&Czb@er;lioS9x6yr`Tl%gMa5TCa{BU%t$&b-9~UabV;LkB%)e08 zP$$_=;aYp(I5`9v^jL<3lEoE=>{tvN5yOVbtTqd340g<5wu3}AQsfi@BcKM68a#JW z1y`=uk-hJXMA*W(C~Qu#`}Vn4=5}5gnOTk=YdHTLT2TBqFHCgT%O{3Zzi($oMADa@ zjb@77|1V;no^b#G0096100A1H^X&ADUk^O>03Qed00000%9CDj00000)$M7A|HuA{ z2w4YN0000800IC200000c-muNWME*A{FlVQz;WdN@&6|{A{l@pDBvXkp%4dVc-n1~ zO=wd=6opUb=j9>cEsBUx3qmC#5=sdoB?LjF)DU!2q=rzWi&BceHDXXiL?nm=DMDy9 zXz>R@Ts^XIQHqEd#D%)hEF-uOu~3k1N|EQeqmfwp;N#5Pc{6wBo*A`_L+JWqw*a+- zwoajL9$`N@{)EFDTMYCik^qiJRueK+w3P0suEhdimaVM)9gSPFCvt< zH-T~U6-`l_ZIH1;%V*HBPjvj9( z0^_5P?LdbZVcryx`~~K}*r`3+RkDv%i2KKQxWK&yJln8Z#JFy_f99n2E>^-;dNv}S zsHYeu#~6DnxorV^)c~%tUt#>RPH=w>%-axCjs}KV`;@EuCd5xi-^2^&Ll>$Pz2lnq zsVn5CcNFQ44;$gWt~p=Ci*CdVdS=>Ka&_MXufp?+7lZ$!644s#e~Pe>0&v;@`p8vbqVV`HXb$?wj{Pg>}>2+9AX?P9M3o-I6Js> zxR!DK<1XT!#=V344o?nm5bqQ|F1`}JJ$yg-_4qgOzY^dO@DP|Ma70i}FhTH;5RXuU z&@JhZOd?F;jHHH?o74oU8`37y zUD8WrBxKTL_Q`6ryl7mu|a*hfc5XPxWscuknQro3= zPkoO17mXvDVVWB>Z)kqgI;8bL+eW)f`-@JE&JtY~T@T$l-E(>ZdMSFl^rH;K44Dik z7(OsEG3qmxFkWL~W3t0E#dMPygIR>xJ#!9oGxH+zD;7=`CoHWjH(2RdowKg6o@JwD zQ)hF{*39;horqnMJ)8XohZsiz$2(3ZoY%Q@xT?8sa&vII;XcLvnEMY8GmllCHl8QE z%)FL(D|m17iSXIw>)^Y}PsFdoU&p`3|6V{=z@NZPK^8$-LECV^BSDvf9t8ae76=Xt zo)vsABqromXhi6QFfJf;3abdK2-geW7JeHTf|3*5osCH~7)y_i+A) z$!F#3;7^kq(q4IF@;SM*^1aE;Ge569H+fy!jo9S#5;uM@`TgL##%q%|WWV{1$-l}6 z&7VyEP1?<0OnxC7O^@rPG}qUh{QIh0T;GtJlF3AlC6`qCGLTY2*^)@Mas5QvvWM># zllE}dg>DF~W4Q~

$*{F-|_0sT|_2kY~8Nh2K;XJke`}lNqih{D<-t&I^2VIif}= zx8Z5b$X~$22&bWJ!ea+#8Kf5dtDgjVg;`A*S^b3ctXB8r4m3mg5|~tX-uI%19h^L% zb%FDYx_gMEUmsaB?IVt&%$G3FBR+}ufbpD{@Pwa(sJfZP}L_xO>P7med)` zWy>nXnbtQm>;(mzi^mIAff}S0p z(ke@>Ko3tMvZ6;;rN~0L8?$=K_OUT3WsPeNO`$z9X89TL%zwz5Xw(_1*=4TI%c9@> z9cE%{f#o4%IyB1v`8+nOEa!W@&B?e!c9+DT(AL!`Vy0RL?Y6_N`MO@X$|y(NyiFjL zc+QG||Zig#kU zYV=KRi-FDWw5qSe--X}Uc2FWu8LbPgl2&!hm^GRZ?ePNA%yymnQ=Fdhnpg3+vE9t{ zt-IRmXT+^txNq!;kHzE4i_)tf36YWnrw$=Skn6VOXpKm|OI~F0SDyppM zb9XxS#yD}Aj5!q{Yd2)JGpmi84c)K#T%Jyj7Z_2H`zf|X&PeX9~XvT%D1p6pa38;I zxenh~As;~RTGiQ4Sqa@Hx^qi=BdEt3|2=zGx%nRc1!Q3oPyhe`c-n2zS4`7U6vy%J zfzm>OvNwo(kN^K)%5b-oy7%6qKwCw?VpZHm+#?zjebTsI)VOCf>Vq2hiX-ZS&+ho3 zzL{9~U*9}0pZw0vJ-NAuC|c`}gBAR*K7m9@v{;D7LJU@H#1e;{coIm&K@!QNkV+cq zWROV~+2oK*9{Ci|hC7rN4o?)0E1z35FJG;|D{6yc(n5=tqfFa7Ax z00uIM!MO2Ij+Y923}Gn47|sYrGK$fRVJzbq&jcniiOEc1D$|(G3}!Nm+00=sl@h~I zn%T$=_VJNT>|#3yILD_PAdu5y^QtYIDN`O0^$ah7vj=PmEVF7c8eiQhZKRoNIYTZYfn<+D_TL-nn} zAdMOT$D#a~p;SP)KG>8ly^P;x*J7 zCC~CjrS)VSTvvB~r}*F5^Gxiblw|Fyma%Ky76z{-6xJoBdyG>(B7--TLRyxS#y8Z- z@|$*0`3L$N4*>(v8vzqA)&dq_E(E%OHUENFc?ZkU^tMB!RTL3z<4W}g2_^{2d3j6YfAYGN|;t800CLYxd;FN>j&6$ literal 0 HcmV?d00001 diff --git a/src/report/html_report/assets/fonts/lato-regular-webfont.woff2 b/src/report/html_report/assets/fonts/lato-regular-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0e58138a07e7dfadcd6bb92348ff09268098228c GIT binary patch literal 24992 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 literal 0 HcmV?d00001 diff --git a/src/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png b/src/report/html_report/b815e28b1e230cff6e9d7b749edcd562.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5adc37b2a8af0688dd640f6e7b759c2b0d31a9 GIT binary patch literal 12777 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 literal 0 HcmV?d00001 diff --git a/src/report/html_report/config.js b/src/report/html_report/config.js new file mode 100644 index 000000000..4e5df23dd --- /dev/null +++ b/src/report/html_report/config.js @@ -0,0 +1,153 @@ +report({ + "testSuite": "BackstopJS", + "tests": [ + { + "pair": { + "reference": "..\\bitmaps_reference\\Entire_document.png", + "test": "..\\bitmaps_test\\20200421-195427\\Entire_document.png", + "selector": "document", + "fileName": "Entire_document.png", + "label": "Entire document", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\H1_heading.png", + "test": "..\\bitmaps_test\\20200421-195427\\H1_heading.png", + "selector": "h1", + "fileName": "H1_heading.png", + "label": "H1 heading", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "10.39", + "analysisTime": 14 + }, + "diffImage": "..\\bitmaps_test\\20200421-195427\\failed_diff_H1_heading.png" + }, + "status": "fail" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\H2_heading.png", + "test": "..\\bitmaps_test\\20200421-195427\\H2_heading.png", + "selector": "h2:first-of-type", + "fileName": "H2_heading.png", + "label": "H2 heading", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "1.95", + "analysisTime": 10 + }, + "diffImage": "..\\bitmaps_test\\20200421-195427\\failed_diff_H2_heading.png" + }, + "status": "fail" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Paragraph.png", + "test": "..\\bitmaps_test\\20200421-195427\\Paragraph.png", + "selector": "p:first-of-type", + "fileName": "Paragraph.png", + "label": "Paragraph", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Ordered_list.png", + "test": "..\\bitmaps_test\\20200421-195427\\Ordered_list.png", + "selector": "ol:first-of-type", + "fileName": "Ordered_list.png", + "label": "Ordered list", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + }, + { + "pair": { + "reference": "..\\bitmaps_reference\\Articles_17_to_30_link.png", + "test": "..\\bitmaps_test\\20200421-195427\\Articles_17_to_30_link.png", + "selector": "a:first-of-type", + "fileName": "Articles_17_to_30_link.png", + "label": "Articles 17 to 30 link", + "requireSameDimensions": false, + "misMatchThreshold": 1, + "url": "http://localhost:8080/index.html", + "referenceUrl": "https://mate-academy.github.io/layout_solutions/human-rights/", + "expect": 0, + "viewportLabel": "tablet_h", + "diff": { + "isSameDimensions": true, + "dimensionDifference": { + "width": 0, + "height": 0 + }, + "misMatchPercentage": "0.00" + } + }, + "status": "pass" + } + ] +}); \ No newline at end of file diff --git a/src/report/html_report/diff.js b/src/report/html_report/diff.js new file mode 100644 index 000000000..0b824f123 --- /dev/null +++ b/src/report/html_report/diff.js @@ -0,0 +1,1843 @@ +/*! + + diff v3.5.0 + +Software License Agreement (BSD License) + +Copyright (c) 2009-2015, Kevin Decker + +All rights reserved. + +Redistribution and use of this software in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the + following disclaimer in the documentation and/or other + materials provided with the distribution. + +* Neither the name of Kevin Decker nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +@license +*/ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["JsDiff"] = factory(); + else + root["JsDiff"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.canonicalize = exports.convertChangesToXML = exports.convertChangesToDMP = exports.merge = exports.parsePatch = exports.applyPatches = exports.applyPatch = exports.createPatch = exports.createTwoFilesPatch = exports.structuredPatch = exports.diffArrays = exports.diffJson = exports.diffCss = exports.diffSentences = exports.diffTrimmedLines = exports.diffLines = exports.diffWordsWithSpace = exports.diffWords = exports.diffChars = exports.Diff = undefined; + + /*istanbul ignore end*/var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_character = __webpack_require__(2) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_word = __webpack_require__(3) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_sentence = __webpack_require__(6) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_css = __webpack_require__(7) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_json = __webpack_require__(8) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_array = __webpack_require__(9) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_apply = __webpack_require__(10) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_merge = __webpack_require__(13) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_dmp = __webpack_require__(16) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_xml = __webpack_require__(17) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /* See LICENSE file for terms of use */ + + /* + * Text diff implementation. + * + * This library supports the following APIS: + * JsDiff.diffChars: Character by character diff + * JsDiff.diffWords: Word (as defined by \b regex) diff which ignores whitespace + * JsDiff.diffLines: Line based diff + * + * JsDiff.diffCss: Diff targeted at CSS content + * + * These methods are based on the implementation proposed in + * "An O(ND) Difference Algorithm and its Variations" (Myers, 1986). + * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.6927 + */ + exports. /*istanbul ignore end*/Diff = _base2['default']; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffChars = _character.diffChars; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWords = _word.diffWords; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = _word.diffWordsWithSpace; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffLines = _line.diffLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = _line.diffTrimmedLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffSentences = _sentence.diffSentences; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffCss = _css.diffCss; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffJson = _json.diffJson; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffArrays = _array.diffArrays; + /*istanbul ignore start*/exports. /*istanbul ignore end*/structuredPatch = _create.structuredPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = _create.createTwoFilesPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = _create.createPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatch = _apply.applyPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = _apply.applyPatches; + /*istanbul ignore start*/exports. /*istanbul ignore end*/parsePatch = _parse.parsePatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = _merge.merge; + /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToDMP = _dmp.convertChangesToDMP; + /*istanbul ignore start*/exports. /*istanbul ignore end*/convertChangesToXML = _xml.convertChangesToXML; + /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = _json.canonicalize; + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJEaWZmIiwiZGlmZkNoYXJzIiwiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImRpZmZTZW50ZW5jZXMiLCJkaWZmQ3NzIiwiZGlmZkpzb24iLCJkaWZmQXJyYXlzIiwic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwiYXBwbHlQYXRjaCIsImFwcGx5UGF0Y2hlcyIsInBhcnNlUGF0Y2giLCJtZXJnZSIsImNvbnZlcnRDaGFuZ2VzVG9ETVAiLCJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2Fub25pY2FsaXplIl0sIm1hcHBpbmdzIjoiOzs7Ozt1QkFnQkE7Ozs7dUJBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBRUE7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7QUFqQ0E7O0FBRUE7Ozs7Ozs7Ozs7Ozs7O2dDQWtDRUEsSTt5REFFQUMsUzt5REFDQUMsUzt5REFDQUMsa0I7eURBQ0FDLFM7eURBQ0FDLGdCO3lEQUNBQyxhO3lEQUVBQyxPO3lEQUNBQyxRO3lEQUVBQyxVO3lEQUVBQyxlO3lEQUNBQyxtQjt5REFDQUMsVzt5REFDQUMsVTt5REFDQUMsWTt5REFDQUMsVTt5REFDQUMsSzt5REFDQUMsbUI7eURBQ0FDLG1CO3lEQUNBQyxZIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogU2VlIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMgb2YgdXNlICovXG5cbi8qXG4gKiBUZXh0IGRpZmYgaW1wbGVtZW50YXRpb24uXG4gKlxuICogVGhpcyBsaWJyYXJ5IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgQVBJUzpcbiAqIEpzRGlmZi5kaWZmQ2hhcnM6IENoYXJhY3RlciBieSBjaGFyYWN0ZXIgZGlmZlxuICogSnNEaWZmLmRpZmZXb3JkczogV29yZCAoYXMgZGVmaW5lZCBieSBcXGIgcmVnZXgpIGRpZmYgd2hpY2ggaWdub3JlcyB3aGl0ZXNwYWNlXG4gKiBKc0RpZmYuZGlmZkxpbmVzOiBMaW5lIGJhc2VkIGRpZmZcbiAqXG4gKiBKc0RpZmYuZGlmZkNzczogRGlmZiB0YXJnZXRlZCBhdCBDU1MgY29udGVudFxuICpcbiAqIFRoZXNlIG1ldGhvZHMgYXJlIGJhc2VkIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm9wb3NlZCBpblxuICogXCJBbiBPKE5EKSBEaWZmZXJlbmNlIEFsZ29yaXRobSBhbmQgaXRzIFZhcmlhdGlvbnNcIiAoTXllcnMsIDE5ODYpLlxuICogaHR0cDovL2NpdGVzZWVyeC5pc3QucHN1LmVkdS92aWV3ZG9jL3N1bW1hcnk/ZG9pPTEwLjEuMS40LjY5MjdcbiAqL1xuaW1wb3J0IERpZmYgZnJvbSAnLi9kaWZmL2Jhc2UnO1xuaW1wb3J0IHtkaWZmQ2hhcnN9IGZyb20gJy4vZGlmZi9jaGFyYWN0ZXInO1xuaW1wb3J0IHtkaWZmV29yZHMsIGRpZmZXb3Jkc1dpdGhTcGFjZX0gZnJvbSAnLi9kaWZmL3dvcmQnO1xuaW1wb3J0IHtkaWZmTGluZXMsIGRpZmZUcmltbWVkTGluZXN9IGZyb20gJy4vZGlmZi9saW5lJztcbmltcG9ydCB7ZGlmZlNlbnRlbmNlc30gZnJvbSAnLi9kaWZmL3NlbnRlbmNlJztcblxuaW1wb3J0IHtkaWZmQ3NzfSBmcm9tICcuL2RpZmYvY3NzJztcbmltcG9ydCB7ZGlmZkpzb24sIGNhbm9uaWNhbGl6ZX0gZnJvbSAnLi9kaWZmL2pzb24nO1xuXG5pbXBvcnQge2RpZmZBcnJheXN9IGZyb20gJy4vZGlmZi9hcnJheSc7XG5cbmltcG9ydCB7YXBwbHlQYXRjaCwgYXBwbHlQYXRjaGVzfSBmcm9tICcuL3BhdGNoL2FwcGx5JztcbmltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXRjaC9wYXJzZSc7XG5pbXBvcnQge21lcmdlfSBmcm9tICcuL3BhdGNoL21lcmdlJztcbmltcG9ydCB7c3RydWN0dXJlZFBhdGNoLCBjcmVhdGVUd29GaWxlc1BhdGNoLCBjcmVhdGVQYXRjaH0gZnJvbSAnLi9wYXRjaC9jcmVhdGUnO1xuXG5pbXBvcnQge2NvbnZlcnRDaGFuZ2VzVG9ETVB9IGZyb20gJy4vY29udmVydC9kbXAnO1xuaW1wb3J0IHtjb252ZXJ0Q2hhbmdlc1RvWE1MfSBmcm9tICcuL2NvbnZlcnQveG1sJztcblxuZXhwb3J0IHtcbiAgRGlmZixcblxuICBkaWZmQ2hhcnMsXG4gIGRpZmZXb3JkcyxcbiAgZGlmZldvcmRzV2l0aFNwYWNlLFxuICBkaWZmTGluZXMsXG4gIGRpZmZUcmltbWVkTGluZXMsXG4gIGRpZmZTZW50ZW5jZXMsXG5cbiAgZGlmZkNzcyxcbiAgZGlmZkpzb24sXG5cbiAgZGlmZkFycmF5cyxcblxuICBzdHJ1Y3R1cmVkUGF0Y2gsXG4gIGNyZWF0ZVR3b0ZpbGVzUGF0Y2gsXG4gIGNyZWF0ZVBhdGNoLFxuICBhcHBseVBhdGNoLFxuICBhcHBseVBhdGNoZXMsXG4gIHBhcnNlUGF0Y2gsXG4gIG1lcmdlLFxuICBjb252ZXJ0Q2hhbmdlc1RvRE1QLFxuICBjb252ZXJ0Q2hhbmdlc1RvWE1MLFxuICBjYW5vbmljYWxpemVcbn07XG4iXX0= + + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports['default'] = /*istanbul ignore end*/Diff; + function Diff() {} + + Diff.prototype = { + /*istanbul ignore start*/ /*istanbul ignore end*/diff: function diff(oldString, newString) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + var callback = options.callback; + if (typeof options === 'function') { + callback = options; + options = {}; + } + this.options = options; + + var self = this; + + function done(value) { + if (callback) { + setTimeout(function () { + callback(undefined, value); + }, 0); + return true; + } else { + return value; + } + } + + // Allow subclasses to massage the input prior to running + oldString = this.castInput(oldString); + newString = this.castInput(newString); + + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + + var newLen = newString.length, + oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ newPos: -1, components: [] }]; + + // Seed editLength = 0, i.e. the content starts with the same values + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + // Identity per the equality and tokenizer + return done([{ value: this.join(newString), count: newString.length }]); + } + + // Main worker method. checks all permutations of a given edit length for acceptance. + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + var addPath = bestPath[diagonalPath - 1], + removePath = bestPath[diagonalPath + 1], + _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + // No one else is going to attempt to use this value, clear it + bestPath[diagonalPath - 1] = undefined; + } + + var canAdd = addPath && addPath.newPos + 1 < newLen, + canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + // If this path is a terminal then prune + bestPath[diagonalPath] = undefined; + continue; + } + + // Select the diagonal that we want to branch from. We select the prior + // path whose position in the new string is the farthest from the origin + // and does not pass the bounds of the diff graph + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self.pushComponent(basePath.components, undefined, true); + } else { + basePath = addPath; // No need to clone, we've pulled it from the list + basePath.newPos++; + self.pushComponent(basePath.components, true, undefined); + } + + _oldPos = self.extractCommon(basePath, newString, oldString, diagonalPath); + + // If we have hit the end of both strings, then we are done + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self, basePath.components, newString, oldString, self.useLongestToken)); + } else { + // Otherwise track this path as a potential candidate and continue. + bestPath[diagonalPath] = basePath; + } + } + + editLength++; + } + + // Performs the length of edit iteration. Is a bit fugly as this has to support the + // sync and async mode which is never fun. Loops over execEditLength until a value + // is produced. + if (callback) { + (function exec() { + setTimeout(function () { + // This should not happen, but we want to be safe. + /* istanbul ignore next */ + if (editLength > maxEditLength) { + return callback(); + } + + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/pushComponent: function pushComponent(components, added, removed) { + var last = components[components.length - 1]; + if (last && last.added === added && last.removed === removed) { + // We need to clone here as the component clone operation is just + // as shallow array clone + components[components.length - 1] = { count: last.count + 1, added: added, removed: removed }; + } else { + components.push({ count: 1, added: added, removed: removed }); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, + oldLen = oldString.length, + newPos = basePath.newPos, + oldPos = newPos - diagonalPath, + commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + + if (commonCount) { + basePath.components.push({ count: commonCount }); + } + + basePath.newPos = newPos; + return oldPos; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + /*istanbul ignore start*/ /*istanbul ignore end*/removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/castInput: function castInput(value) { + return value; + }, + /*istanbul ignore start*/ /*istanbul ignore end*/tokenize: function tokenize(value) { + return value.split(''); + }, + /*istanbul ignore start*/ /*istanbul ignore end*/join: function join(chars) { + return chars.join(''); + } + }; + + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, + componentLen = components.length, + newPos = 0, + oldPos = 0; + + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function (value, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value.length ? oldValue : value; + }); + + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + + // Common case + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + + // Reverse add and remove so removes are output first to match common convention + // The diffing algorithm is tied to add then remove output and this is the simplest + // route to get the desired output with minimal overhead. + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + + // Special case handle for when one terminal is ignored (i.e. whitespace). + // For this case we merge the terminal into the prior string and drop the change. + // This is only available for string mode. + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === 'string' && (lastComponent.added || lastComponent.removed) && diff.equals('', lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + + return components; + } + + function clonePath(path) { + return { newPos: path.newPos, components: path.components.slice(0) }; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Jhc2UuanMiXSwibmFtZXMiOlsiRGlmZiIsInByb3RvdHlwZSIsImRpZmYiLCJvbGRTdHJpbmciLCJuZXdTdHJpbmciLCJvcHRpb25zIiwiY2FsbGJhY2siLCJzZWxmIiwiZG9uZSIsInZhbHVlIiwic2V0VGltZW91dCIsInVuZGVmaW5lZCIsImNhc3RJbnB1dCIsInJlbW92ZUVtcHR5IiwidG9rZW5pemUiLCJuZXdMZW4iLCJsZW5ndGgiLCJvbGRMZW4iLCJlZGl0TGVuZ3RoIiwibWF4RWRpdExlbmd0aCIsImJlc3RQYXRoIiwibmV3UG9zIiwiY29tcG9uZW50cyIsIm9sZFBvcyIsImV4dHJhY3RDb21tb24iLCJqb2luIiwiY291bnQiLCJleGVjRWRpdExlbmd0aCIsImRpYWdvbmFsUGF0aCIsImJhc2VQYXRoIiwiYWRkUGF0aCIsInJlbW92ZVBhdGgiLCJjYW5BZGQiLCJjYW5SZW1vdmUiLCJjbG9uZVBhdGgiLCJwdXNoQ29tcG9uZW50IiwiYnVpbGRWYWx1ZXMiLCJ1c2VMb25nZXN0VG9rZW4iLCJleGVjIiwicmV0IiwiYWRkZWQiLCJyZW1vdmVkIiwibGFzdCIsInB1c2giLCJjb21tb25Db3VudCIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsImNvbXBhcmF0b3IiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJhcnJheSIsImkiLCJzcGxpdCIsImNoYXJzIiwiY29tcG9uZW50UG9zIiwiY29tcG9uZW50TGVuIiwiY29tcG9uZW50Iiwic2xpY2UiLCJtYXAiLCJvbGRWYWx1ZSIsInRtcCIsImxhc3RDb21wb25lbnQiLCJwb3AiLCJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7NENBQXdCQSxJO0FBQVQsU0FBU0EsSUFBVCxHQUFnQixDQUFFOztBQUVqQ0EsS0FBS0MsU0FBTCxHQUFpQjtBQUFBLG1EQUNmQyxJQURlLGdCQUNWQyxTQURVLEVBQ0NDLFNBREQsRUFDMEI7QUFBQSx3REFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUN2QyxRQUFJQyxXQUFXRCxRQUFRQyxRQUF2QjtBQUNBLFFBQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsaUJBQVdELE9BQVg7QUFDQUEsZ0JBQVUsRUFBVjtBQUNEO0FBQ0QsU0FBS0EsT0FBTCxHQUFlQSxPQUFmOztBQUVBLFFBQUlFLE9BQU8sSUFBWDs7QUFFQSxhQUFTQyxJQUFULENBQWNDLEtBQWQsRUFBcUI7QUFDbkIsVUFBSUgsUUFBSixFQUFjO0FBQ1pJLG1CQUFXLFlBQVc7QUFBRUosbUJBQVNLLFNBQVQsRUFBb0JGLEtBQXBCO0FBQTZCLFNBQXJELEVBQXVELENBQXZEO0FBQ0EsZUFBTyxJQUFQO0FBQ0QsT0FIRCxNQUdPO0FBQ0wsZUFBT0EsS0FBUDtBQUNEO0FBQ0Y7O0FBRUQ7QUFDQU4sZ0JBQVksS0FBS1MsU0FBTCxDQUFlVCxTQUFmLENBQVo7QUFDQUMsZ0JBQVksS0FBS1EsU0FBTCxDQUFlUixTQUFmLENBQVo7O0FBRUFELGdCQUFZLEtBQUtVLFdBQUwsQ0FBaUIsS0FBS0MsUUFBTCxDQUFjWCxTQUFkLENBQWpCLENBQVo7QUFDQUMsZ0JBQVksS0FBS1MsV0FBTCxDQUFpQixLQUFLQyxRQUFMLENBQWNWLFNBQWQsQ0FBakIsQ0FBWjs7QUFFQSxRQUFJVyxTQUFTWCxVQUFVWSxNQUF2QjtBQUFBLFFBQStCQyxTQUFTZCxVQUFVYSxNQUFsRDtBQUNBLFFBQUlFLGFBQWEsQ0FBakI7QUFDQSxRQUFJQyxnQkFBZ0JKLFNBQVNFLE1BQTdCO0FBQ0EsUUFBSUcsV0FBVyxDQUFDLEVBQUVDLFFBQVEsQ0FBQyxDQUFYLEVBQWNDLFlBQVksRUFBMUIsRUFBRCxDQUFmOztBQUVBO0FBQ0EsUUFBSUMsU0FBUyxLQUFLQyxhQUFMLENBQW1CSixTQUFTLENBQVQsQ0FBbkIsRUFBZ0NoQixTQUFoQyxFQUEyQ0QsU0FBM0MsRUFBc0QsQ0FBdEQsQ0FBYjtBQUNBLFFBQUlpQixTQUFTLENBQVQsRUFBWUMsTUFBWixHQUFxQixDQUFyQixJQUEwQk4sTUFBMUIsSUFBb0NRLFNBQVMsQ0FBVCxJQUFjTixNQUF0RCxFQUE4RDtBQUM1RDtBQUNBLGFBQU9ULEtBQUssQ0FBQyxFQUFDQyxPQUFPLEtBQUtnQixJQUFMLENBQVVyQixTQUFWLENBQVIsRUFBOEJzQixPQUFPdEIsVUFBVVksTUFBL0MsRUFBRCxDQUFMLENBQVA7QUFDRDs7QUFFRDtBQUNBLGFBQVNXLGNBQVQsR0FBMEI7QUFDeEIsV0FBSyxJQUFJQyxlQUFlLENBQUMsQ0FBRCxHQUFLVixVQUE3QixFQUF5Q1UsZ0JBQWdCVixVQUF6RCxFQUFxRVUsZ0JBQWdCLENBQXJGLEVBQXdGO0FBQ3RGLFlBQUlDLDBDQUFKO0FBQ0EsWUFBSUMsVUFBVVYsU0FBU1EsZUFBZSxDQUF4QixDQUFkO0FBQUEsWUFDSUcsYUFBYVgsU0FBU1EsZUFBZSxDQUF4QixDQURqQjtBQUFBLFlBRUlMLFVBQVMsQ0FBQ1EsYUFBYUEsV0FBV1YsTUFBeEIsR0FBaUMsQ0FBbEMsSUFBdUNPLFlBRnBEO0FBR0EsWUFBSUUsT0FBSixFQUFhO0FBQ1g7QUFDQVYsbUJBQVNRLGVBQWUsQ0FBeEIsSUFBNkJqQixTQUE3QjtBQUNEOztBQUVELFlBQUlxQixTQUFTRixXQUFXQSxRQUFRVCxNQUFSLEdBQWlCLENBQWpCLEdBQXFCTixNQUE3QztBQUFBLFlBQ0lrQixZQUFZRixjQUFjLEtBQUtSLE9BQW5CLElBQTZCQSxVQUFTTixNQUR0RDtBQUVBLFlBQUksQ0FBQ2UsTUFBRCxJQUFXLENBQUNDLFNBQWhCLEVBQTJCO0FBQ3pCO0FBQ0FiLG1CQUFTUSxZQUFULElBQXlCakIsU0FBekI7QUFDQTtBQUNEOztBQUVEO0FBQ0E7QUFDQTtBQUNBLFlBQUksQ0FBQ3FCLE1BQUQsSUFBWUMsYUFBYUgsUUFBUVQsTUFBUixHQUFpQlUsV0FBV1YsTUFBekQsRUFBa0U7QUFDaEVRLHFCQUFXSyxVQUFVSCxVQUFWLENBQVg7QUFDQXhCLGVBQUs0QixhQUFMLENBQW1CTixTQUFTUCxVQUE1QixFQUF3Q1gsU0FBeEMsRUFBbUQsSUFBbkQ7QUFDRCxTQUhELE1BR087QUFDTGtCLHFCQUFXQyxPQUFYLENBREssQ0FDaUI7QUFDdEJELG1CQUFTUixNQUFUO0FBQ0FkLGVBQUs0QixhQUFMLENBQW1CTixTQUFTUCxVQUE1QixFQUF3QyxJQUF4QyxFQUE4Q1gsU0FBOUM7QUFDRDs7QUFFRFksa0JBQVNoQixLQUFLaUIsYUFBTCxDQUFtQkssUUFBbkIsRUFBNkJ6QixTQUE3QixFQUF3Q0QsU0FBeEMsRUFBbUR5QixZQUFuRCxDQUFUOztBQUVBO0FBQ0EsWUFBSUMsU0FBU1IsTUFBVCxHQUFrQixDQUFsQixJQUF1Qk4sTUFBdkIsSUFBaUNRLFVBQVMsQ0FBVCxJQUFjTixNQUFuRCxFQUEyRDtBQUN6RCxpQkFBT1QsS0FBSzRCLFlBQVk3QixJQUFaLEVBQWtCc0IsU0FBU1AsVUFBM0IsRUFBdUNsQixTQUF2QyxFQUFrREQsU0FBbEQsRUFBNkRJLEtBQUs4QixlQUFsRSxDQUFMLENBQVA7QUFDRCxTQUZELE1BRU87QUFDTDtBQUNBakIsbUJBQVNRLFlBQVQsSUFBeUJDLFFBQXpCO0FBQ0Q7QUFDRjs7QUFFRFg7QUFDRDs7QUFFRDtBQUNBO0FBQ0E7QUFDQSxRQUFJWixRQUFKLEVBQWM7QUFDWCxnQkFBU2dDLElBQVQsR0FBZ0I7QUFDZjVCLG1CQUFXLFlBQVc7QUFDcEI7QUFDQTtBQUNBLGNBQUlRLGFBQWFDLGFBQWpCLEVBQWdDO0FBQzlCLG1CQUFPYixVQUFQO0FBQ0Q7O0FBRUQsY0FBSSxDQUFDcUIsZ0JBQUwsRUFBdUI7QUFDckJXO0FBQ0Q7QUFDRixTQVZELEVBVUcsQ0FWSDtBQVdELE9BWkEsR0FBRDtBQWFELEtBZEQsTUFjTztBQUNMLGFBQU9wQixjQUFjQyxhQUFyQixFQUFvQztBQUNsQyxZQUFJb0IsTUFBTVosZ0JBQVY7QUFDQSxZQUFJWSxHQUFKLEVBQVM7QUFDUCxpQkFBT0EsR0FBUDtBQUNEO0FBQ0Y7QUFDRjtBQUNGLEdBOUdjO0FBQUEsbURBZ0hmSixhQWhIZSx5QkFnSERiLFVBaEhDLEVBZ0hXa0IsS0FoSFgsRUFnSGtCQyxPQWhIbEIsRUFnSDJCO0FBQ3hDLFFBQUlDLE9BQU9wQixXQUFXQSxXQUFXTixNQUFYLEdBQW9CLENBQS9CLENBQVg7QUFDQSxRQUFJMEIsUUFBUUEsS0FBS0YsS0FBTCxLQUFlQSxLQUF2QixJQUFnQ0UsS0FBS0QsT0FBTCxLQUFpQkEsT0FBckQsRUFBOEQ7QUFDNUQ7QUFDQTtBQUNBbkIsaUJBQVdBLFdBQVdOLE1BQVgsR0FBb0IsQ0FBL0IsSUFBb0MsRUFBQ1UsT0FBT2dCLEtBQUtoQixLQUFMLEdBQWEsQ0FBckIsRUFBd0JjLE9BQU9BLEtBQS9CLEVBQXNDQyxTQUFTQSxPQUEvQyxFQUFwQztBQUNELEtBSkQsTUFJTztBQUNMbkIsaUJBQVdxQixJQUFYLENBQWdCLEVBQUNqQixPQUFPLENBQVIsRUFBV2MsT0FBT0EsS0FBbEIsRUFBeUJDLFNBQVNBLE9BQWxDLEVBQWhCO0FBQ0Q7QUFDRixHQXpIYztBQUFBLG1EQTBIZmpCLGFBMUhlLHlCQTBIREssUUExSEMsRUEwSFN6QixTQTFIVCxFQTBIb0JELFNBMUhwQixFQTBIK0J5QixZQTFIL0IsRUEwSDZDO0FBQzFELFFBQUliLFNBQVNYLFVBQVVZLE1BQXZCO0FBQUEsUUFDSUMsU0FBU2QsVUFBVWEsTUFEdkI7QUFBQSxRQUVJSyxTQUFTUSxTQUFTUixNQUZ0QjtBQUFBLFFBR0lFLFNBQVNGLFNBQVNPLFlBSHRCO0FBQUEsUUFLSWdCLGNBQWMsQ0FMbEI7QUFNQSxXQUFPdkIsU0FBUyxDQUFULEdBQWFOLE1BQWIsSUFBdUJRLFNBQVMsQ0FBVCxHQUFhTixNQUFwQyxJQUE4QyxLQUFLNEIsTUFBTCxDQUFZekMsVUFBVWlCLFNBQVMsQ0FBbkIsQ0FBWixFQUFtQ2xCLFVBQVVvQixTQUFTLENBQW5CLENBQW5DLENBQXJELEVBQWdIO0FBQzlHRjtBQUNBRTtBQUNBcUI7QUFDRDs7QUFFRCxRQUFJQSxXQUFKLEVBQWlCO0FBQ2ZmLGVBQVNQLFVBQVQsQ0FBb0JxQixJQUFwQixDQUF5QixFQUFDakIsT0FBT2tCLFdBQVIsRUFBekI7QUFDRDs7QUFFRGYsYUFBU1IsTUFBVCxHQUFrQkEsTUFBbEI7QUFDQSxXQUFPRSxNQUFQO0FBQ0QsR0E3SWM7QUFBQSxtREErSWZzQixNQS9JZSxrQkErSVJDLElBL0lRLEVBK0lGQyxLQS9JRSxFQStJSztBQUNsQixRQUFJLEtBQUsxQyxPQUFMLENBQWEyQyxVQUFqQixFQUE2QjtBQUMzQixhQUFPLEtBQUszQyxPQUFMLENBQWEyQyxVQUFiLENBQXdCRixJQUF4QixFQUE4QkMsS0FBOUIsQ0FBUDtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU9ELFNBQVNDLEtBQVQsSUFDRCxLQUFLMUMsT0FBTCxDQUFhNEMsVUFBYixJQUEyQkgsS0FBS0ksV0FBTCxPQUF1QkgsTUFBTUcsV0FBTixFQUR4RDtBQUVEO0FBQ0YsR0F0SmM7QUFBQSxtREF1SmZyQyxXQXZKZSx1QkF1SkhzQyxLQXZKRyxFQXVKSTtBQUNqQixRQUFJWixNQUFNLEVBQVY7QUFDQSxTQUFLLElBQUlhLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTW5DLE1BQTFCLEVBQWtDb0MsR0FBbEMsRUFBdUM7QUFDckMsVUFBSUQsTUFBTUMsQ0FBTixDQUFKLEVBQWM7QUFDWmIsWUFBSUksSUFBSixDQUFTUSxNQUFNQyxDQUFOLENBQVQ7QUFDRDtBQUNGO0FBQ0QsV0FBT2IsR0FBUDtBQUNELEdBL0pjO0FBQUEsbURBZ0tmM0IsU0FoS2UscUJBZ0tMSCxLQWhLSyxFQWdLRTtBQUNmLFdBQU9BLEtBQVA7QUFDRCxHQWxLYztBQUFBLG1EQW1LZkssUUFuS2Usb0JBbUtOTCxLQW5LTSxFQW1LQztBQUNkLFdBQU9BLE1BQU00QyxLQUFOLENBQVksRUFBWixDQUFQO0FBQ0QsR0FyS2M7QUFBQSxtREFzS2Y1QixJQXRLZSxnQkFzS1Y2QixLQXRLVSxFQXNLSDtBQUNWLFdBQU9BLE1BQU03QixJQUFOLENBQVcsRUFBWCxDQUFQO0FBQ0Q7QUF4S2MsQ0FBakI7O0FBMktBLFNBQVNXLFdBQVQsQ0FBcUJsQyxJQUFyQixFQUEyQm9CLFVBQTNCLEVBQXVDbEIsU0FBdkMsRUFBa0RELFNBQWxELEVBQTZEa0MsZUFBN0QsRUFBOEU7QUFDNUUsTUFBSWtCLGVBQWUsQ0FBbkI7QUFBQSxNQUNJQyxlQUFlbEMsV0FBV04sTUFEOUI7QUFBQSxNQUVJSyxTQUFTLENBRmI7QUFBQSxNQUdJRSxTQUFTLENBSGI7O0FBS0EsU0FBT2dDLGVBQWVDLFlBQXRCLEVBQW9DRCxjQUFwQyxFQUFvRDtBQUNsRCxRQUFJRSxZQUFZbkMsV0FBV2lDLFlBQVgsQ0FBaEI7QUFDQSxRQUFJLENBQUNFLFVBQVVoQixPQUFmLEVBQXdCO0FBQ3RCLFVBQUksQ0FBQ2dCLFVBQVVqQixLQUFYLElBQW9CSCxlQUF4QixFQUF5QztBQUN2QyxZQUFJNUIsUUFBUUwsVUFBVXNELEtBQVYsQ0FBZ0JyQyxNQUFoQixFQUF3QkEsU0FBU29DLFVBQVUvQixLQUEzQyxDQUFaO0FBQ0FqQixnQkFBUUEsTUFBTWtELEdBQU4sQ0FBVSxVQUFTbEQsS0FBVCxFQUFnQjJDLENBQWhCLEVBQW1CO0FBQ25DLGNBQUlRLFdBQVd6RCxVQUFVb0IsU0FBUzZCLENBQW5CLENBQWY7QUFDQSxpQkFBT1EsU0FBUzVDLE1BQVQsR0FBa0JQLE1BQU1PLE1BQXhCLEdBQWlDNEMsUUFBakMsR0FBNENuRCxLQUFuRDtBQUNELFNBSE8sQ0FBUjs7QUFLQWdELGtCQUFVaEQsS0FBVixHQUFrQlAsS0FBS3VCLElBQUwsQ0FBVWhCLEtBQVYsQ0FBbEI7QUFDRCxPQVJELE1BUU87QUFDTGdELGtCQUFVaEQsS0FBVixHQUFrQlAsS0FBS3VCLElBQUwsQ0FBVXJCLFVBQVVzRCxLQUFWLENBQWdCckMsTUFBaEIsRUFBd0JBLFNBQVNvQyxVQUFVL0IsS0FBM0MsQ0FBVixDQUFsQjtBQUNEO0FBQ0RMLGdCQUFVb0MsVUFBVS9CLEtBQXBCOztBQUVBO0FBQ0EsVUFBSSxDQUFDK0IsVUFBVWpCLEtBQWYsRUFBc0I7QUFDcEJqQixrQkFBVWtDLFVBQVUvQixLQUFwQjtBQUNEO0FBQ0YsS0FsQkQsTUFrQk87QUFDTCtCLGdCQUFVaEQsS0FBVixHQUFrQlAsS0FBS3VCLElBQUwsQ0FBVXRCLFVBQVV1RCxLQUFWLENBQWdCbkMsTUFBaEIsRUFBd0JBLFNBQVNrQyxVQUFVL0IsS0FBM0MsQ0FBVixDQUFsQjtBQUNBSCxnQkFBVWtDLFVBQVUvQixLQUFwQjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxVQUFJNkIsZ0JBQWdCakMsV0FBV2lDLGVBQWUsQ0FBMUIsRUFBNkJmLEtBQWpELEVBQXdEO0FBQ3RELFlBQUlxQixNQUFNdkMsV0FBV2lDLGVBQWUsQ0FBMUIsQ0FBVjtBQUNBakMsbUJBQVdpQyxlQUFlLENBQTFCLElBQStCakMsV0FBV2lDLFlBQVgsQ0FBL0I7QUFDQWpDLG1CQUFXaUMsWUFBWCxJQUEyQk0sR0FBM0I7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQ7QUFDQTtBQUNBO0FBQ0EsTUFBSUMsZ0JBQWdCeEMsV0FBV2tDLGVBQWUsQ0FBMUIsQ0FBcEI7QUFDQSxNQUFJQSxlQUFlLENBQWYsSUFDRyxPQUFPTSxjQUFjckQsS0FBckIsS0FBK0IsUUFEbEMsS0FFSXFELGNBQWN0QixLQUFkLElBQXVCc0IsY0FBY3JCLE9BRnpDLEtBR0d2QyxLQUFLMkMsTUFBTCxDQUFZLEVBQVosRUFBZ0JpQixjQUFjckQsS0FBOUIsQ0FIUCxFQUc2QztBQUMzQ2EsZUFBV2tDLGVBQWUsQ0FBMUIsRUFBNkIvQyxLQUE3QixJQUFzQ3FELGNBQWNyRCxLQUFwRDtBQUNBYSxlQUFXeUMsR0FBWDtBQUNEOztBQUVELFNBQU96QyxVQUFQO0FBQ0Q7O0FBRUQsU0FBU1ksU0FBVCxDQUFtQjhCLElBQW5CLEVBQXlCO0FBQ3ZCLFNBQU8sRUFBRTNDLFFBQVEyQyxLQUFLM0MsTUFBZixFQUF1QkMsWUFBWTBDLEtBQUsxQyxVQUFMLENBQWdCb0MsS0FBaEIsQ0FBc0IsQ0FBdEIsQ0FBbkMsRUFBUDtBQUNEIiwiZmlsZSI6ImJhc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEaWZmKCkge31cblxuRGlmZi5wcm90b3R5cGUgPSB7XG4gIGRpZmYob2xkU3RyaW5nLCBuZXdTdHJpbmcsIG9wdGlvbnMgPSB7fSkge1xuICAgIGxldCBjYWxsYmFjayA9IG9wdGlvbnMuY2FsbGJhY2s7XG4gICAgaWYgKHR5cGVvZiBvcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjYWxsYmFjayA9IG9wdGlvbnM7XG4gICAgICBvcHRpb25zID0ge307XG4gICAgfVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG5cbiAgICBsZXQgc2VsZiA9IHRoaXM7XG5cbiAgICBmdW5jdGlvbiBkb25lKHZhbHVlKSB7XG4gICAgICBpZiAoY2FsbGJhY2spIHtcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2sodW5kZWZpbmVkLCB2YWx1ZSk7IH0sIDApO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBbGxvdyBzdWJjbGFzc2VzIHRvIG1hc3NhZ2UgdGhlIGlucHV0IHByaW9yIHRvIHJ1bm5pbmdcbiAgICBvbGRTdHJpbmcgPSB0aGlzLmNhc3RJbnB1dChvbGRTdHJpbmcpO1xuICAgIG5ld1N0cmluZyA9IHRoaXMuY2FzdElucHV0KG5ld1N0cmluZyk7XG5cbiAgICBvbGRTdHJpbmcgPSB0aGlzLnJlbW92ZUVtcHR5KHRoaXMudG9rZW5pemUob2xkU3RyaW5nKSk7XG4gICAgbmV3U3RyaW5nID0gdGhpcy5yZW1vdmVFbXB0eSh0aGlzLnRva2VuaXplKG5ld1N0cmluZykpO1xuXG4gICAgbGV0IG5ld0xlbiA9IG5ld1N0cmluZy5sZW5ndGgsIG9sZExlbiA9IG9sZFN0cmluZy5sZW5ndGg7XG4gICAgbGV0IGVkaXRMZW5ndGggPSAxO1xuICAgIGxldCBtYXhFZGl0TGVuZ3RoID0gbmV3TGVuICsgb2xkTGVuO1xuICAgIGxldCBiZXN0UGF0aCA9IFt7IG5ld1BvczogLTEsIGNvbXBvbmVudHM6IFtdIH1dO1xuXG4gICAgLy8gU2VlZCBlZGl0TGVuZ3RoID0gMCwgaS5lLiB0aGUgY29udGVudCBzdGFydHMgd2l0aCB0aGUgc2FtZSB2YWx1ZXNcbiAgICBsZXQgb2xkUG9zID0gdGhpcy5leHRyYWN0Q29tbW9uKGJlc3RQYXRoWzBdLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgMCk7XG4gICAgaWYgKGJlc3RQYXRoWzBdLm5ld1BvcyArIDEgPj0gbmV3TGVuICYmIG9sZFBvcyArIDEgPj0gb2xkTGVuKSB7XG4gICAgICAvLyBJZGVudGl0eSBwZXIgdGhlIGVxdWFsaXR5IGFuZCB0b2tlbml6ZXJcbiAgICAgIHJldHVybiBkb25lKFt7dmFsdWU6IHRoaXMuam9pbihuZXdTdHJpbmcpLCBjb3VudDogbmV3U3RyaW5nLmxlbmd0aH1dKTtcbiAgICB9XG5cbiAgICAvLyBNYWluIHdvcmtlciBtZXRob2QuIGNoZWNrcyBhbGwgcGVybXV0YXRpb25zIG9mIGEgZ2l2ZW4gZWRpdCBsZW5ndGggZm9yIGFjY2VwdGFuY2UuXG4gICAgZnVuY3Rpb24gZXhlY0VkaXRMZW5ndGgoKSB7XG4gICAgICBmb3IgKGxldCBkaWFnb25hbFBhdGggPSAtMSAqIGVkaXRMZW5ndGg7IGRpYWdvbmFsUGF0aCA8PSBlZGl0TGVuZ3RoOyBkaWFnb25hbFBhdGggKz0gMikge1xuICAgICAgICBsZXQgYmFzZVBhdGg7XG4gICAgICAgIGxldCBhZGRQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoIC0gMV0sXG4gICAgICAgICAgICByZW1vdmVQYXRoID0gYmVzdFBhdGhbZGlhZ29uYWxQYXRoICsgMV0sXG4gICAgICAgICAgICBvbGRQb3MgPSAocmVtb3ZlUGF0aCA/IHJlbW92ZVBhdGgubmV3UG9zIDogMCkgLSBkaWFnb25hbFBhdGg7XG4gICAgICAgIGlmIChhZGRQYXRoKSB7XG4gICAgICAgICAgLy8gTm8gb25lIGVsc2UgaXMgZ29pbmcgdG8gYXR0ZW1wdCB0byB1c2UgdGhpcyB2YWx1ZSwgY2xlYXIgaXRcbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGggLSAxXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5BZGQgPSBhZGRQYXRoICYmIGFkZFBhdGgubmV3UG9zICsgMSA8IG5ld0xlbixcbiAgICAgICAgICAgIGNhblJlbW92ZSA9IHJlbW92ZVBhdGggJiYgMCA8PSBvbGRQb3MgJiYgb2xkUG9zIDwgb2xkTGVuO1xuICAgICAgICBpZiAoIWNhbkFkZCAmJiAhY2FuUmVtb3ZlKSB7XG4gICAgICAgICAgLy8gSWYgdGhpcyBwYXRoIGlzIGEgdGVybWluYWwgdGhlbiBwcnVuZVxuICAgICAgICAgIGJlc3RQYXRoW2RpYWdvbmFsUGF0aF0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWxlY3QgdGhlIGRpYWdvbmFsIHRoYXQgd2Ugd2FudCB0byBicmFuY2ggZnJvbS4gV2Ugc2VsZWN0IHRoZSBwcmlvclxuICAgICAgICAvLyBwYXRoIHdob3NlIHBvc2l0aW9uIGluIHRoZSBuZXcgc3RyaW5nIGlzIHRoZSBmYXJ0aGVzdCBmcm9tIHRoZSBvcmlnaW5cbiAgICAgICAgLy8gYW5kIGRvZXMgbm90IHBhc3MgdGhlIGJvdW5kcyBvZiB0aGUgZGlmZiBncmFwaFxuICAgICAgICBpZiAoIWNhbkFkZCB8fCAoY2FuUmVtb3ZlICYmIGFkZFBhdGgubmV3UG9zIDwgcmVtb3ZlUGF0aC5uZXdQb3MpKSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBjbG9uZVBhdGgocmVtb3ZlUGF0aCk7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHVuZGVmaW5lZCwgdHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYmFzZVBhdGggPSBhZGRQYXRoOyAgIC8vIE5vIG5lZWQgdG8gY2xvbmUsIHdlJ3ZlIHB1bGxlZCBpdCBmcm9tIHRoZSBsaXN0XG4gICAgICAgICAgYmFzZVBhdGgubmV3UG9zKys7XG4gICAgICAgICAgc2VsZi5wdXNoQ29tcG9uZW50KGJhc2VQYXRoLmNvbXBvbmVudHMsIHRydWUsIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICBvbGRQb3MgPSBzZWxmLmV4dHJhY3RDb21tb24oYmFzZVBhdGgsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBkaWFnb25hbFBhdGgpO1xuXG4gICAgICAgIC8vIElmIHdlIGhhdmUgaGl0IHRoZSBlbmQgb2YgYm90aCBzdHJpbmdzLCB0aGVuIHdlIGFyZSBkb25lXG4gICAgICAgIGlmIChiYXNlUGF0aC5uZXdQb3MgKyAxID49IG5ld0xlbiAmJiBvbGRQb3MgKyAxID49IG9sZExlbikge1xuICAgICAgICAgIHJldHVybiBkb25lKGJ1aWxkVmFsdWVzKHNlbGYsIGJhc2VQYXRoLmNvbXBvbmVudHMsIG5ld1N0cmluZywgb2xkU3RyaW5nLCBzZWxmLnVzZUxvbmdlc3RUb2tlbikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE90aGVyd2lzZSB0cmFjayB0aGlzIHBhdGggYXMgYSBwb3RlbnRpYWwgY2FuZGlkYXRlIGFuZCBjb250aW51ZS5cbiAgICAgICAgICBiZXN0UGF0aFtkaWFnb25hbFBhdGhdID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZWRpdExlbmd0aCsrO1xuICAgIH1cblxuICAgIC8vIFBlcmZvcm1zIHRoZSBsZW5ndGggb2YgZWRpdCBpdGVyYXRpb24uIElzIGEgYml0IGZ1Z2x5IGFzIHRoaXMgaGFzIHRvIHN1cHBvcnQgdGhlXG4gICAgLy8gc3luYyBhbmQgYXN5bmMgbW9kZSB3aGljaCBpcyBuZXZlciBmdW4uIExvb3BzIG92ZXIgZXhlY0VkaXRMZW5ndGggdW50aWwgYSB2YWx1ZVxuICAgIC8vIGlzIHByb2R1Y2VkLlxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgKGZ1bmN0aW9uIGV4ZWMoKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgLy8gVGhpcyBzaG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIHdhbnQgdG8gYmUgc2FmZS5cbiAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgIGlmIChlZGl0TGVuZ3RoID4gbWF4RWRpdExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFleGVjRWRpdExlbmd0aCgpKSB7XG4gICAgICAgICAgICBleGVjKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LCAwKTtcbiAgICAgIH0oKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdoaWxlIChlZGl0TGVuZ3RoIDw9IG1heEVkaXRMZW5ndGgpIHtcbiAgICAgICAgbGV0IHJldCA9IGV4ZWNFZGl0TGVuZ3RoKCk7XG4gICAgICAgIGlmIChyZXQpIHtcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9LFxuXG4gIHB1c2hDb21wb25lbnQoY29tcG9uZW50cywgYWRkZWQsIHJlbW92ZWQpIHtcbiAgICBsZXQgbGFzdCA9IGNvbXBvbmVudHNbY29tcG9uZW50cy5sZW5ndGggLSAxXTtcbiAgICBpZiAobGFzdCAmJiBsYXN0LmFkZGVkID09PSBhZGRlZCAmJiBsYXN0LnJlbW92ZWQgPT09IHJlbW92ZWQpIHtcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2xvbmUgaGVyZSBhcyB0aGUgY29tcG9uZW50IGNsb25lIG9wZXJhdGlvbiBpcyBqdXN0XG4gICAgICAvLyBhcyBzaGFsbG93IGFycmF5IGNsb25lXG4gICAgICBjb21wb25lbnRzW2NvbXBvbmVudHMubGVuZ3RoIC0gMV0gPSB7Y291bnQ6IGxhc3QuY291bnQgKyAxLCBhZGRlZDogYWRkZWQsIHJlbW92ZWQ6IHJlbW92ZWQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tcG9uZW50cy5wdXNoKHtjb3VudDogMSwgYWRkZWQ6IGFkZGVkLCByZW1vdmVkOiByZW1vdmVkIH0pO1xuICAgIH1cbiAgfSxcbiAgZXh0cmFjdENvbW1vbihiYXNlUGF0aCwgbmV3U3RyaW5nLCBvbGRTdHJpbmcsIGRpYWdvbmFsUGF0aCkge1xuICAgIGxldCBuZXdMZW4gPSBuZXdTdHJpbmcubGVuZ3RoLFxuICAgICAgICBvbGRMZW4gPSBvbGRTdHJpbmcubGVuZ3RoLFxuICAgICAgICBuZXdQb3MgPSBiYXNlUGF0aC5uZXdQb3MsXG4gICAgICAgIG9sZFBvcyA9IG5ld1BvcyAtIGRpYWdvbmFsUGF0aCxcblxuICAgICAgICBjb21tb25Db3VudCA9IDA7XG4gICAgd2hpbGUgKG5ld1BvcyArIDEgPCBuZXdMZW4gJiYgb2xkUG9zICsgMSA8IG9sZExlbiAmJiB0aGlzLmVxdWFscyhuZXdTdHJpbmdbbmV3UG9zICsgMV0sIG9sZFN0cmluZ1tvbGRQb3MgKyAxXSkpIHtcbiAgICAgIG5ld1BvcysrO1xuICAgICAgb2xkUG9zKys7XG4gICAgICBjb21tb25Db3VudCsrO1xuICAgIH1cblxuICAgIGlmIChjb21tb25Db3VudCkge1xuICAgICAgYmFzZVBhdGguY29tcG9uZW50cy5wdXNoKHtjb3VudDogY29tbW9uQ291bnR9KTtcbiAgICB9XG5cbiAgICBiYXNlUGF0aC5uZXdQb3MgPSBuZXdQb3M7XG4gICAgcmV0dXJuIG9sZFBvcztcbiAgfSxcblxuICBlcXVhbHMobGVmdCwgcmlnaHQpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmNvbXBhcmF0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuY29tcGFyYXRvcihsZWZ0LCByaWdodCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBsZWZ0ID09PSByaWdodFxuICAgICAgICB8fCAodGhpcy5vcHRpb25zLmlnbm9yZUNhc2UgJiYgbGVmdC50b0xvd2VyQ2FzZSgpID09PSByaWdodC50b0xvd2VyQ2FzZSgpKTtcbiAgICB9XG4gIH0sXG4gIHJlbW92ZUVtcHR5KGFycmF5KSB7XG4gICAgbGV0IHJldCA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhcnJheVtpXSkge1xuICAgICAgICByZXQucHVzaChhcnJheVtpXSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH0sXG4gIGNhc3RJbnB1dCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfSxcbiAgdG9rZW5pemUodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJycpO1xuICB9LFxuICBqb2luKGNoYXJzKSB7XG4gICAgcmV0dXJuIGNoYXJzLmpvaW4oJycpO1xuICB9XG59O1xuXG5mdW5jdGlvbiBidWlsZFZhbHVlcyhkaWZmLCBjb21wb25lbnRzLCBuZXdTdHJpbmcsIG9sZFN0cmluZywgdXNlTG9uZ2VzdFRva2VuKSB7XG4gIGxldCBjb21wb25lbnRQb3MgPSAwLFxuICAgICAgY29tcG9uZW50TGVuID0gY29tcG9uZW50cy5sZW5ndGgsXG4gICAgICBuZXdQb3MgPSAwLFxuICAgICAgb2xkUG9zID0gMDtcblxuICBmb3IgKDsgY29tcG9uZW50UG9zIDwgY29tcG9uZW50TGVuOyBjb21wb25lbnRQb3MrKykge1xuICAgIGxldCBjb21wb25lbnQgPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgaWYgKCFjb21wb25lbnQucmVtb3ZlZCkge1xuICAgICAgaWYgKCFjb21wb25lbnQuYWRkZWQgJiYgdXNlTG9uZ2VzdFRva2VuKSB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCk7XG4gICAgICAgIHZhbHVlID0gdmFsdWUubWFwKGZ1bmN0aW9uKHZhbHVlLCBpKSB7XG4gICAgICAgICAgbGV0IG9sZFZhbHVlID0gb2xkU3RyaW5nW29sZFBvcyArIGldO1xuICAgICAgICAgIHJldHVybiBvbGRWYWx1ZS5sZW5ndGggPiB2YWx1ZS5sZW5ndGggPyBvbGRWYWx1ZSA6IHZhbHVlO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb21wb25lbnQudmFsdWUgPSBkaWZmLmpvaW4odmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29tcG9uZW50LnZhbHVlID0gZGlmZi5qb2luKG5ld1N0cmluZy5zbGljZShuZXdQb3MsIG5ld1BvcyArIGNvbXBvbmVudC5jb3VudCkpO1xuICAgICAgfVxuICAgICAgbmV3UG9zICs9IGNvbXBvbmVudC5jb3VudDtcblxuICAgICAgLy8gQ29tbW9uIGNhc2VcbiAgICAgIGlmICghY29tcG9uZW50LmFkZGVkKSB7XG4gICAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbXBvbmVudC52YWx1ZSA9IGRpZmYuam9pbihvbGRTdHJpbmcuc2xpY2Uob2xkUG9zLCBvbGRQb3MgKyBjb21wb25lbnQuY291bnQpKTtcbiAgICAgIG9sZFBvcyArPSBjb21wb25lbnQuY291bnQ7XG5cbiAgICAgIC8vIFJldmVyc2UgYWRkIGFuZCByZW1vdmUgc28gcmVtb3ZlcyBhcmUgb3V0cHV0IGZpcnN0IHRvIG1hdGNoIGNvbW1vbiBjb252ZW50aW9uXG4gICAgICAvLyBUaGUgZGlmZmluZyBhbGdvcml0aG0gaXMgdGllZCB0byBhZGQgdGhlbiByZW1vdmUgb3V0cHV0IGFuZCB0aGlzIGlzIHRoZSBzaW1wbGVzdFxuICAgICAgLy8gcm91dGUgdG8gZ2V0IHRoZSBkZXNpcmVkIG91dHB1dCB3aXRoIG1pbmltYWwgb3ZlcmhlYWQuXG4gICAgICBpZiAoY29tcG9uZW50UG9zICYmIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0uYWRkZWQpIHtcbiAgICAgICAgbGV0IHRtcCA9IGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV07XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zIC0gMV0gPSBjb21wb25lbnRzW2NvbXBvbmVudFBvc107XG4gICAgICAgIGNvbXBvbmVudHNbY29tcG9uZW50UG9zXSA9IHRtcDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgaGFuZGxlIGZvciB3aGVuIG9uZSB0ZXJtaW5hbCBpcyBpZ25vcmVkIChpLmUuIHdoaXRlc3BhY2UpLlxuICAvLyBGb3IgdGhpcyBjYXNlIHdlIG1lcmdlIHRoZSB0ZXJtaW5hbCBpbnRvIHRoZSBwcmlvciBzdHJpbmcgYW5kIGRyb3AgdGhlIGNoYW5nZS5cbiAgLy8gVGhpcyBpcyBvbmx5IGF2YWlsYWJsZSBmb3Igc3RyaW5nIG1vZGUuXG4gIGxldCBsYXN0Q29tcG9uZW50ID0gY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAxXTtcbiAgaWYgKGNvbXBvbmVudExlbiA+IDFcbiAgICAgICYmIHR5cGVvZiBsYXN0Q29tcG9uZW50LnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgJiYgKGxhc3RDb21wb25lbnQuYWRkZWQgfHwgbGFzdENvbXBvbmVudC5yZW1vdmVkKVxuICAgICAgJiYgZGlmZi5lcXVhbHMoJycsIGxhc3RDb21wb25lbnQudmFsdWUpKSB7XG4gICAgY29tcG9uZW50c1tjb21wb25lbnRMZW4gLSAyXS52YWx1ZSArPSBsYXN0Q29tcG9uZW50LnZhbHVlO1xuICAgIGNvbXBvbmVudHMucG9wKCk7XG4gIH1cblxuICByZXR1cm4gY29tcG9uZW50cztcbn1cblxuZnVuY3Rpb24gY2xvbmVQYXRoKHBhdGgpIHtcbiAgcmV0dXJuIHsgbmV3UG9zOiBwYXRoLm5ld1BvcywgY29tcG9uZW50czogcGF0aC5jb21wb25lbnRzLnNsaWNlKDApIH07XG59XG4iXX0= + + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.characterDiff = undefined; + exports. /*istanbul ignore end*/diffChars = diffChars; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var characterDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/characterDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2NoYXJhY3Rlci5qcyJdLCJuYW1lcyI6WyJkaWZmQ2hhcnMiLCJjaGFyYWN0ZXJEaWZmIiwib2xkU3RyIiwibmV3U3RyIiwib3B0aW9ucyIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBR2dCQSxTLEdBQUFBLFM7O0FBSGhCOzs7Ozs7dUJBRU8sSUFBTUMseUZBQWdCLHdFQUF0QjtBQUNBLFNBQVNELFNBQVQsQ0FBbUJFLE1BQW5CLEVBQTJCQyxNQUEzQixFQUFtQ0MsT0FBbkMsRUFBNEM7QUFBRSxTQUFPSCxjQUFjSSxJQUFkLENBQW1CSCxNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNDLE9BQW5DLENBQVA7QUFBcUQiLCJmaWxlIjoiY2hhcmFjdGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcblxuZXhwb3J0IGNvbnN0IGNoYXJhY3RlckRpZmYgPSBuZXcgRGlmZigpO1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZDaGFycyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykgeyByZXR1cm4gY2hhcmFjdGVyRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTsgfVxuIl19 + + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.wordDiff = undefined; + exports. /*istanbul ignore end*/diffWords = diffWords; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffWordsWithSpace = diffWordsWithSpace; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/ // Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode + // + // Ranges and exceptions: + // Latin-1 Supplement, 0080–00FF + // - U+00D7 × Multiplication sign + // - U+00F7 ÷ Division sign + // Latin Extended-A, 0100–017F + // Latin Extended-B, 0180–024F + // IPA Extensions, 0250–02AF + // Spacing Modifier Letters, 02B0–02FF + // - U+02C7 ˇ ˇ Caron + // - U+02D8 ˘ ˘ Breve + // - U+02D9 ˙ ˙ Dot Above + // - U+02DA ˚ ˚ Ring Above + // - U+02DB ˛ ˛ Ogonek + // - U+02DC ˜ ˜ Small Tilde + // - U+02DD ˝ ˝ Double Acute Accent + // Latin Extended Additional, 1E00–1EFF + var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + + var reWhitespace = /\S/; + + var wordDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/wordDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + wordDiff.equals = function (left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); + }; + wordDiff.tokenize = function (value) { + var tokens = value.split(/(\s+|\b)/); + + // Join the boundary splits that we do not consider to be boundaries. This is primarily the extended Latin character set. + for (var i = 0; i < tokens.length - 1; i++) { + // If we have an empty string in the next field and we have only word chars before and after, merge + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + + return tokens; + }; + + function diffWords(oldStr, newStr, options) { + options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(options, { ignoreWhitespace: true }); + return wordDiff.diff(oldStr, newStr, options); + } + + function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3dvcmQuanMiXSwibmFtZXMiOlsiZGlmZldvcmRzIiwiZGlmZldvcmRzV2l0aFNwYWNlIiwiZXh0ZW5kZWRXb3JkQ2hhcnMiLCJyZVdoaXRlc3BhY2UiLCJ3b3JkRGlmZiIsImVxdWFscyIsImxlZnQiLCJyaWdodCIsIm9wdGlvbnMiLCJpZ25vcmVDYXNlIiwidG9Mb3dlckNhc2UiLCJpZ25vcmVXaGl0ZXNwYWNlIiwidGVzdCIsInRva2VuaXplIiwidmFsdWUiLCJ0b2tlbnMiLCJzcGxpdCIsImkiLCJsZW5ndGgiLCJzcGxpY2UiLCJvbGRTdHIiLCJuZXdTdHIiLCJkaWZmIl0sIm1hcHBpbmdzIjoiOzs7O2dDQW1EZ0JBLFMsR0FBQUEsUzt5REFLQUMsa0IsR0FBQUEsa0I7O0FBeERoQjs7Ozt1QkFDQTs7Ozt3QkFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQyxvQkFBb0IsK0RBQTFCOztBQUVBLElBQU1DLGVBQWUsSUFBckI7O0FBRU8sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1BBLFNBQVNDLE1BQVQsR0FBa0IsVUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXNCO0FBQ3RDLE1BQUksS0FBS0MsT0FBTCxDQUFhQyxVQUFqQixFQUE2QjtBQUMzQkgsV0FBT0EsS0FBS0ksV0FBTCxFQUFQO0FBQ0FILFlBQVFBLE1BQU1HLFdBQU4sRUFBUjtBQUNEO0FBQ0QsU0FBT0osU0FBU0MsS0FBVCxJQUFtQixLQUFLQyxPQUFMLENBQWFHLGdCQUFiLElBQWlDLENBQUNSLGFBQWFTLElBQWIsQ0FBa0JOLElBQWxCLENBQWxDLElBQTZELENBQUNILGFBQWFTLElBQWIsQ0FBa0JMLEtBQWxCLENBQXhGO0FBQ0QsQ0FORDtBQU9BSCxTQUFTUyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsU0FBU0QsTUFBTUUsS0FBTixDQUFZLFVBQVosQ0FBYjs7QUFFQTtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixPQUFPRyxNQUFQLEdBQWdCLENBQXBDLEVBQXVDRCxHQUF2QyxFQUE0QztBQUMxQztBQUNBLFFBQUksQ0FBQ0YsT0FBT0UsSUFBSSxDQUFYLENBQUQsSUFBa0JGLE9BQU9FLElBQUksQ0FBWCxDQUFsQixJQUNLZixrQkFBa0JVLElBQWxCLENBQXVCRyxPQUFPRSxDQUFQLENBQXZCLENBREwsSUFFS2Ysa0JBQWtCVSxJQUFsQixDQUF1QkcsT0FBT0UsSUFBSSxDQUFYLENBQXZCLENBRlQsRUFFZ0Q7QUFDOUNGLGFBQU9FLENBQVAsS0FBYUYsT0FBT0UsSUFBSSxDQUFYLENBQWI7QUFDQUYsYUFBT0ksTUFBUCxDQUFjRixJQUFJLENBQWxCLEVBQXFCLENBQXJCO0FBQ0FBO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPRixNQUFQO0FBQ0QsQ0FoQkQ7O0FBa0JPLFNBQVNmLFNBQVQsQ0FBbUJvQixNQUFuQixFQUEyQkMsTUFBM0IsRUFBbUNiLE9BQW5DLEVBQTRDO0FBQ2pEQSxZQUFVLDhFQUFnQkEsT0FBaEIsRUFBeUIsRUFBQ0csa0JBQWtCLElBQW5CLEVBQXpCLENBQVY7QUFDQSxTQUFPUCxTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEOztBQUVNLFNBQVNQLGtCQUFULENBQTRCbUIsTUFBNUIsRUFBb0NDLE1BQXBDLEVBQTRDYixPQUE1QyxFQUFxRDtBQUMxRCxTQUFPSixTQUFTa0IsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUNEIiwiZmlsZSI6IndvcmQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGlmZiBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtnZW5lcmF0ZU9wdGlvbnN9IGZyb20gJy4uL3V0aWwvcGFyYW1zJztcblxuLy8gQmFzZWQgb24gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGF0aW5fc2NyaXB0X2luX1VuaWNvZGVcbi8vXG4vLyBSYW5nZXMgYW5kIGV4Y2VwdGlvbnM6XG4vLyBMYXRpbi0xIFN1cHBsZW1lbnQsIDAwODDigJMwMEZGXG4vLyAgLSBVKzAwRDcgIMOXIE11bHRpcGxpY2F0aW9uIHNpZ25cbi8vICAtIFUrMDBGNyAgw7cgRGl2aXNpb24gc2lnblxuLy8gTGF0aW4gRXh0ZW5kZWQtQSwgMDEwMOKAkzAxN0Zcbi8vIExhdGluIEV4dGVuZGVkLUIsIDAxODDigJMwMjRGXG4vLyBJUEEgRXh0ZW5zaW9ucywgMDI1MOKAkzAyQUZcbi8vIFNwYWNpbmcgTW9kaWZpZXIgTGV0dGVycywgMDJCMOKAkzAyRkZcbi8vICAtIFUrMDJDNyAgy4cgJiM3MTE7ICBDYXJvblxuLy8gIC0gVSswMkQ4ICDLmCAmIzcyODsgIEJyZXZlXG4vLyAgLSBVKzAyRDkgIMuZICYjNzI5OyAgRG90IEFib3ZlXG4vLyAgLSBVKzAyREEgIMuaICYjNzMwOyAgUmluZyBBYm92ZVxuLy8gIC0gVSswMkRCICDLmyAmIzczMTsgIE9nb25la1xuLy8gIC0gVSswMkRDICDLnCAmIzczMjsgIFNtYWxsIFRpbGRlXG4vLyAgLSBVKzAyREQgIMudICYjNzMzOyAgRG91YmxlIEFjdXRlIEFjY2VudFxuLy8gTGF0aW4gRXh0ZW5kZWQgQWRkaXRpb25hbCwgMUUwMOKAkzFFRkZcbmNvbnN0IGV4dGVuZGVkV29yZENoYXJzID0gL15bYS16QS1aXFx1e0MwfS1cXHV7RkZ9XFx1e0Q4fS1cXHV7RjZ9XFx1e0Y4fS1cXHV7MkM2fVxcdXsyQzh9LVxcdXsyRDd9XFx1ezJERX0tXFx1ezJGRn1cXHV7MUUwMH0tXFx1ezFFRkZ9XSskL3U7XG5cbmNvbnN0IHJlV2hpdGVzcGFjZSA9IC9cXFMvO1xuXG5leHBvcnQgY29uc3Qgd29yZERpZmYgPSBuZXcgRGlmZigpO1xud29yZERpZmYuZXF1YWxzID0gZnVuY3Rpb24obGVmdCwgcmlnaHQpIHtcbiAgaWYgKHRoaXMub3B0aW9ucy5pZ25vcmVDYXNlKSB7XG4gICAgbGVmdCA9IGxlZnQudG9Mb3dlckNhc2UoKTtcbiAgICByaWdodCA9IHJpZ2h0LnRvTG93ZXJDYXNlKCk7XG4gIH1cbiAgcmV0dXJuIGxlZnQgPT09IHJpZ2h0IHx8ICh0aGlzLm9wdGlvbnMuaWdub3JlV2hpdGVzcGFjZSAmJiAhcmVXaGl0ZXNwYWNlLnRlc3QobGVmdCkgJiYgIXJlV2hpdGVzcGFjZS50ZXN0KHJpZ2h0KSk7XG59O1xud29yZERpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgdG9rZW5zID0gdmFsdWUuc3BsaXQoLyhcXHMrfFxcYikvKTtcblxuICAvLyBKb2luIHRoZSBib3VuZGFyeSBzcGxpdHMgdGhhdCB3ZSBkbyBub3QgY29uc2lkZXIgdG8gYmUgYm91bmRhcmllcy4gVGhpcyBpcyBwcmltYXJpbHkgdGhlIGV4dGVuZGVkIExhdGluIGNoYXJhY3RlciBzZXQuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIC8vIElmIHdlIGhhdmUgYW4gZW1wdHkgc3RyaW5nIGluIHRoZSBuZXh0IGZpZWxkIGFuZCB3ZSBoYXZlIG9ubHkgd29yZCBjaGFycyBiZWZvcmUgYW5kIGFmdGVyLCBtZXJnZVxuICAgIGlmICghdG9rZW5zW2kgKyAxXSAmJiB0b2tlbnNbaSArIDJdXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaV0pXG4gICAgICAgICAgJiYgZXh0ZW5kZWRXb3JkQ2hhcnMudGVzdCh0b2tlbnNbaSArIDJdKSkge1xuICAgICAgdG9rZW5zW2ldICs9IHRva2Vuc1tpICsgMl07XG4gICAgICB0b2tlbnMuc3BsaWNlKGkgKyAxLCAyKTtcbiAgICAgIGktLTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdG9rZW5zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3JkcyhvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICBvcHRpb25zID0gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiB3b3JkRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZXb3Jkc1dpdGhTcGFjZShvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucykge1xuICByZXR1cm4gd29yZERpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgb3B0aW9ucyk7XG59XG4iXX0= + + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/generateOptions = generateOptions; + function generateOptions(options, defaults) { + if (typeof options === 'function') { + defaults.callback = options; + } else if (options) { + for (var name in options) { + /* istanbul ignore else */ + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; + } + } + } + return defaults; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL3BhcmFtcy5qcyJdLCJuYW1lcyI6WyJnZW5lcmF0ZU9wdGlvbnMiLCJvcHRpb25zIiwiZGVmYXVsdHMiLCJjYWxsYmFjayIsIm5hbWUiLCJoYXNPd25Qcm9wZXJ0eSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsZSxHQUFBQSxlO0FBQVQsU0FBU0EsZUFBVCxDQUF5QkMsT0FBekIsRUFBa0NDLFFBQWxDLEVBQTRDO0FBQ2pELE1BQUksT0FBT0QsT0FBUCxLQUFtQixVQUF2QixFQUFtQztBQUNqQ0MsYUFBU0MsUUFBVCxHQUFvQkYsT0FBcEI7QUFDRCxHQUZELE1BRU8sSUFBSUEsT0FBSixFQUFhO0FBQ2xCLFNBQUssSUFBSUcsSUFBVCxJQUFpQkgsT0FBakIsRUFBMEI7QUFDeEI7QUFDQSxVQUFJQSxRQUFRSSxjQUFSLENBQXVCRCxJQUF2QixDQUFKLEVBQWtDO0FBQ2hDRixpQkFBU0UsSUFBVCxJQUFpQkgsUUFBUUcsSUFBUixDQUFqQjtBQUNEO0FBQ0Y7QUFDRjtBQUNELFNBQU9GLFFBQVA7QUFDRCIsImZpbGUiOiJwYXJhbXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcHRpb25zKG9wdGlvbnMsIGRlZmF1bHRzKSB7XG4gIGlmICh0eXBlb2Ygb3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRlZmF1bHRzLmNhbGxiYWNrID0gb3B0aW9ucztcbiAgfSBlbHNlIGlmIChvcHRpb25zKSB7XG4gICAgZm9yIChsZXQgbmFtZSBpbiBvcHRpb25zKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9wdGlvbnMuaGFzT3duUHJvcGVydHkobmFtZSkpIHtcbiAgICAgICAgZGVmYXVsdHNbbmFtZV0gPSBvcHRpb25zW25hbWVdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gZGVmYXVsdHM7XG59XG4iXX0= + + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.lineDiff = undefined; + exports. /*istanbul ignore end*/diffLines = diffLines; + /*istanbul ignore start*/exports. /*istanbul ignore end*/diffTrimmedLines = diffTrimmedLines; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_params = __webpack_require__(4) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var lineDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/lineDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + lineDiff.tokenize = function (value) { + var retLines = [], + linesAndNewlines = value.split(/(\n|\r\n)/); + + // Ignore the final empty token that occurs if the string ends with a new line + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + + // Merge the content and line separators into single tokens + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + + return retLines; + }; + + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); + } + function diffTrimmedLines(oldStr, newStr, callback) { + var options = /*istanbul ignore start*/(0, _params.generateOptions) /*istanbul ignore end*/(callback, { ignoreWhitespace: true }); + return lineDiff.diff(oldStr, newStr, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2xpbmUuanMiXSwibmFtZXMiOlsiZGlmZkxpbmVzIiwiZGlmZlRyaW1tZWRMaW5lcyIsImxpbmVEaWZmIiwidG9rZW5pemUiLCJ2YWx1ZSIsInJldExpbmVzIiwibGluZXNBbmROZXdsaW5lcyIsInNwbGl0IiwibGVuZ3RoIiwicG9wIiwiaSIsImxpbmUiLCJvcHRpb25zIiwibmV3bGluZUlzVG9rZW4iLCJpZ25vcmVXaGl0ZXNwYWNlIiwidHJpbSIsInB1c2giLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBOEJnQkEsUyxHQUFBQSxTO3lEQUNBQyxnQixHQUFBQSxnQjs7QUEvQmhCOzs7O3VCQUNBOzs7O3VCQUVPLElBQU1DLCtFQUFXLHdFQUFqQjtBQUNQQSxTQUFTQyxRQUFULEdBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsTUFBSUMsV0FBVyxFQUFmO0FBQUEsTUFDSUMsbUJBQW1CRixNQUFNRyxLQUFOLENBQVksV0FBWixDQUR2Qjs7QUFHQTtBQUNBLE1BQUksQ0FBQ0QsaUJBQWlCQSxpQkFBaUJFLE1BQWpCLEdBQTBCLENBQTNDLENBQUwsRUFBb0Q7QUFDbERGLHFCQUFpQkcsR0FBakI7QUFDRDs7QUFFRDtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJSixpQkFBaUJFLE1BQXJDLEVBQTZDRSxHQUE3QyxFQUFrRDtBQUNoRCxRQUFJQyxPQUFPTCxpQkFBaUJJLENBQWpCLENBQVg7O0FBRUEsUUFBSUEsSUFBSSxDQUFKLElBQVMsQ0FBQyxLQUFLRSxPQUFMLENBQWFDLGNBQTNCLEVBQTJDO0FBQ3pDUixlQUFTQSxTQUFTRyxNQUFULEdBQWtCLENBQTNCLEtBQWlDRyxJQUFqQztBQUNELEtBRkQsTUFFTztBQUNMLFVBQUksS0FBS0MsT0FBTCxDQUFhRSxnQkFBakIsRUFBbUM7QUFDakNILGVBQU9BLEtBQUtJLElBQUwsRUFBUDtBQUNEO0FBQ0RWLGVBQVNXLElBQVQsQ0FBY0wsSUFBZDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT04sUUFBUDtBQUNELENBeEJEOztBQTBCTyxTQUFTTCxTQUFULENBQW1CaUIsTUFBbkIsRUFBMkJDLE1BQTNCLEVBQW1DQyxRQUFuQyxFQUE2QztBQUFFLFNBQU9qQixTQUFTa0IsSUFBVCxDQUFjSCxNQUFkLEVBQXNCQyxNQUF0QixFQUE4QkMsUUFBOUIsQ0FBUDtBQUFpRDtBQUNoRyxTQUFTbEIsZ0JBQVQsQ0FBMEJnQixNQUExQixFQUFrQ0MsTUFBbEMsRUFBMENDLFFBQTFDLEVBQW9EO0FBQ3pELE1BQUlQLFVBQVUsOEVBQWdCTyxRQUFoQixFQUEwQixFQUFDTCxrQkFBa0IsSUFBbkIsRUFBMUIsQ0FBZDtBQUNBLFNBQU9aLFNBQVNrQixJQUFULENBQWNILE1BQWQsRUFBc0JDLE1BQXRCLEVBQThCTixPQUE5QixDQUFQO0FBQ0QiLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge2dlbmVyYXRlT3B0aW9uc30gZnJvbSAnLi4vdXRpbC9wYXJhbXMnO1xuXG5leHBvcnQgY29uc3QgbGluZURpZmYgPSBuZXcgRGlmZigpO1xubGluZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICBsZXQgcmV0TGluZXMgPSBbXSxcbiAgICAgIGxpbmVzQW5kTmV3bGluZXMgPSB2YWx1ZS5zcGxpdCgvKFxcbnxcXHJcXG4pLyk7XG5cbiAgLy8gSWdub3JlIHRoZSBmaW5hbCBlbXB0eSB0b2tlbiB0aGF0IG9jY3VycyBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBhIG5ldyBsaW5lXG4gIGlmICghbGluZXNBbmROZXdsaW5lc1tsaW5lc0FuZE5ld2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgbGluZXNBbmROZXdsaW5lcy5wb3AoKTtcbiAgfVxuXG4gIC8vIE1lcmdlIHRoZSBjb250ZW50IGFuZCBsaW5lIHNlcGFyYXRvcnMgaW50byBzaW5nbGUgdG9rZW5zXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXNBbmROZXdsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBsaW5lID0gbGluZXNBbmROZXdsaW5lc1tpXTtcblxuICAgIGlmIChpICUgMiAmJiAhdGhpcy5vcHRpb25zLm5ld2xpbmVJc1Rva2VuKSB7XG4gICAgICByZXRMaW5lc1tyZXRMaW5lcy5sZW5ndGggLSAxXSArPSBsaW5lO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlnbm9yZVdoaXRlc3BhY2UpIHtcbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgfVxuICAgICAgcmV0TGluZXMucHVzaChsaW5lKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0TGluZXM7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjaykgeyByZXR1cm4gbGluZURpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG5leHBvcnQgZnVuY3Rpb24gZGlmZlRyaW1tZWRMaW5lcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHtcbiAgbGV0IG9wdGlvbnMgPSBnZW5lcmF0ZU9wdGlvbnMoY2FsbGJhY2ssIHtpZ25vcmVXaGl0ZXNwYWNlOiB0cnVlfSk7XG4gIHJldHVybiBsaW5lRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbn1cbiJdfQ== + + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.sentenceDiff = undefined; + exports. /*istanbul ignore end*/diffSentences = diffSentences; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var sentenceDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/sentenceDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + sentenceDiff.tokenize = function (value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); + }; + + function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL3NlbnRlbmNlLmpzIl0sIm5hbWVzIjpbImRpZmZTZW50ZW5jZXMiLCJzZW50ZW5jZURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic3BsaXQiLCJvbGRTdHIiLCJuZXdTdHIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBUWdCQSxhLEdBQUFBLGE7O0FBUmhCOzs7Ozs7dUJBR08sSUFBTUMsdUZBQWUsd0VBQXJCO0FBQ1BBLGFBQWFDLFFBQWIsR0FBd0IsVUFBU0MsS0FBVCxFQUFnQjtBQUN0QyxTQUFPQSxNQUFNQyxLQUFOLENBQVksdUJBQVosQ0FBUDtBQUNELENBRkQ7O0FBSU8sU0FBU0osYUFBVCxDQUF1QkssTUFBdkIsRUFBK0JDLE1BQS9CLEVBQXVDQyxRQUF2QyxFQUFpRDtBQUFFLFNBQU9OLGFBQWFPLElBQWIsQ0FBa0JILE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ0MsUUFBbEMsQ0FBUDtBQUFxRCIsImZpbGUiOiJzZW50ZW5jZS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGNvbnN0IHNlbnRlbmNlRGlmZiA9IG5ldyBEaWZmKCk7XG5zZW50ZW5jZURpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhcXFMuKz9bLiE/XSkoPz1cXHMrfCQpLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZlNlbnRlbmNlcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIHNlbnRlbmNlRGlmZi5kaWZmKG9sZFN0ciwgbmV3U3RyLCBjYWxsYmFjayk7IH1cbiJdfQ== + + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.cssDiff = undefined; + exports. /*istanbul ignore end*/diffCss = diffCss; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var cssDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/cssDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + cssDiff.tokenize = function (value) { + return value.split(/([{}:;,]|\s+)/); + }; + + function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2Nzcy5qcyJdLCJuYW1lcyI6WyJkaWZmQ3NzIiwiY3NzRGlmZiIsInRva2VuaXplIiwidmFsdWUiLCJzcGxpdCIsIm9sZFN0ciIsIm5ld1N0ciIsImNhbGxiYWNrIiwiZGlmZiJdLCJtYXBwaW5ncyI6Ijs7OztnQ0FPZ0JBLE8sR0FBQUEsTzs7QUFQaEI7Ozs7Ozt1QkFFTyxJQUFNQyw2RUFBVSx3RUFBaEI7QUFDUEEsUUFBUUMsUUFBUixHQUFtQixVQUFTQyxLQUFULEVBQWdCO0FBQ2pDLFNBQU9BLE1BQU1DLEtBQU4sQ0FBWSxlQUFaLENBQVA7QUFDRCxDQUZEOztBQUlPLFNBQVNKLE9BQVQsQ0FBaUJLLE1BQWpCLEVBQXlCQyxNQUF6QixFQUFpQ0MsUUFBakMsRUFBMkM7QUFBRSxTQUFPTixRQUFRTyxJQUFSLENBQWFILE1BQWIsRUFBcUJDLE1BQXJCLEVBQTZCQyxRQUE3QixDQUFQO0FBQWdEIiwiZmlsZSI6ImNzcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBjc3NEaWZmID0gbmV3IERpZmYoKTtcbmNzc0RpZmYudG9rZW5pemUgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWUuc3BsaXQoLyhbe306OyxdfFxccyspLyk7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkNzcyhvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spIHsgcmV0dXJuIGNzc0RpZmYuZGlmZihvbGRTdHIsIG5ld1N0ciwgY2FsbGJhY2spOyB9XG4iXX0= + + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.jsonDiff = undefined; + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + exports. /*istanbul ignore end*/diffJson = diffJson; + /*istanbul ignore start*/exports. /*istanbul ignore end*/canonicalize = canonicalize; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + /*istanbul ignore end*/var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var objectPrototypeToString = Object.prototype.toString; + + var jsonDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/jsonDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + // Discriminate between two lines of pretty-printed, serialized JSON where one of them has a + // dangling comma and the other doesn't. Turns out including the dangling comma yields the nicest output: + jsonDiff.useLongestToken = true; + + jsonDiff.tokenize = /*istanbul ignore start*/_line.lineDiff /*istanbul ignore end*/.tokenize; + jsonDiff.castInput = function (value) { + /*istanbul ignore start*/var _options = /*istanbul ignore end*/this.options, + undefinedReplacement = _options.undefinedReplacement, + _options$stringifyRep = _options.stringifyReplacer, + stringifyReplacer = _options$stringifyRep === undefined ? function (k, v) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/typeof v === 'undefined' ? undefinedReplacement : v + ); + } : _options$stringifyRep; + + + return typeof value === 'string' ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, ' '); + }; + jsonDiff.equals = function (left, right) { + return (/*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, '$1'), right.replace(/,([\r\n])/g, '$1')) + ); + }; + + function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); + } + + // This function handles the presence of circular references by bailing out when encountering an + // object that is already on the "stack" of items being processed. Accepts an optional replacer + function canonicalize(obj, stack, replacementStack, replacer, key) { + stack = stack || []; + replacementStack = replacementStack || []; + + if (replacer) { + obj = replacer(key, obj); + } + + var i = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + + var canonicalizedObj = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + if ('[object Array]' === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + + if ( /*istanbul ignore start*/(typeof /*istanbul ignore end*/obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], + _key = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (_key in obj) { + /* istanbul ignore else */ + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2pzb24uanMiXSwibmFtZXMiOlsiZGlmZkpzb24iLCJjYW5vbmljYWxpemUiLCJvYmplY3RQcm90b3R5cGVUb1N0cmluZyIsIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIiwianNvbkRpZmYiLCJ1c2VMb25nZXN0VG9rZW4iLCJ0b2tlbml6ZSIsImNhc3RJbnB1dCIsInZhbHVlIiwib3B0aW9ucyIsInVuZGVmaW5lZFJlcGxhY2VtZW50Iiwic3RyaW5naWZ5UmVwbGFjZXIiLCJrIiwidiIsIkpTT04iLCJzdHJpbmdpZnkiLCJlcXVhbHMiLCJsZWZ0IiwicmlnaHQiLCJjYWxsIiwicmVwbGFjZSIsIm9sZE9iaiIsIm5ld09iaiIsImRpZmYiLCJvYmoiLCJzdGFjayIsInJlcGxhY2VtZW50U3RhY2siLCJyZXBsYWNlciIsImtleSIsImkiLCJsZW5ndGgiLCJjYW5vbmljYWxpemVkT2JqIiwicHVzaCIsIkFycmF5IiwicG9wIiwidG9KU09OIiwic29ydGVkS2V5cyIsImhhc093blByb3BlcnR5Iiwic29ydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztnQ0FxQmdCQSxRLEdBQUFBLFE7eURBSUFDLFksR0FBQUEsWTs7QUF6QmhCOzs7O3VCQUNBOzs7O3VCQUVBLElBQU1DLDBCQUEwQkMsT0FBT0MsU0FBUCxDQUFpQkMsUUFBakQ7O0FBR08sSUFBTUMsK0VBQVcsd0VBQWpCO0FBQ1A7QUFDQTtBQUNBQSxTQUFTQyxlQUFULEdBQTJCLElBQTNCOztBQUVBRCxTQUFTRSxRQUFULEdBQW9CLGdFQUFTQSxRQUE3QjtBQUNBRixTQUFTRyxTQUFULEdBQXFCLFVBQVNDLEtBQVQsRUFBZ0I7QUFBQSxpRUFDK0UsS0FBS0MsT0FEcEY7QUFBQSxNQUM1QkMsb0JBRDRCLFlBQzVCQSxvQkFENEI7QUFBQSx1Q0FDTkMsaUJBRE07QUFBQSxNQUNOQSxpQkFETSx5Q0FDYyxVQUFDQyxDQUFELEVBQUlDLENBQUo7QUFBQSxtQ0FBVSxPQUFPQSxDQUFQLEtBQWEsV0FBYixHQUEyQkgsb0JBQTNCLEdBQWtERztBQUE1RDtBQUFBLEdBRGQ7OztBQUduQyxTQUFPLE9BQU9MLEtBQVAsS0FBaUIsUUFBakIsR0FBNEJBLEtBQTVCLEdBQW9DTSxLQUFLQyxTQUFMLENBQWVoQixhQUFhUyxLQUFiLEVBQW9CLElBQXBCLEVBQTBCLElBQTFCLEVBQWdDRyxpQkFBaEMsQ0FBZixFQUFtRUEsaUJBQW5FLEVBQXNGLElBQXRGLENBQTNDO0FBQ0QsQ0FKRDtBQUtBUCxTQUFTWSxNQUFULEdBQWtCLFVBQVNDLElBQVQsRUFBZUMsS0FBZixFQUFzQjtBQUN0QyxTQUFPLG9FQUFLaEIsU0FBTCxDQUFlYyxNQUFmLENBQXNCRyxJQUF0QixDQUEyQmYsUUFBM0IsRUFBcUNhLEtBQUtHLE9BQUwsQ0FBYSxZQUFiLEVBQTJCLElBQTNCLENBQXJDLEVBQXVFRixNQUFNRSxPQUFOLENBQWMsWUFBZCxFQUE0QixJQUE1QixDQUF2RTtBQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTdEIsUUFBVCxDQUFrQnVCLE1BQWxCLEVBQTBCQyxNQUExQixFQUFrQ2IsT0FBbEMsRUFBMkM7QUFBRSxTQUFPTCxTQUFTbUIsSUFBVCxDQUFjRixNQUFkLEVBQXNCQyxNQUF0QixFQUE4QmIsT0FBOUIsQ0FBUDtBQUFnRDs7QUFFcEc7QUFDQTtBQUNPLFNBQVNWLFlBQVQsQ0FBc0J5QixHQUF0QixFQUEyQkMsS0FBM0IsRUFBa0NDLGdCQUFsQyxFQUFvREMsUUFBcEQsRUFBOERDLEdBQTlELEVBQW1FO0FBQ3hFSCxVQUFRQSxTQUFTLEVBQWpCO0FBQ0FDLHFCQUFtQkEsb0JBQW9CLEVBQXZDOztBQUVBLE1BQUlDLFFBQUosRUFBYztBQUNaSCxVQUFNRyxTQUFTQyxHQUFULEVBQWNKLEdBQWQsQ0FBTjtBQUNEOztBQUVELE1BQUlLLG1DQUFKOztBQUVBLE9BQUtBLElBQUksQ0FBVCxFQUFZQSxJQUFJSixNQUFNSyxNQUF0QixFQUE4QkQsS0FBSyxDQUFuQyxFQUFzQztBQUNwQyxRQUFJSixNQUFNSSxDQUFOLE1BQWFMLEdBQWpCLEVBQXNCO0FBQ3BCLGFBQU9FLGlCQUFpQkcsQ0FBakIsQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsTUFBSUUsa0RBQUo7O0FBRUEsTUFBSSxxQkFBcUIvQix3QkFBd0JtQixJQUF4QixDQUE2QkssR0FBN0IsQ0FBekIsRUFBNEQ7QUFDMURDLFVBQU1PLElBQU4sQ0FBV1IsR0FBWDtBQUNBTyx1QkFBbUIsSUFBSUUsS0FBSixDQUFVVCxJQUFJTSxNQUFkLENBQW5CO0FBQ0FKLHFCQUFpQk0sSUFBakIsQ0FBc0JELGdCQUF0QjtBQUNBLFNBQUtGLElBQUksQ0FBVCxFQUFZQSxJQUFJTCxJQUFJTSxNQUFwQixFQUE0QkQsS0FBSyxDQUFqQyxFQUFvQztBQUNsQ0UsdUJBQWlCRixDQUFqQixJQUFzQjlCLGFBQWF5QixJQUFJSyxDQUFKLENBQWIsRUFBcUJKLEtBQXJCLEVBQTRCQyxnQkFBNUIsRUFBOENDLFFBQTlDLEVBQXdEQyxHQUF4RCxDQUF0QjtBQUNEO0FBQ0RILFVBQU1TLEdBQU47QUFDQVIscUJBQWlCUSxHQUFqQjtBQUNBLFdBQU9ILGdCQUFQO0FBQ0Q7O0FBRUQsTUFBSVAsT0FBT0EsSUFBSVcsTUFBZixFQUF1QjtBQUNyQlgsVUFBTUEsSUFBSVcsTUFBSixFQUFOO0FBQ0Q7O0FBRUQsTUFBSSx5REFBT1gsR0FBUCx5Q0FBT0EsR0FBUCxPQUFlLFFBQWYsSUFBMkJBLFFBQVEsSUFBdkMsRUFBNkM7QUFDM0NDLFVBQU1PLElBQU4sQ0FBV1IsR0FBWDtBQUNBTyx1QkFBbUIsRUFBbkI7QUFDQUwscUJBQWlCTSxJQUFqQixDQUFzQkQsZ0JBQXRCO0FBQ0EsUUFBSUssYUFBYSxFQUFqQjtBQUFBLFFBQ0lSLHNDQURKO0FBRUEsU0FBS0EsSUFBTCxJQUFZSixHQUFaLEVBQWlCO0FBQ2Y7QUFDQSxVQUFJQSxJQUFJYSxjQUFKLENBQW1CVCxJQUFuQixDQUFKLEVBQTZCO0FBQzNCUSxtQkFBV0osSUFBWCxDQUFnQkosSUFBaEI7QUFDRDtBQUNGO0FBQ0RRLGVBQVdFLElBQVg7QUFDQSxTQUFLVCxJQUFJLENBQVQsRUFBWUEsSUFBSU8sV0FBV04sTUFBM0IsRUFBbUNELEtBQUssQ0FBeEMsRUFBMkM7QUFDekNELGFBQU1RLFdBQVdQLENBQVgsQ0FBTjtBQUNBRSx1QkFBaUJILElBQWpCLElBQXdCN0IsYUFBYXlCLElBQUlJLElBQUosQ0FBYixFQUF1QkgsS0FBdkIsRUFBOEJDLGdCQUE5QixFQUFnREMsUUFBaEQsRUFBMERDLElBQTFELENBQXhCO0FBQ0Q7QUFDREgsVUFBTVMsR0FBTjtBQUNBUixxQkFBaUJRLEdBQWpCO0FBQ0QsR0FuQkQsTUFtQk87QUFDTEgsdUJBQW1CUCxHQUFuQjtBQUNEO0FBQ0QsU0FBT08sZ0JBQVA7QUFDRCIsImZpbGUiOiJqc29uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpZmYgZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7bGluZURpZmZ9IGZyb20gJy4vbGluZSc7XG5cbmNvbnN0IG9iamVjdFByb3RvdHlwZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztcblxuXG5leHBvcnQgY29uc3QganNvbkRpZmYgPSBuZXcgRGlmZigpO1xuLy8gRGlzY3JpbWluYXRlIGJldHdlZW4gdHdvIGxpbmVzIG9mIHByZXR0eS1wcmludGVkLCBzZXJpYWxpemVkIEpTT04gd2hlcmUgb25lIG9mIHRoZW0gaGFzIGFcbi8vIGRhbmdsaW5nIGNvbW1hIGFuZCB0aGUgb3RoZXIgZG9lc24ndC4gVHVybnMgb3V0IGluY2x1ZGluZyB0aGUgZGFuZ2xpbmcgY29tbWEgeWllbGRzIHRoZSBuaWNlc3Qgb3V0cHV0OlxuanNvbkRpZmYudXNlTG9uZ2VzdFRva2VuID0gdHJ1ZTtcblxuanNvbkRpZmYudG9rZW5pemUgPSBsaW5lRGlmZi50b2tlbml6ZTtcbmpzb25EaWZmLmNhc3RJbnB1dCA9IGZ1bmN0aW9uKHZhbHVlKSB7XG4gIGNvbnN0IHt1bmRlZmluZWRSZXBsYWNlbWVudCwgc3RyaW5naWZ5UmVwbGFjZXIgPSAoaywgdikgPT4gdHlwZW9mIHYgPT09ICd1bmRlZmluZWQnID8gdW5kZWZpbmVkUmVwbGFjZW1lbnQgOiB2fSA9IHRoaXMub3B0aW9ucztcblxuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkoY2Fub25pY2FsaXplKHZhbHVlLCBudWxsLCBudWxsLCBzdHJpbmdpZnlSZXBsYWNlciksIHN0cmluZ2lmeVJlcGxhY2VyLCAnICAnKTtcbn07XG5qc29uRGlmZi5lcXVhbHMgPSBmdW5jdGlvbihsZWZ0LCByaWdodCkge1xuICByZXR1cm4gRGlmZi5wcm90b3R5cGUuZXF1YWxzLmNhbGwoanNvbkRpZmYsIGxlZnQucmVwbGFjZSgvLChbXFxyXFxuXSkvZywgJyQxJyksIHJpZ2h0LnJlcGxhY2UoLywoW1xcclxcbl0pL2csICckMScpKTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSnNvbihvbGRPYmosIG5ld09iaiwgb3B0aW9ucykgeyByZXR1cm4ganNvbkRpZmYuZGlmZihvbGRPYmosIG5ld09iaiwgb3B0aW9ucyk7IH1cblxuLy8gVGhpcyBmdW5jdGlvbiBoYW5kbGVzIHRoZSBwcmVzZW5jZSBvZiBjaXJjdWxhciByZWZlcmVuY2VzIGJ5IGJhaWxpbmcgb3V0IHdoZW4gZW5jb3VudGVyaW5nIGFuXG4vLyBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IG9uIHRoZSBcInN0YWNrXCIgb2YgaXRlbXMgYmVpbmcgcHJvY2Vzc2VkLiBBY2NlcHRzIGFuIG9wdGlvbmFsIHJlcGxhY2VyXG5leHBvcnQgZnVuY3Rpb24gY2Fub25pY2FsaXplKG9iaiwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpIHtcbiAgc3RhY2sgPSBzdGFjayB8fCBbXTtcbiAgcmVwbGFjZW1lbnRTdGFjayA9IHJlcGxhY2VtZW50U3RhY2sgfHwgW107XG5cbiAgaWYgKHJlcGxhY2VyKSB7XG4gICAgb2JqID0gcmVwbGFjZXIoa2V5LCBvYmopO1xuICB9XG5cbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHN0YWNrLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgaWYgKHN0YWNrW2ldID09PSBvYmopIHtcbiAgICAgIHJldHVybiByZXBsYWNlbWVudFN0YWNrW2ldO1xuICAgIH1cbiAgfVxuXG4gIGxldCBjYW5vbmljYWxpemVkT2JqO1xuXG4gIGlmICgnW29iamVjdCBBcnJheV0nID09PSBvYmplY3RQcm90b3R5cGVUb1N0cmluZy5jYWxsKG9iaikpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IG5ldyBBcnJheShvYmoubGVuZ3RoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnB1c2goY2Fub25pY2FsaXplZE9iaik7XG4gICAgZm9yIChpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY2Fub25pY2FsaXplZE9ialtpXSA9IGNhbm9uaWNhbGl6ZShvYmpbaV0sIHN0YWNrLCByZXBsYWNlbWVudFN0YWNrLCByZXBsYWNlciwga2V5KTtcbiAgICB9XG4gICAgc3RhY2sucG9wKCk7XG4gICAgcmVwbGFjZW1lbnRTdGFjay5wb3AoKTtcbiAgICByZXR1cm4gY2Fub25pY2FsaXplZE9iajtcbiAgfVxuXG4gIGlmIChvYmogJiYgb2JqLnRvSlNPTikge1xuICAgIG9iaiA9IG9iai50b0pTT04oKTtcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHtcbiAgICBzdGFjay5wdXNoKG9iaik7XG4gICAgY2Fub25pY2FsaXplZE9iaiA9IHt9O1xuICAgIHJlcGxhY2VtZW50U3RhY2sucHVzaChjYW5vbmljYWxpemVkT2JqKTtcbiAgICBsZXQgc29ydGVkS2V5cyA9IFtdLFxuICAgICAgICBrZXk7XG4gICAgZm9yIChrZXkgaW4gb2JqKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIHNvcnRlZEtleXMucHVzaChrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgICBzb3J0ZWRLZXlzLnNvcnQoKTtcbiAgICBmb3IgKGkgPSAwOyBpIDwgc29ydGVkS2V5cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAga2V5ID0gc29ydGVkS2V5c1tpXTtcbiAgICAgIGNhbm9uaWNhbGl6ZWRPYmpba2V5XSA9IGNhbm9uaWNhbGl6ZShvYmpba2V5XSwgc3RhY2ssIHJlcGxhY2VtZW50U3RhY2ssIHJlcGxhY2VyLCBrZXkpO1xuICAgIH1cbiAgICBzdGFjay5wb3AoKTtcbiAgICByZXBsYWNlbWVudFN0YWNrLnBvcCgpO1xuICB9IGVsc2Uge1xuICAgIGNhbm9uaWNhbGl6ZWRPYmogPSBvYmo7XG4gIH1cbiAgcmV0dXJuIGNhbm9uaWNhbGl6ZWRPYmo7XG59XG4iXX0= + + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports.arrayDiff = undefined; + exports. /*istanbul ignore end*/diffArrays = diffArrays; + + var /*istanbul ignore start*/_base = __webpack_require__(1) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _base2 = _interopRequireDefault(_base); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/var arrayDiff = /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayDiff = new /*istanbul ignore start*/_base2['default'] /*istanbul ignore end*/(); + arrayDiff.tokenize = function (value) { + return value.slice(); + }; + arrayDiff.join = arrayDiff.removeEmpty = function (value) { + return value; + }; + + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kaWZmL2FycmF5LmpzIl0sIm5hbWVzIjpbImRpZmZBcnJheXMiLCJhcnJheURpZmYiLCJ0b2tlbml6ZSIsInZhbHVlIiwic2xpY2UiLCJqb2luIiwicmVtb3ZlRW1wdHkiLCJvbGRBcnIiLCJuZXdBcnIiLCJjYWxsYmFjayIsImRpZmYiXSwibWFwcGluZ3MiOiI7Ozs7Z0NBVWdCQSxVLEdBQUFBLFU7O0FBVmhCOzs7Ozs7dUJBRU8sSUFBTUMsaUZBQVksd0VBQWxCO0FBQ1BBLFVBQVVDLFFBQVYsR0FBcUIsVUFBU0MsS0FBVCxFQUFnQjtBQUNuQyxTQUFPQSxNQUFNQyxLQUFOLEVBQVA7QUFDRCxDQUZEO0FBR0FILFVBQVVJLElBQVYsR0FBaUJKLFVBQVVLLFdBQVYsR0FBd0IsVUFBU0gsS0FBVCxFQUFnQjtBQUN2RCxTQUFPQSxLQUFQO0FBQ0QsQ0FGRDs7QUFJTyxTQUFTSCxVQUFULENBQW9CTyxNQUFwQixFQUE0QkMsTUFBNUIsRUFBb0NDLFFBQXBDLEVBQThDO0FBQUUsU0FBT1IsVUFBVVMsSUFBVixDQUFlSCxNQUFmLEVBQXVCQyxNQUF2QixFQUErQkMsUUFBL0IsQ0FBUDtBQUFrRCIsImZpbGUiOiJhcnJheS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaWZmIGZyb20gJy4vYmFzZSc7XG5cbmV4cG9ydCBjb25zdCBhcnJheURpZmYgPSBuZXcgRGlmZigpO1xuYXJyYXlEaWZmLnRva2VuaXplID0gZnVuY3Rpb24odmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnNsaWNlKCk7XG59O1xuYXJyYXlEaWZmLmpvaW4gPSBhcnJheURpZmYucmVtb3ZlRW1wdHkgPSBmdW5jdGlvbih2YWx1ZSkge1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZGlmZkFycmF5cyhvbGRBcnIsIG5ld0FyciwgY2FsbGJhY2spIHsgcmV0dXJuIGFycmF5RGlmZi5kaWZmKG9sZEFyciwgbmV3QXJyLCBjYWxsYmFjayk7IH1cbiJdfQ== + + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/applyPatch = applyPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/applyPatches = applyPatches; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_distanceIterator = __webpack_require__(12) /*istanbul ignore end*/; + + /*istanbul ignore start*/var _distanceIterator2 = _interopRequireDefault(_distanceIterator); + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + /*istanbul ignore end*/function applyPatch(source, uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + if (Array.isArray(uniDiff)) { + if (uniDiff.length > 1) { + throw new Error('applyPatch only works with a single input.'); + } + + uniDiff = uniDiff[0]; + } + + // Apply the diff to the input + var lines = source.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], + hunks = uniDiff.hunks, + compareLine = options.compareLine || function (lineNumber, line, operation, patchContent) /*istanbul ignore start*/{ + return (/*istanbul ignore end*/line === patchContent + ); + }, + errorCount = 0, + fuzzFactor = options.fuzzFactor || 0, + minLine = 0, + offset = 0, + removeEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + addEOFNL = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + + /** + * Checks if the hunk exactly fits on the provided location + */ + function hunkFits(hunk, toPos) { + for (var j = 0; j < hunk.lines.length; j++) { + var line = hunk.lines[j], + operation = line.length > 0 ? line[0] : ' ', + content = line.length > 0 ? line.substr(1) : line; + + if (operation === ' ' || operation === '-') { + // Context sanity check + if (!compareLine(toPos + 1, lines[toPos], operation, content)) { + errorCount++; + + if (errorCount > fuzzFactor) { + return false; + } + } + toPos++; + } + } + + return true; + } + + // Search best fit offsets for each hunk based on the previous ones + for (var i = 0; i < hunks.length; i++) { + var hunk = hunks[i], + maxLine = lines.length - hunk.oldLines, + localOffset = 0, + toPos = offset + hunk.oldStart - 1; + + var iterator = /*istanbul ignore start*/(0, _distanceIterator2['default']) /*istanbul ignore end*/(toPos, minLine, maxLine); + + for (; localOffset !== undefined; localOffset = iterator()) { + if (hunkFits(hunk, toPos + localOffset)) { + hunk.offset = offset += localOffset; + break; + } + } + + if (localOffset === undefined) { + return false; + } + + // Set lower text limit to end of the current hunk, so next ones don't try + // to fit over already patched text + minLine = hunk.offset + hunk.oldStart + hunk.oldLines; + } + + // Apply patch hunks + var diffOffset = 0; + for (var _i = 0; _i < hunks.length; _i++) { + var _hunk = hunks[_i], + _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; + diffOffset += _hunk.newLines - _hunk.oldLines; + + if (_toPos < 0) { + // Creating a new file + _toPos = 0; + } + + for (var j = 0; j < _hunk.lines.length; j++) { + var line = _hunk.lines[j], + operation = line.length > 0 ? line[0] : ' ', + content = line.length > 0 ? line.substr(1) : line, + delimiter = _hunk.linedelimiters[j]; + + if (operation === ' ') { + _toPos++; + } else if (operation === '-') { + lines.splice(_toPos, 1); + delimiters.splice(_toPos, 1); + /* istanbul ignore else */ + } else if (operation === '+') { + lines.splice(_toPos, 0, content); + delimiters.splice(_toPos, 0, delimiter); + _toPos++; + } else if (operation === '\\') { + var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; + if (previousOperation === '+') { + removeEOFNL = true; + } else if (previousOperation === '-') { + addEOFNL = true; + } + } + } + } + + // Handle EOFNL insertion/removal + if (removeEOFNL) { + while (!lines[lines.length - 1]) { + lines.pop(); + delimiters.pop(); + } + } else if (addEOFNL) { + lines.push(''); + delimiters.push('\n'); + } + for (var _k = 0; _k < lines.length - 1; _k++) { + lines[_k] = lines[_k] + delimiters[_k]; + } + return lines.join(''); + } + + // Wrapper that supports multiple file patches via callbacks. + function applyPatches(uniDiff, options) { + if (typeof uniDiff === 'string') { + uniDiff = /*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(uniDiff); + } + + var currentIndex = 0; + function processIndex() { + var index = uniDiff[currentIndex++]; + if (!index) { + return options.complete(); + } + + options.loadFile(index, function (err, data) { + if (err) { + return options.complete(err); + } + + var updatedContent = applyPatch(data, index, options); + options.patched(index, updatedContent, function (err) { + if (err) { + return options.complete(err); + } + + processIndex(); + }); + }); + } + processIndex(); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9hcHBseS5qcyJdLCJuYW1lcyI6WyJhcHBseVBhdGNoIiwiYXBwbHlQYXRjaGVzIiwic291cmNlIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJFcnJvciIsImxpbmVzIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJodW5rcyIsImNvbXBhcmVMaW5lIiwibGluZU51bWJlciIsImxpbmUiLCJvcGVyYXRpb24iLCJwYXRjaENvbnRlbnQiLCJlcnJvckNvdW50IiwiZnV6ekZhY3RvciIsIm1pbkxpbmUiLCJvZmZzZXQiLCJyZW1vdmVFT0ZOTCIsImFkZEVPRk5MIiwiaHVua0ZpdHMiLCJodW5rIiwidG9Qb3MiLCJqIiwiY29udGVudCIsInN1YnN0ciIsImkiLCJtYXhMaW5lIiwib2xkTGluZXMiLCJsb2NhbE9mZnNldCIsIm9sZFN0YXJ0IiwiaXRlcmF0b3IiLCJ1bmRlZmluZWQiLCJkaWZmT2Zmc2V0IiwibmV3TGluZXMiLCJkZWxpbWl0ZXIiLCJsaW5lZGVsaW1pdGVycyIsInNwbGljZSIsInByZXZpb3VzT3BlcmF0aW9uIiwicG9wIiwicHVzaCIsIl9rIiwiam9pbiIsImN1cnJlbnRJbmRleCIsInByb2Nlc3NJbmRleCIsImluZGV4IiwiY29tcGxldGUiLCJsb2FkRmlsZSIsImVyciIsImRhdGEiLCJ1cGRhdGVkQ29udGVudCIsInBhdGNoZWQiXSwibWFwcGluZ3MiOiI7OztnQ0FHZ0JBLFUsR0FBQUEsVTt5REFvSUFDLFksR0FBQUEsWTs7QUF2SWhCOztBQUNBOzs7Ozs7dUJBRU8sU0FBU0QsVUFBVCxDQUFvQkUsTUFBcEIsRUFBNEJDLE9BQTVCLEVBQW1EO0FBQUEsc0RBQWRDLE9BQWMsdUVBQUosRUFBSTs7QUFDeEQsTUFBSSxPQUFPRCxPQUFQLEtBQW1CLFFBQXZCLEVBQWlDO0FBQy9CQSxjQUFVLHdFQUFXQSxPQUFYLENBQVY7QUFDRDs7QUFFRCxNQUFJRSxNQUFNQyxP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QUFZO0FBQ1YsYUFBTzlDLFFBQVErQyxRQUFSLEVBQVA7QUFDRDs7QUFFRC9DLFlBQVFnRCxRQUFSLENBQWlCRixLQUFqQixFQUF3QixVQUFTRyxHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDMUMsVUFBSUQsR0FBSixFQUFTO0FBQ1AsZUFBT2pELFFBQVErQyxRQUFSLENBQWlCRSxHQUFqQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSUUsaUJBQWlCdkQsV0FBV3NELElBQVgsRUFBaUJKLEtBQWpCLEVBQXdCOUMsT0FBeEIsQ0FBckI7QUFDQUEsY0FBUW9ELE9BQVIsQ0FBZ0JOLEtBQWhCLEVBQXVCSyxjQUF2QixFQUF1QyxVQUFTRixHQUFULEVBQWM7QUFDbkQsWUFBSUEsR0FBSixFQUFTO0FBQ1AsaUJBQU9qRCxRQUFRK0MsUUFBUixDQUFpQkUsR0FBakIsQ0FBUDtBQUNEOztBQUVESjtBQUNELE9BTkQ7QUFPRCxLQWJEO0FBY0Q7QUFDREE7QUFDRCIsImZpbGUiOiJhcHBseS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cGFyc2VQYXRjaH0gZnJvbSAnLi9wYXJzZSc7XG5pbXBvcnQgZGlzdGFuY2VJdGVyYXRvciBmcm9tICcuLi91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2goc291cmNlLCB1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgaWYgKHR5cGVvZiB1bmlEaWZmID09PSAnc3RyaW5nJykge1xuICAgIHVuaURpZmYgPSBwYXJzZVBhdGNoKHVuaURpZmYpO1xuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkodW5pRGlmZikpIHtcbiAgICBpZiAodW5pRGlmZi5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FwcGx5UGF0Y2ggb25seSB3b3JrcyB3aXRoIGEgc2luZ2xlIGlucHV0LicpO1xuICAgIH1cblxuICAgIHVuaURpZmYgPSB1bmlEaWZmWzBdO1xuICB9XG5cbiAgLy8gQXBwbHkgdGhlIGRpZmYgdG8gdGhlIGlucHV0XG4gIGxldCBsaW5lcyA9IHNvdXJjZS5zcGxpdCgvXFxyXFxufFtcXG5cXHZcXGZcXHJcXHg4NV0vKSxcbiAgICAgIGRlbGltaXRlcnMgPSBzb3VyY2UubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgaHVua3MgPSB1bmlEaWZmLmh1bmtzLFxuXG4gICAgICBjb21wYXJlTGluZSA9IG9wdGlvbnMuY29tcGFyZUxpbmUgfHwgKChsaW5lTnVtYmVyLCBsaW5lLCBvcGVyYXRpb24sIHBhdGNoQ29udGVudCkgPT4gbGluZSA9PT0gcGF0Y2hDb250ZW50KSxcbiAgICAgIGVycm9yQ291bnQgPSAwLFxuICAgICAgZnV6ekZhY3RvciA9IG9wdGlvbnMuZnV6ekZhY3RvciB8fCAwLFxuICAgICAgbWluTGluZSA9IDAsXG4gICAgICBvZmZzZXQgPSAwLFxuXG4gICAgICByZW1vdmVFT0ZOTCxcbiAgICAgIGFkZEVPRk5MO1xuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGh1bmsgZXhhY3RseSBmaXRzIG9uIHRoZSBwcm92aWRlZCBsb2NhdGlvblxuICAgKi9cbiAgZnVuY3Rpb24gaHVua0ZpdHMoaHVuaywgdG9Qb3MpIHtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGh1bmsubGluZXMubGVuZ3RoOyBqKyspIHtcbiAgICAgIGxldCBsaW5lID0gaHVuay5saW5lc1tqXSxcbiAgICAgICAgICBvcGVyYXRpb24gPSAobGluZS5sZW5ndGggPiAwID8gbGluZVswXSA6ICcgJyksXG4gICAgICAgICAgY29udGVudCA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lLnN1YnN0cigxKSA6IGxpbmUpO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnLScpIHtcbiAgICAgICAgLy8gQ29udGV4dCBzYW5pdHkgY2hlY2tcbiAgICAgICAgaWYgKCFjb21wYXJlTGluZSh0b1BvcyArIDEsIGxpbmVzW3RvUG9zXSwgb3BlcmF0aW9uLCBjb250ZW50KSkge1xuICAgICAgICAgIGVycm9yQ291bnQrKztcblxuICAgICAgICAgIGlmIChlcnJvckNvdW50ID4gZnV6ekZhY3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0b1BvcysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gU2VhcmNoIGJlc3QgZml0IG9mZnNldHMgZm9yIGVhY2ggaHVuayBiYXNlZCBvbiB0aGUgcHJldmlvdXMgb25lc1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGh1bmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgbGV0IGh1bmsgPSBodW5rc1tpXSxcbiAgICAgICAgbWF4TGluZSA9IGxpbmVzLmxlbmd0aCAtIGh1bmsub2xkTGluZXMsXG4gICAgICAgIGxvY2FsT2Zmc2V0ID0gMCxcbiAgICAgICAgdG9Qb3MgPSBvZmZzZXQgKyBodW5rLm9sZFN0YXJ0IC0gMTtcblxuICAgIGxldCBpdGVyYXRvciA9IGRpc3RhbmNlSXRlcmF0b3IodG9Qb3MsIG1pbkxpbmUsIG1heExpbmUpO1xuXG4gICAgZm9yICg7IGxvY2FsT2Zmc2V0ICE9PSB1bmRlZmluZWQ7IGxvY2FsT2Zmc2V0ID0gaXRlcmF0b3IoKSkge1xuICAgICAgaWYgKGh1bmtGaXRzKGh1bmssIHRvUG9zICsgbG9jYWxPZmZzZXQpKSB7XG4gICAgICAgIGh1bmsub2Zmc2V0ID0gb2Zmc2V0ICs9IGxvY2FsT2Zmc2V0O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobG9jYWxPZmZzZXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFNldCBsb3dlciB0ZXh0IGxpbWl0IHRvIGVuZCBvZiB0aGUgY3VycmVudCBodW5rLCBzbyBuZXh0IG9uZXMgZG9uJ3QgdHJ5XG4gICAgLy8gdG8gZml0IG92ZXIgYWxyZWFkeSBwYXRjaGVkIHRleHRcbiAgICBtaW5MaW5lID0gaHVuay5vZmZzZXQgKyBodW5rLm9sZFN0YXJ0ICsgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIC8vIEFwcGx5IHBhdGNoIGh1bmtzXG4gIGxldCBkaWZmT2Zmc2V0ID0gMDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBodW5rcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBodW5rID0gaHVua3NbaV0sXG4gICAgICAgIHRvUG9zID0gaHVuay5vbGRTdGFydCArIGh1bmsub2Zmc2V0ICsgZGlmZk9mZnNldCAtIDE7XG4gICAgZGlmZk9mZnNldCArPSBodW5rLm5ld0xpbmVzIC0gaHVuay5vbGRMaW5lcztcblxuICAgIGlmICh0b1BvcyA8IDApIHsgLy8gQ3JlYXRpbmcgYSBuZXcgZmlsZVxuICAgICAgdG9Qb3MgPSAwO1xuICAgIH1cblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgaHVuay5saW5lcy5sZW5ndGg7IGorKykge1xuICAgICAgbGV0IGxpbmUgPSBodW5rLmxpbmVzW2pdLFxuICAgICAgICAgIG9wZXJhdGlvbiA9IChsaW5lLmxlbmd0aCA+IDAgPyBsaW5lWzBdIDogJyAnKSxcbiAgICAgICAgICBjb250ZW50ID0gKGxpbmUubGVuZ3RoID4gMCA/IGxpbmUuc3Vic3RyKDEpIDogbGluZSksXG4gICAgICAgICAgZGVsaW1pdGVyID0gaHVuay5saW5lZGVsaW1pdGVyc1tqXTtcblxuICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJyAnKSB7XG4gICAgICAgIHRvUG9zKys7XG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJy0nKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMSk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAxKTtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICB9IGVsc2UgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgIGxpbmVzLnNwbGljZSh0b1BvcywgMCwgY29udGVudCk7XG4gICAgICAgIGRlbGltaXRlcnMuc3BsaWNlKHRvUG9zLCAwLCBkZWxpbWl0ZXIpO1xuICAgICAgICB0b1BvcysrO1xuICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICdcXFxcJykge1xuICAgICAgICBsZXQgcHJldmlvdXNPcGVyYXRpb24gPSBodW5rLmxpbmVzW2ogLSAxXSA/IGh1bmsubGluZXNbaiAtIDFdWzBdIDogbnVsbDtcbiAgICAgICAgaWYgKHByZXZpb3VzT3BlcmF0aW9uID09PSAnKycpIHtcbiAgICAgICAgICByZW1vdmVFT0ZOTCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAocHJldmlvdXNPcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIGFkZEVPRk5MID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBFT0ZOTCBpbnNlcnRpb24vcmVtb3ZhbFxuICBpZiAocmVtb3ZlRU9GTkwpIHtcbiAgICB3aGlsZSAoIWxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdKSB7XG4gICAgICBsaW5lcy5wb3AoKTtcbiAgICAgIGRlbGltaXRlcnMucG9wKCk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGFkZEVPRk5MKSB7XG4gICAgbGluZXMucHVzaCgnJyk7XG4gICAgZGVsaW1pdGVycy5wdXNoKCdcXG4nKTtcbiAgfVxuICBmb3IgKGxldCBfayA9IDA7IF9rIDwgbGluZXMubGVuZ3RoIC0gMTsgX2srKykge1xuICAgIGxpbmVzW19rXSA9IGxpbmVzW19rXSArIGRlbGltaXRlcnNbX2tdO1xuICB9XG4gIHJldHVybiBsaW5lcy5qb2luKCcnKTtcbn1cblxuLy8gV3JhcHBlciB0aGF0IHN1cHBvcnRzIG11bHRpcGxlIGZpbGUgcGF0Y2hlcyB2aWEgY2FsbGJhY2tzLlxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5UGF0Y2hlcyh1bmlEaWZmLCBvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgdW5pRGlmZiA9PT0gJ3N0cmluZycpIHtcbiAgICB1bmlEaWZmID0gcGFyc2VQYXRjaCh1bmlEaWZmKTtcbiAgfVxuXG4gIGxldCBjdXJyZW50SW5kZXggPSAwO1xuICBmdW5jdGlvbiBwcm9jZXNzSW5kZXgoKSB7XG4gICAgbGV0IGluZGV4ID0gdW5pRGlmZltjdXJyZW50SW5kZXgrK107XG4gICAgaWYgKCFpbmRleCkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvcHRpb25zLmxvYWRGaWxlKGluZGV4LCBmdW5jdGlvbihlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuY29tcGxldGUoZXJyKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHVwZGF0ZWRDb250ZW50ID0gYXBwbHlQYXRjaChkYXRhLCBpbmRleCwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLnBhdGNoZWQoaW5kZXgsIHVwZGF0ZWRDb250ZW50LCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLmNvbXBsZXRlKGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZXNzSW5kZXgoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIHByb2Nlc3NJbmRleCgpO1xufVxuIl19 + + +/***/ }), +/* 11 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/parsePatch = parsePatch; + function parsePatch(uniDiff) { + /*istanbul ignore start*/var /*istanbul ignore end*/options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), + delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], + list = [], + i = 0; + + function parseIndex() { + var index = {}; + list.push(index); + + // Parse diff metadata + while (i < diffstr.length) { + var line = diffstr[i]; + + // File header found, end parsing diff metadata + if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { + break; + } + + // Diff index + var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); + if (header) { + index.index = header[1]; + } + + i++; + } + + // Parse file headers if they are defined. Unified diff requires them, but + // there's no technical issues to have an isolated hunk without file header + parseFileHeader(index); + parseFileHeader(index); + + // Parse hunks + index.hunks = []; + + while (i < diffstr.length) { + var _line = diffstr[i]; + + if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { + break; + } else if (/^@@/.test(_line)) { + index.hunks.push(parseHunk()); + } else if (_line && options.strict) { + // Ignore unexpected content unless in strict mode + throw new Error('Unknown line ' + (i + 1) + ' ' + JSON.stringify(_line)); + } else { + i++; + } + } + } + + // Parses the --- and +++ headers, if none are found, no lines + // are consumed. + function parseFileHeader(index) { + var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); + if (fileHeader) { + var keyPrefix = fileHeader[1] === '---' ? 'old' : 'new'; + var data = fileHeader[2].split('\t', 2); + var fileName = data[0].replace(/\\\\/g, '\\'); + if (/^".*"$/.test(fileName)) { + fileName = fileName.substr(1, fileName.length - 2); + } + index[keyPrefix + 'FileName'] = fileName; + index[keyPrefix + 'Header'] = (data[1] || '').trim(); + + i++; + } + } + + // Parses a hunk + // This assumes that we are at the start of a hunk. + function parseHunk() { + var chunkHeaderIndex = i, + chunkHeaderLine = diffstr[i++], + chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); + + var hunk = { + oldStart: +chunkHeader[1], + oldLines: +chunkHeader[2] || 1, + newStart: +chunkHeader[3], + newLines: +chunkHeader[4] || 1, + lines: [], + linedelimiters: [] + }; + + var addCount = 0, + removeCount = 0; + for (; i < diffstr.length; i++) { + // Lines starting with '---' could be mistaken for the "remove line" operation + // But they could be the header for the next file. Therefore prune such cases out. + if (diffstr[i].indexOf('--- ') === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf('+++ ') === 0 && diffstr[i + 2].indexOf('@@') === 0) { + break; + } + var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? ' ' : diffstr[i][0]; + + if (operation === '+' || operation === '-' || operation === ' ' || operation === '\\') { + hunk.lines.push(diffstr[i]); + hunk.linedelimiters.push(delimiters[i] || '\n'); + + if (operation === '+') { + addCount++; + } else if (operation === '-') { + removeCount++; + } else if (operation === ' ') { + addCount++; + removeCount++; + } + } else { + break; + } + } + + // Handle the empty block count case + if (!addCount && hunk.newLines === 1) { + hunk.newLines = 0; + } + if (!removeCount && hunk.oldLines === 1) { + hunk.oldLines = 0; + } + + // Perform optional sanity checking + if (options.strict) { + if (addCount !== hunk.newLines) { + throw new Error('Added line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + if (removeCount !== hunk.oldLines) { + throw new Error('Removed line count did not match for hunk at line ' + (chunkHeaderIndex + 1)); + } + } + + return hunk; + } + + while (i < diffstr.length) { + parseIndex(); + } + + return list; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9wYXJzZS5qcyJdLCJuYW1lcyI6WyJwYXJzZVBhdGNoIiwidW5pRGlmZiIsIm9wdGlvbnMiLCJkaWZmc3RyIiwic3BsaXQiLCJkZWxpbWl0ZXJzIiwibWF0Y2giLCJsaXN0IiwiaSIsInBhcnNlSW5kZXgiLCJpbmRleCIsInB1c2giLCJsZW5ndGgiLCJsaW5lIiwidGVzdCIsImhlYWRlciIsImV4ZWMiLCJwYXJzZUZpbGVIZWFkZXIiLCJodW5rcyIsInBhcnNlSHVuayIsInN0cmljdCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbGVIZWFkZXIiLCJrZXlQcmVmaXgiLCJkYXRhIiwiZmlsZU5hbWUiLCJyZXBsYWNlIiwic3Vic3RyIiwidHJpbSIsImNodW5rSGVhZGVySW5kZXgiLCJjaHVua0hlYWRlckxpbmUiLCJjaHVua0hlYWRlciIsImh1bmsiLCJvbGRTdGFydCIsIm9sZExpbmVzIiwibmV3U3RhcnQiLCJuZXdMaW5lcyIsImxpbmVzIiwibGluZWRlbGltaXRlcnMiLCJhZGRDb3VudCIsInJlbW92ZUNvdW50IiwiaW5kZXhPZiIsIm9wZXJhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsVSxHQUFBQSxVO0FBQVQsU0FBU0EsVUFBVCxDQUFvQkMsT0FBcEIsRUFBMkM7QUFBQSxzREFBZEMsT0FBYyx1RUFBSixFQUFJOztBQUNoRCxNQUFJQyxVQUFVRixRQUFRRyxLQUFSLENBQWMscUJBQWQsQ0FBZDtBQUFBLE1BQ0lDLGFBQWFKLFFBQVFLLEtBQVIsQ0FBYyxzQkFBZCxLQUF5QyxFQUQxRDtBQUFBLE1BRUlDLE9BQU8sRUFGWDtBQUFBLE1BR0lDLElBQUksQ0FIUjs7QUFLQSxXQUFTQyxVQUFULEdBQXNCO0FBQ3BCLFFBQUlDLFFBQVEsRUFBWjtBQUNBSCxTQUFLSSxJQUFMLENBQVVELEtBQVY7O0FBRUE7QUFDQSxXQUFPRixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6QixVQUFJQyxPQUFPVixRQUFR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QW9CO0FBQ2xCLFVBQUlxQixhQUFhUCxLQUFLSSxRQUF0QixFQUFnQztBQUM5QixjQUFNLElBQUlqQixLQUFKLENBQVUsc0RBQXNEVSxtQkFBbUIsQ0FBekUsQ0FBVixDQUFOO0FBQ0Q7QUFDRCxVQUFJVyxnQkFBZ0JSLEtBQUtFLFFBQXpCLEVBQW1DO0FBQ2pDLGNBQU0sSUFBSWYsS0FBSixDQUFVLHdEQUF3RFUsbUJBQW1CLENBQTNFLENBQVYsQ0FBTjtBQUNEO0FBQ0Y7O0FBRUQsV0FBT0csSUFBUDtBQUNEOztBQUVELFNBQU8xQixJQUFJTCxRQUFRUyxNQUFuQixFQUEyQjtBQUN6Qkg7QUFDRDs7QUFFRCxTQUFPRixJQUFQO0FBQ0QiLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gcGFyc2VQYXRjaCh1bmlEaWZmLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGRpZmZzdHIgPSB1bmlEaWZmLnNwbGl0KC9cXHJcXG58W1xcblxcdlxcZlxcclxceDg1XS8pLFxuICAgICAgZGVsaW1pdGVycyA9IHVuaURpZmYubWF0Y2goL1xcclxcbnxbXFxuXFx2XFxmXFxyXFx4ODVdL2cpIHx8IFtdLFxuICAgICAgbGlzdCA9IFtdLFxuICAgICAgaSA9IDA7XG5cbiAgZnVuY3Rpb24gcGFyc2VJbmRleCgpIHtcbiAgICBsZXQgaW5kZXggPSB7fTtcbiAgICBsaXN0LnB1c2goaW5kZXgpO1xuXG4gICAgLy8gUGFyc2UgZGlmZiBtZXRhZGF0YVxuICAgIHdoaWxlIChpIDwgZGlmZnN0ci5sZW5ndGgpIHtcbiAgICAgIGxldCBsaW5lID0gZGlmZnN0cltpXTtcblxuICAgICAgLy8gRmlsZSBoZWFkZXIgZm91bmQsIGVuZCBwYXJzaW5nIGRpZmYgbWV0YWRhdGFcbiAgICAgIGlmICgvXihcXC1cXC1cXC18XFwrXFwrXFwrfEBAKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gRGlmZiBpbmRleFxuICAgICAgbGV0IGhlYWRlciA9ICgvXig/OkluZGV4OnxkaWZmKD86IC1yIFxcdyspKylcXHMrKC4rPylcXHMqJC8pLmV4ZWMobGluZSk7XG4gICAgICBpZiAoaGVhZGVyKSB7XG4gICAgICAgIGluZGV4LmluZGV4ID0gaGVhZGVyWzFdO1xuICAgICAgfVxuXG4gICAgICBpKys7XG4gICAgfVxuXG4gICAgLy8gUGFyc2UgZmlsZSBoZWFkZXJzIGlmIHRoZXkgYXJlIGRlZmluZWQuIFVuaWZpZWQgZGlmZiByZXF1aXJlcyB0aGVtLCBidXRcbiAgICAvLyB0aGVyZSdzIG5vIHRlY2huaWNhbCBpc3N1ZXMgdG8gaGF2ZSBhbiBpc29sYXRlZCBodW5rIHdpdGhvdXQgZmlsZSBoZWFkZXJcbiAgICBwYXJzZUZpbGVIZWFkZXIoaW5kZXgpO1xuICAgIHBhcnNlRmlsZUhlYWRlcihpbmRleCk7XG5cbiAgICAvLyBQYXJzZSBodW5rc1xuICAgIGluZGV4Lmh1bmtzID0gW107XG5cbiAgICB3aGlsZSAoaSA8IGRpZmZzdHIubGVuZ3RoKSB7XG4gICAgICBsZXQgbGluZSA9IGRpZmZzdHJbaV07XG5cbiAgICAgIGlmICgvXihJbmRleDp8ZGlmZnxcXC1cXC1cXC18XFwrXFwrXFwrKVxccy8udGVzdChsaW5lKSkge1xuICAgICAgICBicmVhaztcbiAgICAgIH0gZWxzZSBpZiAoL15AQC8udGVzdChsaW5lKSkge1xuICAgICAgICBpbmRleC5odW5rcy5wdXNoKHBhcnNlSHVuaygpKTtcbiAgICAgIH0gZWxzZSBpZiAobGluZSAmJiBvcHRpb25zLnN0cmljdCkge1xuICAgICAgICAvLyBJZ25vcmUgdW5leHBlY3RlZCBjb250ZW50IHVubGVzcyBpbiBzdHJpY3QgbW9kZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gbGluZSAnICsgKGkgKyAxKSArICcgJyArIEpTT04uc3RyaW5naWZ5KGxpbmUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBQYXJzZXMgdGhlIC0tLSBhbmQgKysrIGhlYWRlcnMsIGlmIG5vbmUgYXJlIGZvdW5kLCBubyBsaW5lc1xuICAvLyBhcmUgY29uc3VtZWQuXG4gIGZ1bmN0aW9uIHBhcnNlRmlsZUhlYWRlcihpbmRleCkge1xuICAgIGNvbnN0IGZpbGVIZWFkZXIgPSAoL14oLS0tfFxcK1xcK1xcKylcXHMrKC4qKSQvKS5leGVjKGRpZmZzdHJbaV0pO1xuICAgIGlmIChmaWxlSGVhZGVyKSB7XG4gICAgICBsZXQga2V5UHJlZml4ID0gZmlsZUhlYWRlclsxXSA9PT0gJy0tLScgPyAnb2xkJyA6ICduZXcnO1xuICAgICAgY29uc3QgZGF0YSA9IGZpbGVIZWFkZXJbMl0uc3BsaXQoJ1xcdCcsIDIpO1xuICAgICAgbGV0IGZpbGVOYW1lID0gZGF0YVswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnXFxcXCcpO1xuICAgICAgaWYgKC9eXCIuKlwiJC8udGVzdChmaWxlTmFtZSkpIHtcbiAgICAgICAgZmlsZU5hbWUgPSBmaWxlTmFtZS5zdWJzdHIoMSwgZmlsZU5hbWUubGVuZ3RoIC0gMik7XG4gICAgICB9XG4gICAgICBpbmRleFtrZXlQcmVmaXggKyAnRmlsZU5hbWUnXSA9IGZpbGVOYW1lO1xuICAgICAgaW5kZXhba2V5UHJlZml4ICsgJ0hlYWRlciddID0gKGRhdGFbMV0gfHwgJycpLnRyaW0oKTtcblxuICAgICAgaSsrO1xuICAgIH1cbiAgfVxuXG4gIC8vIFBhcnNlcyBhIGh1bmtcbiAgLy8gVGhpcyBhc3N1bWVzIHRoYXQgd2UgYXJlIGF0IHRoZSBzdGFydCBvZiBhIGh1bmsuXG4gIGZ1bmN0aW9uIHBhcnNlSHVuaygpIHtcbiAgICBsZXQgY2h1bmtIZWFkZXJJbmRleCA9IGksXG4gICAgICAgIGNodW5rSGVhZGVyTGluZSA9IGRpZmZzdHJbaSsrXSxcbiAgICAgICAgY2h1bmtIZWFkZXIgPSBjaHVua0hlYWRlckxpbmUuc3BsaXQoL0BAIC0oXFxkKykoPzosKFxcZCspKT8gXFwrKFxcZCspKD86LChcXGQrKSk/IEBALyk7XG5cbiAgICBsZXQgaHVuayA9IHtcbiAgICAgIG9sZFN0YXJ0OiArY2h1bmtIZWFkZXJbMV0sXG4gICAgICBvbGRMaW5lczogK2NodW5rSGVhZGVyWzJdIHx8IDEsXG4gICAgICBuZXdTdGFydDogK2NodW5rSGVhZGVyWzNdLFxuICAgICAgbmV3TGluZXM6ICtjaHVua0hlYWRlcls0XSB8fCAxLFxuICAgICAgbGluZXM6IFtdLFxuICAgICAgbGluZWRlbGltaXRlcnM6IFtdXG4gICAgfTtcblxuICAgIGxldCBhZGRDb3VudCA9IDAsXG4gICAgICAgIHJlbW92ZUNvdW50ID0gMDtcbiAgICBmb3IgKDsgaSA8IGRpZmZzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgIC8vIExpbmVzIHN0YXJ0aW5nIHdpdGggJy0tLScgY291bGQgYmUgbWlzdGFrZW4gZm9yIHRoZSBcInJlbW92ZSBsaW5lXCIgb3BlcmF0aW9uXG4gICAgICAvLyBCdXQgdGhleSBjb3VsZCBiZSB0aGUgaGVhZGVyIGZvciB0aGUgbmV4dCBmaWxlLiBUaGVyZWZvcmUgcHJ1bmUgc3VjaCBjYXNlcyBvdXQuXG4gICAgICBpZiAoZGlmZnN0cltpXS5pbmRleE9mKCctLS0gJykgPT09IDBcbiAgICAgICAgICAgICYmIChpICsgMiA8IGRpZmZzdHIubGVuZ3RoKVxuICAgICAgICAgICAgJiYgZGlmZnN0cltpICsgMV0uaW5kZXhPZignKysrICcpID09PSAwXG4gICAgICAgICAgICAmJiBkaWZmc3RyW2kgKyAyXS5pbmRleE9mKCdAQCcpID09PSAwKSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBsZXQgb3BlcmF0aW9uID0gKGRpZmZzdHJbaV0ubGVuZ3RoID09IDAgJiYgaSAhPSAoZGlmZnN0ci5sZW5ndGggLSAxKSkgPyAnICcgOiBkaWZmc3RyW2ldWzBdO1xuXG4gICAgICBpZiAob3BlcmF0aW9uID09PSAnKycgfHwgb3BlcmF0aW9uID09PSAnLScgfHwgb3BlcmF0aW9uID09PSAnICcgfHwgb3BlcmF0aW9uID09PSAnXFxcXCcpIHtcbiAgICAgICAgaHVuay5saW5lcy5wdXNoKGRpZmZzdHJbaV0pO1xuICAgICAgICBodW5rLmxpbmVkZWxpbWl0ZXJzLnB1c2goZGVsaW1pdGVyc1tpXSB8fCAnXFxuJyk7XG5cbiAgICAgICAgaWYgKG9wZXJhdGlvbiA9PT0gJysnKSB7XG4gICAgICAgICAgYWRkQ291bnQrKztcbiAgICAgICAgfSBlbHNlIGlmIChvcGVyYXRpb24gPT09ICctJykge1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH0gZWxzZSBpZiAob3BlcmF0aW9uID09PSAnICcpIHtcbiAgICAgICAgICBhZGRDb3VudCsrO1xuICAgICAgICAgIHJlbW92ZUNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0aGUgZW1wdHkgYmxvY2sgY291bnQgY2FzZVxuICAgIGlmICghYWRkQ291bnQgJiYgaHVuay5uZXdMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5uZXdMaW5lcyA9IDA7XG4gICAgfVxuICAgIGlmICghcmVtb3ZlQ291bnQgJiYgaHVuay5vbGRMaW5lcyA9PT0gMSkge1xuICAgICAgaHVuay5vbGRMaW5lcyA9IDA7XG4gICAgfVxuXG4gICAgLy8gUGVyZm9ybSBvcHRpb25hbCBzYW5pdHkgY2hlY2tpbmdcbiAgICBpZiAob3B0aW9ucy5zdHJpY3QpIHtcbiAgICAgIGlmIChhZGRDb3VudCAhPT0gaHVuay5uZXdMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZGVkIGxpbmUgY291bnQgZGlkIG5vdCBtYXRjaCBmb3IgaHVuayBhdCBsaW5lICcgKyAoY2h1bmtIZWFkZXJJbmRleCArIDEpKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZW1vdmVDb3VudCAhPT0gaHVuay5vbGRMaW5lcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlbW92ZWQgbGluZSBjb3VudCBkaWQgbm90IG1hdGNoIGZvciBodW5rIGF0IGxpbmUgJyArIChjaHVua0hlYWRlckluZGV4ICsgMSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBodW5rO1xuICB9XG5cbiAgd2hpbGUgKGkgPCBkaWZmc3RyLmxlbmd0aCkge1xuICAgIHBhcnNlSW5kZXgoKTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuIl19 + + +/***/ }), +/* 12 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + + exports["default"] = /*istanbul ignore end*/function (start, minLine, maxLine) { + var wantForward = true, + backwardExhausted = false, + forwardExhausted = false, + localOffset = 1; + + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } + + // Check if trying to fit beyond text length, and if not, check it fits + // after offset location (or desired location on first iteration) + if (start + localOffset <= maxLine) { + return localOffset; + } + + forwardExhausted = true; + } + + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } + + // Check if trying to fit before text beginning, and if not, check it fits + // before offset location + if (minLine <= start - localOffset) { + return -localOffset++; + } + + backwardExhausted = true; + return iterator(); + } + + // We tried to fit hunk before text beginning and beyond text length, then + // hunk can't fit on the text. Return undefined + }; + }; + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2Rpc3RhbmNlLWl0ZXJhdG9yLmpzIl0sIm5hbWVzIjpbInN0YXJ0IiwibWluTGluZSIsIm1heExpbmUiLCJ3YW50Rm9yd2FyZCIsImJhY2t3YXJkRXhoYXVzdGVkIiwiZm9yd2FyZEV4aGF1c3RlZCIsImxvY2FsT2Zmc2V0IiwiaXRlcmF0b3IiXSwibWFwcGluZ3MiOiI7Ozs7NENBR2UsVUFBU0EsS0FBVCxFQUFnQkMsT0FBaEIsRUFBeUJDLE9BQXpCLEVBQWtDO0FBQy9DLE1BQUlDLGNBQWMsSUFBbEI7QUFBQSxNQUNJQyxvQkFBb0IsS0FEeEI7QUFBQSxNQUVJQyxtQkFBbUIsS0FGdkI7QUFBQSxNQUdJQyxjQUFjLENBSGxCOztBQUtBLFNBQU8sU0FBU0MsUUFBVCxHQUFvQjtBQUN6QixRQUFJSixlQUFlLENBQUNFLGdCQUFwQixFQUFzQztBQUNwQyxVQUFJRCxpQkFBSixFQUF1QjtBQUNyQkU7QUFDRCxPQUZELE1BRU87QUFDTEgsc0JBQWMsS0FBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJSCxRQUFRTSxXQUFSLElBQXVCSixPQUEzQixFQUFvQztBQUNsQyxlQUFPSSxXQUFQO0FBQ0Q7O0FBRURELHlCQUFtQixJQUFuQjtBQUNEOztBQUVELFFBQUksQ0FBQ0QsaUJBQUwsRUFBd0I7QUFDdEIsVUFBSSxDQUFDQyxnQkFBTCxFQUF1QjtBQUNyQkYsc0JBQWMsSUFBZDtBQUNEOztBQUVEO0FBQ0E7QUFDQSxVQUFJRixXQUFXRCxRQUFRTSxXQUF2QixFQUFvQztBQUNsQyxlQUFPLENBQUNBLGFBQVI7QUFDRDs7QUFFREYsMEJBQW9CLElBQXBCO0FBQ0EsYUFBT0csVUFBUDtBQUNEOztBQUVEO0FBQ0E7QUFDRCxHQWxDRDtBQW1DRCxDIiwiZmlsZSI6ImRpc3RhbmNlLWl0ZXJhdG9yLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSXRlcmF0b3IgdGhhdCB0cmF2ZXJzZXMgaW4gdGhlIHJhbmdlIG9mIFttaW4sIG1heF0sIHN0ZXBwaW5nXG4vLyBieSBkaXN0YW5jZSBmcm9tIGEgZ2l2ZW4gc3RhcnQgcG9zaXRpb24uIEkuZS4gZm9yIFswLCA0XSwgd2l0aFxuLy8gc3RhcnQgb2YgMiwgdGhpcyB3aWxsIGl0ZXJhdGUgMiwgMywgMSwgNCwgMC5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKHN0YXJ0LCBtaW5MaW5lLCBtYXhMaW5lKSB7XG4gIGxldCB3YW50Rm9yd2FyZCA9IHRydWUsXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IGZhbHNlLFxuICAgICAgbG9jYWxPZmZzZXQgPSAxO1xuXG4gIHJldHVybiBmdW5jdGlvbiBpdGVyYXRvcigpIHtcbiAgICBpZiAod2FudEZvcndhcmQgJiYgIWZvcndhcmRFeGhhdXN0ZWQpIHtcbiAgICAgIGlmIChiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgICBsb2NhbE9mZnNldCsrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2FudEZvcndhcmQgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZXlvbmQgdGV4dCBsZW5ndGgsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGFmdGVyIG9mZnNldCBsb2NhdGlvbiAob3IgZGVzaXJlZCBsb2NhdGlvbiBvbiBmaXJzdCBpdGVyYXRpb24pXG4gICAgICBpZiAoc3RhcnQgKyBsb2NhbE9mZnNldCA8PSBtYXhMaW5lKSB7XG4gICAgICAgIHJldHVybiBsb2NhbE9mZnNldDtcbiAgICAgIH1cblxuICAgICAgZm9yd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFiYWNrd2FyZEV4aGF1c3RlZCkge1xuICAgICAgaWYgKCFmb3J3YXJkRXhoYXVzdGVkKSB7XG4gICAgICAgIHdhbnRGb3J3YXJkID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gQ2hlY2sgaWYgdHJ5aW5nIHRvIGZpdCBiZWZvcmUgdGV4dCBiZWdpbm5pbmcsIGFuZCBpZiBub3QsIGNoZWNrIGl0IGZpdHNcbiAgICAgIC8vIGJlZm9yZSBvZmZzZXQgbG9jYXRpb25cbiAgICAgIGlmIChtaW5MaW5lIDw9IHN0YXJ0IC0gbG9jYWxPZmZzZXQpIHtcbiAgICAgICAgcmV0dXJuIC1sb2NhbE9mZnNldCsrO1xuICAgICAgfVxuXG4gICAgICBiYWNrd2FyZEV4aGF1c3RlZCA9IHRydWU7XG4gICAgICByZXR1cm4gaXRlcmF0b3IoKTtcbiAgICB9XG5cbiAgICAvLyBXZSB0cmllZCB0byBmaXQgaHVuayBiZWZvcmUgdGV4dCBiZWdpbm5pbmcgYW5kIGJleW9uZCB0ZXh0IGxlbmd0aCwgdGhlblxuICAgIC8vIGh1bmsgY2FuJ3QgZml0IG9uIHRoZSB0ZXh0LiBSZXR1cm4gdW5kZWZpbmVkXG4gIH07XG59XG4iXX0= + + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/calcLineCount = calcLineCount; + /*istanbul ignore start*/exports. /*istanbul ignore end*/merge = merge; + + var /*istanbul ignore start*/_create = __webpack_require__(14) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_parse = __webpack_require__(11) /*istanbul ignore end*/; + + var /*istanbul ignore start*/_array = __webpack_require__(15) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + + /*istanbul ignore end*/function calcLineCount(hunk) { + /*istanbul ignore start*/var _calcOldNewLineCount = /*istanbul ignore end*/calcOldNewLineCount(hunk.lines), + oldLines = _calcOldNewLineCount.oldLines, + newLines = _calcOldNewLineCount.newLines; + + if (oldLines !== undefined) { + hunk.oldLines = oldLines; + } else { + delete hunk.oldLines; + } + + if (newLines !== undefined) { + hunk.newLines = newLines; + } else { + delete hunk.newLines; + } + } + + function merge(mine, theirs, base) { + mine = loadPatch(mine, base); + theirs = loadPatch(theirs, base); + + var ret = {}; + + // For index we just let it pass through as it doesn't have any necessary meaning. + // Leaving sanity checks on this to the API consumer that may know more about the + // meaning in their own context. + if (mine.index || theirs.index) { + ret.index = mine.index || theirs.index; + } + + if (mine.newFileName || theirs.newFileName) { + if (!fileNameChanged(mine)) { + // No header or no change in ours, use theirs (and ours if theirs does not exist) + ret.oldFileName = theirs.oldFileName || mine.oldFileName; + ret.newFileName = theirs.newFileName || mine.newFileName; + ret.oldHeader = theirs.oldHeader || mine.oldHeader; + ret.newHeader = theirs.newHeader || mine.newHeader; + } else if (!fileNameChanged(theirs)) { + // No header or no change in theirs, use ours + ret.oldFileName = mine.oldFileName; + ret.newFileName = mine.newFileName; + ret.oldHeader = mine.oldHeader; + ret.newHeader = mine.newHeader; + } else { + // Both changed... figure it out + ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); + ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); + ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); + ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); + } + } + + ret.hunks = []; + + var mineIndex = 0, + theirsIndex = 0, + mineOffset = 0, + theirsOffset = 0; + + while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { + var mineCurrent = mine.hunks[mineIndex] || { oldStart: Infinity }, + theirsCurrent = theirs.hunks[theirsIndex] || { oldStart: Infinity }; + + if (hunkBefore(mineCurrent, theirsCurrent)) { + // This patch does not overlap with any of the others, yay. + ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); + mineIndex++; + theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; + } else if (hunkBefore(theirsCurrent, mineCurrent)) { + // This patch does not overlap with any of the others, yay. + ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); + theirsIndex++; + mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; + } else { + // Overlap, merge as best we can + var mergedHunk = { + oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), + oldLines: 0, + newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), + newLines: 0, + lines: [] + }; + mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); + theirsIndex++; + mineIndex++; + + ret.hunks.push(mergedHunk); + } + } + + return ret; + } + + function loadPatch(param, base) { + if (typeof param === 'string') { + if (/^@@/m.test(param) || /^Index:/m.test(param)) { + return (/*istanbul ignore start*/(0, _parse.parsePatch) /*istanbul ignore end*/(param)[0] + ); + } + + if (!base) { + throw new Error('Must provide a base reference or pass in a patch'); + } + return (/*istanbul ignore start*/(0, _create.structuredPatch) /*istanbul ignore end*/(undefined, undefined, base, param) + ); + } + + return param; + } + + function fileNameChanged(patch) { + return patch.newFileName && patch.newFileName !== patch.oldFileName; + } + + function selectField(index, mine, theirs) { + if (mine === theirs) { + return mine; + } else { + index.conflict = true; + return { mine: mine, theirs: theirs }; + } + } + + function hunkBefore(test, check) { + return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; + } + + function cloneHunk(hunk, offset) { + return { + oldStart: hunk.oldStart, oldLines: hunk.oldLines, + newStart: hunk.newStart + offset, newLines: hunk.newLines, + lines: hunk.lines + }; + } + + function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { + // This will generally result in a conflicted hunk, but there are cases where the context + // is the only overlap where we can successfully merge the content here. + var mine = { offset: mineOffset, lines: mineLines, index: 0 }, + their = { offset: theirOffset, lines: theirLines, index: 0 }; + + // Handle any leading content + insertLeading(hunk, mine, their); + insertLeading(hunk, their, mine); + + // Now in the overlap content. Scan through and select the best changes from each. + while (mine.index < mine.lines.length && their.index < their.lines.length) { + var mineCurrent = mine.lines[mine.index], + theirCurrent = their.lines[their.index]; + + if ((mineCurrent[0] === '-' || mineCurrent[0] === '+') && (theirCurrent[0] === '-' || theirCurrent[0] === '+')) { + // Both modified ... + mutualChange(hunk, mine, their); + } else if (mineCurrent[0] === '+' && theirCurrent[0] === ' ') { + /*istanbul ignore start*/var _hunk$lines; + + /*istanbul ignore end*/ // Mine inserted + /*istanbul ignore start*/(_hunk$lines = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(mine))); + } else if (theirCurrent[0] === '+' && mineCurrent[0] === ' ') { + /*istanbul ignore start*/var _hunk$lines2; + + /*istanbul ignore end*/ // Theirs inserted + /*istanbul ignore start*/(_hunk$lines2 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/collectChange(their))); + } else if (mineCurrent[0] === '-' && theirCurrent[0] === ' ') { + // Mine removed or edited + removal(hunk, mine, their); + } else if (theirCurrent[0] === '-' && mineCurrent[0] === ' ') { + // Their removed or edited + removal(hunk, their, mine, true); + } else if (mineCurrent === theirCurrent) { + // Context identity + hunk.lines.push(mineCurrent); + mine.index++; + their.index++; + } else { + // Context mismatch + conflict(hunk, collectChange(mine), collectChange(their)); + } + } + + // Now push anything that may be remaining + insertTrailing(hunk, mine); + insertTrailing(hunk, their); + + calcLineCount(hunk); + } + + function mutualChange(hunk, mine, their) { + var myChanges = collectChange(mine), + theirChanges = collectChange(their); + + if (allRemoves(myChanges) && allRemoves(theirChanges)) { + // Special case for remove changes that are supersets of one another + if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + /*istanbul ignore start*/var _hunk$lines3; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines3 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); + return; + } else if ( /*istanbul ignore start*/(0, _array.arrayStartsWith) /*istanbul ignore end*/(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + /*istanbul ignore start*/var _hunk$lines4; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines4 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines4 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges)); + return; + } + } else if ( /*istanbul ignore start*/(0, _array.arrayEqual) /*istanbul ignore end*/(myChanges, theirChanges)) { + /*istanbul ignore start*/var _hunk$lines5; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines5 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines5 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/myChanges)); + return; + } + + conflict(hunk, myChanges, theirChanges); + } + + function removal(hunk, mine, their, swap) { + var myChanges = collectChange(mine), + theirChanges = collectContext(their, myChanges); + if (theirChanges.merged) { + /*istanbul ignore start*/var _hunk$lines6; + + /*istanbul ignore end*/ /*istanbul ignore start*/(_hunk$lines6 = /*istanbul ignore end*/hunk.lines).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_hunk$lines6 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/theirChanges.merged)); + } else { + conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); + } + } + + function conflict(hunk, mine, their) { + hunk.conflict = true; + hunk.lines.push({ + conflict: true, + mine: mine, + theirs: their + }); + } + + function insertLeading(hunk, insert, their) { + while (insert.offset < their.offset && insert.index < insert.lines.length) { + var line = insert.lines[insert.index++]; + hunk.lines.push(line); + insert.offset++; + } + } + function insertTrailing(hunk, insert) { + while (insert.index < insert.lines.length) { + var line = insert.lines[insert.index++]; + hunk.lines.push(line); + } + } + + function collectChange(state) { + var ret = [], + operation = state.lines[state.index][0]; + while (state.index < state.lines.length) { + var line = state.lines[state.index]; + + // Group additions that are immediately after subtractions and treat them as one "atomic" modify change. + if (operation === '-' && line[0] === '+') { + operation = '+'; + } + + if (operation === line[0]) { + ret.push(line); + state.index++; + } else { + break; + } + } + + return ret; + } + function collectContext(state, matchChanges) { + var changes = [], + merged = [], + matchIndex = 0, + contextChanges = false, + conflicted = false; + while (matchIndex < matchChanges.length && state.index < state.lines.length) { + var change = state.lines[state.index], + match = matchChanges[matchIndex]; + + // Once we've hit our add, then we are done + if (match[0] === '+') { + break; + } + + contextChanges = contextChanges || change[0] !== ' '; + + merged.push(match); + matchIndex++; + + // Consume any additions in the other block as a conflict to attempt + // to pull in the remaining context after this + if (change[0] === '+') { + conflicted = true; + + while (change[0] === '+') { + changes.push(change); + change = state.lines[++state.index]; + } + } + + if (match.substr(1) === change.substr(1)) { + changes.push(change); + state.index++; + } else { + conflicted = true; + } + } + + if ((matchChanges[matchIndex] || '')[0] === '+' && contextChanges) { + conflicted = true; + } + + if (conflicted) { + return changes; + } + + while (matchIndex < matchChanges.length) { + merged.push(matchChanges[matchIndex++]); + } + + return { + merged: merged, + changes: changes + }; + } + + function allRemoves(changes) { + return changes.reduce(function (prev, change) { + return prev && change[0] === '-'; + }, true); + } + function skipRemoveSuperset(state, removeChanges, delta) { + for (var i = 0; i < delta; i++) { + var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); + if (state.lines[state.index + i] !== ' ' + changeContent) { + return false; + } + } + + state.index += delta; + return true; + } + + function calcOldNewLineCount(lines) { + var oldLines = 0; + var newLines = 0; + + lines.forEach(function (line) { + if (typeof line !== 'string') { + var myCount = calcOldNewLineCount(line.mine); + var theirCount = calcOldNewLineCount(line.theirs); + + if (oldLines !== undefined) { + if (myCount.oldLines === theirCount.oldLines) { + oldLines += myCount.oldLines; + } else { + oldLines = undefined; + } + } + + if (newLines !== undefined) { + if (myCount.newLines === theirCount.newLines) { + newLines += myCount.newLines; + } else { + newLines = undefined; + } + } + } else { + if (newLines !== undefined && (line[0] === '+' || line[0] === ' ')) { + newLines++; + } + if (oldLines !== undefined && (line[0] === '-' || line[0] === ' ')) { + oldLines++; + } + } + }); + + return { oldLines: oldLines, newLines: newLines }; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9tZXJnZS5qcyJdLCJuYW1lcyI6WyJjYWxjTGluZUNvdW50IiwibWVyZ2UiLCJodW5rIiwiY2FsY09sZE5ld0xpbmVDb3VudCIsImxpbmVzIiwib2xkTGluZXMiLCJuZXdMaW5lcyIsInVuZGVmaW5lZCIsIm1pbmUiLCJ0aGVpcnMiLCJiYXNlIiwibG9hZFBhdGNoIiwicmV0IiwiaW5kZXgiLCJuZXdGaWxlTmFtZSIsImZpbGVOYW1lQ2hhbmdlZCIsIm9sZEZpbGVOYW1lIiwib2xkSGVhZGVyIiwibmV3SGVhZGVyIiwic2VsZWN0RmllbGQiLCJodW5rcyIsIm1pbmVJbmRleCIsInRoZWlyc0luZGV4IiwibWluZU9mZnNldCIsInRoZWlyc09mZnNldCIsImxlbmd0aCIsIm1pbmVDdXJyZW50Iiwib2xkU3RhcnQiLCJJbmZpbml0eSIsInRoZWlyc0N1cnJlbnQiLCJodW5rQmVmb3JlIiwicHVzaCIsImNsb25lSHVuayIsIm1lcmdlZEh1bmsiLCJNYXRoIiwibWluIiwibmV3U3RhcnQiLCJtZXJnZUxpbmVzIiwicGFyYW0iLCJ0ZXN0IiwiRXJyb3IiLCJwYXRjaCIsImNvbmZsaWN0IiwiY2hlY2siLCJvZmZzZXQiLCJtaW5lTGluZXMiLCJ0aGVpck9mZnNldCIsInRoZWlyTGluZXMiLCJ0aGVpciIsImluc2VydExlYWRpbmciLCJ0aGVpckN1cnJlbnQiLCJtdXR1YWxDaGFuZ2UiLCJjb2xsZWN0Q2hhbmdlIiwicmVtb3ZhbCIsImluc2VydFRyYWlsaW5nIiwibXlDaGFuZ2VzIiwidGhlaXJDaGFuZ2VzIiwiYWxsUmVtb3ZlcyIsInNraXBSZW1vdmVTdXBlcnNldCIsInN3YXAiLCJjb2xsZWN0Q29udGV4dCIsIm1lcmdlZCIsImluc2VydCIsImxpbmUiLCJzdGF0ZSIsIm9wZXJhdGlvbiIsIm1hdGNoQ2hhbmdlcyIsImNoYW5nZXMiLCJtYXRjaEluZGV4IiwiY29udGV4dENoYW5nZXMiLCJjb25mbGljdGVkIiwiY2hhbmdlIiwibWF0Y2giLCJzdWJzdHIiLCJyZWR1Y2UiLCJwcmV2IiwicmVtb3ZlQ2hhbmdlcyIsImRlbHRhIiwiaSIsImNoYW5nZUNvbnRlbnQiLCJmb3JFYWNoIiwibXlDb3VudCIsInRoZWlyQ291bnQiXSwibWFwcGluZ3MiOiI7OztnQ0FLZ0JBLGEsR0FBQUEsYTt5REFnQkFDLEssR0FBQUEsSzs7QUFyQmhCOztBQUNBOztBQUVBOzs7O3VCQUVPLFNBQVNELGFBQVQsQ0FBdUJFLElBQXZCLEVBQTZCO0FBQUEsNkVBQ0xDLG9CQUFvQkQsS0FBS0UsS0FBekIsQ0FESztBQUFBLE1BQzNCQyxRQUQyQix3QkFDM0JBLFFBRDJCO0FBQUEsTUFDakJDLFFBRGlCLHdCQUNqQkEsUUFEaUI7O0FBR2xDLE1BQUlELGFBQWFFLFNBQWpCLEVBQTRCO0FBQzFCTCxTQUFLRyxRQUFMLEdBQWdCQSxRQUFoQjtBQUNELEdBRkQsTUFFTztBQUNMLFdBQU9ILEtBQUtHLFFBQVo7QUFDRDs7QUFFRCxNQUFJQyxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQkwsU0FBS0ksUUFBTCxHQUFnQkEsUUFBaEI7QUFDRCxHQUZELE1BRU87QUFDTCxXQUFPSixLQUFLSSxRQUFaO0FBQ0Q7QUFDRjs7QUFFTSxTQUFTTCxLQUFULENBQWVPLElBQWYsRUFBcUJDLE1BQXJCLEVBQTZCQyxJQUE3QixFQUFtQztBQUN4Q0YsU0FBT0csVUFBVUgsSUFBVixFQUFnQkUsSUFBaEIsQ0FBUDtBQUNBRCxXQUFTRSxVQUFVRixNQUFWLEVBQWtCQyxJQUFsQixDQUFUOztBQUVBLE1BQUlFLE1BQU0sRUFBVjs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJSixLQUFLSyxLQUFMLElBQWNKLE9BQU9JLEtBQXpCLEVBQWdDO0FBQzlCRCxRQUFJQyxLQUFKLEdBQVlMLEtBQUtLLEtBQUwsSUFBY0osT0FBT0ksS0FBakM7QUFDRDs7QUFFRCxNQUFJTCxLQUFLTSxXQUFMLElBQW9CTCxPQUFPSyxXQUEvQixFQUE0QztBQUMxQyxRQUFJLENBQUNDLGdCQUFnQlAsSUFBaEIsQ0FBTCxFQUE0QjtBQUMxQjtBQUNBSSxVQUFJSSxXQUFKLEdBQWtCUCxPQUFPTyxXQUFQLElBQXNCUixLQUFLUSxXQUE3QztBQUNBSixVQUFJRSxXQUFKLEdBQWtCTCxPQUFPSyxXQUFQLElBQXNCTixLQUFLTSxXQUE3QztBQUNBRixVQUFJSyxTQUFKLEdBQWdCUixPQUFPUSxTQUFQLElBQW9CVCxLQUFLUyxTQUF6QztBQUNBTCxVQUFJTSxTQUFKLEdBQWdCVCxPQUFPUyxTQUFQLElBQW9CVixLQUFLVSxTQUF6QztBQUNELEtBTkQsTUFNTyxJQUFJLENBQUNILGdCQUFnQk4sTUFBaEIsQ0FBTCxFQUE4QjtBQUNuQztBQUNBRyxVQUFJSSxXQUFKLEdBQWtCUixLQUFLUSxXQUF2QjtBQUNBSixVQUFJRSxXQUFKLEdBQWtCTixLQUFLTSxXQUF2QjtBQUNBRixVQUFJSyxTQUFKLEdBQWdCVCxLQUFLUyxTQUFyQjtBQUNBTCxVQUFJTSxTQUFKLEdBQWdCVixLQUFLVSxTQUFyQjtBQUNELEtBTk0sTUFNQTtBQUNMO0FBQ0FOLFVBQUlJLFdBQUosR0FBa0JHLFlBQVlQLEdBQVosRUFBaUJKLEtBQUtRLFdBQXRCLEVBQW1DUCxPQUFPTyxXQUExQyxDQUFsQjtBQUNBSixVQUFJRSxXQUFKLEdBQWtCSyxZQUFZUCxHQUFaLEVBQWlCSixLQUFLTSxXQUF0QixFQUFtQ0wsT0FBT0ssV0FBMUMsQ0FBbEI7QUFDQUYsVUFBSUssU0FBSixHQUFnQkUsWUFBWVAsR0FBWixFQUFpQkosS0FBS1MsU0FBdEIsRUFBaUNSLE9BQU9RLFNBQXhDLENBQWhCO0FBQ0FMLFVBQUlNLFNBQUosR0FBZ0JDLFlBQVlQLEdBQVosRUFBaUJKLEtBQUtVLFNBQXRCLEVBQWlDVCxPQUFPUyxTQUF4QyxDQUFoQjtBQUNEO0FBQ0Y7O0FBRUROLE1BQUlRLEtBQUosR0FBWSxFQUFaOztBQUVBLE1BQUlDLFlBQVksQ0FBaEI7QUFBQSxNQUNJQyxjQUFjLENBRGxCO0FBQUEsTUFFSUMsYUFBYSxDQUZqQjtBQUFBLE1BR0lDLGVBQWUsQ0FIbkI7O0FBS0EsU0FBT0gsWUFBWWIsS0FBS1ksS0FBTCxDQUFXSyxNQUF2QixJQUFpQ0gsY0FBY2IsT0FBT1csS0FBUCxDQUFhSyxNQUFuRSxFQUEyRTtBQUN6RSxRQUFJQyxjQUFjbEIsS0FBS1ksS0FBTCxDQUFXQyxTQUFYLEtBQXlCLEVBQUNNLFVBQVVDLFFBQVgsRUFBM0M7QUFBQSxRQUNJQyxnQkFBZ0JwQixPQUFPVyxLQUFQLENBQWFFLFdBQWIsS0FBNkIsRUFBQ0ssVUFBVUMsUUFBWCxFQURqRDs7QUFHQSxRQUFJRSxXQUFXSixXQUFYLEVBQXdCRyxhQUF4QixDQUFKLEVBQTRDO0FBQzFDO0FBQ0FqQixVQUFJUSxLQUFKLENBQVVXLElBQVYsQ0FBZUMsVUFBVU4sV0FBVixFQUF1QkgsVUFBdkIsQ0FBZjtBQUNBRjtBQUNBRyxzQkFBZ0JFLFlBQVlwQixRQUFaLEdBQXVCb0IsWUFBWXJCLFFBQW5EO0FBQ0QsS0FMRCxNQUtPLElBQUl5QixXQUFXRCxhQUFYLEVBQTBCSCxXQUExQixDQUFKLEVBQTRDO0FBQ2pEO0FBQ0FkLFVBQUlRLEtBQUosQ0FBVVcsSUFBVixDQUFlQyxVQUFVSCxhQUFWLEVBQXlCTCxZQUF6QixDQUFmO0FBQ0FGO0FBQ0FDLG9CQUFjTSxjQUFjdkIsUUFBZCxHQUF5QnVCLGNBQWN4QixRQUFyRDtBQUNELEtBTE0sTUFLQTtBQUNMO0FBQ0EsVUFBSTRCLGFBQWE7QUFDZk4sa0JBQVVPLEtBQUtDLEdBQUwsQ0FBU1QsWUFBWUMsUUFBckIsRUFBK0JFLGNBQWNGLFFBQTdDLENBREs7QUFFZnRCLGtCQUFVLENBRks7QUFHZitCLGtCQUFVRixLQUFLQyxHQUFMLENBQVNULFlBQVlVLFFBQVosR0FBdUJiLFVBQWhDLEVBQTRDTSxjQUFjRixRQUFkLEdBQXlCSCxZQUFyRSxDQUhLO0FBSWZsQixrQkFBVSxDQUpLO0FBS2ZGLGVBQU87QUFMUSxPQUFqQjtBQU9BaUMsaUJBQVdKLFVBQVgsRUFBdUJQLFlBQVlDLFFBQW5DLEVBQTZDRCxZQUFZdEIsS0FBekQsRUFBZ0V5QixjQUFjRixRQUE5RSxFQUF3RkUsY0FBY3pCLEtBQXRHO0FBQ0FrQjtBQUNBRDs7QUFFQVQsVUFBSVEsS0FBSixDQUFVVyxJQUFWLENBQWVFLFVBQWY7QUFDRDtBQUNGOztBQUVELFNBQU9yQixHQUFQO0FBQ0Q7O0FBRUQsU0FBU0QsU0FBVCxDQUFtQjJCLEtBQW5CLEVBQTBCNUIsSUFBMUIsRUFBZ0M7QUFDOUIsTUFBSSxPQUFPNEIsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QixRQUFJLE9BQU9DLElBQVAsQ0FBWUQsS0FBWixLQUF1QixXQUFXQyxJQUFYLENBQWdCRCxLQUFoQixDQUEzQixFQUFvRDtBQUNsRCxhQUFPLHlFQUFXQSxLQUFYLEVBQWtCLENBQWxCO0FBQVA7QUFDRDs7QUFFRCxRQUFJLENBQUM1QixJQUFMLEVBQVc7QUFDVCxZQUFNLElBQUk4QixLQUFKLENBQVUsa0RBQVYsQ0FBTjtBQUNEO0FBQ0QsV0FBTywrRUFBZ0JqQyxTQUFoQixFQUEyQkEsU0FBM0IsRUFBc0NHLElBQXRDLEVBQTRDNEIsS0FBNUM7QUFBUDtBQUNEOztBQUVELFNBQU9BLEtBQVA7QUFDRDs7QUFFRCxTQUFTdkIsZUFBVCxDQUF5QjBCLEtBQXpCLEVBQWdDO0FBQzlCLFNBQU9BLE1BQU0zQixXQUFOLElBQXFCMkIsTUFBTTNCLFdBQU4sS0FBc0IyQixNQUFNekIsV0FBeEQ7QUFDRDs7QUFFRCxTQUFTRyxXQUFULENBQXFCTixLQUFyQixFQUE0QkwsSUFBNUIsRUFBa0NDLE1BQWxDLEVBQTBDO0FBQ3hDLE1BQUlELFNBQVNDLE1BQWIsRUFBcUI7QUFDbkIsV0FBT0QsSUFBUDtBQUNELEdBRkQsTUFFTztBQUNMSyxVQUFNNkIsUUFBTixHQUFpQixJQUFqQjtBQUNBLFdBQU8sRUFBQ2xDLFVBQUQsRUFBT0MsY0FBUCxFQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTcUIsVUFBVCxDQUFvQlMsSUFBcEIsRUFBMEJJLEtBQTFCLEVBQWlDO0FBQy9CLFNBQU9KLEtBQUtaLFFBQUwsR0FBZ0JnQixNQUFNaEIsUUFBdEIsSUFDRFksS0FBS1osUUFBTCxHQUFnQlksS0FBS2xDLFFBQXRCLEdBQWtDc0MsTUFBTWhCLFFBRDdDO0FBRUQ7O0FBRUQsU0FBU0ssU0FBVCxDQUFtQjlCLElBQW5CLEVBQXlCMEMsTUFBekIsRUFBaUM7QUFDL0IsU0FBTztBQUNMakIsY0FBVXpCLEtBQUt5QixRQURWLEVBQ29CdEIsVUFBVUgsS0FBS0csUUFEbkM7QUFFTCtCLGNBQVVsQyxLQUFLa0MsUUFBTCxHQUFnQlEsTUFGckIsRUFFNkJ0QyxVQUFVSixLQUFLSSxRQUY1QztBQUdMRixXQUFPRixLQUFLRTtBQUhQLEdBQVA7QUFLRDs7QUFFRCxTQUFTaUMsVUFBVCxDQUFvQm5DLElBQXBCLEVBQTBCcUIsVUFBMUIsRUFBc0NzQixTQUF0QyxFQUFpREMsV0FBakQsRUFBOERDLFVBQTlELEVBQTBFO0FBQ3hFO0FBQ0E7QUFDQSxNQUFJdkMsT0FBTyxFQUFDb0MsUUFBUXJCLFVBQVQsRUFBcUJuQixPQUFPeUMsU0FBNUIsRUFBdUNoQyxPQUFPLENBQTlDLEVBQVg7QUFBQSxNQUNJbUMsUUFBUSxFQUFDSixRQUFRRSxXQUFULEVBQXNCMUMsT0FBTzJDLFVBQTdCLEVBQXlDbEMsT0FBTyxDQUFoRCxFQURaOztBQUdBO0FBQ0FvQyxnQkFBYy9DLElBQWQsRUFBb0JNLElBQXBCLEVBQTBCd0MsS0FBMUI7QUFDQUMsZ0JBQWMvQyxJQUFkLEVBQW9COEMsS0FBcEIsRUFBMkJ4QyxJQUEzQjs7QUFFQTtBQUNBLFNBQU9BLEtBQUtLLEtBQUwsR0FBYUwsS0FBS0osS0FBTCxDQUFXcUIsTUFBeEIsSUFBa0N1QixNQUFNbkMsS0FBTixHQUFjbUMsTUFBTTVDLEtBQU4sQ0FBWXFCLE1BQW5FLEVBQTJFO0FBQ3pFLFFBQUlDLGNBQWNsQixLQUFLSixLQUFMLENBQVdJLEtBQUtLLEtBQWhCLENBQWxCO0FBQUEsUUFDSXFDLGVBQWVGLE1BQU01QyxLQUFOLENBQVk0QyxNQUFNbkMsS0FBbEIsQ0FEbkI7O0FBR0EsUUFBSSxDQUFDYSxZQUFZLENBQVosTUFBbUIsR0FBbkIsSUFBMEJBLFlBQVksQ0FBWixNQUFtQixHQUE5QyxNQUNJd0IsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCQSxhQUFhLENBQWIsTUFBb0IsR0FEbkQsQ0FBSixFQUM2RDtBQUMzRDtBQUNBQyxtQkFBYWpELElBQWIsRUFBbUJNLElBQW5CLEVBQXlCd0MsS0FBekI7QUFDRCxLQUpELE1BSU8sSUFBSXRCLFlBQVksQ0FBWixNQUFtQixHQUFuQixJQUEwQndCLGFBQWEsQ0FBYixNQUFvQixHQUFsRCxFQUF1RDtBQUFBOztBQUFBLDhCQUM1RDtBQUNBLDBFQUFLOUMsS0FBTCxFQUFXMkIsSUFBWCw0TEFBb0JxQixjQUFjNUMsSUFBZCxDQUFwQjtBQUNELEtBSE0sTUFHQSxJQUFJMEMsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCeEIsWUFBWSxDQUFaLE1BQW1CLEdBQWxELEVBQXVEO0FBQUE7O0FBQUEsOEJBQzVEO0FBQ0EsMkVBQUt0QixLQUFMLEVBQVcyQixJQUFYLDZMQUFvQnFCLGNBQWNKLEtBQWQsQ0FBcEI7QUFDRCxLQUhNLE1BR0EsSUFBSXRCLFlBQVksQ0FBWixNQUFtQixHQUFuQixJQUEwQndCLGFBQWEsQ0FBYixNQUFvQixHQUFsRCxFQUF1RDtBQUM1RDtBQUNBRyxjQUFRbkQsSUFBUixFQUFjTSxJQUFkLEVBQW9Cd0MsS0FBcEI7QUFDRCxLQUhNLE1BR0EsSUFBSUUsYUFBYSxDQUFiLE1BQW9CLEdBQXBCLElBQTJCeEIsWUFBWSxDQUFaLE1BQW1CLEdBQWxELEVBQXVEO0FBQzVEO0FBQ0EyQixjQUFRbkQsSUFBUixFQUFjOEMsS0FBZCxFQUFxQnhDLElBQXJCLEVBQTJCLElBQTNCO0FBQ0QsS0FITSxNQUdBLElBQUlrQixnQkFBZ0J3QixZQUFwQixFQUFrQztBQUN2QztBQUNBaEQsV0FBS0UsS0FBTCxDQUFXMkIsSUFBWCxDQUFnQkwsV0FBaEI7QUFDQWxCLFdBQUtLLEtBQUw7QUFDQW1DLFlBQU1uQyxLQUFOO0FBQ0QsS0FMTSxNQUtBO0FBQ0w7QUFDQTZCLGVBQVN4QyxJQUFULEVBQWVrRCxjQUFjNUMsSUFBZCxDQUFmLEVBQW9DNEMsY0FBY0osS0FBZCxDQUFwQztBQUNEO0FBQ0Y7O0FBRUQ7QUFDQU0saUJBQWVwRCxJQUFmLEVBQXFCTSxJQUFyQjtBQUNBOEMsaUJBQWVwRCxJQUFmLEVBQXFCOEMsS0FBckI7O0FBRUFoRCxnQkFBY0UsSUFBZDtBQUNEOztBQUVELFNBQVNpRCxZQUFULENBQXNCakQsSUFBdEIsRUFBNEJNLElBQTVCLEVBQWtDd0MsS0FBbEMsRUFBeUM7QUFDdkMsTUFBSU8sWUFBWUgsY0FBYzVDLElBQWQsQ0FBaEI7QUFBQSxNQUNJZ0QsZUFBZUosY0FBY0osS0FBZCxDQURuQjs7QUFHQSxNQUFJUyxXQUFXRixTQUFYLEtBQXlCRSxXQUFXRCxZQUFYLENBQTdCLEVBQXVEO0FBQ3JEO0FBQ0EsUUFBSSw4RUFBZ0JELFNBQWhCLEVBQTJCQyxZQUEzQixLQUNHRSxtQkFBbUJWLEtBQW5CLEVBQTBCTyxTQUExQixFQUFxQ0EsVUFBVTlCLE1BQVYsR0FBbUIrQixhQUFhL0IsTUFBckUsQ0FEUCxFQUNxRjtBQUFBOztBQUFBLDZCQUNuRixzRUFBS3JCLEtBQUwsRUFBVzJCLElBQVgsNkxBQW9Cd0IsU0FBcEI7QUFDQTtBQUNELEtBSkQsTUFJTyxJQUFJLDhFQUFnQkMsWUFBaEIsRUFBOEJELFNBQTlCLEtBQ0pHLG1CQUFtQmxELElBQW5CLEVBQXlCZ0QsWUFBekIsRUFBdUNBLGFBQWEvQixNQUFiLEdBQXNCOEIsVUFBVTlCLE1BQXZFLENBREEsRUFDZ0Y7QUFBQTs7QUFBQSw2QkFDckYsc0VBQUtyQixLQUFMLEVBQVcyQixJQUFYLDZMQUFvQnlCLFlBQXBCO0FBQ0E7QUFDRDtBQUNGLEdBWEQsTUFXTyxJQUFJLHlFQUFXRCxTQUFYLEVBQXNCQyxZQUF0QixDQUFKLEVBQXlDO0FBQUE7O0FBQUEsMkJBQzlDLHNFQUFLcEQsS0FBTCxFQUFXMkIsSUFBWCw2TEFBb0J3QixTQUFwQjtBQUNBO0FBQ0Q7O0FBRURiLFdBQVN4QyxJQUFULEVBQWVxRCxTQUFmLEVBQTBCQyxZQUExQjtBQUNEOztBQUVELFNBQVNILE9BQVQsQ0FBaUJuRCxJQUFqQixFQUF1Qk0sSUFBdkIsRUFBNkJ3QyxLQUE3QixFQUFvQ1csSUFBcEMsRUFBMEM7QUFDeEMsTUFBSUosWUFBWUgsY0FBYzVDLElBQWQsQ0FBaEI7QUFBQSxNQUNJZ0QsZUFBZUksZUFBZVosS0FBZixFQUFzQk8sU0FBdEIsQ0FEbkI7QUFFQSxNQUFJQyxhQUFhSyxNQUFqQixFQUF5QjtBQUFBOztBQUFBLDJCQUN2QixzRUFBS3pELEtBQUwsRUFBVzJCLElBQVgsNkxBQW9CeUIsYUFBYUssTUFBakM7QUFDRCxHQUZELE1BRU87QUFDTG5CLGFBQVN4QyxJQUFULEVBQWV5RCxPQUFPSCxZQUFQLEdBQXNCRCxTQUFyQyxFQUFnREksT0FBT0osU0FBUCxHQUFtQkMsWUFBbkU7QUFDRDtBQUNGOztBQUVELFNBQVNkLFFBQVQsQ0FBa0J4QyxJQUFsQixFQUF3Qk0sSUFBeEIsRUFBOEJ3QyxLQUE5QixFQUFxQztBQUNuQzlDLE9BQUt3QyxRQUFMLEdBQWdCLElBQWhCO0FBQ0F4QyxPQUFLRSxLQUFMLENBQVcyQixJQUFYLENBQWdCO0FBQ2RXLGNBQVUsSUFESTtBQUVkbEMsVUFBTUEsSUFGUTtBQUdkQyxZQUFRdUM7QUFITSxHQUFoQjtBQUtEOztBQUVELFNBQVNDLGFBQVQsQ0FBdUIvQyxJQUF2QixFQUE2QjRELE1BQTdCLEVBQXFDZCxLQUFyQyxFQUE0QztBQUMxQyxTQUFPYyxPQUFPbEIsTUFBUCxHQUFnQkksTUFBTUosTUFBdEIsSUFBZ0NrQixPQUFPakQsS0FBUCxHQUFlaUQsT0FBTzFELEtBQVAsQ0FBYXFCLE1BQW5FLEVBQTJFO0FBQ3pFLFFBQUlzQyxPQUFPRCxPQUFPMUQsS0FBUCxDQUFhMEQsT0FBT2pELEtBQVAsRUFBYixDQUFYO0FBQ0FYLFNBQUtFLEtBQUwsQ0FBVzJCLElBQVgsQ0FBZ0JnQyxJQUFoQjtBQUNBRCxXQUFPbEIsTUFBUDtBQUNEO0FBQ0Y7QUFDRCxTQUFTVSxjQUFULENBQXdCcEQsSUFBeEIsRUFBOEI0RCxNQUE5QixFQUFzQztBQUNwQyxTQUFPQSxPQUFPakQsS0FBUCxHQUFlaUQsT0FBTzFELEtBQVAsQ0FBYXFCLE1BQW5DLEVBQTJDO0FBQ3pDLFFBQUlzQyxPQUFPRCxPQUFPMUQsS0FBUCxDQUFhMEQsT0FBT2pELEtBQVAsRUFBYixDQUFYO0FBQ0FYLFNBQUtFLEtBQUwsQ0FBVzJCLElBQVgsQ0FBZ0JnQyxJQUFoQjtBQUNEO0FBQ0Y7O0FBRUQsU0FBU1gsYUFBVCxDQUF1QlksS0FBdkIsRUFBOEI7QUFDNUIsTUFBSXBELE1BQU0sRUFBVjtBQUFBLE1BQ0lxRCxZQUFZRCxNQUFNNUQsS0FBTixDQUFZNEQsTUFBTW5ELEtBQWxCLEVBQXlCLENBQXpCLENBRGhCO0FBRUEsU0FBT21ELE1BQU1uRCxLQUFOLEdBQWNtRCxNQUFNNUQsS0FBTixDQUFZcUIsTUFBakMsRUFBeUM7QUFDdkMsUUFBSXNDLE9BQU9DLE1BQU01RCxLQUFOLENBQVk0RCxNQUFNbkQsS0FBbEIsQ0FBWDs7QUFFQTtBQUNBLFFBQUlvRCxjQUFjLEdBQWQsSUFBcUJGLEtBQUssQ0FBTCxNQUFZLEdBQXJDLEVBQTBDO0FBQ3hDRSxrQkFBWSxHQUFaO0FBQ0Q7O0FBRUQsUUFBSUEsY0FBY0YsS0FBSyxDQUFMLENBQWxCLEVBQTJCO0FBQ3pCbkQsVUFBSW1CLElBQUosQ0FBU2dDLElBQVQ7QUFDQUMsWUFBTW5ELEtBQU47QUFDRCxLQUhELE1BR087QUFDTDtBQUNEO0FBQ0Y7O0FBRUQsU0FBT0QsR0FBUDtBQUNEO0FBQ0QsU0FBU2dELGNBQVQsQ0FBd0JJLEtBQXhCLEVBQStCRSxZQUEvQixFQUE2QztBQUMzQyxNQUFJQyxVQUFVLEVBQWQ7QUFBQSxNQUNJTixTQUFTLEVBRGI7QUFBQSxNQUVJTyxhQUFhLENBRmpCO0FBQUEsTUFHSUMsaUJBQWlCLEtBSHJCO0FBQUEsTUFJSUMsYUFBYSxLQUpqQjtBQUtBLFNBQU9GLGFBQWFGLGFBQWF6QyxNQUExQixJQUNFdUMsTUFBTW5ELEtBQU4sR0FBY21ELE1BQU01RCxLQUFOLENBQVlxQixNQURuQyxFQUMyQztBQUN6QyxRQUFJOEMsU0FBU1AsTUFBTTVELEtBQU4sQ0FBWTRELE1BQU1uRCxLQUFsQixDQUFiO0FBQUEsUUFDSTJELFFBQVFOLGFBQWFFLFVBQWIsQ0FEWjs7QUFHQTtBQUNBLFFBQUlJLE1BQU0sQ0FBTixNQUFhLEdBQWpCLEVBQXNCO0FBQ3BCO0FBQ0Q7O0FBRURILHFCQUFpQkEsa0JBQWtCRSxPQUFPLENBQVAsTUFBYyxHQUFqRDs7QUFFQVYsV0FBTzlCLElBQVAsQ0FBWXlDLEtBQVo7QUFDQUo7O0FBRUE7QUFDQTtBQUNBLFFBQUlHLE9BQU8sQ0FBUCxNQUFjLEdBQWxCLEVBQXVCO0FBQ3JCRCxtQkFBYSxJQUFiOztBQUVBLGFBQU9DLE9BQU8sQ0FBUCxNQUFjLEdBQXJCLEVBQTBCO0FBQ3hCSixnQkFBUXBDLElBQVIsQ0FBYXdDLE1BQWI7QUFDQUEsaUJBQVNQLE1BQU01RCxLQUFOLENBQVksRUFBRTRELE1BQU1uRCxLQUFwQixDQUFUO0FBQ0Q7QUFDRjs7QUFFRCxRQUFJMkQsTUFBTUMsTUFBTixDQUFhLENBQWIsTUFBb0JGLE9BQU9FLE1BQVAsQ0FBYyxDQUFkLENBQXhCLEVBQTBDO0FBQ3hDTixjQUFRcEMsSUFBUixDQUFhd0MsTUFBYjtBQUNBUCxZQUFNbkQsS0FBTjtBQUNELEtBSEQsTUFHTztBQUNMeUQsbUJBQWEsSUFBYjtBQUNEO0FBQ0Y7O0FBRUQsTUFBSSxDQUFDSixhQUFhRSxVQUFiLEtBQTRCLEVBQTdCLEVBQWlDLENBQWpDLE1BQXdDLEdBQXhDLElBQ0dDLGNBRFAsRUFDdUI7QUFDckJDLGlCQUFhLElBQWI7QUFDRDs7QUFFRCxNQUFJQSxVQUFKLEVBQWdCO0FBQ2QsV0FBT0gsT0FBUDtBQUNEOztBQUVELFNBQU9DLGFBQWFGLGFBQWF6QyxNQUFqQyxFQUF5QztBQUN2Q29DLFdBQU85QixJQUFQLENBQVltQyxhQUFhRSxZQUFiLENBQVo7QUFDRDs7QUFFRCxTQUFPO0FBQ0xQLGtCQURLO0FBRUxNO0FBRkssR0FBUDtBQUlEOztBQUVELFNBQVNWLFVBQVQsQ0FBb0JVLE9BQXBCLEVBQTZCO0FBQzNCLFNBQU9BLFFBQVFPLE1BQVIsQ0FBZSxVQUFTQyxJQUFULEVBQWVKLE1BQWYsRUFBdUI7QUFDM0MsV0FBT0ksUUFBUUosT0FBTyxDQUFQLE1BQWMsR0FBN0I7QUFDRCxHQUZNLEVBRUosSUFGSSxDQUFQO0FBR0Q7QUFDRCxTQUFTYixrQkFBVCxDQUE0Qk0sS0FBNUIsRUFBbUNZLGFBQW5DLEVBQWtEQyxLQUFsRCxFQUF5RDtBQUN2RCxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsS0FBcEIsRUFBMkJDLEdBQTNCLEVBQWdDO0FBQzlCLFFBQUlDLGdCQUFnQkgsY0FBY0EsY0FBY25ELE1BQWQsR0FBdUJvRCxLQUF2QixHQUErQkMsQ0FBN0MsRUFBZ0RMLE1BQWhELENBQXVELENBQXZELENBQXBCO0FBQ0EsUUFBSVQsTUFBTTVELEtBQU4sQ0FBWTRELE1BQU1uRCxLQUFOLEdBQWNpRSxDQUExQixNQUFpQyxNQUFNQyxhQUEzQyxFQUEwRDtBQUN4RCxhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVEZixRQUFNbkQsS0FBTixJQUFlZ0UsS0FBZjtBQUNBLFNBQU8sSUFBUDtBQUNEOztBQUVELFNBQVMxRSxtQkFBVCxDQUE2QkMsS0FBN0IsRUFBb0M7QUFDbEMsTUFBSUMsV0FBVyxDQUFmO0FBQ0EsTUFBSUMsV0FBVyxDQUFmOztBQUVBRixRQUFNNEUsT0FBTixDQUFjLFVBQVNqQixJQUFULEVBQWU7QUFDM0IsUUFBSSxPQUFPQSxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQzVCLFVBQUlrQixVQUFVOUUsb0JBQW9CNEQsS0FBS3ZELElBQXpCLENBQWQ7QUFDQSxVQUFJMEUsYUFBYS9FLG9CQUFvQjRELEtBQUt0RCxNQUF6QixDQUFqQjs7QUFFQSxVQUFJSixhQUFhRSxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTVFLFFBQVIsS0FBcUI2RSxXQUFXN0UsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZNEUsUUFBUTVFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXRSxTQUFYO0FBQ0Q7QUFDRjs7QUFFRCxVQUFJRCxhQUFhQyxTQUFqQixFQUE0QjtBQUMxQixZQUFJMEUsUUFBUTNFLFFBQVIsS0FBcUI0RSxXQUFXNUUsUUFBcEMsRUFBOEM7QUFDNUNBLHNCQUFZMkUsUUFBUTNFLFFBQXBCO0FBQ0QsU0FGRCxNQUVPO0FBQ0xBLHFCQUFXQyxTQUFYO0FBQ0Q7QUFDRjtBQUNGLEtBbkJELE1BbUJPO0FBQ0wsVUFBSUQsYUFBYUMsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEV6RDtBQUNEO0FBQ0QsVUFBSUQsYUFBYUUsU0FBYixLQUEyQndELEtBQUssQ0FBTCxNQUFZLEdBQVosSUFBbUJBLEtBQUssQ0FBTCxNQUFZLEdBQTFELENBQUosRUFBb0U7QUFDbEUxRDtBQUNEO0FBQ0Y7QUFDRixHQTVCRDs7QUE4QkEsU0FBTyxFQUFDQSxrQkFBRCxFQUFXQyxrQkFBWCxFQUFQO0FBQ0QiLCJmaWxlIjoibWVyZ2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3N0cnVjdHVyZWRQYXRjaH0gZnJvbSAnLi9jcmVhdGUnO1xuaW1wb3J0IHtwYXJzZVBhdGNofSBmcm9tICcuL3BhcnNlJztcblxuaW1wb3J0IHthcnJheUVxdWFsLCBhcnJheVN0YXJ0c1dpdGh9IGZyb20gJy4uL3V0aWwvYXJyYXknO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FsY0xpbmVDb3VudChodW5rKSB7XG4gIGNvbnN0IHtvbGRMaW5lcywgbmV3TGluZXN9ID0gY2FsY09sZE5ld0xpbmVDb3VudChodW5rLmxpbmVzKTtcblxuICBpZiAob2xkTGluZXMgIT09IHVuZGVmaW5lZCkge1xuICAgIGh1bmsub2xkTGluZXMgPSBvbGRMaW5lcztcbiAgfSBlbHNlIHtcbiAgICBkZWxldGUgaHVuay5vbGRMaW5lcztcbiAgfVxuXG4gIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaHVuay5uZXdMaW5lcyA9IG5ld0xpbmVzO1xuICB9IGVsc2Uge1xuICAgIGRlbGV0ZSBodW5rLm5ld0xpbmVzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZShtaW5lLCB0aGVpcnMsIGJhc2UpIHtcbiAgbWluZSA9IGxvYWRQYXRjaChtaW5lLCBiYXNlKTtcbiAgdGhlaXJzID0gbG9hZFBhdGNoKHRoZWlycywgYmFzZSk7XG5cbiAgbGV0IHJldCA9IHt9O1xuXG4gIC8vIEZvciBpbmRleCB3ZSBqdXN0IGxldCBpdCBwYXNzIHRocm91Z2ggYXMgaXQgZG9lc24ndCBoYXZlIGFueSBuZWNlc3NhcnkgbWVhbmluZy5cbiAgLy8gTGVhdmluZyBzYW5pdHkgY2hlY2tzIG9uIHRoaXMgdG8gdGhlIEFQSSBjb25zdW1lciB0aGF0IG1heSBrbm93IG1vcmUgYWJvdXQgdGhlXG4gIC8vIG1lYW5pbmcgaW4gdGhlaXIgb3duIGNvbnRleHQuXG4gIGlmIChtaW5lLmluZGV4IHx8IHRoZWlycy5pbmRleCkge1xuICAgIHJldC5pbmRleCA9IG1pbmUuaW5kZXggfHwgdGhlaXJzLmluZGV4O1xuICB9XG5cbiAgaWYgKG1pbmUubmV3RmlsZU5hbWUgfHwgdGhlaXJzLm5ld0ZpbGVOYW1lKSB7XG4gICAgaWYgKCFmaWxlTmFtZUNoYW5nZWQobWluZSkpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gb3VycywgdXNlIHRoZWlycyAoYW5kIG91cnMgaWYgdGhlaXJzIGRvZXMgbm90IGV4aXN0KVxuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gdGhlaXJzLm9sZEZpbGVOYW1lIHx8IG1pbmUub2xkRmlsZU5hbWU7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSB0aGVpcnMubmV3RmlsZU5hbWUgfHwgbWluZS5uZXdGaWxlTmFtZTtcbiAgICAgIHJldC5vbGRIZWFkZXIgPSB0aGVpcnMub2xkSGVhZGVyIHx8IG1pbmUub2xkSGVhZGVyO1xuICAgICAgcmV0Lm5ld0hlYWRlciA9IHRoZWlycy5uZXdIZWFkZXIgfHwgbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIGlmICghZmlsZU5hbWVDaGFuZ2VkKHRoZWlycykpIHtcbiAgICAgIC8vIE5vIGhlYWRlciBvciBubyBjaGFuZ2UgaW4gdGhlaXJzLCB1c2Ugb3Vyc1xuICAgICAgcmV0Lm9sZEZpbGVOYW1lID0gbWluZS5vbGRGaWxlTmFtZTtcbiAgICAgIHJldC5uZXdGaWxlTmFtZSA9IG1pbmUubmV3RmlsZU5hbWU7XG4gICAgICByZXQub2xkSGVhZGVyID0gbWluZS5vbGRIZWFkZXI7XG4gICAgICByZXQubmV3SGVhZGVyID0gbWluZS5uZXdIZWFkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEJvdGggY2hhbmdlZC4uLiBmaWd1cmUgaXQgb3V0XG4gICAgICByZXQub2xkRmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUub2xkRmlsZU5hbWUsIHRoZWlycy5vbGRGaWxlTmFtZSk7XG4gICAgICByZXQubmV3RmlsZU5hbWUgPSBzZWxlY3RGaWVsZChyZXQsIG1pbmUubmV3RmlsZU5hbWUsIHRoZWlycy5uZXdGaWxlTmFtZSk7XG4gICAgICByZXQub2xkSGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm9sZEhlYWRlciwgdGhlaXJzLm9sZEhlYWRlcik7XG4gICAgICByZXQubmV3SGVhZGVyID0gc2VsZWN0RmllbGQocmV0LCBtaW5lLm5ld0hlYWRlciwgdGhlaXJzLm5ld0hlYWRlcik7XG4gICAgfVxuICB9XG5cbiAgcmV0Lmh1bmtzID0gW107XG5cbiAgbGV0IG1pbmVJbmRleCA9IDAsXG4gICAgICB0aGVpcnNJbmRleCA9IDAsXG4gICAgICBtaW5lT2Zmc2V0ID0gMCxcbiAgICAgIHRoZWlyc09mZnNldCA9IDA7XG5cbiAgd2hpbGUgKG1pbmVJbmRleCA8IG1pbmUuaHVua3MubGVuZ3RoIHx8IHRoZWlyc0luZGV4IDwgdGhlaXJzLmh1bmtzLmxlbmd0aCkge1xuICAgIGxldCBtaW5lQ3VycmVudCA9IG1pbmUuaHVua3NbbWluZUluZGV4XSB8fCB7b2xkU3RhcnQ6IEluZmluaXR5fSxcbiAgICAgICAgdGhlaXJzQ3VycmVudCA9IHRoZWlycy5odW5rc1t0aGVpcnNJbmRleF0gfHwge29sZFN0YXJ0OiBJbmZpbml0eX07XG5cbiAgICBpZiAoaHVua0JlZm9yZShtaW5lQ3VycmVudCwgdGhlaXJzQ3VycmVudCkpIHtcbiAgICAgIC8vIFRoaXMgcGF0Y2ggZG9lcyBub3Qgb3ZlcmxhcCB3aXRoIGFueSBvZiB0aGUgb3RoZXJzLCB5YXkuXG4gICAgICByZXQuaHVua3MucHVzaChjbG9uZUh1bmsobWluZUN1cnJlbnQsIG1pbmVPZmZzZXQpKTtcbiAgICAgIG1pbmVJbmRleCsrO1xuICAgICAgdGhlaXJzT2Zmc2V0ICs9IG1pbmVDdXJyZW50Lm5ld0xpbmVzIC0gbWluZUN1cnJlbnQub2xkTGluZXM7XG4gICAgfSBlbHNlIGlmIChodW5rQmVmb3JlKHRoZWlyc0N1cnJlbnQsIG1pbmVDdXJyZW50KSkge1xuICAgICAgLy8gVGhpcyBwYXRjaCBkb2VzIG5vdCBvdmVybGFwIHdpdGggYW55IG9mIHRoZSBvdGhlcnMsIHlheS5cbiAgICAgIHJldC5odW5rcy5wdXNoKGNsb25lSHVuayh0aGVpcnNDdXJyZW50LCB0aGVpcnNPZmZzZXQpKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lT2Zmc2V0ICs9IHRoZWlyc0N1cnJlbnQubmV3TGluZXMgLSB0aGVpcnNDdXJyZW50Lm9sZExpbmVzO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdmVybGFwLCBtZXJnZSBhcyBiZXN0IHdlIGNhblxuICAgICAgbGV0IG1lcmdlZEh1bmsgPSB7XG4gICAgICAgIG9sZFN0YXJ0OiBNYXRoLm1pbihtaW5lQ3VycmVudC5vbGRTdGFydCwgdGhlaXJzQ3VycmVudC5vbGRTdGFydCksXG4gICAgICAgIG9sZExpbmVzOiAwLFxuICAgICAgICBuZXdTdGFydDogTWF0aC5taW4obWluZUN1cnJlbnQubmV3U3RhcnQgKyBtaW5lT2Zmc2V0LCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0ICsgdGhlaXJzT2Zmc2V0KSxcbiAgICAgICAgbmV3TGluZXM6IDAsXG4gICAgICAgIGxpbmVzOiBbXVxuICAgICAgfTtcbiAgICAgIG1lcmdlTGluZXMobWVyZ2VkSHVuaywgbWluZUN1cnJlbnQub2xkU3RhcnQsIG1pbmVDdXJyZW50LmxpbmVzLCB0aGVpcnNDdXJyZW50Lm9sZFN0YXJ0LCB0aGVpcnNDdXJyZW50LmxpbmVzKTtcbiAgICAgIHRoZWlyc0luZGV4Kys7XG4gICAgICBtaW5lSW5kZXgrKztcblxuICAgICAgcmV0Lmh1bmtzLnB1c2gobWVyZ2VkSHVuayk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gbG9hZFBhdGNoKHBhcmFtLCBiYXNlKSB7XG4gIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKC9eQEAvbS50ZXN0KHBhcmFtKSB8fCAoL15JbmRleDovbS50ZXN0KHBhcmFtKSkpIHtcbiAgICAgIHJldHVybiBwYXJzZVBhdGNoKHBhcmFtKVswXTtcbiAgICB9XG5cbiAgICBpZiAoIWJhc2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgYmFzZSByZWZlcmVuY2Ugb3IgcGFzcyBpbiBhIHBhdGNoJyk7XG4gICAgfVxuICAgIHJldHVybiBzdHJ1Y3R1cmVkUGF0Y2godW5kZWZpbmVkLCB1bmRlZmluZWQsIGJhc2UsIHBhcmFtKTtcbiAgfVxuXG4gIHJldHVybiBwYXJhbTtcbn1cblxuZnVuY3Rpb24gZmlsZU5hbWVDaGFuZ2VkKHBhdGNoKSB7XG4gIHJldHVybiBwYXRjaC5uZXdGaWxlTmFtZSAmJiBwYXRjaC5uZXdGaWxlTmFtZSAhPT0gcGF0Y2gub2xkRmlsZU5hbWU7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdEZpZWxkKGluZGV4LCBtaW5lLCB0aGVpcnMpIHtcbiAgaWYgKG1pbmUgPT09IHRoZWlycykge1xuICAgIHJldHVybiBtaW5lO1xuICB9IGVsc2Uge1xuICAgIGluZGV4LmNvbmZsaWN0ID0gdHJ1ZTtcbiAgICByZXR1cm4ge21pbmUsIHRoZWlyc307XG4gIH1cbn1cblxuZnVuY3Rpb24gaHVua0JlZm9yZSh0ZXN0LCBjaGVjaykge1xuICByZXR1cm4gdGVzdC5vbGRTdGFydCA8IGNoZWNrLm9sZFN0YXJ0XG4gICAgJiYgKHRlc3Qub2xkU3RhcnQgKyB0ZXN0Lm9sZExpbmVzKSA8IGNoZWNrLm9sZFN0YXJ0O1xufVxuXG5mdW5jdGlvbiBjbG9uZUh1bmsoaHVuaywgb2Zmc2V0KSB7XG4gIHJldHVybiB7XG4gICAgb2xkU3RhcnQ6IGh1bmsub2xkU3RhcnQsIG9sZExpbmVzOiBodW5rLm9sZExpbmVzLFxuICAgIG5ld1N0YXJ0OiBodW5rLm5ld1N0YXJ0ICsgb2Zmc2V0LCBuZXdMaW5lczogaHVuay5uZXdMaW5lcyxcbiAgICBsaW5lczogaHVuay5saW5lc1xuICB9O1xufVxuXG5mdW5jdGlvbiBtZXJnZUxpbmVzKGh1bmssIG1pbmVPZmZzZXQsIG1pbmVMaW5lcywgdGhlaXJPZmZzZXQsIHRoZWlyTGluZXMpIHtcbiAgLy8gVGhpcyB3aWxsIGdlbmVyYWxseSByZXN1bHQgaW4gYSBjb25mbGljdGVkIGh1bmssIGJ1dCB0aGVyZSBhcmUgY2FzZXMgd2hlcmUgdGhlIGNvbnRleHRcbiAgLy8gaXMgdGhlIG9ubHkgb3ZlcmxhcCB3aGVyZSB3ZSBjYW4gc3VjY2Vzc2Z1bGx5IG1lcmdlIHRoZSBjb250ZW50IGhlcmUuXG4gIGxldCBtaW5lID0ge29mZnNldDogbWluZU9mZnNldCwgbGluZXM6IG1pbmVMaW5lcywgaW5kZXg6IDB9LFxuICAgICAgdGhlaXIgPSB7b2Zmc2V0OiB0aGVpck9mZnNldCwgbGluZXM6IHRoZWlyTGluZXMsIGluZGV4OiAwfTtcblxuICAvLyBIYW5kbGUgYW55IGxlYWRpbmcgY29udGVudFxuICBpbnNlcnRMZWFkaW5nKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgaW5zZXJ0TGVhZGluZyhodW5rLCB0aGVpciwgbWluZSk7XG5cbiAgLy8gTm93IGluIHRoZSBvdmVybGFwIGNvbnRlbnQuIFNjYW4gdGhyb3VnaCBhbmQgc2VsZWN0IHRoZSBiZXN0IGNoYW5nZXMgZnJvbSBlYWNoLlxuICB3aGlsZSAobWluZS5pbmRleCA8IG1pbmUubGluZXMubGVuZ3RoICYmIHRoZWlyLmluZGV4IDwgdGhlaXIubGluZXMubGVuZ3RoKSB7XG4gICAgbGV0IG1pbmVDdXJyZW50ID0gbWluZS5saW5lc1ttaW5lLmluZGV4XSxcbiAgICAgICAgdGhlaXJDdXJyZW50ID0gdGhlaXIubGluZXNbdGhlaXIuaW5kZXhdO1xuXG4gICAgaWYgKChtaW5lQ3VycmVudFswXSA9PT0gJy0nIHx8IG1pbmVDdXJyZW50WzBdID09PSAnKycpXG4gICAgICAgICYmICh0aGVpckN1cnJlbnRbMF0gPT09ICctJyB8fCB0aGVpckN1cnJlbnRbMF0gPT09ICcrJykpIHtcbiAgICAgIC8vIEJvdGggbW9kaWZpZWQgLi4uXG4gICAgICBtdXR1YWxDaGFuZ2UoaHVuaywgbWluZSwgdGhlaXIpO1xuICAgIH0gZWxzZSBpZiAobWluZUN1cnJlbnRbMF0gPT09ICcrJyAmJiB0aGVpckN1cnJlbnRbMF0gPT09ICcgJykge1xuICAgICAgLy8gTWluZSBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKG1pbmUpKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJysnICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlycyBpbnNlcnRlZFxuICAgICAgaHVuay5saW5lcy5wdXNoKC4uLiBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfSBlbHNlIGlmIChtaW5lQ3VycmVudFswXSA9PT0gJy0nICYmIHRoZWlyQ3VycmVudFswXSA9PT0gJyAnKSB7XG4gICAgICAvLyBNaW5lIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIG1pbmUsIHRoZWlyKTtcbiAgICB9IGVsc2UgaWYgKHRoZWlyQ3VycmVudFswXSA9PT0gJy0nICYmIG1pbmVDdXJyZW50WzBdID09PSAnICcpIHtcbiAgICAgIC8vIFRoZWlyIHJlbW92ZWQgb3IgZWRpdGVkXG4gICAgICByZW1vdmFsKGh1bmssIHRoZWlyLCBtaW5lLCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKG1pbmVDdXJyZW50ID09PSB0aGVpckN1cnJlbnQpIHtcbiAgICAgIC8vIENvbnRleHQgaWRlbnRpdHlcbiAgICAgIGh1bmsubGluZXMucHVzaChtaW5lQ3VycmVudCk7XG4gICAgICBtaW5lLmluZGV4Kys7XG4gICAgICB0aGVpci5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBDb250ZXh0IG1pc21hdGNoXG4gICAgICBjb25mbGljdChodW5rLCBjb2xsZWN0Q2hhbmdlKG1pbmUpLCBjb2xsZWN0Q2hhbmdlKHRoZWlyKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gTm93IHB1c2ggYW55dGhpbmcgdGhhdCBtYXkgYmUgcmVtYWluaW5nXG4gIGluc2VydFRyYWlsaW5nKGh1bmssIG1pbmUpO1xuICBpbnNlcnRUcmFpbGluZyhodW5rLCB0aGVpcik7XG5cbiAgY2FsY0xpbmVDb3VudChodW5rKTtcbn1cblxuZnVuY3Rpb24gbXV0dWFsQ2hhbmdlKGh1bmssIG1pbmUsIHRoZWlyKSB7XG4gIGxldCBteUNoYW5nZXMgPSBjb2xsZWN0Q2hhbmdlKG1pbmUpLFxuICAgICAgdGhlaXJDaGFuZ2VzID0gY29sbGVjdENoYW5nZSh0aGVpcik7XG5cbiAgaWYgKGFsbFJlbW92ZXMobXlDaGFuZ2VzKSAmJiBhbGxSZW1vdmVzKHRoZWlyQ2hhbmdlcykpIHtcbiAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIHJlbW92ZSBjaGFuZ2VzIHRoYXQgYXJlIHN1cGVyc2V0cyBvZiBvbmUgYW5vdGhlclxuICAgIGlmIChhcnJheVN0YXJ0c1dpdGgobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpXG4gICAgICAgICYmIHNraXBSZW1vdmVTdXBlcnNldCh0aGVpciwgbXlDaGFuZ2VzLCBteUNoYW5nZXMubGVuZ3RoIC0gdGhlaXJDaGFuZ2VzLmxlbmd0aCkpIHtcbiAgICAgIGh1bmsubGluZXMucHVzaCguLi4gbXlDaGFuZ2VzKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2UgaWYgKGFycmF5U3RhcnRzV2l0aCh0aGVpckNoYW5nZXMsIG15Q2hhbmdlcylcbiAgICAgICAgJiYgc2tpcFJlbW92ZVN1cGVyc2V0KG1pbmUsIHRoZWlyQ2hhbmdlcywgdGhlaXJDaGFuZ2VzLmxlbmd0aCAtIG15Q2hhbmdlcy5sZW5ndGgpKSB7XG4gICAgICBodW5rLmxpbmVzLnB1c2goLi4uIHRoZWlyQ2hhbmdlcyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9IGVsc2UgaWYgKGFycmF5RXF1YWwobXlDaGFuZ2VzLCB0aGVpckNoYW5nZXMpKSB7XG4gICAgaHVuay5saW5lcy5wdXNoKC4uLiBteUNoYW5nZXMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbmZsaWN0KGh1bmssIG15Q2hhbmdlcywgdGhlaXJDaGFuZ2VzKTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZhbChodW5rLCBtaW5lLCB0aGVpciwgc3dhcCkge1xuICBsZXQgbXlDaGFuZ2VzID0gY29sbGVjdENoYW5nZShtaW5lKSxcbiAgICAgIHRoZWlyQ2hhbmdlcyA9IGNvbGxlY3RDb250ZXh0KHRoZWlyLCBteUNoYW5nZXMpO1xuICBpZiAodGhlaXJDaGFuZ2VzLm1lcmdlZCkge1xuICAgIGh1bmsubGluZXMucHVzaCguLi4gdGhlaXJDaGFuZ2VzLm1lcmdlZCk7XG4gIH0gZWxzZSB7XG4gICAgY29uZmxpY3QoaHVuaywgc3dhcCA/IHRoZWlyQ2hhbmdlcyA6IG15Q2hhbmdlcywgc3dhcCA/IG15Q2hhbmdlcyA6IHRoZWlyQ2hhbmdlcyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29uZmxpY3QoaHVuaywgbWluZSwgdGhlaXIpIHtcbiAgaHVuay5jb25mbGljdCA9IHRydWU7XG4gIGh1bmsubGluZXMucHVzaCh7XG4gICAgY29uZmxpY3Q6IHRydWUsXG4gICAgbWluZTogbWluZSxcbiAgICB0aGVpcnM6IHRoZWlyXG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbnNlcnRMZWFkaW5nKGh1bmssIGluc2VydCwgdGhlaXIpIHtcbiAgd2hpbGUgKGluc2VydC5vZmZzZXQgPCB0aGVpci5vZmZzZXQgJiYgaW5zZXJ0LmluZGV4IDwgaW5zZXJ0LmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBsaW5lID0gaW5zZXJ0LmxpbmVzW2luc2VydC5pbmRleCsrXTtcbiAgICBodW5rLmxpbmVzLnB1c2gobGluZSk7XG4gICAgaW5zZXJ0Lm9mZnNldCsrO1xuICB9XG59XG5mdW5jdGlvbiBpbnNlcnRUcmFpbGluZyhodW5rLCBpbnNlcnQpIHtcbiAgd2hpbGUgKGluc2VydC5pbmRleCA8IGluc2VydC5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IGluc2VydC5saW5lc1tpbnNlcnQuaW5kZXgrK107XG4gICAgaHVuay5saW5lcy5wdXNoKGxpbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RDaGFuZ2Uoc3RhdGUpIHtcbiAgbGV0IHJldCA9IFtdLFxuICAgICAgb3BlcmF0aW9uID0gc3RhdGUubGluZXNbc3RhdGUuaW5kZXhdWzBdO1xuICB3aGlsZSAoc3RhdGUuaW5kZXggPCBzdGF0ZS5saW5lcy5sZW5ndGgpIHtcbiAgICBsZXQgbGluZSA9IHN0YXRlLmxpbmVzW3N0YXRlLmluZGV4XTtcblxuICAgIC8vIEdyb3VwIGFkZGl0aW9ucyB0aGF0IGFyZSBpbW1lZGlhdGVseSBhZnRlciBzdWJ0cmFjdGlvbnMgYW5kIHRyZWF0IHRoZW0gYXMgb25lIFwiYXRvbWljXCIgbW9kaWZ5IGNoYW5nZS5cbiAgICBpZiAob3BlcmF0aW9uID09PSAnLScgJiYgbGluZVswXSA9PT0gJysnKSB7XG4gICAgICBvcGVyYXRpb24gPSAnKyc7XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gbGluZVswXSkge1xuICAgICAgcmV0LnB1c2gobGluZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuZnVuY3Rpb24gY29sbGVjdENvbnRleHQoc3RhdGUsIG1hdGNoQ2hhbmdlcykge1xuICBsZXQgY2hhbmdlcyA9IFtdLFxuICAgICAgbWVyZ2VkID0gW10sXG4gICAgICBtYXRjaEluZGV4ID0gMCxcbiAgICAgIGNvbnRleHRDaGFuZ2VzID0gZmFsc2UsXG4gICAgICBjb25mbGljdGVkID0gZmFsc2U7XG4gIHdoaWxlIChtYXRjaEluZGV4IDwgbWF0Y2hDaGFuZ2VzLmxlbmd0aFxuICAgICAgICAmJiBzdGF0ZS5pbmRleCA8IHN0YXRlLmxpbmVzLmxlbmd0aCkge1xuICAgIGxldCBjaGFuZ2UgPSBzdGF0ZS5saW5lc1tzdGF0ZS5pbmRleF0sXG4gICAgICAgIG1hdGNoID0gbWF0Y2hDaGFuZ2VzW21hdGNoSW5kZXhdO1xuXG4gICAgLy8gT25jZSB3ZSd2ZSBoaXQgb3VyIGFkZCwgdGhlbiB3ZSBhcmUgZG9uZVxuICAgIGlmIChtYXRjaFswXSA9PT0gJysnKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb250ZXh0Q2hhbmdlcyA9IGNvbnRleHRDaGFuZ2VzIHx8IGNoYW5nZVswXSAhPT0gJyAnO1xuXG4gICAgbWVyZ2VkLnB1c2gobWF0Y2gpO1xuICAgIG1hdGNoSW5kZXgrKztcblxuICAgIC8vIENvbnN1bWUgYW55IGFkZGl0aW9ucyBpbiB0aGUgb3RoZXIgYmxvY2sgYXMgYSBjb25mbGljdCB0byBhdHRlbXB0XG4gICAgLy8gdG8gcHVsbCBpbiB0aGUgcmVtYWluaW5nIGNvbnRleHQgYWZ0ZXIgdGhpc1xuICAgIGlmIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgY29uZmxpY3RlZCA9IHRydWU7XG5cbiAgICAgIHdoaWxlIChjaGFuZ2VbMF0gPT09ICcrJykge1xuICAgICAgICBjaGFuZ2VzLnB1c2goY2hhbmdlKTtcbiAgICAgICAgY2hhbmdlID0gc3RhdGUubGluZXNbKytzdGF0ZS5pbmRleF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG1hdGNoLnN1YnN0cigxKSA9PT0gY2hhbmdlLnN1YnN0cigxKSkge1xuICAgICAgY2hhbmdlcy5wdXNoKGNoYW5nZSk7XG4gICAgICBzdGF0ZS5pbmRleCsrO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpZiAoKG1hdGNoQ2hhbmdlc1ttYXRjaEluZGV4XSB8fCAnJylbMF0gPT09ICcrJ1xuICAgICAgJiYgY29udGV4dENoYW5nZXMpIHtcbiAgICBjb25mbGljdGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChjb25mbGljdGVkKSB7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICB3aGlsZSAobWF0Y2hJbmRleCA8IG1hdGNoQ2hhbmdlcy5sZW5ndGgpIHtcbiAgICBtZXJnZWQucHVzaChtYXRjaENoYW5nZXNbbWF0Y2hJbmRleCsrXSk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG1lcmdlZCxcbiAgICBjaGFuZ2VzXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFsbFJlbW92ZXMoY2hhbmdlcykge1xuICByZXR1cm4gY2hhbmdlcy5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgY2hhbmdlKSB7XG4gICAgcmV0dXJuIHByZXYgJiYgY2hhbmdlWzBdID09PSAnLSc7XG4gIH0sIHRydWUpO1xufVxuZnVuY3Rpb24gc2tpcFJlbW92ZVN1cGVyc2V0KHN0YXRlLCByZW1vdmVDaGFuZ2VzLCBkZWx0YSkge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGRlbHRhOyBpKyspIHtcbiAgICBsZXQgY2hhbmdlQ29udGVudCA9IHJlbW92ZUNoYW5nZXNbcmVtb3ZlQ2hhbmdlcy5sZW5ndGggLSBkZWx0YSArIGldLnN1YnN0cigxKTtcbiAgICBpZiAoc3RhdGUubGluZXNbc3RhdGUuaW5kZXggKyBpXSAhPT0gJyAnICsgY2hhbmdlQ29udGVudCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRlLmluZGV4ICs9IGRlbHRhO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lcykge1xuICBsZXQgb2xkTGluZXMgPSAwO1xuICBsZXQgbmV3TGluZXMgPSAwO1xuXG4gIGxpbmVzLmZvckVhY2goZnVuY3Rpb24obGluZSkge1xuICAgIGlmICh0eXBlb2YgbGluZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBteUNvdW50ID0gY2FsY09sZE5ld0xpbmVDb3VudChsaW5lLm1pbmUpO1xuICAgICAgbGV0IHRoZWlyQ291bnQgPSBjYWxjT2xkTmV3TGluZUNvdW50KGxpbmUudGhlaXJzKTtcblxuICAgICAgaWYgKG9sZExpbmVzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKG15Q291bnQub2xkTGluZXMgPT09IHRoZWlyQ291bnQub2xkTGluZXMpIHtcbiAgICAgICAgICBvbGRMaW5lcyArPSBteUNvdW50Lm9sZExpbmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9sZExpbmVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXdMaW5lcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChteUNvdW50Lm5ld0xpbmVzID09PSB0aGVpckNvdW50Lm5ld0xpbmVzKSB7XG4gICAgICAgICAgbmV3TGluZXMgKz0gbXlDb3VudC5uZXdMaW5lcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdMaW5lcyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobmV3TGluZXMgIT09IHVuZGVmaW5lZCAmJiAobGluZVswXSA9PT0gJysnIHx8IGxpbmVbMF0gPT09ICcgJykpIHtcbiAgICAgICAgbmV3TGluZXMrKztcbiAgICAgIH1cbiAgICAgIGlmIChvbGRMaW5lcyAhPT0gdW5kZWZpbmVkICYmIChsaW5lWzBdID09PSAnLScgfHwgbGluZVswXSA9PT0gJyAnKSkge1xuICAgICAgICBvbGRMaW5lcysrO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHtvbGRMaW5lcywgbmV3TGluZXN9O1xufVxuIl19 + + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/structuredPatch = structuredPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createTwoFilesPatch = createTwoFilesPatch; + /*istanbul ignore start*/exports. /*istanbul ignore end*/createPatch = createPatch; + + var /*istanbul ignore start*/_line = __webpack_require__(5) /*istanbul ignore end*/; + + /*istanbul ignore start*/function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + + /*istanbul ignore end*/function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === 'undefined') { + options.context = 4; + } + + var diff = /*istanbul ignore start*/(0, _line.diffLines) /*istanbul ignore end*/(oldStr, newStr, options); + diff.push({ value: '', lines: [] }); // Append an empty value to make cleanup easier + + function contextLines(lines) { + return lines.map(function (entry) { + return ' ' + entry; + }); + } + + var hunks = []; + var oldRangeStart = 0, + newRangeStart = 0, + curRange = [], + oldLine = 1, + newLine = 1; + + /*istanbul ignore start*/var _loop = function _loop( /*istanbul ignore end*/i) { + var current = diff[i], + lines = current.lines || current.value.replace(/\n$/, '').split('\n'); + current.lines = lines; + + if (current.added || current.removed) { + /*istanbul ignore start*/var _curRange; + + /*istanbul ignore end*/ // If we have previous context, start with that + if (!oldRangeStart) { + var prev = diff[i - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + + // Output our changes + /*istanbul ignore start*/(_curRange = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/lines.map(function (entry) { + return (current.added ? '+' : '-') + entry; + }))); + + // Track the updated file position + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + // Identical context lines. Track line changes + if (oldRangeStart) { + // Close out any changes that have been output (or join overlapping) + if (lines.length <= options.context * 2 && i < diff.length - 2) { + /*istanbul ignore start*/var _curRange2; + + /*istanbul ignore end*/ // Overlapping + /*istanbul ignore start*/(_curRange2 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange2 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines))); + } else { + /*istanbul ignore start*/var _curRange3; + + /*istanbul ignore end*/ // end the range and output + var contextSize = Math.min(lines.length, options.context); + /*istanbul ignore start*/(_curRange3 = /*istanbul ignore end*/curRange).push. /*istanbul ignore start*/apply /*istanbul ignore end*/( /*istanbul ignore start*/_curRange3 /*istanbul ignore end*/, /*istanbul ignore start*/_toConsumableArray( /*istanbul ignore end*/contextLines(lines.slice(0, contextSize)))); + + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i >= diff.length - 2 && lines.length <= options.context) { + // EOF is inside this hunk + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + if (lines.length == 0 && !oldEOFNewline) { + // special case: old has no eol and no trailing context; no-nl can end up before adds + curRange.splice(hunk.oldLines, 0, '\\ No newline at end of file'); + } else if (!oldEOFNewline || !newEOFNewline) { + curRange.push('\\ No newline at end of file'); + } + } + hunks.push(hunk); + + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + + for (var i = 0; i < diff.length; i++) { + /*istanbul ignore start*/_loop( /*istanbul ignore end*/i); + } + + return { + oldFileName: oldFileName, newFileName: newFileName, + oldHeader: oldHeader, newHeader: newHeader, + hunks: hunks + }; + } + + function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + var diff = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options); + + var ret = []; + if (oldFileName == newFileName) { + ret.push('Index: ' + oldFileName); + } + ret.push('==================================================================='); + ret.push('--- ' + diff.oldFileName + (typeof diff.oldHeader === 'undefined' ? '' : '\t' + diff.oldHeader)); + ret.push('+++ ' + diff.newFileName + (typeof diff.newHeader === 'undefined' ? '' : '\t' + diff.newHeader)); + + for (var i = 0; i < diff.hunks.length; i++) { + var hunk = diff.hunks[i]; + ret.push('@@ -' + hunk.oldStart + ',' + hunk.oldLines + ' +' + hunk.newStart + ',' + hunk.newLines + ' @@'); + ret.push.apply(ret, hunk.lines); + } + + return ret.join('\n') + '\n'; + } + + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXRjaC9jcmVhdGUuanMiXSwibmFtZXMiOlsic3RydWN0dXJlZFBhdGNoIiwiY3JlYXRlVHdvRmlsZXNQYXRjaCIsImNyZWF0ZVBhdGNoIiwib2xkRmlsZU5hbWUiLCJuZXdGaWxlTmFtZSIsIm9sZFN0ciIsIm5ld1N0ciIsIm9sZEhlYWRlciIsIm5ld0hlYWRlciIsIm9wdGlvbnMiLCJjb250ZXh0IiwiZGlmZiIsInB1c2giLCJ2YWx1ZSIsImxpbmVzIiwiY29udGV4dExpbmVzIiwibWFwIiwiZW50cnkiLCJodW5rcyIsIm9sZFJhbmdlU3RhcnQiLCJuZXdSYW5nZVN0YXJ0IiwiY3VyUmFuZ2UiLCJvbGRMaW5lIiwibmV3TGluZSIsImkiLCJjdXJyZW50IiwicmVwbGFjZSIsInNwbGl0IiwiYWRkZWQiLCJyZW1vdmVkIiwicHJldiIsInNsaWNlIiwibGVuZ3RoIiwiY29udGV4dFNpemUiLCJNYXRoIiwibWluIiwiaHVuayIsIm9sZFN0YXJ0Iiwib2xkTGluZXMiLCJuZXdTdGFydCIsIm5ld0xpbmVzIiwib2xkRU9GTmV3bGluZSIsInRlc3QiLCJuZXdFT0ZOZXdsaW5lIiwic3BsaWNlIiwicmV0IiwiYXBwbHkiLCJqb2luIiwiZmlsZU5hbWUiXSwibWFwcGluZ3MiOiI7OztnQ0FFZ0JBLGUsR0FBQUEsZTt5REFpR0FDLG1CLEdBQUFBLG1CO3lEQXdCQUMsVyxHQUFBQSxXOztBQTNIaEI7Ozs7dUJBRU8sU0FBU0YsZUFBVCxDQUF5QkcsV0FBekIsRUFBc0NDLFdBQXRDLEVBQW1EQyxNQUFuRCxFQUEyREMsTUFBM0QsRUFBbUVDLFNBQW5FLEVBQThFQyxTQUE5RSxFQUF5RkMsT0FBekYsRUFBa0c7QUFDdkcsTUFBSSxDQUFDQSxPQUFMLEVBQWM7QUFDWkEsY0FBVSxFQUFWO0FBQ0Q7QUFDRCxNQUFJLE9BQU9BLFFBQVFDLE9BQWYsS0FBMkIsV0FBL0IsRUFBNEM7QUFDMUNELFlBQVFDLE9BQVIsR0FBa0IsQ0FBbEI7QUFDRDs7QUFFRCxN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QUEvQyxFQUEwREMsU0FBMUQsRUFBcUVDLE9BQXJFLEVBQThFO0FBQ25GLFNBQU9SLG9CQUFvQitDLFFBQXBCLEVBQThCQSxRQUE5QixFQUF3QzNDLE1BQXhDLEVBQWdEQyxNQUFoRCxFQUF3REMsU0FBeEQsRUFBbUVDLFNBQW5FLEVBQThFQyxPQUE5RSxDQUFQO0FBQ0QiLCJmaWxlIjoiY3JlYXRlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtkaWZmTGluZXN9IGZyb20gJy4uL2RpZmYvbGluZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdHJ1Y3R1cmVkUGF0Y2gob2xkRmlsZU5hbWUsIG5ld0ZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9O1xuICB9XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5jb250ZXh0ID09PSAndW5kZWZpbmVkJykge1xuICAgIG9wdGlvbnMuY29udGV4dCA9IDQ7XG4gIH1cblxuICBjb25zdCBkaWZmID0gZGlmZkxpbmVzKG9sZFN0ciwgbmV3U3RyLCBvcHRpb25zKTtcbiAgZGlmZi5wdXNoKHt2YWx1ZTogJycsIGxpbmVzOiBbXX0pOyAgIC8vIEFwcGVuZCBhbiBlbXB0eSB2YWx1ZSB0byBtYWtlIGNsZWFudXAgZWFzaWVyXG5cbiAgZnVuY3Rpb24gY29udGV4dExpbmVzKGxpbmVzKSB7XG4gICAgcmV0dXJuIGxpbmVzLm1hcChmdW5jdGlvbihlbnRyeSkgeyByZXR1cm4gJyAnICsgZW50cnk7IH0pO1xuICB9XG5cbiAgbGV0IGh1bmtzID0gW107XG4gIGxldCBvbGRSYW5nZVN0YXJ0ID0gMCwgbmV3UmFuZ2VTdGFydCA9IDAsIGN1clJhbmdlID0gW10sXG4gICAgICBvbGRMaW5lID0gMSwgbmV3TGluZSA9IDE7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZGlmZi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBkaWZmW2ldLFxuICAgICAgICAgIGxpbmVzID0gY3VycmVudC5saW5lcyB8fCBjdXJyZW50LnZhbHVlLnJlcGxhY2UoL1xcbiQvLCAnJykuc3BsaXQoJ1xcbicpO1xuICAgIGN1cnJlbnQubGluZXMgPSBsaW5lcztcblxuICAgIGlmIChjdXJyZW50LmFkZGVkIHx8IGN1cnJlbnQucmVtb3ZlZCkge1xuICAgICAgLy8gSWYgd2UgaGF2ZSBwcmV2aW91cyBjb250ZXh0LCBzdGFydCB3aXRoIHRoYXRcbiAgICAgIGlmICghb2xkUmFuZ2VTdGFydCkge1xuICAgICAgICBjb25zdCBwcmV2ID0gZGlmZltpIC0gMV07XG4gICAgICAgIG9sZFJhbmdlU3RhcnQgPSBvbGRMaW5lO1xuICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gbmV3TGluZTtcblxuICAgICAgICBpZiAocHJldikge1xuICAgICAgICAgIGN1clJhbmdlID0gb3B0aW9ucy5jb250ZXh0ID4gMCA/IGNvbnRleHRMaW5lcyhwcmV2LmxpbmVzLnNsaWNlKC1vcHRpb25zLmNvbnRleHQpKSA6IFtdO1xuICAgICAgICAgIG9sZFJhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICAgIG5ld1JhbmdlU3RhcnQgLT0gY3VyUmFuZ2UubGVuZ3RoO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE91dHB1dCBvdXIgY2hhbmdlc1xuICAgICAgY3VyUmFuZ2UucHVzaCguLi4gbGluZXMubWFwKGZ1bmN0aW9uKGVudHJ5KSB7XG4gICAgICAgIHJldHVybiAoY3VycmVudC5hZGRlZCA/ICcrJyA6ICctJykgKyBlbnRyeTtcbiAgICAgIH0pKTtcblxuICAgICAgLy8gVHJhY2sgdGhlIHVwZGF0ZWQgZmlsZSBwb3NpdGlvblxuICAgICAgaWYgKGN1cnJlbnQuYWRkZWQpIHtcbiAgICAgICAgbmV3TGluZSArPSBsaW5lcy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWRlbnRpY2FsIGNvbnRleHQgbGluZXMuIFRyYWNrIGxpbmUgY2hhbmdlc1xuICAgICAgaWYgKG9sZFJhbmdlU3RhcnQpIHtcbiAgICAgICAgLy8gQ2xvc2Ugb3V0IGFueSBjaGFuZ2VzIHRoYXQgaGF2ZSBiZWVuIG91dHB1dCAob3Igam9pbiBvdmVybGFwcGluZylcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQgKiAyICYmIGkgPCBkaWZmLmxlbmd0aCAtIDIpIHtcbiAgICAgICAgICAvLyBPdmVybGFwcGluZ1xuICAgICAgICAgIGN1clJhbmdlLnB1c2goLi4uIGNvbnRleHRMaW5lcyhsaW5lcykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIGVuZCB0aGUgcmFuZ2UgYW5kIG91dHB1dFxuICAgICAgICAgIGxldCBjb250ZXh0U2l6ZSA9IE1hdGgubWluKGxpbmVzLmxlbmd0aCwgb3B0aW9ucy5jb250ZXh0KTtcbiAgICAgICAgICBjdXJSYW5nZS5wdXNoKC4uLiBjb250ZXh0TGluZXMobGluZXMuc2xpY2UoMCwgY29udGV4dFNpemUpKSk7XG5cbiAgICAgICAgICBsZXQgaHVuayA9IHtcbiAgICAgICAgICAgIG9sZFN0YXJ0OiBvbGRSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgb2xkTGluZXM6IChvbGRMaW5lIC0gb2xkUmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIG5ld1N0YXJ0OiBuZXdSYW5nZVN0YXJ0LFxuICAgICAgICAgICAgbmV3TGluZXM6IChuZXdMaW5lIC0gbmV3UmFuZ2VTdGFydCArIGNvbnRleHRTaXplKSxcbiAgICAgICAgICAgIGxpbmVzOiBjdXJSYW5nZVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGkgPj0gZGlmZi5sZW5ndGggLSAyICYmIGxpbmVzLmxlbmd0aCA8PSBvcHRpb25zLmNvbnRleHQpIHtcbiAgICAgICAgICAgIC8vIEVPRiBpcyBpbnNpZGUgdGhpcyBodW5rXG4gICAgICAgICAgICBsZXQgb2xkRU9GTmV3bGluZSA9ICgvXFxuJC8udGVzdChvbGRTdHIpKTtcbiAgICAgICAgICAgIGxldCBuZXdFT0ZOZXdsaW5lID0gKC9cXG4kLy50ZXN0KG5ld1N0cikpO1xuICAgICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PSAwICYmICFvbGRFT0ZOZXdsaW5lKSB7XG4gICAgICAgICAgICAgIC8vIHNwZWNpYWwgY2FzZTogb2xkIGhhcyBubyBlb2wgYW5kIG5vIHRyYWlsaW5nIGNvbnRleHQ7IG5vLW5sIGNhbiBlbmQgdXAgYmVmb3JlIGFkZHNcbiAgICAgICAgICAgICAgY3VyUmFuZ2Uuc3BsaWNlKGh1bmsub2xkTGluZXMsIDAsICdcXFxcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUnKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIW9sZEVPRk5ld2xpbmUgfHwgIW5ld0VPRk5ld2xpbmUpIHtcbiAgICAgICAgICAgICAgY3VyUmFuZ2UucHVzaCgnXFxcXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGh1bmtzLnB1c2goaHVuayk7XG5cbiAgICAgICAgICBvbGRSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBuZXdSYW5nZVN0YXJ0ID0gMDtcbiAgICAgICAgICBjdXJSYW5nZSA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBvbGRMaW5lICs9IGxpbmVzLmxlbmd0aDtcbiAgICAgIG5ld0xpbmUgKz0gbGluZXMubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgb2xkRmlsZU5hbWU6IG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZTogbmV3RmlsZU5hbWUsXG4gICAgb2xkSGVhZGVyOiBvbGRIZWFkZXIsIG5ld0hlYWRlcjogbmV3SGVhZGVyLFxuICAgIGh1bmtzOiBodW5rc1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHdvRmlsZXNQYXRjaChvbGRGaWxlTmFtZSwgbmV3RmlsZU5hbWUsIG9sZFN0ciwgbmV3U3RyLCBvbGRIZWFkZXIsIG5ld0hlYWRlciwgb3B0aW9ucykge1xuICBjb25zdCBkaWZmID0gc3RydWN0dXJlZFBhdGNoKG9sZEZpbGVOYW1lLCBuZXdGaWxlTmFtZSwgb2xkU3RyLCBuZXdTdHIsIG9sZEhlYWRlciwgbmV3SGVhZGVyLCBvcHRpb25zKTtcblxuICBjb25zdCByZXQgPSBbXTtcbiAgaWYgKG9sZEZpbGVOYW1lID09IG5ld0ZpbGVOYW1lKSB7XG4gICAgcmV0LnB1c2goJ0luZGV4OiAnICsgb2xkRmlsZU5hbWUpO1xuICB9XG4gIHJldC5wdXNoKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gIHJldC5wdXNoKCctLS0gJyArIGRpZmYub2xkRmlsZU5hbWUgKyAodHlwZW9mIGRpZmYub2xkSGVhZGVyID09PSAndW5kZWZpbmVkJyA/ICcnIDogJ1xcdCcgKyBkaWZmLm9sZEhlYWRlcikpO1xuICByZXQucHVzaCgnKysrICcgKyBkaWZmLm5ld0ZpbGVOYW1lICsgKHR5cGVvZiBkaWZmLm5ld0hlYWRlciA9PT0gJ3VuZGVmaW5lZCcgPyAnJyA6ICdcXHQnICsgZGlmZi5uZXdIZWFkZXIpKTtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGRpZmYuaHVua3MubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBodW5rID0gZGlmZi5odW5rc1tpXTtcbiAgICByZXQucHVzaChcbiAgICAgICdAQCAtJyArIGh1bmsub2xkU3RhcnQgKyAnLCcgKyBodW5rLm9sZExpbmVzXG4gICAgICArICcgKycgKyBodW5rLm5ld1N0YXJ0ICsgJywnICsgaHVuay5uZXdMaW5lc1xuICAgICAgKyAnIEBAJ1xuICAgICk7XG4gICAgcmV0LnB1c2guYXBwbHkocmV0LCBodW5rLmxpbmVzKTtcbiAgfVxuXG4gIHJldHVybiByZXQuam9pbignXFxuJykgKyAnXFxuJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGNoKGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGNyZWF0ZVR3b0ZpbGVzUGF0Y2goZmlsZU5hbWUsIGZpbGVOYW1lLCBvbGRTdHIsIG5ld1N0ciwgb2xkSGVhZGVyLCBuZXdIZWFkZXIsIG9wdGlvbnMpO1xufVxuIl19 + + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + exports. /*istanbul ignore end*/arrayEqual = arrayEqual; + /*istanbul ignore start*/exports. /*istanbul ignore end*/arrayStartsWith = arrayStartsWith; + function arrayEqual(a, b) { + if (a.length !== b.length) { + return false; + } + + return arrayStartsWith(a, b); + } + + function arrayStartsWith(array, start) { + if (start.length > array.length) { + return false; + } + + for (var i = 0; i < start.length; i++) { + if (start[i] !== array[i]) { + return false; + } + } + + return true; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsL2FycmF5LmpzIl0sIm5hbWVzIjpbImFycmF5RXF1YWwiLCJhcnJheVN0YXJ0c1dpdGgiLCJhIiwiYiIsImxlbmd0aCIsImFycmF5Iiwic3RhcnQiLCJpIl0sIm1hcHBpbmdzIjoiOzs7Z0NBQWdCQSxVLEdBQUFBLFU7eURBUUFDLGUsR0FBQUEsZTtBQVJULFNBQVNELFVBQVQsQ0FBb0JFLENBQXBCLEVBQXVCQyxDQUF2QixFQUEwQjtBQUMvQixNQUFJRCxFQUFFRSxNQUFGLEtBQWFELEVBQUVDLE1BQW5CLEVBQTJCO0FBQ3pCLFdBQU8sS0FBUDtBQUNEOztBQUVELFNBQU9ILGdCQUFnQkMsQ0FBaEIsRUFBbUJDLENBQW5CLENBQVA7QUFDRDs7QUFFTSxTQUFTRixlQUFULENBQXlCSSxLQUF6QixFQUFnQ0MsS0FBaEMsRUFBdUM7QUFDNUMsTUFBSUEsTUFBTUYsTUFBTixHQUFlQyxNQUFNRCxNQUF6QixFQUFpQztBQUMvQixXQUFPLEtBQVA7QUFDRDs7QUFFRCxPQUFLLElBQUlHLElBQUksQ0FBYixFQUFnQkEsSUFBSUQsTUFBTUYsTUFBMUIsRUFBa0NHLEdBQWxDLEVBQXVDO0FBQ3JDLFFBQUlELE1BQU1DLENBQU4sTUFBYUYsTUFBTUUsQ0FBTixDQUFqQixFQUEyQjtBQUN6QixhQUFPLEtBQVA7QUFDRDtBQUNGOztBQUVELFNBQU8sSUFBUDtBQUNEIiwiZmlsZSI6ImFycmF5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFycmF5RXF1YWwoYSwgYikge1xuICBpZiAoYS5sZW5ndGggIT09IGIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIGFycmF5U3RhcnRzV2l0aChhLCBiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFycmF5U3RhcnRzV2l0aChhcnJheSwgc3RhcnQpIHtcbiAgaWYgKHN0YXJ0Lmxlbmd0aCA+IGFycmF5Lmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgc3RhcnQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3RhcnRbaV0gIT09IGFycmF5W2ldKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0= + + +/***/ }), +/* 16 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/"use strict"; + + exports.__esModule = true; + exports. /*istanbul ignore end*/convertChangesToDMP = convertChangesToDMP; + // See: http://code.google.com/p/google-diff-match-patch/wiki/API + function convertChangesToDMP(changes) { + var ret = [], + change = /*istanbul ignore start*/void 0 /*istanbul ignore end*/, + operation = /*istanbul ignore start*/void 0 /*istanbul ignore end*/; + for (var i = 0; i < changes.length; i++) { + change = changes[i]; + if (change.added) { + operation = 1; + } else if (change.removed) { + operation = -1; + } else { + operation = 0; + } + + ret.push([operation, change.value]); + } + return ret; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L2RtcC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvRE1QIiwiY2hhbmdlcyIsInJldCIsImNoYW5nZSIsIm9wZXJhdGlvbiIsImkiLCJsZW5ndGgiLCJhZGRlZCIsInJlbW92ZWQiLCJwdXNoIiwidmFsdWUiXSwibWFwcGluZ3MiOiI7OztnQ0FDZ0JBLG1CLEdBQUFBLG1CO0FBRGhCO0FBQ08sU0FBU0EsbUJBQVQsQ0FBNkJDLE9BQTdCLEVBQXNDO0FBQzNDLE1BQUlDLE1BQU0sRUFBVjtBQUFBLE1BQ0lDLHdDQURKO0FBQUEsTUFFSUMsMkNBRko7QUFHQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosUUFBUUssTUFBNUIsRUFBb0NELEdBQXBDLEVBQXlDO0FBQ3ZDRixhQUFTRixRQUFRSSxDQUFSLENBQVQ7QUFDQSxRQUFJRixPQUFPSSxLQUFYLEVBQWtCO0FBQ2hCSCxrQkFBWSxDQUFaO0FBQ0QsS0FGRCxNQUVPLElBQUlELE9BQU9LLE9BQVgsRUFBb0I7QUFDekJKLGtCQUFZLENBQUMsQ0FBYjtBQUNELEtBRk0sTUFFQTtBQUNMQSxrQkFBWSxDQUFaO0FBQ0Q7O0FBRURGLFFBQUlPLElBQUosQ0FBUyxDQUFDTCxTQUFELEVBQVlELE9BQU9PLEtBQW5CLENBQVQ7QUFDRDtBQUNELFNBQU9SLEdBQVA7QUFDRCIsImZpbGUiOiJkbXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWU6IGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nb29nbGUtZGlmZi1tYXRjaC1wYXRjaC93aWtpL0FQSVxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9ETVAoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW10sXG4gICAgICBjaGFuZ2UsXG4gICAgICBvcGVyYXRpb247XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGNoYW5nZSA9IGNoYW5nZXNbaV07XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgb3BlcmF0aW9uID0gMTtcbiAgICB9IGVsc2UgaWYgKGNoYW5nZS5yZW1vdmVkKSB7XG4gICAgICBvcGVyYXRpb24gPSAtMTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3BlcmF0aW9uID0gMDtcbiAgICB9XG5cbiAgICByZXQucHVzaChbb3BlcmF0aW9uLCBjaGFuZ2UudmFsdWVdKTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuIl19 + + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + + /*istanbul ignore start*/'use strict'; + + exports.__esModule = true; + exports. /*istanbul ignore end*/convertChangesToXML = convertChangesToXML; + function convertChangesToXML(changes) { + var ret = []; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + + ret.push(escapeHTML(change.value)); + + if (change.added) { + ret.push(''); + } else if (change.removed) { + ret.push(''); + } + } + return ret.join(''); + } + + function escapeHTML(s) { + var n = s; + n = n.replace(/&/g, '&'); + n = n.replace(//g, '>'); + n = n.replace(/"/g, '"'); + + return n; + } + //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb252ZXJ0L3htbC5qcyJdLCJuYW1lcyI6WyJjb252ZXJ0Q2hhbmdlc1RvWE1MIiwiY2hhbmdlcyIsInJldCIsImkiLCJsZW5ndGgiLCJjaGFuZ2UiLCJhZGRlZCIsInB1c2giLCJyZW1vdmVkIiwiZXNjYXBlSFRNTCIsInZhbHVlIiwiam9pbiIsInMiLCJuIiwicmVwbGFjZSJdLCJtYXBwaW5ncyI6Ijs7O2dDQUFnQkEsbUIsR0FBQUEsbUI7QUFBVCxTQUFTQSxtQkFBVCxDQUE2QkMsT0FBN0IsRUFBc0M7QUFDM0MsTUFBSUMsTUFBTSxFQUFWO0FBQ0EsT0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlGLFFBQVFHLE1BQTVCLEVBQW9DRCxHQUFwQyxFQUF5QztBQUN2QyxRQUFJRSxTQUFTSixRQUFRRSxDQUFSLENBQWI7QUFDQSxRQUFJRSxPQUFPQyxLQUFYLEVBQWtCO0FBQ2hCSixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNELEtBRkQsTUFFTyxJQUFJRixPQUFPRyxPQUFYLEVBQW9CO0FBQ3pCTixVQUFJSyxJQUFKLENBQVMsT0FBVDtBQUNEOztBQUVETCxRQUFJSyxJQUFKLENBQVNFLFdBQVdKLE9BQU9LLEtBQWxCLENBQVQ7O0FBRUEsUUFBSUwsT0FBT0MsS0FBWCxFQUFrQjtBQUNoQkosVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRCxLQUZELE1BRU8sSUFBSUYsT0FBT0csT0FBWCxFQUFvQjtBQUN6Qk4sVUFBSUssSUFBSixDQUFTLFFBQVQ7QUFDRDtBQUNGO0FBQ0QsU0FBT0wsSUFBSVMsSUFBSixDQUFTLEVBQVQsQ0FBUDtBQUNEOztBQUVELFNBQVNGLFVBQVQsQ0FBb0JHLENBQXBCLEVBQXVCO0FBQ3JCLE1BQUlDLElBQUlELENBQVI7QUFDQUMsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsT0FBaEIsQ0FBSjtBQUNBRCxNQUFJQSxFQUFFQyxPQUFGLENBQVUsSUFBVixFQUFnQixNQUFoQixDQUFKO0FBQ0FELE1BQUlBLEVBQUVDLE9BQUYsQ0FBVSxJQUFWLEVBQWdCLE1BQWhCLENBQUo7QUFDQUQsTUFBSUEsRUFBRUMsT0FBRixDQUFVLElBQVYsRUFBZ0IsUUFBaEIsQ0FBSjs7QUFFQSxTQUFPRCxDQUFQO0FBQ0QiLCJmaWxlIjoieG1sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDaGFuZ2VzVG9YTUwoY2hhbmdlcykge1xuICBsZXQgcmV0ID0gW107XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgY2hhbmdlcy5sZW5ndGg7IGkrKykge1xuICAgIGxldCBjaGFuZ2UgPSBjaGFuZ2VzW2ldO1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8aW5zPicpO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIHJldC5wdXNoKCc8ZGVsPicpO1xuICAgIH1cblxuICAgIHJldC5wdXNoKGVzY2FwZUhUTUwoY2hhbmdlLnZhbHVlKSk7XG5cbiAgICBpZiAoY2hhbmdlLmFkZGVkKSB7XG4gICAgICByZXQucHVzaCgnPC9pbnM+Jyk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgcmV0LnB1c2goJzwvZGVsPicpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmV0LmpvaW4oJycpO1xufVxuXG5mdW5jdGlvbiBlc2NhcGVIVE1MKHMpIHtcbiAgbGV0IG4gPSBzO1xuICBuID0gbi5yZXBsYWNlKC8mL2csICcmYW1wOycpO1xuICBuID0gbi5yZXBsYWNlKC88L2csICcmbHQ7Jyk7XG4gIG4gPSBuLnJlcGxhY2UoLz4vZywgJyZndDsnKTtcbiAgbiA9IG4ucmVwbGFjZSgvXCIvZywgJyZxdW90OycpO1xuXG4gIHJldHVybiBuO1xufVxuIl19 + + +/***/ }) +/******/ ]) +}); +; \ No newline at end of file diff --git a/src/report/html_report/diverged.js b/src/report/html_report/diverged.js new file mode 100644 index 000000000..b96620eb8 --- /dev/null +++ b/src/report/html_report/diverged.js @@ -0,0 +1,340 @@ +'use strict'; +const noop = function (){}; +let LCS_DIFF_ARRAY_METHOD = undefined; +// debugger +if (typeof require !== 'undefined') { + LCS_DIFF_ARRAY_METHOD = require('diff').diffArrays; +} else { + try { + LCS_DIFF_ARRAY_METHOD = JsDiff.diffArrays; + } catch(err) { + console.error(err); + } +} + +const rowSpread = 1; + +const spread = 50; // range of adjacent pixels to aggregate when calculating diff +const IS_ADDED_WORD = '0_255_0_255'; +const IS_REMOVED_WORD = '255_0_0_255'; +const IS_ADDED_AND_REMOVED_WORD = '0_255_255_255'; +const IS_SAME_WORD = ''; +const OPACITY = '40'; // 0-255 range + +/** + * Applies Longest-Common-Subsequence-Diff algorithm to imageData formatted arrays + * + * @param {Uint8ClampedArray} [reference] baseline image + * @param {Uint8ClampedArray} [test] test image + * + * @returns {Uint8ClampedArray} diff image + * + */ +if (typeof module !== 'undefined') { + module.exports = diverged; +} + +function diverged(reference, test, h, w) { + console.time("diverged_total_time"); + + const spread = Math.floor(h / 80); //override + + console.log('spread:', spread); + + console.time("imgDataToWords"); + const img1wordArr = imgDataToWords(reference); + const img2wordArr = imgDataToWords(test); + console.timeEnd("imgDataToWords"); + + console.time("imgDataWordArrToColsAndRows"); + let cols_rows_ref = imgDataWordArrToColsAndRows(img1wordArr, h, w); + let cols_rows_test = imgDataWordArrToColsAndRows(img2wordArr, h, w); + console.timeEnd("imgDataWordArrToColsAndRows"); + + console.time("groupAdjacent"); + const columnRef = groupAdjacent(cols_rows_ref.columns, spread, h, w); + const columnTest = groupAdjacent(cols_rows_test.columns, spread, h, w); + console.timeEnd("groupAdjacent"); + + console.time("columnDiffRaw"); + const columnDiffRaw = diffArr(columnRef, columnTest, h, w); + console.timeEnd("columnDiffRaw"); + + console.time("reduceColumnDiffRaw"); + const reducedColumnDiff = reduceColumnDiffRaw(columnDiffRaw, h, w); + console.timeEnd("reduceColumnDiffRaw"); + // console.log("reducedColumnDiff>>>", reducedColumnDiff); + + console.time("unGroupAdjacent"); + const expandedColumns = ungroupAdjacent(reducedColumnDiff, spread, cols_rows_test.columns, h, w); + console.timeEnd("unGroupAdjacent"); + + console.time("columnWordDataToImgDataFormatAsWords"); + const convertedColumnDiffImgData = columnWordDataToImgDataFormatAsWords(expandedColumns, h, w); + console.timeEnd("columnWordDataToImgDataFormatAsWords"); + // console.log("convertedColumnDiffImgData>>>", convertedColumnDiffImgData); + + console.time("imgDataWordsToClampedImgData"); + const imgDataArr = convertImgDataWordsToClampedImgData(convertedColumnDiffImgData); + console.timeEnd("imgDataWordsToClampedImgData"); + // console.log("imgDataArr>>>", imgDataArr); + + console.timeEnd("diverged_total_time"); + return imgDataArr; +} + +/** + * ========= HELPERS ======== + */ + +function columnWordDataToImgDataFormatAsWords(columns, h, w) { + const imgDataWordsLength = w * h; + + let convertedArr = new Array(imgDataWordsLength); + for (var i = 0; i < imgDataWordsLength; i++) { + const {column, depth} = serialToColumnMap(i, h, w); + convertedArr[i] = columns[column][depth]; + } + return convertedArr; +} + +function convertImgDataWordsToClampedImgData(wordsArr) { + let convertedArr = new Uint8ClampedArray(wordsArr.length * 4); + for (var i = 0; i < wordsArr.length; i++) { + const convertedOffset = i * 4; + const segments = wordsArr[i].split('_'); + convertedArr[convertedOffset] = segments[0]; + convertedArr[convertedOffset+1] = segments[1]; + convertedArr[convertedOffset+2] = segments[2]; + convertedArr[convertedOffset+3] = segments[3]; + } + return convertedArr; +} + +function reduceColumnDiffRaw(columnDiffs, h, w) { + let reducedColumns = new Array(columnDiffs.length); + for (let columnIndex = 0; columnIndex < columnDiffs.length; columnIndex++) { + const columnDiff = columnDiffs[columnIndex]; + let resultColumn = new Array(); + let removedCounter = 0; + let resultClass = ''; + let segment = []; + let debug = false; + + for (let depthIndex = 0; depthIndex < columnDiff.length; depthIndex++) { + let segmentLength = 0; + + // Categorize the current segment + if (columnDiff[depthIndex].removed) { + segmentLength = columnDiff[depthIndex].count; + removedCounter += segmentLength; + resultClass = IS_REMOVED_WORD; + } else { + if (columnDiff[depthIndex].added) { + if (removedCounter) { + resultClass = IS_ADDED_AND_REMOVED_WORD; + } else { + resultClass = IS_ADDED_WORD; + } + } else { + resultClass = IS_SAME_WORD; + } + + segmentLength = columnDiff[depthIndex].count; + + if (removedCounter > 0) { + if (segmentLength > removedCounter) { + segmentLength -= removedCounter; + removedCounter = 0; + } else { + removedCounter -= segmentLength; + segmentLength = 0; + } + } + } + + // Limit segmentLength to total length of column + if (!segmentLength) { + continue; + } else { + segmentLength = Math.min(segmentLength, h - resultColumn.length); + } + + const printSampleMap = false; + if (!printSampleMap || resultClass !== IS_SAME_WORD){ + segment = new Array(segmentLength).fill(resultClass); + } else { + // reduced resolution image + segment = columnDiff[depthIndex].value.slice(0,segmentLength).map((value, i) => { + if (/|/.test(value)) { + return value.split('|')[0]; + } + return value; + }); + } + + + resultColumn = resultColumn.concat(segment); + + if (resultColumn.length > h) { + console.log('WARNING -- this value is out of bounds!') + } + } + + reducedColumns[columnIndex] = resultColumn; + } + + return reducedColumns; +} + +function diffArr(refArr, testArr, h, w) { + let rawResultArr = []; + for (let i = 0; i < refArr.length; i++) { + rawResultArr.push(LCS_DIFF_ARRAY_METHOD(refArr[i], testArr[i])); + } + return rawResultArr; +} + +function groupAdjacent(columns, spread, h, w) { + if (!spread) { + return columns; + } + + /** + * [getAdjacentArrayBounds retuns existing adjacent lower and upper column bounds] + * @param {[int]} pointer [current index] + * @param {[int]} spread [distance from index] + * @param {[int]} length [total length] + * @return {[array]} [0] lower bound, [1] upper bound + */ + function getAdjacentArrayBounds(pointer, spread, length) { + return [ + // Math.max(0, pointer - spread), + Math.max(0, pointer), + Math.min(length - 1, pointer + spread) + ] + } + + function getInterpolatedSequence(beginning, end) { + const interpolated = []; + for (let step = beginning; step <= end; step++) { + interpolated.push(step); + } + return interpolated; + } + + function getCompositeColumnDepthValues(columns, sequence, depth) { + return sequence.reduce((acc, column) => { + return acc.concat(columns[column][depth]); + }, []) + } + + function getCompositeRowIndexValues(groupedColumns, sequence, column) { + return sequence.reduce((acc, depth) => { + return acc.concat(groupedColumns[column][depth]); + }, []) + } + + const groupedColumns = new Array(); + let columnPointer = 0; + while (columnPointer < w) { + const adjacentColumnBounds = getAdjacentArrayBounds(columnPointer, spread, w); + const interpolatedColumns = getInterpolatedSequence(...adjacentColumnBounds); + + const columnComposite = new Array(); + for (var depth = 0; depth < h; depth++) { + columnComposite[depth] = getCompositeColumnDepthValues(columns, interpolatedColumns, depth).join('|'); + } + groupedColumns.push(columnComposite); + columnPointer += spread; + } + + const groupedRows = new Array(); + if (rowSpread > 1) { + for (var index = 0; index < groupedColumns.length; index++) { + const rowComposite = new Array(); + let depthPointer = 0; + while (depthPointer < h) { + const adjacentRowBounds = getAdjacentArrayBounds(depthPointer, rowSpread, h); + const interpolatedRows = getInterpolatedSequence(...adjacentRowBounds); + rowComposite.push(getCompositeRowIndexValues(groupedColumns, interpolatedRows, index).join(',')); + depthPointer += rowSpread; + } + groupedRows[index] = rowComposite; + } + } + return groupedRows.length ? groupedRows : groupedColumns ; +} + +function ungroupAdjacent(grouped, spread, columnUnderlay, h, w) { + if (!spread) { + return grouped; + } + + function mapUngroupedColumnIndexToGroupedIndex(index, spread) { + return Math.floor(index / spread); + } + + // expand columns + const ungrouped = new Array(w); + for (let index = 0; index < w; index++) { + if (!ungrouped[index]) { + ungrouped[index] = new Array(h); + } + + const groupedIndexMap = mapUngroupedColumnIndexToGroupedIndex(index, spread); + for (let depth = 0; depth < h; depth++) { + const groupedDepthMap = rowSpread > 1 ? mapUngroupedColumnIndexToGroupedIndex(depth, rowSpread) : depth; + const value = grouped[groupedIndexMap][groupedDepthMap].split('|')[0]; + ungrouped[index][depth] = value ? value : columnUnderlay[index][depth].replace(/\d+$/, OPACITY); + } + } + + return ungrouped +} + + + +function imgDataWordArrToColsAndRows(arr, h, w) { + let columns = new Array(w); + let rows = new Array(h); + + for (var i = 0; i < arr.length; i++) { + const word = arr[i]; + + var {column, depth} = serialToColumnMap(i, h, w); + if (!columns[column]) { + columns[column] = new Array(h); + } + columns[column][depth] = word; + + var {row, index} = serialToRowMap(i, h, w); + if (!rows[row]) { + rows[row] = new Array(w); + } + rows[row][index] = word; + } + return {columns, rows} +} + +function serialToColumnMap(index, h, w) { + return { + column: index % w, + depth: Math.floor(index / w) + } +} + +function serialToRowMap(index, h, w) { + return { + row: Math.floor(index / w), + index: index % w + } +} + +function imgDataToWords(arr) { + let result = []; + for (let i = 0; i < arr.length-1; i += 4) { + result.push(`${arr[i]}_${arr[i+1]}_${arr[i+2]}_${arr[i+3]}`) + } + return result; +} diff --git a/src/report/html_report/divergedWorker.js b/src/report/html_report/divergedWorker.js new file mode 100644 index 000000000..c41d85e54 --- /dev/null +++ b/src/report/html_report/divergedWorker.js @@ -0,0 +1,6 @@ +importScripts('diff.js'); +importScripts('diverged.js'); +self.addEventListener('message', function(e) { + self.postMessage(diverged(...e.data.divergedInput)); + self.close(); +}, false); diff --git a/src/report/html_report/index.html b/src/report/html_report/index.html new file mode 100644 index 000000000..688ed2f44 --- /dev/null +++ b/src/report/html_report/index.html @@ -0,0 +1,44 @@ + + + + + BackstopJS Report + + + + +

+ + + + + diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js new file mode 100644 index 000000000..6166eba97 --- /dev/null +++ b/src/report/html_report/index_bundle.js @@ -0,0 +1,3602 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./compare/src/actions/index.js": +/*!**************************************!*\ + !*** ./compare/src/actions/index.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/close.png": +/*!********************************************!*\ + !*** ./compare/src/assets/icons/close.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/iconDown.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/iconDown.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/search.png": +/*!*********************************************!*\ + !*** ./compare/src/assets/icons/search.png ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/settings.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/settings.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); + +/***/ }), + +/***/ "./compare/src/assets/images/logo.png": +/*!********************************************!*\ + !*** ./compare/src/assets/images/logo.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); + +/***/ }), + +/***/ "./compare/src/components/App.js": +/*!***************************************!*\ + !*** ./compare/src/components/App.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonFilter.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ButtonFilter.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonSettings.js": +/*!********************************************************!*\ + !*** ./compare/src/components/atoms/ButtonSettings.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/DiffDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/DiffDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ErrorMessages.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ErrorMessages.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/IdContainer.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/IdContainer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImagePreview.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ImagePreview.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImageScrubber.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ImageScrubber.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/InputTextSearch.js": +/*!*********************************************************!*\ + !*** ./compare/src/components/atoms/InputTextSearch.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/Logo.js": +/*!**********************************************!*\ + !*** ./compare/src/components/atoms/Logo.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/NavButtons.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/NavButtons.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SettingOption.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/SettingOption.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SuiteName.js": +/*!***************************************************!*\ + !*** ./compare/src/components/atoms/SuiteName.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/TextDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/TextDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/UrlDetails.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/UrlDetails.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/Header.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/ecosystems/Header.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/List.js": +/*!***************************************************!*\ + !*** ./compare/src/components/ecosystems/List.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/ScrubberModal.js": +/*!************************************************************!*\ + !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/ApproveButton.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/ApproveButton.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/FiltersSwitch.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/FiltersSwitch.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsContainer.js": +/*!***************************************************************!*\ + !*** ./compare/src/components/molecules/SettingsContainer.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsPopup.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/SettingsPopup.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TestImages.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TestImages.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TextSearch.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TextSearch.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/TestCard.js": +/*!******************************************************!*\ + !*** ./compare/src/components/organisms/TestCard.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/Toolbar.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/organisms/Toolbar.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/topbar.js": +/*!****************************************************!*\ + !*** ./compare/src/components/organisms/topbar.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); + +/***/ }), + +/***/ "./compare/src/index.js": +/*!******************************!*\ + !*** ./compare/src/index.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/index.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/layoutSettings.js": +/*!************************************************!*\ + !*** ./compare/src/reducers/layoutSettings.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/scrubber.js": +/*!******************************************!*\ + !*** ./compare/src/reducers/scrubber.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/suiteInfo.js": +/*!*******************************************!*\ + !*** ./compare/src/reducers/suiteInfo.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/tests.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/tests.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); + +/***/ }), + +/***/ "./compare/src/store.js": +/*!******************************!*\ + !*** ./compare/src/store.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); + +/***/ }), + +/***/ "./compare/src/styles/index.js": +/*!*************************************!*\ + !*** ./compare/src/styles/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); + +/***/ }), + +/***/ "./node_modules/backstop-twentytwenty/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/backstop-twentytwenty/index.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/factory.js": +/*!****************************************************!*\ + !*** ./node_modules/create-react-class/factory.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/index.js": +/*!**************************************************!*\ + !*** ./node_modules/create-react-class/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/exenv/index.js": +/*!*************************************!*\ + !*** ./node_modules/exenv/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/EventListener.js": +/*!************************************************!*\ + !*** ./node_modules/fbjs/lib/EventListener.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelize.js": +/*!*******************************************!*\ + !*** ./node_modules/fbjs/lib/camelize.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": +/*!****************************************************!*\ + !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/containsNode.js": +/*!***********************************************!*\ + !*** ./node_modules/fbjs/lib/containsNode.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": +/*!********************************************************!*\ + !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * - - - - diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js deleted file mode 100644 index 6166eba97..000000000 --- a/src/report/html_report/index_bundle.js +++ /dev/null @@ -1,3602 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./compare/src/actions/index.js": -/*!**************************************!*\ - !*** ./compare/src/actions/index.js ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/close.png": -/*!********************************************!*\ - !*** ./compare/src/assets/icons/close.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/iconDown.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/iconDown.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/search.png": -/*!*********************************************!*\ - !*** ./compare/src/assets/icons/search.png ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/settings.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/settings.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); - -/***/ }), - -/***/ "./compare/src/assets/images/logo.png": -/*!********************************************!*\ - !*** ./compare/src/assets/images/logo.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); - -/***/ }), - -/***/ "./compare/src/components/App.js": -/*!***************************************!*\ - !*** ./compare/src/components/App.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonFilter.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ButtonFilter.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonSettings.js": -/*!********************************************************!*\ - !*** ./compare/src/components/atoms/ButtonSettings.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/DiffDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/DiffDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ErrorMessages.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ErrorMessages.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/IdContainer.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/IdContainer.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImagePreview.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ImagePreview.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImageScrubber.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ImageScrubber.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/InputTextSearch.js": -/*!*********************************************************!*\ - !*** ./compare/src/components/atoms/InputTextSearch.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/Logo.js": -/*!**********************************************!*\ - !*** ./compare/src/components/atoms/Logo.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/NavButtons.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/NavButtons.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SettingOption.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/SettingOption.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SuiteName.js": -/*!***************************************************!*\ - !*** ./compare/src/components/atoms/SuiteName.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/TextDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/TextDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/UrlDetails.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/UrlDetails.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/Header.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/ecosystems/Header.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/List.js": -/*!***************************************************!*\ - !*** ./compare/src/components/ecosystems/List.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/ScrubberModal.js": -/*!************************************************************!*\ - !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/ApproveButton.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/ApproveButton.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/FiltersSwitch.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/FiltersSwitch.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsContainer.js": -/*!***************************************************************!*\ - !*** ./compare/src/components/molecules/SettingsContainer.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsPopup.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/SettingsPopup.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TestImages.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TestImages.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TextSearch.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TextSearch.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/TestCard.js": -/*!******************************************************!*\ - !*** ./compare/src/components/organisms/TestCard.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/Toolbar.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/organisms/Toolbar.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/topbar.js": -/*!****************************************************!*\ - !*** ./compare/src/components/organisms/topbar.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); - -/***/ }), - -/***/ "./compare/src/index.js": -/*!******************************!*\ - !*** ./compare/src/index.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/index.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/layoutSettings.js": -/*!************************************************!*\ - !*** ./compare/src/reducers/layoutSettings.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/scrubber.js": -/*!******************************************!*\ - !*** ./compare/src/reducers/scrubber.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/suiteInfo.js": -/*!*******************************************!*\ - !*** ./compare/src/reducers/suiteInfo.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/tests.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/tests.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); - -/***/ }), - -/***/ "./compare/src/store.js": -/*!******************************!*\ - !*** ./compare/src/store.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); - -/***/ }), - -/***/ "./compare/src/styles/index.js": -/*!*************************************!*\ - !*** ./compare/src/styles/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); - -/***/ }), - -/***/ "./node_modules/backstop-twentytwenty/index.js": -/*!*****************************************************!*\ - !*** ./node_modules/backstop-twentytwenty/index.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/factory.js": -/*!****************************************************!*\ - !*** ./node_modules/create-react-class/factory.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/index.js": -/*!**************************************************!*\ - !*** ./node_modules/create-react-class/index.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); - -/***/ }), - -/***/ "./node_modules/exenv/index.js": -/*!*************************************!*\ - !*** ./node_modules/exenv/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/EventListener.js": -/*!************************************************!*\ - !*** ./node_modules/fbjs/lib/EventListener.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelize.js": -/*!*******************************************!*\ - !*** ./node_modules/fbjs/lib/camelize.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": -/*!****************************************************!*\ - !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/containsNode.js": -/*!***********************************************!*\ - !*** ./node_modules/fbjs/lib/containsNode.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": -/*!********************************************************!*\ - !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * + + + + diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js new file mode 100644 index 000000000..6166eba97 --- /dev/null +++ b/src/report/html_report/index_bundle.js @@ -0,0 +1,3602 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./compare/src/actions/index.js": +/*!**************************************!*\ + !*** ./compare/src/actions/index.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/close.png": +/*!********************************************!*\ + !*** ./compare/src/assets/icons/close.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/iconDown.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/iconDown.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/search.png": +/*!*********************************************!*\ + !*** ./compare/src/assets/icons/search.png ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/settings.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/settings.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); + +/***/ }), + +/***/ "./compare/src/assets/images/logo.png": +/*!********************************************!*\ + !*** ./compare/src/assets/images/logo.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); + +/***/ }), + +/***/ "./compare/src/components/App.js": +/*!***************************************!*\ + !*** ./compare/src/components/App.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonFilter.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ButtonFilter.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonSettings.js": +/*!********************************************************!*\ + !*** ./compare/src/components/atoms/ButtonSettings.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/DiffDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/DiffDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ErrorMessages.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ErrorMessages.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/IdContainer.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/IdContainer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImagePreview.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ImagePreview.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImageScrubber.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ImageScrubber.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/InputTextSearch.js": +/*!*********************************************************!*\ + !*** ./compare/src/components/atoms/InputTextSearch.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/Logo.js": +/*!**********************************************!*\ + !*** ./compare/src/components/atoms/Logo.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/NavButtons.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/NavButtons.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SettingOption.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/SettingOption.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SuiteName.js": +/*!***************************************************!*\ + !*** ./compare/src/components/atoms/SuiteName.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/TextDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/TextDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/UrlDetails.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/UrlDetails.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/Header.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/ecosystems/Header.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/List.js": +/*!***************************************************!*\ + !*** ./compare/src/components/ecosystems/List.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/ScrubberModal.js": +/*!************************************************************!*\ + !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/ApproveButton.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/ApproveButton.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/FiltersSwitch.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/FiltersSwitch.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsContainer.js": +/*!***************************************************************!*\ + !*** ./compare/src/components/molecules/SettingsContainer.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsPopup.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/SettingsPopup.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TestImages.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TestImages.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TextSearch.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TextSearch.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/TestCard.js": +/*!******************************************************!*\ + !*** ./compare/src/components/organisms/TestCard.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/Toolbar.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/organisms/Toolbar.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/topbar.js": +/*!****************************************************!*\ + !*** ./compare/src/components/organisms/topbar.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); + +/***/ }), + +/***/ "./compare/src/index.js": +/*!******************************!*\ + !*** ./compare/src/index.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/index.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/layoutSettings.js": +/*!************************************************!*\ + !*** ./compare/src/reducers/layoutSettings.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/scrubber.js": +/*!******************************************!*\ + !*** ./compare/src/reducers/scrubber.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/suiteInfo.js": +/*!*******************************************!*\ + !*** ./compare/src/reducers/suiteInfo.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/tests.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/tests.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); + +/***/ }), + +/***/ "./compare/src/store.js": +/*!******************************!*\ + !*** ./compare/src/store.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); + +/***/ }), + +/***/ "./compare/src/styles/index.js": +/*!*************************************!*\ + !*** ./compare/src/styles/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); + +/***/ }), + +/***/ "./node_modules/backstop-twentytwenty/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/backstop-twentytwenty/index.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/factory.js": +/*!****************************************************!*\ + !*** ./node_modules/create-react-class/factory.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/index.js": +/*!**************************************************!*\ + !*** ./node_modules/create-react-class/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/exenv/index.js": +/*!*************************************!*\ + !*** ./node_modules/exenv/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/EventListener.js": +/*!************************************************!*\ + !*** ./node_modules/fbjs/lib/EventListener.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelize.js": +/*!*******************************************!*\ + !*** ./node_modules/fbjs/lib/camelize.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": +/*!****************************************************!*\ + !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/containsNode.js": +/*!***********************************************!*\ + !*** ./node_modules/fbjs/lib/containsNode.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": +/*!********************************************************!*\ + !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * - - - - diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js deleted file mode 100644 index 6166eba97..000000000 --- a/src/report/html_report/index_bundle.js +++ /dev/null @@ -1,3602 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./compare/src/actions/index.js": -/*!**************************************!*\ - !*** ./compare/src/actions/index.js ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/close.png": -/*!********************************************!*\ - !*** ./compare/src/assets/icons/close.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/iconDown.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/iconDown.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/search.png": -/*!*********************************************!*\ - !*** ./compare/src/assets/icons/search.png ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/settings.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/settings.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); - -/***/ }), - -/***/ "./compare/src/assets/images/logo.png": -/*!********************************************!*\ - !*** ./compare/src/assets/images/logo.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); - -/***/ }), - -/***/ "./compare/src/components/App.js": -/*!***************************************!*\ - !*** ./compare/src/components/App.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonFilter.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ButtonFilter.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonSettings.js": -/*!********************************************************!*\ - !*** ./compare/src/components/atoms/ButtonSettings.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/DiffDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/DiffDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ErrorMessages.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ErrorMessages.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/IdContainer.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/IdContainer.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImagePreview.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ImagePreview.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImageScrubber.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ImageScrubber.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/InputTextSearch.js": -/*!*********************************************************!*\ - !*** ./compare/src/components/atoms/InputTextSearch.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/Logo.js": -/*!**********************************************!*\ - !*** ./compare/src/components/atoms/Logo.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/NavButtons.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/NavButtons.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SettingOption.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/SettingOption.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SuiteName.js": -/*!***************************************************!*\ - !*** ./compare/src/components/atoms/SuiteName.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/TextDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/TextDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/UrlDetails.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/UrlDetails.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/Header.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/ecosystems/Header.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/List.js": -/*!***************************************************!*\ - !*** ./compare/src/components/ecosystems/List.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/ScrubberModal.js": -/*!************************************************************!*\ - !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/ApproveButton.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/ApproveButton.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/FiltersSwitch.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/FiltersSwitch.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsContainer.js": -/*!***************************************************************!*\ - !*** ./compare/src/components/molecules/SettingsContainer.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsPopup.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/SettingsPopup.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TestImages.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TestImages.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TextSearch.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TextSearch.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/TestCard.js": -/*!******************************************************!*\ - !*** ./compare/src/components/organisms/TestCard.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/Toolbar.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/organisms/Toolbar.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/topbar.js": -/*!****************************************************!*\ - !*** ./compare/src/components/organisms/topbar.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); - -/***/ }), - -/***/ "./compare/src/index.js": -/*!******************************!*\ - !*** ./compare/src/index.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/index.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/layoutSettings.js": -/*!************************************************!*\ - !*** ./compare/src/reducers/layoutSettings.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/scrubber.js": -/*!******************************************!*\ - !*** ./compare/src/reducers/scrubber.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/suiteInfo.js": -/*!*******************************************!*\ - !*** ./compare/src/reducers/suiteInfo.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/tests.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/tests.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); - -/***/ }), - -/***/ "./compare/src/store.js": -/*!******************************!*\ - !*** ./compare/src/store.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); - -/***/ }), - -/***/ "./compare/src/styles/index.js": -/*!*************************************!*\ - !*** ./compare/src/styles/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); - -/***/ }), - -/***/ "./node_modules/backstop-twentytwenty/index.js": -/*!*****************************************************!*\ - !*** ./node_modules/backstop-twentytwenty/index.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/factory.js": -/*!****************************************************!*\ - !*** ./node_modules/create-react-class/factory.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/index.js": -/*!**************************************************!*\ - !*** ./node_modules/create-react-class/index.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); - -/***/ }), - -/***/ "./node_modules/exenv/index.js": -/*!*************************************!*\ - !*** ./node_modules/exenv/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/EventListener.js": -/*!************************************************!*\ - !*** ./node_modules/fbjs/lib/EventListener.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelize.js": -/*!*******************************************!*\ - !*** ./node_modules/fbjs/lib/camelize.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": -/*!****************************************************!*\ - !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/containsNode.js": -/*!***********************************************!*\ - !*** ./node_modules/fbjs/lib/containsNode.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": -/*!********************************************************!*\ - !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * + + + + diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js new file mode 100644 index 000000000..6166eba97 --- /dev/null +++ b/src/report/html_report/index_bundle.js @@ -0,0 +1,3602 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./compare/src/actions/index.js": +/*!**************************************!*\ + !*** ./compare/src/actions/index.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/close.png": +/*!********************************************!*\ + !*** ./compare/src/assets/icons/close.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/iconDown.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/iconDown.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/search.png": +/*!*********************************************!*\ + !*** ./compare/src/assets/icons/search.png ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/settings.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/settings.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); + +/***/ }), + +/***/ "./compare/src/assets/images/logo.png": +/*!********************************************!*\ + !*** ./compare/src/assets/images/logo.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); + +/***/ }), + +/***/ "./compare/src/components/App.js": +/*!***************************************!*\ + !*** ./compare/src/components/App.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonFilter.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ButtonFilter.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonSettings.js": +/*!********************************************************!*\ + !*** ./compare/src/components/atoms/ButtonSettings.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/DiffDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/DiffDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ErrorMessages.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ErrorMessages.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/IdContainer.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/IdContainer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImagePreview.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ImagePreview.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImageScrubber.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ImageScrubber.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/InputTextSearch.js": +/*!*********************************************************!*\ + !*** ./compare/src/components/atoms/InputTextSearch.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/Logo.js": +/*!**********************************************!*\ + !*** ./compare/src/components/atoms/Logo.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/NavButtons.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/NavButtons.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SettingOption.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/SettingOption.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SuiteName.js": +/*!***************************************************!*\ + !*** ./compare/src/components/atoms/SuiteName.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/TextDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/TextDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/UrlDetails.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/UrlDetails.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/Header.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/ecosystems/Header.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/List.js": +/*!***************************************************!*\ + !*** ./compare/src/components/ecosystems/List.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/ScrubberModal.js": +/*!************************************************************!*\ + !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/ApproveButton.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/ApproveButton.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/FiltersSwitch.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/FiltersSwitch.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsContainer.js": +/*!***************************************************************!*\ + !*** ./compare/src/components/molecules/SettingsContainer.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsPopup.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/SettingsPopup.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TestImages.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TestImages.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TextSearch.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TextSearch.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/TestCard.js": +/*!******************************************************!*\ + !*** ./compare/src/components/organisms/TestCard.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/Toolbar.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/organisms/Toolbar.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/topbar.js": +/*!****************************************************!*\ + !*** ./compare/src/components/organisms/topbar.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); + +/***/ }), + +/***/ "./compare/src/index.js": +/*!******************************!*\ + !*** ./compare/src/index.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/index.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/layoutSettings.js": +/*!************************************************!*\ + !*** ./compare/src/reducers/layoutSettings.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/scrubber.js": +/*!******************************************!*\ + !*** ./compare/src/reducers/scrubber.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/suiteInfo.js": +/*!*******************************************!*\ + !*** ./compare/src/reducers/suiteInfo.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/tests.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/tests.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); + +/***/ }), + +/***/ "./compare/src/store.js": +/*!******************************!*\ + !*** ./compare/src/store.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); + +/***/ }), + +/***/ "./compare/src/styles/index.js": +/*!*************************************!*\ + !*** ./compare/src/styles/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); + +/***/ }), + +/***/ "./node_modules/backstop-twentytwenty/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/backstop-twentytwenty/index.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/factory.js": +/*!****************************************************!*\ + !*** ./node_modules/create-react-class/factory.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/index.js": +/*!**************************************************!*\ + !*** ./node_modules/create-react-class/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/exenv/index.js": +/*!*************************************!*\ + !*** ./node_modules/exenv/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/EventListener.js": +/*!************************************************!*\ + !*** ./node_modules/fbjs/lib/EventListener.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelize.js": +/*!*******************************************!*\ + !*** ./node_modules/fbjs/lib/camelize.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": +/*!****************************************************!*\ + !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/containsNode.js": +/*!***********************************************!*\ + !*** ./node_modules/fbjs/lib/containsNode.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": +/*!********************************************************!*\ + !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * - - - - diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js deleted file mode 100644 index 6166eba97..000000000 --- a/src/report/html_report/index_bundle.js +++ /dev/null @@ -1,3602 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./compare/src/actions/index.js": -/*!**************************************!*\ - !*** ./compare/src/actions/index.js ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/close.png": -/*!********************************************!*\ - !*** ./compare/src/assets/icons/close.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/iconDown.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/iconDown.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/search.png": -/*!*********************************************!*\ - !*** ./compare/src/assets/icons/search.png ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/settings.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/settings.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); - -/***/ }), - -/***/ "./compare/src/assets/images/logo.png": -/*!********************************************!*\ - !*** ./compare/src/assets/images/logo.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); - -/***/ }), - -/***/ "./compare/src/components/App.js": -/*!***************************************!*\ - !*** ./compare/src/components/App.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonFilter.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ButtonFilter.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonSettings.js": -/*!********************************************************!*\ - !*** ./compare/src/components/atoms/ButtonSettings.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/DiffDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/DiffDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ErrorMessages.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ErrorMessages.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/IdContainer.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/IdContainer.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImagePreview.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ImagePreview.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImageScrubber.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ImageScrubber.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/InputTextSearch.js": -/*!*********************************************************!*\ - !*** ./compare/src/components/atoms/InputTextSearch.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/Logo.js": -/*!**********************************************!*\ - !*** ./compare/src/components/atoms/Logo.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/NavButtons.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/NavButtons.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SettingOption.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/SettingOption.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SuiteName.js": -/*!***************************************************!*\ - !*** ./compare/src/components/atoms/SuiteName.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/TextDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/TextDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/UrlDetails.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/UrlDetails.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/Header.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/ecosystems/Header.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/List.js": -/*!***************************************************!*\ - !*** ./compare/src/components/ecosystems/List.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/ScrubberModal.js": -/*!************************************************************!*\ - !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/ApproveButton.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/ApproveButton.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/FiltersSwitch.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/FiltersSwitch.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsContainer.js": -/*!***************************************************************!*\ - !*** ./compare/src/components/molecules/SettingsContainer.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsPopup.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/SettingsPopup.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TestImages.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TestImages.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TextSearch.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TextSearch.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/TestCard.js": -/*!******************************************************!*\ - !*** ./compare/src/components/organisms/TestCard.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/Toolbar.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/organisms/Toolbar.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/topbar.js": -/*!****************************************************!*\ - !*** ./compare/src/components/organisms/topbar.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); - -/***/ }), - -/***/ "./compare/src/index.js": -/*!******************************!*\ - !*** ./compare/src/index.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/index.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/layoutSettings.js": -/*!************************************************!*\ - !*** ./compare/src/reducers/layoutSettings.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/scrubber.js": -/*!******************************************!*\ - !*** ./compare/src/reducers/scrubber.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/suiteInfo.js": -/*!*******************************************!*\ - !*** ./compare/src/reducers/suiteInfo.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/tests.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/tests.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); - -/***/ }), - -/***/ "./compare/src/store.js": -/*!******************************!*\ - !*** ./compare/src/store.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); - -/***/ }), - -/***/ "./compare/src/styles/index.js": -/*!*************************************!*\ - !*** ./compare/src/styles/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); - -/***/ }), - -/***/ "./node_modules/backstop-twentytwenty/index.js": -/*!*****************************************************!*\ - !*** ./node_modules/backstop-twentytwenty/index.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/factory.js": -/*!****************************************************!*\ - !*** ./node_modules/create-react-class/factory.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/index.js": -/*!**************************************************!*\ - !*** ./node_modules/create-react-class/index.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); - -/***/ }), - -/***/ "./node_modules/exenv/index.js": -/*!*************************************!*\ - !*** ./node_modules/exenv/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/EventListener.js": -/*!************************************************!*\ - !*** ./node_modules/fbjs/lib/EventListener.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelize.js": -/*!*******************************************!*\ - !*** ./node_modules/fbjs/lib/camelize.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": -/*!****************************************************!*\ - !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/containsNode.js": -/*!***********************************************!*\ - !*** ./node_modules/fbjs/lib/containsNode.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": -/*!********************************************************!*\ - !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * + + + + diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js new file mode 100644 index 000000000..6166eba97 --- /dev/null +++ b/src/report/html_report/index_bundle.js @@ -0,0 +1,3602 @@ +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./compare/src/actions/index.js": +/*!**************************************!*\ + !*** ./compare/src/actions/index.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/close.png": +/*!********************************************!*\ + !*** ./compare/src/assets/icons/close.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/iconDown.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/iconDown.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/search.png": +/*!*********************************************!*\ + !*** ./compare/src/assets/icons/search.png ***! + \*********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); + +/***/ }), + +/***/ "./compare/src/assets/icons/settings.png": +/*!***********************************************!*\ + !*** ./compare/src/assets/icons/settings.png ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); + +/***/ }), + +/***/ "./compare/src/assets/images/logo.png": +/*!********************************************!*\ + !*** ./compare/src/assets/images/logo.png ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); + +/***/ }), + +/***/ "./compare/src/components/App.js": +/*!***************************************!*\ + !*** ./compare/src/components/App.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonFilter.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ButtonFilter.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ButtonSettings.js": +/*!********************************************************!*\ + !*** ./compare/src/components/atoms/ButtonSettings.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/DiffDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/DiffDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ErrorMessages.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ErrorMessages.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/IdContainer.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/IdContainer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImagePreview.js": +/*!******************************************************!*\ + !*** ./compare/src/components/atoms/ImagePreview.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/ImageScrubber.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/ImageScrubber.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/InputTextSearch.js": +/*!*********************************************************!*\ + !*** ./compare/src/components/atoms/InputTextSearch.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/Logo.js": +/*!**********************************************!*\ + !*** ./compare/src/components/atoms/Logo.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/NavButtons.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/NavButtons.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SettingOption.js": +/*!*******************************************************!*\ + !*** ./compare/src/components/atoms/SettingOption.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/SuiteName.js": +/*!***************************************************!*\ + !*** ./compare/src/components/atoms/SuiteName.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/TextDetails.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/atoms/TextDetails.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/atoms/UrlDetails.js": +/*!****************************************************!*\ + !*** ./compare/src/components/atoms/UrlDetails.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/Header.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/ecosystems/Header.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/List.js": +/*!***************************************************!*\ + !*** ./compare/src/components/ecosystems/List.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); + +/***/ }), + +/***/ "./compare/src/components/ecosystems/ScrubberModal.js": +/*!************************************************************!*\ + !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/ApproveButton.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/ApproveButton.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/FiltersSwitch.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/FiltersSwitch.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsContainer.js": +/*!***************************************************************!*\ + !*** ./compare/src/components/molecules/SettingsContainer.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/SettingsPopup.js": +/*!***********************************************************!*\ + !*** ./compare/src/components/molecules/SettingsPopup.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TestImages.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TestImages.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); + +/***/ }), + +/***/ "./compare/src/components/molecules/TextSearch.js": +/*!********************************************************!*\ + !*** ./compare/src/components/molecules/TextSearch.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/TestCard.js": +/*!******************************************************!*\ + !*** ./compare/src/components/organisms/TestCard.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/Toolbar.js": +/*!*****************************************************!*\ + !*** ./compare/src/components/organisms/Toolbar.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); + +/***/ }), + +/***/ "./compare/src/components/organisms/topbar.js": +/*!****************************************************!*\ + !*** ./compare/src/components/organisms/topbar.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); + +/***/ }), + +/***/ "./compare/src/index.js": +/*!******************************!*\ + !*** ./compare/src/index.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/index.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/index.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/layoutSettings.js": +/*!************************************************!*\ + !*** ./compare/src/reducers/layoutSettings.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/scrubber.js": +/*!******************************************!*\ + !*** ./compare/src/reducers/scrubber.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/suiteInfo.js": +/*!*******************************************!*\ + !*** ./compare/src/reducers/suiteInfo.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); + +/***/ }), + +/***/ "./compare/src/reducers/tests.js": +/*!***************************************!*\ + !*** ./compare/src/reducers/tests.js ***! + \***************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); + +/***/ }), + +/***/ "./compare/src/store.js": +/*!******************************!*\ + !*** ./compare/src/store.js ***! + \******************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); + +/***/ }), + +/***/ "./compare/src/styles/index.js": +/*!*************************************!*\ + !*** ./compare/src/styles/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); + +/***/ }), + +/***/ "./node_modules/backstop-twentytwenty/index.js": +/*!*****************************************************!*\ + !*** ./node_modules/backstop-twentytwenty/index.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/factory.js": +/*!****************************************************!*\ + !*** ./node_modules/create-react-class/factory.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/index.js": +/*!**************************************************!*\ + !*** ./node_modules/create-react-class/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); + +/***/ }), + +/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! + \*****************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); + +/***/ }), + +/***/ "./node_modules/exenv/index.js": +/*!*************************************!*\ + !*** ./node_modules/exenv/index.js ***! + \*************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/EventListener.js": +/*!************************************************!*\ + !*** ./node_modules/fbjs/lib/EventListener.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelize.js": +/*!*******************************************!*\ + !*** ./node_modules/fbjs/lib/camelize.js ***! + \*******************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": +/*!****************************************************!*\ + !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/containsNode.js": +/*!***********************************************!*\ + !*** ./node_modules/fbjs/lib/containsNode.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": +/*!*******************************************************!*\ + !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); + +/***/ }), + +/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": +/*!********************************************************!*\ + !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n * - - - - diff --git a/src/report/html_report/index_bundle.js b/src/report/html_report/index_bundle.js deleted file mode 100644 index 6166eba97..000000000 --- a/src/report/html_report/index_bundle.js +++ /dev/null @@ -1,3602 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./compare/src/index.js"); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ "./compare/src/actions/index.js": -/*!**************************************!*\ - !*** ./compare/src/actions/index.js ***! - \**************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar approveTest = exports.approveTest = function approveTest(id) {\n return {\n type: 'APPROVE_TEST',\n id: id\n };\n};\n\nvar filterTests = exports.filterTests = function filterTests(status) {\n return {\n type: 'FILTER_TESTS',\n status: status\n };\n};\n\nvar findTests = exports.findTests = function findTests(value) {\n return {\n type: 'SEARCH_TESTS',\n value: value\n };\n};\n\nvar updateSettings = exports.updateSettings = function updateSettings(id) {\n return {\n type: 'UPDATE_SETTINGS',\n id: id\n };\n};\n\nvar toggleAllImages = exports.toggleAllImages = function toggleAllImages(value) {\n return {\n type: 'TOGGLE_ALL_IMAGES',\n value: value\n };\n};\n\nvar openModal = exports.openModal = function openModal(value) {\n return {\n type: 'OPEN_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar closeModal = exports.closeModal = function closeModal(value) {\n return {\n type: 'CLOSE_SCRUBBER_MODAL',\n value: value\n };\n};\n\nvar showScrubberTestImage = exports.showScrubberTestImage = function showScrubberTestImage(value) {\n return {\n type: 'SHOW_SCRUBBER_TEST_IMAGE',\n value: value\n };\n};\n\nvar showScrubberRefImage = exports.showScrubberRefImage = function showScrubberRefImage(value) {\n return {\n type: 'SHOW_SCRUBBER_REF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDiffImage = exports.showScrubberDiffImage = function showScrubberDiffImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIFF_IMAGE',\n value: value\n };\n};\n\nvar showScrubberDivergedImage = exports.showScrubberDivergedImage = function showScrubberDivergedImage(value) {\n return {\n type: 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n value: value\n };\n};\n\nvar showScrubber = exports.showScrubber = function showScrubber(value) {\n return {\n type: 'SHOW_SCRUBBER',\n value: value\n };\n};\n\n//# sourceURL=webpack:///./compare/src/actions/index.js?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/close.png": -/*!********************************************!*\ - !*** ./compare/src/assets/icons/close.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAzZJREFUeAHlm89q20AQhyv5lBAo+FJCn6GF3nostm+GkIv7kPEll1yMMbnm2pBHKL0ZAkkKubjzE96yUSxpZ2dm9ccLQmtpd2e+T5JtVmz2gcpisTjZbrc/qXq22+2uN5vNbxwfWplMJp+zLLskrqfxeHy1XC7/Znv4OwL/AmBq8IhG6/X6Fp+HUmaz2Q9cXNo+gokYf5GE7zmuvIPHCTSg7QYd8HkIZQ9/4+DBRPWvYM+pflaGpJOnQ5HgwZ+WOcGeE+g1bvvyySFIqIMHM9hzfOHhmaftZUgSGuBfwFywO+iADvO+fDFyWDInAHtOR79fl+pchjcC+i6BCw/edwL6KiEGvlJA3yTEwtcK6IsECXyjgK5LkMIHCeiqBA34YAFdk6AFzxLQFQma8GwBbUvQho8S0JYEC/hoAaklWMGLBKSSYAkvFmAtwRpeRYCVhBTwagK0JaSCVxWgJSElvLoAqYTU8CYCYiW0AW8mgCuhLXhTAaES0A7vIDANj7pfMFNNm+lk7MEpMT8Jab3p6mL8tuAR21wAgtRJwPlySXHlXcwkAhAsVEJKeOSVTECIhNTwyAkvR4+6JLsDjvoRCIV3t2LKR8H8EaiD34M+O3C3x88i/hugrztmtTd9BALg5wADbFv/BcwEhMC71+2cttp3gomAGKCYPhoy1AVIQCR9Y2WoCtAA0BiDI0NNgGbimmM1yVARYJGwxZiHZIgFWCZqObaTIRKQIkHrGNECrBNzVwh7y1hRAiwT8sH9ulVMtgCrRHzYqrpFbJYAiwSqYKuOa+cQLEA7cBVgyHHNXIIEaAYMAQxpo5VTowCtQCFQ3DYaudUK0AjAheK2l+ZYKUA6MBdE0l6S60EBkgElIJK+sTm/ExA7kCR5rb4xub8REDOAVvJa43AZ/gvgdtRK2GIcDkshgNPBImGLMZuYRqPRZLVa3WX75aQPNC1drKj0k0n5gsKPq1VvkPCH4nzLCfJyiPCQiGl34pvjQpalEvM5Hb/Am6Gn8kl0QEc3b18+36fPDRJec6yiJth7B0V1LJ4eBLxjggQ888SF274oVMfi6aviS/BYls9Pp9NPBH5Bt/8r4LF8/h8bZl9WdQoucwAAAABJRU5ErkJggg==\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/close.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/iconDown.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/iconDown.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAICAYAAADwdn+XAAAABGdBTUEAALGPC/xhBQAAAPdJREFUKBVjZMABEhISOB4/frwcJC0rKxu5YMGCH9iUMmIT9PPz4/369eum////P2NkZPwPVCPNzc3tt2nTps/o6pnQBXx9fUWAmvcBxa/t3bs3Zs+ePbEgNkgMJIeuHsUAJycn6W/fvh0C2roTqDkbZDsIQ9k7QXIgNciGMMM47u7uKkAn7wfyZwI1tMLEYfS9e/f2KSkpcQD5M9TU1LbevXv3HUgObICzs7Pev3//9gD5TUDNU0ES2MD9+/ePAw35AlS7CEjvAfJfMgI1WwIVrwfiHKDmNdg0oosB9YQAxaYAcSAoDKYxMTHFEasZZBhILUgPSC8A/Zdrp6hdBGQAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/iconDown.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/search.png": -/*!*********************************************!*\ - !*** ./compare/src/assets/icons/search.png ***! - \*********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,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\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/search.png?"); - -/***/ }), - -/***/ "./compare/src/assets/icons/settings.png": -/*!***********************************************!*\ - !*** ./compare/src/assets/icons/settings.png ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports) { - -eval("module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAQZJREFUWAndVEESgyAMLB1fxrF9bznyNQudsSq62QZisfWiZiEkm2XdBTze+0eCbgAOMcY7wFThq7AaHZ63SJiQcgsN29A6kjp1y0hiZlz+t35LDLTm/mj/QGYNkxgxEboy4JwbB6Rm1mGpDUgVAboykGujt4AxQRqksMRAQLvT7LJJ/cezMpmWlsh1htYtjUBbj2TPEKMi1FZRXk8mYksGtLW+1ldbsfY0wMSJrdiow3eaUhsT0F8DUyVWbzBrmN6Sgd+0bmjFtdYKuQaANAJonymXhIGj9sPUisvroxXZ/rFzVGJgXnXgV7UVGzFxYitmHZbaqJ1Sfw2wyhkTbD/DJQa+Yq1PGOtJ/BpD3bUAAAAASUVORK5CYII=\"\n\n//# sourceURL=webpack:///./compare/src/assets/icons/settings.png?"); - -/***/ }), - -/***/ "./compare/src/assets/images/logo.png": -/*!********************************************!*\ - !*** ./compare/src/assets/images/logo.png ***! - \********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("module.exports = __webpack_require__.p + \"a96f14595379b7c348d66e115ec65a93.png\";\n\n//# sourceURL=webpack:///./compare/src/assets/images/logo.png?"); - -/***/ }), - -/***/ "./compare/src/components/App.js": -/*!***************************************!*\ - !*** ./compare/src/components/App.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n padding: 0 30px;\\n'], ['\\n padding: 0 30px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _Header = __webpack_require__(/*! ./ecosystems/Header */ \"./compare/src/components/ecosystems/Header.js\");\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _List = __webpack_require__(/*! ./ecosystems/List */ \"./compare/src/components/ecosystems/List.js\");\n\nvar _List2 = _interopRequireDefault(_List);\n\nvar _ScrubberModal = __webpack_require__(/*! ./ecosystems/ScrubberModal */ \"./compare/src/components/ecosystems/ScrubberModal.js\");\n\nvar _ScrubberModal2 = _interopRequireDefault(_ScrubberModal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// ESLint\n/* eslint-disable no-unused-vars */\n\n\nvar Wrapper = _styledComponents2.default.section(_templateObject);\n\nvar App = function (_React$Component) {\n _inherits(App, _React$Component);\n\n function App() {\n _classCallCheck(this, App);\n\n return _possibleConstructorReturn(this, (App.__proto__ || Object.getPrototypeOf(App)).apply(this, arguments));\n }\n\n _createClass(App, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n _reactSticky.StickyContainer,\n null,\n _react2.default.createElement(_Header2.default, null),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(_List2.default, null)\n ),\n _react2.default.createElement(_ScrubberModal2.default, null)\n );\n }\n }]);\n\n return App;\n}(_react2.default.Component);\n\nexports.default = App;\n\n//# sourceURL=webpack:///./compare/src/components/App.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonFilter.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ButtonFilter.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n'], ['\\n font-size: 20px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n background-color: ', ';\\n border: none;\\n border-radius: 3px;\\n box-shadow: ', ';\\n color: ', ';\\n margin-right: 15px;\\n padding: 0px 30px;\\n opacity: ', ';\\n outline: none;\\n height: 100%;\\n transition: all 0.3s ease-in-out;\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.pass {\\n background-color: ', ';\\n color: ', ';\\n }\\n\\n &.fail {\\n background-color: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.white, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, _styles.colors.primaryText, function (props) {\n return props.selected ? '1' : '0.5';\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _styles.colors.green, _styles.colors.white, _styles.colors.red, _styles.colors.white);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n count = _props.count,\n label = _props.label,\n status = _props.status;\n\n\n return _react2.default.createElement(\n Button,\n {\n onClick: this.props.onClick,\n selected: this.props.selected,\n className: status\n },\n status !== 'all' ? count : '',\n ' ',\n label\n );\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonFilter.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ButtonSettings.js": -/*!********************************************************!*\ - !*** ./compare/src/components/atoms/ButtonSettings.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n'], ['\\n border: none;\\n height: 100%;\\n border-radius: 3px;\\n background: ', ';\\n margin-left: 15px;\\n padding: 0 20px;\\n box-shadow: ', ';\\n transition: all 0.3s ease-in-out;\\n\\n &.active {\\n box-shadow: none;\\n opacity: 0.6;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &:focus {\\n outline: none;\\n }\\n\\n .icon {\\n height: 18px;\\n width: 18px;\\n display: block;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-position: center;\\n margin: 0 auto;\\n padding-bottom: 5px;\\n }\\n\\n .label {\\n font-family: ', ';\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _settings = __webpack_require__(/*! ../../assets/icons/settings.png */ \"./compare/src/assets/icons/settings.png\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n}, _settings2.default, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ButtonSettings = function (_React$Component) {\n _inherits(ButtonSettings, _React$Component);\n\n function ButtonSettings() {\n _classCallCheck(this, ButtonSettings);\n\n return _possibleConstructorReturn(this, (ButtonSettings.__proto__ || Object.getPrototypeOf(ButtonSettings)).apply(this, arguments));\n }\n\n _createClass(ButtonSettings, [{\n key: 'render',\n value: function render() {\n var isActive = this.props.active ? 'active' : '';\n\n return _react2.default.createElement(\n Button,\n { onClick: this.props.onClick, className: isActive },\n _react2.default.createElement('span', { className: 'icon' })\n );\n }\n }]);\n\n return ButtonSettings;\n}(_react2.default.Component);\n\nexports.default = ButtonSettings;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ButtonSettings.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/DiffDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/DiffDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n diff = _props.diff,\n suppress = _props.suppress;\n\n if (!diff || suppress) {\n return null;\n }\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'diff%: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.misMatchPercentage,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-x: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.width,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'diff-y: '\n ),\n _react2.default.createElement(\n Value,\n null,\n diff.dimensionDifference.height,\n ' '\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/DiffDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ErrorMessages.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ErrorMessages.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n'], ['\\n background: transparent;\\n display: ', ';\\n padding: 10px;\\n font-family: ', ';\\n color: ', ';\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n'], ['\\n word-wrap: break-word;\\n font-family: monospace;\\n background: rgb(251, 234, 234);\\n padding: 2ex;\\n color: brown;\\n display: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject, function (props) {\n return props.display ? 'block' : 'none';\n}, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar ErrorMsg = _styledComponents2.default.p(_templateObject2, function (props) {\n return props.display ? 'block' : 'none';\n});\n\nvar ErrorMessages = function (_React$Component) {\n _inherits(ErrorMessages, _React$Component);\n\n function ErrorMessages(props) {\n _classCallCheck(this, ErrorMessages);\n\n var _this = _possibleConstructorReturn(this, (ErrorMessages.__proto__ || Object.getPrototypeOf(ErrorMessages)).call(this, props));\n\n _this.state = {};\n return _this;\n }\n\n _createClass(ErrorMessages, [{\n key: 'render',\n value: function render() {\n var backstopError = this.props.info.error;\n var engineError = this.props.info.engineErrorMsg;\n var display = !!engineError || !!backstopError;\n\n return _react2.default.createElement(\n DetailsPanel,\n { display: display },\n _react2.default.createElement(\n ErrorMsg,\n { display: engineError },\n 'ENGINE ERROR: ',\n engineError\n ),\n _react2.default.createElement(\n ErrorMsg,\n { display: backstopError },\n 'BACKSTOP ERROR: ',\n backstopError\n )\n );\n }\n }]);\n\n return ErrorMessages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ErrorMessagesContainer = (0, _reactRedux.connect)(mapStateToProps)(ErrorMessages);\n\nexports.default = ErrorMessagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ErrorMessages.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/IdContainer.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/IdContainer.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n'], ['\\n font-size: 14px;\\n font-family: ', ';\\n font-weight: normal;\\n font-style: normal;\\n margin: 0;\\n color: ', ';\\n flex: 1 0 auto;\\n padding-left: 15px;\\n margin-left: 15px;\\n margin-top: 7px;\\n position: relative;\\n\\n :before {\\n content: \\'\\';\\n width: 2px;\\n height: 35px;\\n background: ', ';\\n display: block;\\n position: absolute;\\n left: 0;\\n top: -10px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar IdTitle = _styledComponents2.default.h3(_templateObject, _styles.fonts.arial, _styles.colors.secondaryText, _styles.colors.borderGray);\n\nvar IdConfig = function (_React$Component) {\n _inherits(IdConfig, _React$Component);\n\n function IdConfig() {\n _classCallCheck(this, IdConfig);\n\n return _possibleConstructorReturn(this, (IdConfig.__proto__ || Object.getPrototypeOf(IdConfig)).apply(this, arguments));\n }\n\n _createClass(IdConfig, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n IdTitle,\n null,\n this.props.idConfig\n );\n }\n }]);\n\n return IdConfig;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n idConfig: state.suiteInfo.idConfig\n };\n};\n\nvar IdContainer = (0, _reactRedux.connect)(mapStateToProps)(IdConfig);\n\nexports.default = IdContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/IdContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImagePreview.js": -/*!******************************************************!*\ - !*** ./compare/src/components/atoms/ImagePreview.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n width: auto;\\n max-width: 100%;\\n max-height: ', ';\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n'], ['\\n flex: 1 1 auto;\\n padding: 0 25px;\\n padding-top: ', ';\\n text-align: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n'], ['\\n text-align: center;\\n font-family: ', ';\\n color: ', ';\\n display: block;\\n margin: 0 auto;\\n text-transform: uppercase;\\n padding: 5px 0;\\n padding-bottom: 15px;\\n font-size: 12px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _reactVisibilitySensor = __webpack_require__(/*! react-visibility-sensor */ \"./node_modules/react-visibility-sensor/visibility-sensor.js\");\n\nvar _reactVisibilitySensor2 = _interopRequireDefault(_reactVisibilitySensor);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar BASE64_PNG_STUB = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\nvar Image = _styledComponents2.default.img(_templateObject, function (props) {\n return props.settings.textInfo ? '150px' : '400px';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2, function (props) {\n return props.withText ? '10px' : '20px';\n});\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar visibilitySensorProps = {\n offset: {\n bottom: -400\n },\n partialVisibility: true\n};\n\nvar ImagePreview = function (_React$Component) {\n _inherits(ImagePreview, _React$Component);\n\n function ImagePreview(props) {\n _classCallCheck(this, ImagePreview);\n\n var _this = _possibleConstructorReturn(this, (ImagePreview.__proto__ || Object.getPrototypeOf(ImagePreview)).call(this, props));\n\n _this.state = {\n isVisible: false\n };\n _this.onLoadError = _this.onLoadError.bind(_this);\n _this.onChange = _this.onChange.bind(_this);\n return _this;\n }\n\n _createClass(ImagePreview, [{\n key: 'onChange',\n value: function onChange(isVisible) {\n if (isVisible && !this.state.isVisible) {\n console.log('setting state to visible');\n this.setState({\n isVisible: true\n });\n }\n }\n }, {\n key: 'onLoadError',\n value: function onLoadError() {\n this.setState({\n imgLoadError: true\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n hidden = _props.hidden,\n settings = _props.settings,\n label = _props.label,\n src = _props.src;\n\n if (!src || src === '../..' || this.state.imgLoadError) {\n src = BASE64_PNG_STUB;\n }\n if (this.state.isVisible) {\n return _react2.default.createElement(\n Wrapper,\n { hidden: hidden, withText: settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n label\n ),\n _react2.default.createElement(Image, _extends({}, this.props, { src: src, onError: this.onLoadError }))\n );\n }\n return _react2.default.createElement(_reactVisibilitySensor2.default, _extends({}, visibilitySensorProps, { onChange: this.onChange }));\n }\n }]);\n\n return ImagePreview;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar ImagePreviewContainer = (0, _reactRedux.connect)(mapStateToProps)(ImagePreview);\n\nexports.default = ImagePreviewContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImagePreview.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/ImageScrubber.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/ImageScrubber.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n'], ['\\n margin: 1em;\\n padding: 10px 16px;\\n height: 32px;\\n background-color: ', ';\\n color: ', ';\\n border-radius: 3px;\\n text-transform: uppercase;\\n font-family: ', ';\\n text-align: center;\\n font-size: 12px;\\n border: none;\\n box-shadow: ', ';\\n\\n transition: all 100ms ease-in-out;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n box-shadow: ', ';\\n }\\n\\n &.loadingDiverged {\\n animation: blink normal 1200ms infinite ease-in-out;\\n background-color: green;\\n }\\n @keyframes blink {\\n 0% {\\n opacity: 1;\\n }\\n 50% {\\n opacity: 0.75;\\n }\\n 100% {\\n opacity: 1;\\n }\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n'], ['\\n cursor: ew-resize;\\n padding-bottom: 20px;\\n overflow: hidden;\\n\\n .testImage {\\n opacity: 1;\\n }\\n\\n .testImage,\\n .refImage {\\n max-width: 100%;\\n }\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n'], ['\\n display: flex;\\n justify-content: center;\\n padding-top: 10px;\\n padding-bottom: 10px;\\n position: sticky;\\n top: 0;\\n z-index: 5;\\n background: white;\\n border-bottom: 1px solid #e4e4e4;\\n\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n'], ['\\n height: 100%;\\n width: 5px;\\n background: ', ';\\n transform: translate(-2.5px, 0);\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _backstopTwentytwenty = __webpack_require__(/*! backstop-twentytwenty */ \"./node_modules/backstop-twentytwenty/index.js\");\n\nvar _backstopTwentytwenty2 = _interopRequireDefault(_backstopTwentytwenty);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ScrubberViewBtn = _styledComponents2.default.button(_templateObject, function (props) {\n return props.selected ? _styles.colors.secondaryText : _styles.colors.lightGray;\n}, function (props) {\n return props.selected ? _styles.colors.lightGray : _styles.colors.secondaryText;\n}, _styles.fonts.latoRegular, function (props) {\n return props.selected ? 'none' : _styles.shadows.shadow01;\n}, function (props) {\n return !props.selected ? _styles.shadows.shadow02 : '';\n});\n\nvar Wrapper = _styledComponents2.default.div(_templateObject2);\n\nvar WrapTitle = _styledComponents2.default.div(_templateObject3);\n\nvar SliderBar = _styledComponents2.default.div(_templateObject4, _styles.colors.red);\n\nvar ImageScrubber = function (_React$Component) {\n _inherits(ImageScrubber, _React$Component);\n\n function ImageScrubber(props) {\n _classCallCheck(this, ImageScrubber);\n\n var _this = _possibleConstructorReturn(this, (ImageScrubber.__proto__ || Object.getPrototypeOf(ImageScrubber)).call(this, props));\n\n _this.state = {\n dontUseScrubberView: false,\n isLoading: false\n };\n\n _this.handleLoadingError = _this.handleLoadingError.bind(_this);\n _this.loadingDiverge = _this.loadingDiverge.bind(_this);\n return _this;\n }\n\n _createClass(ImageScrubber, [{\n key: 'handleLoadingError',\n value: function handleLoadingError() {\n this.setState({\n dontUseScrubberView: true\n });\n }\n }, {\n key: 'loadingDiverge',\n value: function loadingDiverge(torf) {\n this.setState({\n isLoading: !!torf\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n scrubberModalMode = _props.scrubberModalMode,\n testImageType = _props.testImageType,\n position = _props.position,\n refImage = _props.refImage,\n testImage = _props.testImage,\n diffImage = _props.diffImage,\n divergedImage = _props.divergedImage,\n showButtons = _props.showButtons,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n var scrubberTestImageSlug = this.props[testImageType];\n\n // only show the diverged option if the report comes from web server\n function showDivergedOption() {\n return (/remote/.test(location.search)\n );\n }\n\n // TODO: halp. i don't haz context.\n var that = this;\n\n function divergedWorker() {\n if (that.state.isLoading) {\n console.error('Diverged process is already running. Please hang on.');\n return;\n }\n\n if (divergedImage) {\n showScrubberDivergedImage(divergedImage);\n return;\n }\n\n showScrubberDivergedImage('');\n that.loadingDiverge(true);\n\n var refImg = document.images.isolatedRefImage;\n var testImg = document.images.isolatedTestImage;\n var h = refImg.height;\n var w = refImg.width;\n\n var worker = new Worker('divergedWorker.js');\n\n worker.addEventListener('message', function (result) {\n var divergedImgData = result.data;\n var clampedImgData = getEmptyImgData(h, w);\n for (var i = divergedImgData.length - 1; i >= 0; i--) {\n clampedImgData.data[i] = divergedImgData[i];\n }\n var lcsDiffResult = imageToCanvasContext(null, h, w);\n lcsDiffResult.putImageData(clampedImgData, 0, 0);\n\n var divergedImageResult = lcsDiffResult.canvas.toDataURL('image/png');\n showScrubberDivergedImage(divergedImageResult);\n that.loadingDiverge(false);\n }, false);\n\n worker.addEventListener('error', function (error) {\n showScrubberDivergedImage('');\n that.loadingDiverge(false);\n console.error(error);\n });\n\n worker.postMessage({\n divergedInput: [getImgDataDataFromContext(imageToCanvasContext(refImg)), getImgDataDataFromContext(imageToCanvasContext(testImg)), h, w]\n });\n }\n\n var dontUseScrubberView = this.state.dontUseScrubberView || !showButtons;\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n WrapTitle,\n null,\n showButtons && _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_REF_IMAGE',\n onClick: showScrubberRefImage\n },\n 'REFERENCE'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_TEST_IMAGE',\n onClick: showScrubberTestImage\n },\n 'TEST'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIFF_IMAGE',\n onClick: showScrubberDiffImage\n },\n 'DIFF'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SCRUB',\n onClick: showScrubber\n },\n 'SCRUBBER'\n ),\n _react2.default.createElement(\n ScrubberViewBtn,\n {\n selected: scrubberModalMode === 'SHOW_SCRUBBER_DIVERGED_IMAGE',\n onClick: divergedWorker,\n className: this.state.isLoading ? 'loadingDiverged' : '',\n style: {\n display: showDivergedOption() ? '' : 'none'\n }\n },\n this.state.isLoading ? 'DIVERGING!' : 'DIVERGED'\n )\n )\n ),\n _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement('img', {\n id: 'isolatedRefImage',\n src: refImage,\n style: {\n display: 'none'\n }\n }),\n _react2.default.createElement('img', {\n id: 'isolatedTestImage',\n className: 'testImage',\n src: testImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement('img', {\n className: 'diffImage',\n src: diffImage,\n style: {\n margin: 'auto',\n display: dontUseScrubberView ? 'block' : 'none'\n }\n }),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: dontUseScrubberView ? 'none' : 'block'\n }\n },\n _react2.default.createElement(\n _backstopTwentytwenty2.default,\n {\n verticalAlign: 'top',\n minDistanceToBeginInteraction: 0,\n maxAngleToBeginInteraction: Infinity,\n initialPosition: position,\n newPosition: position\n },\n _react2.default.createElement('img', {\n id: 'scrubberRefImage',\n className: 'refImage',\n src: refImage,\n onError: this.handleLoadingError\n }),\n _react2.default.createElement('img', {\n id: 'scrubberTestImage',\n className: 'testImage',\n src: scrubberTestImageSlug\n }),\n _react2.default.createElement(SliderBar, { className: 'slider' })\n )\n )\n )\n );\n }\n }]);\n\n return ImageScrubber;\n}(_react2.default.Component);\n\n/**\n * ========= DIVERGED HELPERS ========\n */\n\n\nexports.default = ImageScrubber;\nfunction getImgDataDataFromContext(context) {\n return context.getImageData(0, 0, context.canvas.width, context.canvas.height).data;\n}\n\nfunction getEmptyImgData(h, w) {\n var o = imageToCanvasContext(null, h, w);\n return o.createImageData(w, h);\n}\n\nfunction imageToCanvasContext(_img, h, w) {\n var img = _img;\n if (!_img) {\n img = { height: h, width: w };\n }\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n var context = canvas.getContext('2d');\n if (_img) {\n context.drawImage(img, 0, 0);\n }\n return context;\n}\n\n//# sourceURL=webpack:///./compare/src/components/atoms/ImageScrubber.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/InputTextSearch.js": -/*!*********************************************************!*\ - !*** ./compare/src/components/atoms/InputTextSearch.js ***! - \*********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n'], ['\\n display: block;\\n height: 100%;\\n border: none;\\n font-size: 16px;\\n background-color: ', ';\\n padding: 0 10px 0 55px;\\n font-family: ', ';\\n width: 100%;\\n box-sizing: border-box;\\n border-radius: 3px;\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position-x: 15px;\\n background-position-y: calc(100% / 2);\\n background-size: 22px;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &::placeholder {\\n font-family: ', ';\\n font-weight: 400;\\n font-style: italic;\\n color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _search = __webpack_require__(/*! ../../assets/icons/search.png */ \"./compare/src/assets/icons/search.png\");\n\nvar _search2 = _interopRequireDefault(_search);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Input = _styledComponents2.default.input(_templateObject, _styles.colors.lightGray, _styles.fonts.latoRegular, _search2.default, _styles.fonts.arial, _styles.colors.secondaryText);\n\nvar ButtonFilter = function (_React$Component) {\n _inherits(ButtonFilter, _React$Component);\n\n function ButtonFilter() {\n _classCallCheck(this, ButtonFilter);\n\n return _possibleConstructorReturn(this, (ButtonFilter.__proto__ || Object.getPrototypeOf(ButtonFilter)).apply(this, arguments));\n }\n\n _createClass(ButtonFilter, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(Input, {\n placeholder: 'Filter tests with search...',\n onChange: this.props.onChange.bind(this)\n });\n }\n }]);\n\n return ButtonFilter;\n}(_react2.default.Component);\n\nexports.default = ButtonFilter;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/InputTextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/Logo.js": -/*!**********************************************!*\ - !*** ./compare/src/components/atoms/Logo.js ***! - \**********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n height: 35px;\\n'], ['\\n display: block;\\n height: 35px;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _logo = __webpack_require__(/*! ../../assets/images/logo.png */ \"./compare/src/assets/images/logo.png\");\n\nvar _logo2 = _interopRequireDefault(_logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar LogoImage = _styledComponents2.default.img(_templateObject);\n\nvar Logo = function (_React$Component) {\n _inherits(Logo, _React$Component);\n\n function Logo() {\n _classCallCheck(this, Logo);\n\n return _possibleConstructorReturn(this, (Logo.__proto__ || Object.getPrototypeOf(Logo)).apply(this, arguments));\n }\n\n _createClass(Logo, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n 'a',\n { href: 'https://garris.github.io/BackstopJS/', target: '_blank' },\n _react2.default.createElement(LogoImage, { src: _logo2.default })\n );\n }\n }]);\n\n return Logo;\n}(_react2.default.Component);\n\nexports.default = Logo;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/Logo.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/NavButtons.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/NavButtons.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n'], ['\\n a {\\n display: inline-block;\\n text-align: right;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n'], ['\\n background-color: ', ';\\n background-image: url(', ');\\n background-repeat: no-repeat;\\n background-position: center center;\\n color: ', ';\\n border-radius: 3px;\\n height: 32px;\\n width: 32px;\\n margin: 0 0px 0 5px;\\n transform: ', ';\\n opacity: ', ';\\n display: inline-block;\\n\\n &:hover {\\n cursor: ', ';\\n background-color: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _jump = __webpack_require__(/*! jump.js */ \"./node_modules/jump.js/dist/jump.module.js\");\n\nvar _jump2 = _interopRequireDefault(_jump);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _iconDown = __webpack_require__(/*! ../../assets/icons/iconDown.png */ \"./compare/src/assets/icons/iconDown.png\");\n\nvar _iconDown2 = _interopRequireDefault(_iconDown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ButtonNav = _styledComponents2.default.div(_templateObject2, _styles.colors.lightGray, _iconDown2.default, _styles.colors.secondaryText, function (props) {\n return props.prev ? 'rotate(0)' : 'rotate(180deg)';\n}, function (props) {\n return props.disabled ? '0.2' : '1';\n}, function (props) {\n return props.disabled ? '' : 'pointer';\n}, function (props) {\n return props.disabled ? '' + _styles.colors.lightGray : '' + _styles.colors.medGray;\n});\n\nvar NavButtons = function (_React$Component) {\n _inherits(NavButtons, _React$Component);\n\n function NavButtons() {\n _classCallCheck(this, NavButtons);\n\n return _possibleConstructorReturn(this, (NavButtons.__proto__ || Object.getPrototypeOf(NavButtons)).apply(this, arguments));\n }\n\n _createClass(NavButtons, [{\n key: 'nextTest',\n value: function nextTest() {\n var dest = '#test' + (this.props.currentId + 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'prevTest',\n value: function prevTest() {\n var dest = '#test' + (this.props.currentId - 1);\n this.jumpTo(dest);\n }\n }, {\n key: 'jumpTo',\n value: function jumpTo(dest) {\n (0, _jump2.default)(dest, {\n duration: 0,\n offset: -100\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n currentId = _props.currentId,\n lastId = _props.lastId;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n currentId === 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true, disabled: true }),\n currentId !== 0 && _react2.default.createElement(ButtonNav, { onClick: this.prevTest.bind(this), prev: true }),\n lastId !== currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this) }),\n lastId === currentId && _react2.default.createElement(ButtonNav, { onClick: this.nextTest.bind(this), disabled: true })\n );\n }\n }]);\n\n return NavButtons;\n}(_react2.default.Component);\n\nexports.default = NavButtons;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/NavButtons.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SettingOption.js": -/*!*******************************************************!*\ - !*** ./compare/src/components/atoms/SettingOption.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n'], ['\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n padding: 10px 0;\\n\\n span {\\n padding-right: 10px;\\n text-align: left;\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactToggleButton = __webpack_require__(/*! react-toggle-button */ \"./node_modules/react-toggle-button/lib/index.js\");\n\nvar _reactToggleButton2 = _interopRequireDefault(_reactToggleButton);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar WrapperOption = _styledComponents2.default.div(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SettingOption = function (_React$Component) {\n _inherits(SettingOption, _React$Component);\n\n function SettingOption() {\n _classCallCheck(this, SettingOption);\n\n return _possibleConstructorReturn(this, (SettingOption.__proto__ || Object.getPrototypeOf(SettingOption)).apply(this, arguments));\n }\n\n _createClass(SettingOption, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n label = _props.label,\n value = _props.value,\n onToggle = _props.onToggle;\n\n\n return _react2.default.createElement(\n WrapperOption,\n null,\n _react2.default.createElement(\n 'span',\n null,\n label\n ),\n _react2.default.createElement(_reactToggleButton2.default, { value: value || false, onToggle: onToggle })\n );\n }\n }]);\n\n return SettingOption;\n}(_react2.default.Component);\n\nexports.default = SettingOption;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SettingOption.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/SuiteName.js": -/*!***************************************************!*\ - !*** ./compare/src/components/atoms/SuiteName.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n'], ['\\n font-size: 26px;\\n font-family: ', ';\\n flex: 0 0 auto;\\n margin: 0;\\n color: ', ';\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar SuiteNameTitle = _styledComponents2.default.h1(_templateObject, _styles.fonts.latoRegular, _styles.colors.primaryText);\n\nvar SuiteName = function (_React$Component) {\n _inherits(SuiteName, _React$Component);\n\n function SuiteName() {\n _classCallCheck(this, SuiteName);\n\n return _possibleConstructorReturn(this, (SuiteName.__proto__ || Object.getPrototypeOf(SuiteName)).apply(this, arguments));\n }\n\n _createClass(SuiteName, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n SuiteNameTitle,\n null,\n this.props.suiteName,\n ' Report'\n );\n }\n }]);\n\n return SuiteName;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n suiteName: state.suiteInfo.testSuiteName\n };\n};\n\nvar SuiteNameContainer = (0, _reactRedux.connect)(mapStateToProps)(SuiteName);\n\nexports.default = SuiteNameContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/SuiteName.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/TextDetails.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/atoms/TextDetails.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral([''], ['']),\n _templateObject2 = _taggedTemplateLiteral(['\\n padding: 5px 0;\\n'], ['\\n padding: 5px 0;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject4 = _taggedTemplateLiteral(['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject5 = _taggedTemplateLiteral(['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n'], ['\\n display: ', ';\\n position: absolute;\\n background-color: ', ';\\n padding: 10px;\\n top: -28px;\\n left: 20px;\\n box-shadow: 0 3px 6px 0 rgba(0, 0, 0, 0.16);\\n z-index: 999;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _DiffDetails = __webpack_require__(/*! ./DiffDetails */ \"./compare/src/components/atoms/DiffDetails.js\");\n\nvar _DiffDetails2 = _interopRequireDefault(_DiffDetails);\n\nvar _UrlDetails = __webpack_require__(/*! ./UrlDetails */ \"./compare/src/components/atoms/UrlDetails.js\");\n\nvar _UrlDetails2 = _interopRequireDefault(_UrlDetails);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styled\nvar WrapperDetails = _styledComponents2.default.div(_templateObject);\n\nvar Row = _styledComponents2.default.div(_templateObject2);\n\nvar Label = _styledComponents2.default.span(_templateObject3, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject4, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar DetailsPanel = _styledComponents2.default.div(_templateObject5, function (props) {\n return props.showPanel ? 'block' : 'none';\n}, _styles.colors.white);\n\nvar TextDetails = function (_React$Component) {\n _inherits(TextDetails, _React$Component);\n\n function TextDetails(props) {\n _classCallCheck(this, TextDetails);\n\n var _this = _possibleConstructorReturn(this, (TextDetails.__proto__ || Object.getPrototypeOf(TextDetails)).call(this, props));\n\n _this.state = {\n showPanel: false\n };\n\n _this.showPanel = _this.showPanel.bind(_this);\n _this.hidePanel = _this.hidePanel.bind(_this);\n return _this;\n }\n\n _createClass(TextDetails, [{\n key: 'showPanel',\n value: function showPanel() {\n var settings = this.props.settings;\n\n if (!settings.textInfo) {\n this.setState({\n showPanel: true\n });\n }\n }\n }, {\n key: 'hidePanel',\n value: function hidePanel() {\n this.setState({\n showPanel: false\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _props$info = this.props.info,\n label = _props$info.label,\n fileName = _props$info.fileName,\n selector = _props$info.selector,\n diff = _props$info.diff,\n url = _props$info.url,\n referenceUrl = _props$info.referenceUrl;\n var settings = this.props.settings;\n var showPanel = this.state.showPanel;\n\n\n return _react2.default.createElement(\n WrapperDetails,\n null,\n _react2.default.createElement(\n Row,\n { hidden: !settings.textInfo },\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n { onMouseOver: this.showPanel },\n fileName\n )\n ),\n _react2.default.createElement(_DiffDetails2.default, { suppress: !settings.textInfo, diff: diff }),\n _react2.default.createElement(\n DetailsPanel,\n _extends({ showPanel: showPanel }, { onMouseLeave: this.hidePanel }),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'label: '\n ),\n _react2.default.createElement(\n Value,\n null,\n label,\n ' '\n ),\n _react2.default.createElement(\n Label,\n null,\n 'selector: '\n ),\n _react2.default.createElement(\n Value,\n null,\n selector,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(\n Label,\n null,\n 'filename: '\n ),\n _react2.default.createElement(\n Value,\n null,\n fileName,\n ' '\n )\n ),\n _react2.default.createElement(\n Row,\n null,\n _react2.default.createElement(_UrlDetails2.default, { url: url, referenceUrl: referenceUrl }),\n _react2.default.createElement(_DiffDetails2.default, { diff: diff })\n )\n )\n );\n }\n }]);\n\n return TextDetails;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar TextDetailsContainer = (0, _reactRedux.connect)(mapStateToProps)(TextDetails);\n\nexports.default = TextDetailsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/TextDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/atoms/UrlDetails.js": -/*!****************************************************!*\ - !*** ./compare/src/components/atoms/UrlDetails.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 8px;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n'], ['\\n font-family: ', ';\\n color: ', ';\\n font-size: 14px;\\n padding-right: 20px;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n'], ['\\n &::before {\\n content: ', ';\\n margin: ', ';\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar Label = _styledComponents2.default.span(_templateObject, _styles.fonts.latoRegular, _styles.colors.secondaryText);\n\nvar Value = _styledComponents2.default.span(_templateObject2, _styles.fonts.latoBold, _styles.colors.primaryText);\n\nvar Link = _styledComponents2.default.a(_templateObject3, function (props) {\n return props.withSeperator ? '\"|\"' : '';\n}, function (props) {\n return props.withSeperator ? '0 10px' : '';\n});\n\nvar DiffDetails = function (_React$Component) {\n _inherits(DiffDetails, _React$Component);\n\n function DiffDetails() {\n _classCallCheck(this, DiffDetails);\n\n return _possibleConstructorReturn(this, (DiffDetails.__proto__ || Object.getPrototypeOf(DiffDetails)).apply(this, arguments));\n }\n\n _createClass(DiffDetails, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n url = _props.url,\n referenceUrl = _props.referenceUrl;\n\n return _react2.default.createElement(\n 'span',\n null,\n _react2.default.createElement(\n Label,\n null,\n 'url: '\n ),\n _react2.default.createElement(\n Value,\n null,\n _react2.default.createElement(\n Link,\n { href: url, target: '_blank' },\n 'test'\n ),\n referenceUrl && _react2.default.createElement(\n Link,\n { withSeperator: true, href: referenceUrl, target: '_blank' },\n 'reference'\n )\n )\n );\n }\n }]);\n\n return DiffDetails;\n}(_react2.default.Component);\n\nexports.default = DiffDetails;\n\n//# sourceURL=webpack:///./compare/src/components/atoms/UrlDetails.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/Header.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/ecosystems/Header.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n padding: 15px 0;\\n z-index: 999;\\n box-sizing: border-box;\\n position: relative;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactSticky = __webpack_require__(/*! react-sticky */ \"./node_modules/react-sticky/lib/index.js\");\n\nvar _topbar = __webpack_require__(/*! ../organisms/topbar */ \"./compare/src/components/organisms/topbar.js\");\n\nvar _topbar2 = _interopRequireDefault(_topbar);\n\nvar _Toolbar = __webpack_require__(/*! ../organisms/Toolbar */ \"./compare/src/components/organisms/Toolbar.js\");\n\nvar _Toolbar2 = _interopRequireDefault(_Toolbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar HeaderWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Header = function (_React$Component) {\n _inherits(Header, _React$Component);\n\n function Header() {\n _classCallCheck(this, Header);\n\n return _possibleConstructorReturn(this, (Header.__proto__ || Object.getPrototypeOf(Header)).apply(this, arguments));\n }\n\n _createClass(Header, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n HeaderWrapper,\n { className: 'header' },\n _react2.default.createElement(_topbar2.default, null),\n _react2.default.createElement(\n _reactSticky.Sticky,\n { topOffset: 72 },\n function (_ref) {\n var isSticky = _ref.isSticky,\n wasSticky = _ref.wasSticky,\n style = _ref.style,\n distanceFromTop = _ref.distanceFromTop,\n distanceFromBottom = _ref.distanceFromBottom,\n calculatedHeight = _ref.calculatedHeight;\n\n return _react2.default.createElement(_Toolbar2.default, { style: style });\n }\n )\n );\n }\n }]);\n\n return Header;\n}(_react2.default.Component);\n\nexports.default = Header;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/Header.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/List.js": -/*!***************************************************!*\ - !*** ./compare/src/components/ecosystems/List.js ***! - \***************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n margin-top: 20px;\\n z-index: 1;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _TestCard = __webpack_require__(/*! ../organisms/TestCard */ \"./compare/src/components/organisms/TestCard.js\");\n\nvar _TestCard2 = _interopRequireDefault(_TestCard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// organisms\n\n\nvar ListWrapper = _styledComponents2.default.section(_templateObject);\n\nvar List = function (_React$Component) {\n _inherits(List, _React$Component);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n tests = _props.tests,\n settings = _props.settings;\n\n var onlyText = !settings.refImage && !settings.testImage && !settings.diffImage;\n\n return _react2.default.createElement(\n ListWrapper,\n null,\n tests.map(function (test, i, arr) {\n return _react2.default.createElement(_TestCard2.default, {\n id: 'test' + i,\n numId: i,\n test: test,\n key: i,\n lastId: arr.length - 1,\n onlyText: onlyText\n });\n })\n );\n }\n }]);\n\n return List;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests.filtered,\n settings: state.layoutSettings\n };\n};\n\nvar ListContainer = (0, _reactRedux.connect)(mapStateToProps)(List);\n\nexports.default = ListContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/List.js?"); - -/***/ }), - -/***/ "./compare/src/components/ecosystems/ScrubberModal.js": -/*!************************************************************!*\ - !*** ./compare/src/components/ecosystems/ScrubberModal.js ***! - \************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n'], ['\\n display: block;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n'], ['\\n display: flex;\\n justify-content: space-between;\\n position: relative;\\n padding: 15px;\\n align-items: center;\\n']),\n _templateObject3 = _taggedTemplateLiteral(['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n'], ['\\n margin-right: 5px;\\n width: 30px;\\n height: 30px;\\n background-image: url(', ');\\n background-size: 100%;\\n background-repeat: no-repeat;\\n background-color: transparent;\\n border: none;\\n\\n &:focus {\\n outline: none;\\n }\\n\\n &:hover {\\n cursor: pointer;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactModal = __webpack_require__(/*! react-modal */ \"./node_modules/react-modal/lib/index.js\");\n\nvar _reactModal2 = _interopRequireDefault(_reactModal);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _close = __webpack_require__(/*! ../../assets/icons/close.png */ \"./compare/src/assets/icons/close.png\");\n\nvar _close2 = _interopRequireDefault(_close);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nvar _ImageScrubber = __webpack_require__(/*! ../atoms/ImageScrubber */ \"./compare/src/components/atoms/ImageScrubber.js\");\n\nvar _ImageScrubber2 = _interopRequireDefault(_ImageScrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// styles & icons\n\n\n// atoms\n\n\nvar Wrapper = _styledComponents2.default.div(_templateObject);\n\nvar ModalHeader = _styledComponents2.default.div(_templateObject2);\n\nvar ButtonClose = _styledComponents2.default.button(_templateObject3, _close2.default);\n\nvar customStyles = {\n content: {\n width: '100%',\n height: '100%',\n top: '0',\n left: '0',\n border: 'none',\n borderRadius: 'none',\n padding: '0px',\n boxSizing: 'border-box'\n }\n};\n\nvar ScrubberModal = function (_React$Component) {\n _inherits(ScrubberModal, _React$Component);\n\n function ScrubberModal() {\n _classCallCheck(this, ScrubberModal);\n\n return _possibleConstructorReturn(this, (ScrubberModal.__proto__ || Object.getPrototypeOf(ScrubberModal)).apply(this, arguments));\n }\n\n _createClass(ScrubberModal, [{\n key: 'render',\n value: function render() {\n var _props$scrubber$test = this.props.scrubber.test,\n refImage = _props$scrubber$test.reference,\n testImage = _props$scrubber$test.test,\n diffImage = _props$scrubber$test.diffImage,\n divergedImage = _props$scrubber$test.divergedImage;\n var _props$scrubber = this.props.scrubber,\n visible = _props$scrubber.visible,\n position = _props$scrubber.position,\n testImageType = _props$scrubber.testImageType,\n scrubberModalMode = _props$scrubber.scrubberModalMode;\n var _props = this.props,\n closeModal = _props.closeModal,\n showScrubberTestImage = _props.showScrubberTestImage,\n showScrubberRefImage = _props.showScrubberRefImage,\n showScrubberDiffImage = _props.showScrubberDiffImage,\n showScrubberDivergedImage = _props.showScrubberDivergedImage,\n showScrubber = _props.showScrubber;\n\n\n return _react2.default.createElement(\n Wrapper,\n null,\n _react2.default.createElement(\n _reactModal2.default,\n {\n isOpen: visible\n /* onAfterOpen={this.afterOpenModal} */\n , onRequestClose: closeModal,\n style: customStyles,\n contentLabel: 'Example Modal'\n },\n _react2.default.createElement(\n ModalHeader,\n null,\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(ButtonClose, { onClick: closeModal })\n ),\n _react2.default.createElement(_ImageScrubber2.default, {\n scrubberModalMode: scrubberModalMode,\n testImageType: testImageType,\n testImage: testImage,\n refImage: refImage,\n diffImage: diffImage,\n divergedImage: divergedImage,\n position: position,\n showButtons: diffImage && diffImage.length > 0,\n showScrubberTestImage: showScrubberTestImage,\n showScrubberRefImage: showScrubberRefImage,\n showScrubberDiffImage: showScrubberDiffImage,\n showScrubberDivergedImage: showScrubberDivergedImage,\n showScrubber: showScrubber\n })\n )\n );\n }\n }]);\n\n return ScrubberModal;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n scrubber: state.scrubber\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n closeModal: function closeModal() {\n dispatch((0, _actions.closeModal)(false));\n },\n showScrubberTestImage: function showScrubberTestImage(val) {\n dispatch((0, _actions.showScrubberTestImage)(val));\n },\n showScrubberRefImage: function showScrubberRefImage(val) {\n dispatch((0, _actions.showScrubberRefImage)(val));\n },\n showScrubberDiffImage: function showScrubberDiffImage(val) {\n dispatch((0, _actions.showScrubberDiffImage)(val));\n },\n showScrubberDivergedImage: function showScrubberDivergedImage(val) {\n dispatch((0, _actions.showScrubberDivergedImage)(val));\n },\n showScrubber: function showScrubber(val) {\n dispatch((0, _actions.showScrubber)(val));\n }\n };\n};\n\nvar ScrubberModalContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ScrubberModal);\n\nexports.default = ScrubberModalContainer;\n\n//# sourceURL=webpack:///./compare/src/components/ecosystems/ScrubberModal.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/ApproveButton.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/ApproveButton.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n'], ['\\n font-size: 12px;\\n line-height: auto;\\n font-family: ', ';\\n background-color: ', ';\\n border: none;\\n height: 32px;\\n border-radius: 3px;\\n color: ', ';\\n padding: 5px 5px;\\n\\n &:hover {\\n cursor: pointer;\\n background-color: ', ';\\n }\\n\\n &:disabled {\\n background-color: ', ';\\n color: ', ';\\n cursor: default;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar REMOTE_HOST = 'http://127.0.0.1';\nvar REMOTE_PORT = 3000;\nvar APPROVE_STATUS_TO_LABEL_MAP = Object.freeze({\n INITIAL: 'Approve',\n PENDING: 'Pending...',\n FAILED: 'Approve'\n});\n\nvar Button = _styledComponents2.default.button(_templateObject, _styles.fonts.latoRegular, _styles.colors.borderGray, _styles.colors.white, _styles.colors.green, _styles.colors.bodyColor, _styles.colors.secondaryText);\n\n// const ErrorMsg = styled.div`\n// word-wrap: break-word;\n// font-family: monospace;\n// background: rgb(251, 234, 234);\n// color: brown;\n// line-height: 32px;\n// `;\n\nvar ApproveButton = function (_React$Component) {\n _inherits(ApproveButton, _React$Component);\n\n function ApproveButton(props) {\n _classCallCheck(this, ApproveButton);\n\n var _this = _possibleConstructorReturn(this, (ApproveButton.__proto__ || Object.getPrototypeOf(ApproveButton)).call(this, props));\n\n _this.approve = _this.approve.bind(_this);\n _this.state = {\n approveStatus: 'INITIAL',\n errorMsg: null\n };\n return _this;\n }\n\n _createClass(ApproveButton, [{\n key: 'approve',\n value: async function approve() {\n var fileName = this.props.fileName;\n\n var url = REMOTE_HOST + ':' + REMOTE_PORT + '/approve?filter=' + fileName;\n this.setState({ approveStatus: 'PENDING' });\n\n try {\n var response = await fetch(url, {\n method: 'POST'\n });\n\n if (response.ok) {\n this.setState({ approveStatus: 'INITIAL' });\n this.props.approveTest(fileName, this.props.filterStatus);\n } else {\n var body = await response.json();\n this.setState({ approveStatus: 'FAILED', errorMsg: body.error });\n }\n } catch (err) {\n this.setState({\n approveStatus: 'FAILED',\n errorMsg: err.message + '. \\uD83E\\uDDD0\\nLooks like the \"approve\" operation failed.\\nPlease check that backstopRemote is running.\\n ' });\n alert(this.state.errorMsg);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var approveStatus = this.state.approveStatus;\n\n\n return _react2.default.createElement(\n 'div',\n null,\n _react2.default.createElement(\n Button,\n { onClick: this.approve, disabled: approveStatus === 'APPROVED' || approveStatus === 'PENDING' },\n APPROVE_STATUS_TO_LABEL_MAP[this.state.approveStatus]\n )\n );\n }\n }]);\n\n return ApproveButton;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n filterStatus: state.tests.filterStatus\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n approveTest: function approveTest(id, filterStatus) {\n dispatch((0, _actions.approveTest)(id));\n dispatch((0, _actions.filterTests)(filterStatus));\n }\n };\n};\n\nvar ApproveButtonContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(ApproveButton);\nexports.default = ApproveButtonContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/ApproveButton.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/FiltersSwitch.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/FiltersSwitch.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n display: flex;\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ButtonFilter = __webpack_require__(/*! ../atoms/ButtonFilter */ \"./compare/src/components/atoms/ButtonFilter.js\");\n\nvar _ButtonFilter2 = _interopRequireDefault(_ButtonFilter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject);\n\nfunction ButtonsFilter(props) {\n var availableStatus = props.availableStatus;\n\n var ListButton = availableStatus.map(function (status) {\n return _react2.default.createElement(_ButtonFilter2.default, {\n status: status.id,\n key: status.id,\n label: status.label,\n selected: props.filterStatus === status.id,\n count: status.count,\n onClick: function onClick() {\n return props.onClick(status.id);\n }\n });\n });\n\n return (\n // change this with React16\n _react2.default.createElement(\n 'div',\n { style: { height: '100%' } },\n ListButton\n )\n );\n}\n\nvar FiltersSwitch = function (_React$Component) {\n _inherits(FiltersSwitch, _React$Component);\n\n function FiltersSwitch() {\n _classCallCheck(this, FiltersSwitch);\n\n return _possibleConstructorReturn(this, (FiltersSwitch.__proto__ || Object.getPrototypeOf(FiltersSwitch)).apply(this, arguments));\n }\n\n _createClass(FiltersSwitch, [{\n key: 'render',\n value: function render() {\n var tests = this.props.tests;\n var availableStatus = [{\n id: 'all',\n label: 'all',\n count: tests.all.length\n }, {\n id: 'pass',\n label: 'passed',\n count: tests.all.filter(function (e) {\n return e.status === 'pass';\n }).length\n }, {\n id: 'fail',\n label: 'failed',\n count: tests.all.filter(function (e) {\n return e.status === 'fail';\n }).length\n }];\n\n return _react2.default.createElement(\n ButtonsWrapper,\n null,\n _react2.default.createElement(ButtonsFilter, {\n availableStatus: availableStatus,\n onClick: this.props.onButtonClick,\n filterStatus: tests.filterStatus\n })\n );\n }\n }]);\n\n return FiltersSwitch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onButtonClick: function onButtonClick(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar FiltersSwitchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(FiltersSwitch);\n\nexports.default = FiltersSwitchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/FiltersSwitch.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsContainer.js": -/*!***************************************************************!*\ - !*** ./compare/src/components/molecules/SettingsContainer.js ***! - \***************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 0 0 auto;\\n height: 100%;\\n'], ['\\n flex: 0 0 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _ButtonSettings = __webpack_require__(/*! ../atoms/ButtonSettings */ \"./compare/src/components/atoms/ButtonSettings.js\");\n\nvar _ButtonSettings2 = _interopRequireDefault(_ButtonSettings);\n\nvar _SettingsPopup = __webpack_require__(/*! ./SettingsPopup */ \"./compare/src/components/molecules/SettingsPopup.js\");\n\nvar _SettingsPopup2 = _interopRequireDefault(_SettingsPopup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n// import { findTests } from '../../actions'\n\n// atoms\n\n\n// molecules\n\n\nvar SettingsWrapper = _styledComponents2.default.div(_templateObject);\n\nvar SettingsPanel = function (_React$Component) {\n _inherits(SettingsPanel, _React$Component);\n\n function SettingsPanel(props) {\n _classCallCheck(this, SettingsPanel);\n\n var _this = _possibleConstructorReturn(this, (SettingsPanel.__proto__ || Object.getPrototypeOf(SettingsPanel)).call(this, props));\n\n _this.state = {\n popup: false\n };\n return _this;\n }\n\n _createClass(SettingsPanel, [{\n key: 'onButtonClick',\n value: function onButtonClick() {\n this.setState({\n popup: !this.state.popup\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var popupVisible = this.state.popup;\n\n return _react2.default.createElement(\n SettingsWrapper,\n null,\n _react2.default.createElement(_ButtonSettings2.default, {\n onClick: this.onButtonClick.bind(this),\n active: this.state.popup\n }),\n popupVisible && _react2.default.createElement(_SettingsPopup2.default, null)\n );\n }\n }]);\n\n return SettingsPanel;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {};\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n // onChange: value => {\n // dispatch(findTests(value))\n // }\n };\n};\n\nvar SettingsContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPanel);\n\nexports.default = SettingsContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsContainer.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/SettingsPopup.js": -/*!***********************************************************!*\ - !*** ./compare/src/components/molecules/SettingsPopup.js ***! - \***********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n'], ['\\n display: block;\\n position: absolute;\\n width: auto;\\n min-height: 100px;\\n background-color: ', ';\\n box-shadow: ', ';\\n right: 38px;\\n margin-top: 20px;\\n border-radius: 3px;\\n padding: 10px 25px;\\n z-index: 10;\\n\\n /* @TODO: shadow on arrow */\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 0;\\n height: 0;\\n position: absolute;\\n\\n border-top: 8px solid transparent;\\n border-bottom: 8px solid ', ';\\n border-right: 8px solid transparent;\\n border-left: 8px solid transparent;\\n right: 30px;\\n top: -16px;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SettingOption = __webpack_require__(/*! ../atoms/SettingOption */ \"./compare/src/components/atoms/SettingOption.js\");\n\nvar _SettingOption2 = _interopRequireDefault(_SettingOption);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar PopupWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.lightGray, _styles.shadows.shadow01, _styles.colors.lightGray);\n\nvar SettingsPopup = function (_React$Component) {\n _inherits(SettingsPopup, _React$Component);\n\n function SettingsPopup(props) {\n _classCallCheck(this, SettingsPopup);\n\n var _this = _possibleConstructorReturn(this, (SettingsPopup.__proto__ || Object.getPrototypeOf(SettingsPopup)).call(this, props));\n\n _this.state = {\n hideAll: false\n };\n return _this;\n }\n\n _createClass(SettingsPopup, [{\n key: 'toggleAll',\n value: function toggleAll(val) {\n this.setState({\n hideAll: !val\n });\n\n this.props.toggleAll(val);\n }\n }, {\n key: 'onToggle',\n value: function onToggle(id, val) {\n if (!val) {\n this.setState({\n hideAll: false\n });\n }\n\n this.props.onToggle(id);\n }\n }, {\n key: 'render',\n value: function render() {\n var settings = this.props.settings;\n\n\n return _react2.default.createElement(\n PopupWrapper,\n null,\n _react2.default.createElement(_SettingOption2.default, {\n id: 'textInfo',\n label: 'Text info',\n value: settings.textInfo,\n onToggle: this.onToggle.bind(this, 'textInfo')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'hideAll',\n label: 'Hide all images',\n value: this.state.hideAll,\n onToggle: this.toggleAll.bind(this)\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'refImage',\n label: 'Reference image',\n value: settings.refImage,\n onToggle: this.onToggle.bind(this, 'refImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'testImage',\n label: 'Test image',\n value: settings.testImage,\n onToggle: this.onToggle.bind(this, 'testImage')\n }),\n _react2.default.createElement(_SettingOption2.default, {\n id: 'diffImage',\n label: 'Diff image',\n value: settings.diffImage,\n onToggle: this.onToggle.bind(this, 'diffImage')\n })\n );\n }\n }]);\n\n return SettingsPopup;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onToggle: function onToggle(id) {\n dispatch((0, _actions.updateSettings)(id));\n },\n toggleAll: function toggleAll(value) {\n dispatch((0, _actions.toggleAllImages)(value));\n },\n toogleTextInfo: function toogleTextInfo(value) {\n dispatch((0, _actions.toggleTextInfo)(value));\n }\n };\n};\n\nvar PopupContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(SettingsPopup);\n\nexports.default = PopupContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/SettingsPopup.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TestImages.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TestImages.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n display: flex;\\n'], ['\\n position: relative;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _ImagePreview = __webpack_require__(/*! ../atoms/ImagePreview */ \"./compare/src/components/atoms/ImagePreview.js\");\n\nvar _ImagePreview2 = _interopRequireDefault(_ImagePreview);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\nvar ImagesWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TestImages = function (_React$Component) {\n _inherits(TestImages, _React$Component);\n\n function TestImages(props) {\n _classCallCheck(this, TestImages);\n\n var _this = _possibleConstructorReturn(this, (TestImages.__proto__ || Object.getPrototypeOf(TestImages)).call(this, props));\n\n _this.state = {\n images: []\n };\n return _this;\n }\n\n _createClass(TestImages, [{\n key: 'onImageClick',\n value: function onImageClick(img) {\n var openModal = this.props.openModal;\n\n this.props.info.targetImg = img;\n openModal(this.props.info);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$info = this.props.info,\n reference = _props$info.reference,\n test = _props$info.test;\n var _props = this.props,\n status = _props.status,\n settings = _props.settings;\n\n\n this.state.images = [{\n id: 'refImage',\n label: 'Reference',\n src: reference,\n visible: settings.refImage\n }, {\n id: 'testImage',\n label: 'Test',\n src: test,\n visible: settings.testImage\n }];\n\n if (status !== 'pass') {\n this.state.images.push({\n id: 'diffImage',\n label: 'Diff',\n src: this.props.info.diffImage,\n visible: settings.diffImage\n });\n }\n\n return _react2.default.createElement(\n ImagesWrapper,\n null,\n this.state.images.map(function (img, i) {\n return _react2.default.createElement(_ImagePreview2.default, {\n src: img.src,\n id: img.id,\n label: img.label,\n onClick: _this2.onImageClick.bind(_this2, img),\n key: i,\n hidden: !img.visible\n });\n })\n );\n }\n }]);\n\n return TestImages;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n settings: state.layoutSettings\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n openModal: function openModal(value) {\n dispatch((0, _actions.openModal)(value));\n }\n };\n};\n\nvar TestImagesContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TestImages);\n\nexports.default = TestImagesContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TestImages.js?"); - -/***/ }), - -/***/ "./compare/src/components/molecules/TextSearch.js": -/*!********************************************************!*\ - !*** ./compare/src/components/molecules/TextSearch.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n flex: 1 1 auto;\\n height: 100%;\\n'], ['\\n flex: 1 1 auto;\\n height: 100%;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _actions = __webpack_require__(/*! ../../actions */ \"./compare/src/actions/index.js\");\n\nvar _InputTextSearch = __webpack_require__(/*! ../atoms/InputTextSearch */ \"./compare/src/components/atoms/InputTextSearch.js\");\n\nvar _InputTextSearch2 = _interopRequireDefault(_InputTextSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar InputWrapper = _styledComponents2.default.div(_templateObject);\n\nvar TextSearch = function (_React$Component) {\n _inherits(TextSearch, _React$Component);\n\n function TextSearch() {\n _classCallCheck(this, TextSearch);\n\n return _possibleConstructorReturn(this, (TextSearch.__proto__ || Object.getPrototypeOf(TextSearch)).apply(this, arguments));\n }\n\n _createClass(TextSearch, [{\n key: 'onChange',\n value: function onChange(event) {\n var value = event.target.value;\n\n if (value.length > 0) {\n this.props.findTest(value);\n } else {\n this.props.filterTests(this.props.tests.filterStatus);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n InputWrapper,\n null,\n _react2.default.createElement(_InputTextSearch2.default, { onChange: this.onChange.bind(this) })\n );\n }\n }]);\n\n return TextSearch;\n}(_react2.default.Component);\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n tests: state.tests\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n findTest: function findTest(value) {\n dispatch((0, _actions.findTests)(value));\n },\n filterTests: function filterTests(status) {\n dispatch((0, _actions.filterTests)(status));\n }\n };\n};\n\nvar TextSearchContainer = (0, _reactRedux.connect)(mapStateToProps, mapDispatchToProps)(TextSearch);\n\nexports.default = TextSearchContainer;\n\n//# sourceURL=webpack:///./compare/src/components/molecules/TextSearch.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/TestCard.js": -/*!******************************************************!*\ - !*** ./compare/src/components/organisms/TestCard.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n'], ['\\n position: relative;\\n margin: 5px auto;\\n padding: 10px 30px;\\n background-color: ', ';\\n box-shadow: ', ';\\n min-height: 40px;\\n break-inside: avoid;\\n\\n &:before {\\n content: \\'\\';\\n display: block;\\n width: 8px;\\n height: 100%;\\n background-color: ', ';\\n position: absolute;\\n top: 0;\\n left: 0;\\n }\\n @media print {\\n box-shadow: none;\\n }\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n'], ['\\n position: absolute;\\n right: 10px;\\n display: flex;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _ErrorMessages = __webpack_require__(/*! ../atoms/ErrorMessages */ \"./compare/src/components/atoms/ErrorMessages.js\");\n\nvar _ErrorMessages2 = _interopRequireDefault(_ErrorMessages);\n\nvar _TextDetails = __webpack_require__(/*! ../atoms/TextDetails */ \"./compare/src/components/atoms/TextDetails.js\");\n\nvar _TextDetails2 = _interopRequireDefault(_TextDetails);\n\nvar _NavButtons = __webpack_require__(/*! ../atoms/NavButtons */ \"./compare/src/components/atoms/NavButtons.js\");\n\nvar _NavButtons2 = _interopRequireDefault(_NavButtons);\n\nvar _TestImages = __webpack_require__(/*! ../molecules/TestImages */ \"./compare/src/components/molecules/TestImages.js\");\n\nvar _TestImages2 = _interopRequireDefault(_TestImages);\n\nvar _ApproveButton = __webpack_require__(/*! ../molecules/ApproveButton */ \"./compare/src/components/molecules/ApproveButton.js\");\n\nvar _ApproveButton2 = _interopRequireDefault(_ApproveButton);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\n// atoms\n\n\n// molecules\n\n\nvar CardWrapper = _styledComponents2.default.div(_templateObject, _styles.colors.cardWhite, _styles.shadows.shadow01, function (props) {\n return props.status === 'pass' ? _styles.colors.green : _styles.colors.red;\n});\n\nvar ButtonsWrapper = _styledComponents2.default.div(_templateObject2);\n\n// only show the diverged option if remote option is found\nfunction isRemoteOption() {\n return (/remote/.test(location.search)\n );\n}\n\nvar TestCard = function (_React$Component) {\n _inherits(TestCard, _React$Component);\n\n function TestCard() {\n _classCallCheck(this, TestCard);\n\n return _possibleConstructorReturn(this, (TestCard.__proto__ || Object.getPrototypeOf(TestCard)).apply(this, arguments));\n }\n\n _createClass(TestCard, [{\n key: 'render',\n value: function render() {\n var _props$test = this.props.test,\n info = _props$test.pair,\n status = _props$test.status;\n\n var onlyText = this.props.onlyText;\n\n return _react2.default.createElement(\n CardWrapper,\n { id: this.props.id, status: status },\n _react2.default.createElement(\n ButtonsWrapper,\n null,\n status === 'fail' && isRemoteOption() && _react2.default.createElement(_ApproveButton2.default, { fileName: info.fileName }),\n !onlyText && _react2.default.createElement(_NavButtons2.default, { currentId: this.props.numId, lastId: this.props.lastId })\n ),\n _react2.default.createElement(_TextDetails2.default, { info: info }),\n _react2.default.createElement(_TestImages2.default, { info: info, status: status }),\n _react2.default.createElement(_ErrorMessages2.default, { info: info, status: status })\n );\n }\n }]);\n\n return TestCard;\n}(_react2.default.Component);\n\nexports.default = TestCard;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/TestCard.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/Toolbar.js": -/*!*****************************************************!*\ - !*** ./compare/src/components/organisms/Toolbar.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n'], ['\\n width: 100%;\\n padding: 10px 30px;\\n background: ', ';\\n height: 70px;\\n display: flex;\\n box-sizing: border-box;\\n\\n @media print {\\n display: none;\\n }\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _FiltersSwitch = __webpack_require__(/*! ../molecules/FiltersSwitch */ \"./compare/src/components/molecules/FiltersSwitch.js\");\n\nvar _FiltersSwitch2 = _interopRequireDefault(_FiltersSwitch);\n\nvar _TextSearch = __webpack_require__(/*! ../molecules/TextSearch */ \"./compare/src/components/molecules/TextSearch.js\");\n\nvar _TextSearch2 = _interopRequireDefault(_TextSearch);\n\nvar _SettingsContainer = __webpack_require__(/*! ../molecules/SettingsContainer */ \"./compare/src/components/molecules/SettingsContainer.js\");\n\nvar _SettingsContainer2 = _interopRequireDefault(_SettingsContainer);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar ToolbarWrapper = _styledComponents2.default.section(_templateObject, _styles.colors.bodyColor);\n\nvar Toolbar = function (_React$Component) {\n _inherits(Toolbar, _React$Component);\n\n function Toolbar() {\n _classCallCheck(this, Toolbar);\n\n return _possibleConstructorReturn(this, (Toolbar.__proto__ || Object.getPrototypeOf(Toolbar)).apply(this, arguments));\n }\n\n _createClass(Toolbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n ToolbarWrapper,\n { style: this.props.style },\n _react2.default.createElement(_FiltersSwitch2.default, null),\n _react2.default.createElement(_TextSearch2.default, null),\n _react2.default.createElement(_SettingsContainer2.default, null)\n );\n }\n }]);\n\n return Toolbar;\n}(_react2.default.Component);\n\nexports.default = Toolbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/Toolbar.js?"); - -/***/ }), - -/***/ "./compare/src/components/organisms/topbar.js": -/*!****************************************************!*\ - !*** ./compare/src/components/organisms/topbar.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _templateObject = _taggedTemplateLiteral(['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n'], ['\\n width: 100%;\\n margin: 0 auto;\\n display: flex;\\n padding: 0 30px;\\n align-items: center;\\n box-sizing: border-box;\\n flex-wrap: wrap;\\n']),\n _templateObject2 = _taggedTemplateLiteral(['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n'], ['\\n width: 100%;\\n height: 3px;\\n background: ', ';\\n flex-basis: 100%;\\n margin: 10px 0;\\n']);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _styledComponents = __webpack_require__(/*! styled-components */ \"./node_modules/styled-components/dist/styled-components.es.js\");\n\nvar _styledComponents2 = _interopRequireDefault(_styledComponents);\n\nvar _styles = __webpack_require__(/*! ../../styles */ \"./compare/src/styles/index.js\");\n\nvar _SuiteName = __webpack_require__(/*! ../atoms/SuiteName */ \"./compare/src/components/atoms/SuiteName.js\");\n\nvar _SuiteName2 = _interopRequireDefault(_SuiteName);\n\nvar _IdContainer = __webpack_require__(/*! ../atoms/IdContainer */ \"./compare/src/components/atoms/IdContainer.js\");\n\nvar _IdContainer2 = _interopRequireDefault(_IdContainer);\n\nvar _Logo = __webpack_require__(/*! ../atoms/Logo */ \"./compare/src/components/atoms/Logo.js\");\n\nvar _Logo2 = _interopRequireDefault(_Logo);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }\n\nvar TopbarWrapper = _styledComponents2.default.section(_templateObject);\n\nvar Separator = _styledComponents2.default.div(_templateObject2, _styles.colors.borderGray);\n\nvar Topbar = function (_React$Component) {\n _inherits(Topbar, _React$Component);\n\n function Topbar() {\n _classCallCheck(this, Topbar);\n\n return _possibleConstructorReturn(this, (Topbar.__proto__ || Object.getPrototypeOf(Topbar)).apply(this, arguments));\n }\n\n _createClass(Topbar, [{\n key: 'render',\n value: function render() {\n return _react2.default.createElement(\n TopbarWrapper,\n null,\n _react2.default.createElement(_SuiteName2.default, null),\n _react2.default.createElement(_IdContainer2.default, null),\n _react2.default.createElement(_Logo2.default, null),\n _react2.default.createElement(Separator, null)\n );\n }\n }]);\n\n return Topbar;\n}(_react2.default.Component);\n\nexports.default = Topbar;\n\n//# sourceURL=webpack:///./compare/src/components/organisms/topbar.js?"); - -/***/ }), - -/***/ "./compare/src/index.js": -/*!******************************!*\ - !*** ./compare/src/index.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = __webpack_require__(/*! react-dom */ \"./node_modules/react-dom/index.js\");\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = __webpack_require__(/*! react-redux */ \"./node_modules/react-redux/es/index.js\");\n\nvar _store = __webpack_require__(/*! ./store.js */ \"./compare/src/store.js\");\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _App = __webpack_require__(/*! ./components/App */ \"./compare/src/components/App.js\");\n\nvar _App2 = _interopRequireDefault(_App);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_reactDom2.default.render(_react2.default.createElement(\n _reactRedux.Provider,\n { store: _store2.default },\n _react2.default.createElement(_App2.default, null)\n), document.getElementById('root'));\n\n//# sourceURL=webpack:///./compare/src/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/index.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/index.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _tests = __webpack_require__(/*! ./tests */ \"./compare/src/reducers/tests.js\");\n\nvar _tests2 = _interopRequireDefault(_tests);\n\nvar _suiteInfo = __webpack_require__(/*! ./suiteInfo */ \"./compare/src/reducers/suiteInfo.js\");\n\nvar _suiteInfo2 = _interopRequireDefault(_suiteInfo);\n\nvar _layoutSettings = __webpack_require__(/*! ./layoutSettings */ \"./compare/src/reducers/layoutSettings.js\");\n\nvar _layoutSettings2 = _interopRequireDefault(_layoutSettings);\n\nvar _scrubber = __webpack_require__(/*! ./scrubber */ \"./compare/src/reducers/scrubber.js\");\n\nvar _scrubber2 = _interopRequireDefault(_scrubber);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rootReducer = (0, _redux.combineReducers)({\n suiteInfo: _suiteInfo2.default,\n tests: _tests2.default,\n scrubber: _scrubber2.default,\n layoutSettings: _layoutSettings2.default\n});\n\nexports.default = rootReducer;\n\n//# sourceURL=webpack:///./compare/src/reducers/index.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/layoutSettings.js": -/*!************************************************!*\ - !*** ./compare/src/reducers/layoutSettings.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar visibilityFilter = function visibilityFilter() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'UPDATE_SETTINGS':\n return Object.assign({}, state, _defineProperty({}, action.id, !state[action.id]));\n\n case 'TOGGLE_ALL_IMAGES':\n return Object.assign({}, state, {\n refImage: action.value,\n testImage: action.value,\n diffImage: action.value\n });\n\n default:\n return state;\n }\n};\n\nexports.default = visibilityFilter;\n\n//# sourceURL=webpack:///./compare/src/reducers/layoutSettings.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/scrubber.js": -/*!******************************************!*\ - !*** ./compare/src/reducers/scrubber.js ***! - \******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nfunction getPosFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 100; // just passed the right border\n case 'testImage':\n return 0; // just passed the left border\n case 'diffImage':\n return 0; // just passed the left border\n default:\n return 50; // in the middle\n }\n}\n\nfunction getModeFromImgId(imgId) {\n switch (imgId) {\n case 'refImage':\n return 'SHOW_SCRUBBER_REF_IMAGE';\n case 'testImage':\n return 'SHOW_SCRUBBER_TEST_IMAGE';\n case 'diffImage':\n return 'SHOW_SCRUBBER_DIFF_IMAGE';\n default:\n return 'SCRUB';\n }\n}\n\nvar scrubber = function scrubber() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'OPEN_SCRUBBER_MODAL':\n var targetImgId = '';\n try {\n targetImgId = action.value.targetImg.id;\n } catch (err) {}\n\n return Object.assign({}, state, {\n position: getPosFromImgId(targetImgId),\n visible: true,\n test: action.value,\n testImageType: targetImgId,\n scrubberModalMode: getModeFromImgId(targetImgId)\n });\n\n case 'CLOSE_SCRUBBER_MODAL':\n return Object.assign({}, state, {\n visible: false,\n test: {}\n });\n\n case 'SHOW_SCRUBBER_TEST_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('testImage'),\n scrubberModalMode: action.type,\n testImageType: 'testImage'\n });\n\n case 'SHOW_SCRUBBER_REF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('refImage'),\n scrubberModalMode: action.type\n });\n\n case 'SHOW_SCRUBBER_DIFF_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'diffImage'\n });\n\n case 'SHOW_SCRUBBER_DIVERGED_IMAGE':\n return Object.assign({}, state, {\n position: getPosFromImgId('diffImage'),\n scrubberModalMode: action.type,\n testImageType: 'divergedImage',\n test: Object.assign({}, state.test, { divergedImage: action.value })\n });\n\n case 'SHOW_SCRUBBER':\n return Object.assign({}, state, {\n position: getPosFromImgId(),\n scrubberModalMode: 'SCRUB'\n });\n\n default:\n return state;\n }\n};\n\nexports.default = scrubber;\n\n//# sourceURL=webpack:///./compare/src/reducers/scrubber.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/suiteInfo.js": -/*!*******************************************!*\ - !*** ./compare/src/reducers/suiteInfo.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar suiteInfo = function suiteInfo() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'SET_VISIBILITY_FILTER':\n return action.filter;\n default:\n return state;\n }\n};\n\nexports.default = suiteInfo;\n\n//# sourceURL=webpack:///./compare/src/reducers/suiteInfo.js?"); - -/***/ }), - -/***/ "./compare/src/reducers/tests.js": -/*!***************************************!*\ - !*** ./compare/src/reducers/tests.js ***! - \***************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar tests = function tests() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n switch (action.type) {\n case 'APPROVE_TEST':\n return Object.assign({}, state, {\n all: state.all.map(function (test) {\n if (test.pair && test.pair.fileName === action.id) {\n return Object.assign({}, test, { status: 'pass' });\n }\n return test;\n })\n });\n case 'FILTER_TESTS':\n if (action.status !== 'all') {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n return e.status === action.status;\n }),\n filterStatus: action.status\n });\n } else {\n return Object.assign({}, state, {\n filtered: state.all,\n filterStatus: action.status\n });\n }\n\n // @TODO: to optimize\n case 'SEARCH_TESTS':\n if (action.value.length > 0) {\n return Object.assign({}, state, {\n filtered: state.all.filter(function (e) {\n var fileName = e.pair.fileName.toLowerCase();\n var label = e.pair.label.toLowerCase();\n\n if (state.filterStatus !== 'all') {\n if (e.status === state.filterStatus && (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1)) {\n return true;\n }\n } else {\n if (label.indexOf(action.value.toLowerCase()) !== -1 || fileName.indexOf(action.value.toLowerCase()) !== -1) {\n return true;\n }\n }\n })\n });\n }\n return state;\n\n default:\n return state;\n }\n};\n\nexports.default = tests;\n\n//# sourceURL=webpack:///./compare/src/reducers/tests.js?"); - -/***/ }), - -/***/ "./compare/src/store.js": -/*!******************************!*\ - !*** ./compare/src/store.js ***! - \******************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _redux = __webpack_require__(/*! redux */ \"./node_modules/redux/es/index.js\");\n\nvar _reducers = __webpack_require__(/*! ./reducers */ \"./compare/src/reducers/index.js\");\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaultState = {\n suiteInfo: {\n testSuiteName: window.tests.testSuite,\n idConfig: window.tests.id\n },\n tests: {\n all: window.tests.tests,\n filtered: window.tests.tests,\n filterStatus: 'all'\n },\n scrubber: {\n visible: false,\n mode: 'scrub',\n test: {}\n },\n layoutSettings: {\n textInfo: false,\n refImage: true,\n testImage: true,\n diffImage: true\n }\n};\n\nvar store = (0, _redux.createStore)(_reducers2.default, defaultState, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n\nexports.default = store;\n\n//# sourceURL=webpack:///./compare/src/store.js?"); - -/***/ }), - -/***/ "./compare/src/styles/index.js": -/*!*************************************!*\ - !*** ./compare/src/styles/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar colors = exports.colors = {\n primaryText: '#4A4A4A',\n bodyColor: '#E2E7EA',\n secondaryText: '#787878',\n borderGray: '#D1D9DD',\n green: '#8BC34A',\n red: '#F44336',\n white: '#FFFFFF',\n cardWhite: '#FAFAFA',\n lightGray: '#EEEEEE',\n medGray: '#999999'\n};\n\nvar fonts = exports.fonts = {\n latoRegular: 'latoregular',\n latoBold: 'latobold',\n arial: 'Arial'\n};\n\nvar shadows = exports.shadows = {\n shadow01: '0 3px 6px 0 rgba(0,0,0,0.16)',\n shadow02: '0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3)'\n};\n\n//# sourceURL=webpack:///./compare/src/styles/index.js?"); - -/***/ }), - -/***/ "./node_modules/backstop-twentytwenty/index.js": -/*!*****************************************************!*\ - !*** ./node_modules/backstop-twentytwenty/index.js ***! - \*****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar DEGREES_IN_RADIAN = 180 / Math.PI;\n\nvar TwentyTwenty = function (_Component) {\n _inherits(TwentyTwenty, _Component);\n\n function TwentyTwenty(props) {\n _classCallCheck(this, TwentyTwenty);\n\n var _this = _possibleConstructorReturn(this, (TwentyTwenty.__proto__ || Object.getPrototypeOf(TwentyTwenty)).call(this, props));\n\n _this.state = {\n startX: NaN,\n startY: NaN,\n isDragging: false,\n position: props.initialPosition\n };\n\n _this.beginDrag = _this.beginDrag.bind(_this);\n _this.endDrag = _this.endDrag.bind(_this);\n _this.onDragMove = _this.onDragMove.bind(_this);\n return _this;\n }\n\n _createClass(TwentyTwenty, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.endDrag();\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var newPosition = _ref.newPosition;\n\n this.setState({ position: newPosition });\n }\n }, {\n key: 'onDragMove',\n value: function onDragMove(e) {\n if (!this.props.isDraggingEnabled) return;\n\n var isDragging = this.state.isDragging;\n\n var isTouch = 'touches' in e;\n\n var _ref2 = isTouch ? e.touches[0] : e,\n pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n\n if (!isDragging && isTouch) {\n var _props = this.props,\n maxAngleToBeginInteraction = _props.maxAngleToBeginInteraction,\n minDistanceToBeginInteraction = _props.minDistanceToBeginInteraction;\n var _state = this.state,\n startX = _state.startX,\n startY = _state.startY;\n\n\n var dx = startX - pageX;\n var dy = startY - pageY;\n\n var angle = Math.atan(dy / dx) * DEGREES_IN_RADIAN;\n var distance = Math.sqrt(dx * dx + dy * dy);\n isDragging = distance >= minDistanceToBeginInteraction;\n\n if (isDragging && Math.abs(angle) > maxAngleToBeginInteraction) {\n // They're trying to scroll vertically\n this.endDrag();\n return;\n } else if (!isDragging) {\n return;\n }\n }\n\n var _refs$component$getBo = this.refs.component.getBoundingClientRect(),\n left = _refs$component$getBo.left,\n width = _refs$component$getBo.width;\n\n var position = 100 * (pageX - left) / width;\n position = Math.max(Math.min(position, 100), 0);\n this.setState({ position: position, isDragging: isDragging });\n }\n }, {\n key: 'beginDrag',\n value: function beginDrag(e) {\n if (e) e.preventDefault();\n if (!this.props.isDraggingEnabled) return;\n\n var _ref3 = 'touches' in e ? e.touches[0] : e,\n pageX = _ref3.pageX,\n pageY = _ref3.pageY;\n\n this.setState({ startX: pageX, startY: pageY });\n\n document.addEventListener('mousemove', this.onDragMove);\n document.addEventListener('mouseup', this.endDrag);\n document.addEventListener('touchmove', this.onDragMove);\n document.addEventListener('touchend', this.endDrag);\n }\n }, {\n key: 'endDrag',\n value: function endDrag() {\n document.removeEventListener('mousemove', this.onDragMove);\n document.removeEventListener('mouseup', this.endDrag);\n document.removeEventListener('touchmove', this.onDragMove);\n document.removeEventListener('touchend', this.endDrag);\n\n this.setState({ isDragging: false, startY: NaN, endY: NaN });\n }\n }, {\n key: 'render',\n value: function render() {\n var position = this.state.position;\n var _props2 = this.props,\n children = _props2.children,\n verticalAlign = _props2.verticalAlign,\n leftHorizontalAlign = _props2.leftHorizontalAlign,\n rightHorizontalAlign = _props2.rightHorizontalAlign;\n\n\n if (children.length !== 2 && children.length !== 3) {\n console.warn('Expected exactly two or three children'); // eslint-disable-line\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n {\n ref: 'component',\n style: { position: 'relative', overflow: 'hidden', whiteSpace: 'nowrap' },\n onMouseDown: this.beginDrag,\n onTouchStart: this.beginDrag\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'absolute',\n left: position + '%',\n height: '100%',\n width: 0,\n zIndex: 1\n }\n },\n children[2]\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position - 100 + '%',\n textAlign: leftHorizontalAlign\n }\n },\n children[0]\n )\n ),\n _react2.default.createElement(\n 'div',\n {\n style: {\n display: 'inline-block',\n width: '100%',\n position: 'relative',\n verticalAlign: verticalAlign,\n left: position - 100 + '%',\n overflow: 'hidden'\n }\n },\n _react2.default.createElement(\n 'div',\n {\n style: {\n position: 'relative',\n right: position + '%',\n textAlign: rightHorizontalAlign\n }\n },\n children[1]\n )\n )\n );\n }\n }]);\n\n return TwentyTwenty;\n}(_react.Component);\n\nexports.default = TwentyTwenty;\n\n\nTwentyTwenty.propTypes = {\n children: _react.PropTypes.array,\n verticalAlign: _react.PropTypes.string,\n leftHorizontalAlign: _react.PropTypes.string,\n rightHorizontalAlign: _react.PropTypes.string,\n minDistanceToBeginInteraction: _react.PropTypes.number,\n maxAngleToBeginInteraction: _react.PropTypes.number,\n initialPosition: _react.PropTypes.number,\n isDraggingEnabled: _react.PropTypes.bool\n};\n\nTwentyTwenty.defaultProps = {\n verticalAlign: 'middle',\n leftHorizontalAlign: 'center',\n rightHorizontalAlign: 'center',\n minDistanceToBeginInteraction: 15,\n maxAngleToBeginInteraction: 30,\n initialPosition: 50,\n isDraggingEnabled: true\n};\n\n\n//# sourceURL=webpack:///./node_modules/backstop-twentytwenty/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/factory.js": -/*!****************************************************!*\ - !*** ./node_modules/create-react-class/factory.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/create-react-class/node_modules/object-assign/index.js\");\n\nvar emptyObject = __webpack_require__(/*! fbjs/lib/emptyObject */ \"./node_modules/fbjs/lib/emptyObject.js\");\nvar _invariant = __webpack_require__(/*! fbjs/lib/invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\nif (true) {\n var warning = __webpack_require__(/*! fbjs/lib/warning */ \"./node_modules/fbjs/lib/warning.js\");\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (true) {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context'\n };\n} else {}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function(Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function(Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function(Constructor, childContextTypes) {\n if (true) {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign(\n {},\n Constructor.childContextTypes,\n childContextTypes\n );\n },\n contextTypes: function(Constructor, contextTypes) {\n if (true) {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign(\n {},\n Constructor.contextTypes,\n contextTypes\n );\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function(Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(\n Constructor.getDefaultProps,\n getDefaultProps\n );\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function(Constructor, propTypes) {\n if (true) {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function(Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function() {}\n };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n if (true) {\n warning(\n typeof typeDef[propName] === 'function',\n '%s: %s type `%s` is invalid; it must be a function, usually from ' +\n 'React.PropTypes.',\n Constructor.displayName || 'ReactClass',\n ReactPropTypeLocationNames[location],\n propName\n );\n }\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name)\n ? ReactClassInterface[name]\n : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(\n specPolicy === 'OVERRIDE_BASE',\n 'ReactClassInterface: You are attempting to override ' +\n '`%s` from your class specification. Ensure that your method names ' +\n 'do not overlap with React methods.',\n name\n );\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(\n specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',\n 'ReactClassInterface: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be due ' +\n 'to a mixin.',\n name\n );\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (true) {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n if (true) {\n warning(\n isMixinValid,\n \"%s: You're attempting to include a mixin that is either null \" +\n 'or not an object. Check the mixins included by the component, ' +\n 'as well as any mixins they include themselves. ' +\n 'Expected object but got %s.',\n Constructor.displayName || 'ReactClass',\n spec === null ? null : typeofSpec\n );\n }\n }\n\n return;\n }\n\n _invariant(\n typeof spec !== 'function',\n \"ReactClass: You're attempting to \" +\n 'use a component class or function as a mixin. Instead, just use a ' +\n 'regular object.'\n );\n _invariant(\n !isValidElement(spec),\n \"ReactClass: You're attempting to \" +\n 'use a component as a mixin. Instead, just use a regular object.'\n );\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind =\n isFunction &&\n !isReactClassMethod &&\n !isAlreadyDefined &&\n spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(\n isReactClassMethod &&\n (specPolicy === 'DEFINE_MANY_MERGED' ||\n specPolicy === 'DEFINE_MANY'),\n 'ReactClass: Unexpected spec policy %s for key %s ' +\n 'when mixing in component specs.',\n specPolicy,\n name\n );\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (true) {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(\n !isReserved,\n 'ReactClass: You are attempting to define a reserved ' +\n 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' +\n 'as an instance property instead; it will still be accessible on the ' +\n 'constructor.',\n name\n );\n\n var isInherited = name in Constructor;\n _invariant(\n !isInherited,\n 'ReactClass: You are attempting to define ' +\n '`%s` on your component more than once. This conflict may be ' +\n 'due to a mixin.',\n name\n );\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(\n one && two && typeof one === 'object' && typeof two === 'object',\n 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'\n );\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(\n one[key] === undefined,\n 'mergeIntoWithNoDuplicateKeys(): ' +\n 'Tried to merge two objects with the same key: `%s`. This conflict ' +\n 'may be due to a mixin; in particular, this may be caused by two ' +\n 'getInitialState() or getDefaultProps() methods returning objects ' +\n 'with clashing keys.',\n key\n );\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (true) {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function(newThis) {\n for (\n var _len = arguments.length,\n args = Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n if (true) {\n warning(\n false,\n 'bind(): React component methods may only be bound to the ' +\n 'component instance. See %s',\n componentName\n );\n }\n } else if (!args.length) {\n if (true) {\n warning(\n false,\n 'bind(): You are binding a component method to the component. ' +\n 'React does this for you automatically in a high-performance ' +\n 'way, so you can safely remove this call. See %s',\n componentName\n );\n }\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedPreMixin = {\n componentDidMount: function() {\n this.__isMounted = true;\n }\n };\n\n var IsMountedPostMixin = {\n componentWillUnmount: function() {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function(newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function() {\n if (true) {\n warning(\n this.__didWarnIsMounted,\n '%s: isMounted is deprecated. Instead, make sure to clean up ' +\n 'subscriptions and pending requests in componentWillUnmount to ' +\n 'prevent memory leaks.',\n (this.constructor && this.constructor.displayName) ||\n this.name ||\n 'Component'\n );\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function() {};\n _assign(\n ReactClassComponent.prototype,\n ReactComponent.prototype,\n ReactClassMixin\n );\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function(props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (true) {\n warning(\n this instanceof Constructor,\n 'Something is calling a React component directly. Use a factory or ' +\n 'JSX instead. See: https://fb.me/react-legacyfactory'\n );\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (true) {\n // We allow auto-mocks to proceed as if they're returning null.\n if (\n initialState === undefined &&\n this.getInitialState._isMockFunction\n ) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(\n typeof initialState === 'object' && !Array.isArray(initialState),\n '%s.getInitialState(): must return an object or null',\n Constructor.displayName || 'ReactCompositeComponent'\n );\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedPreMixin);\n mixSpecIntoComponent(Constructor, spec);\n mixSpecIntoComponent(Constructor, IsMountedPostMixin);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (true) {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(\n Constructor.prototype.render,\n 'createClass(...): Class specification must implement a `render` method.'\n );\n\n if (true) {\n warning(\n !Constructor.prototype.componentShouldUpdate,\n '%s has a method called ' +\n 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +\n 'The name is phrased as a question because the function is ' +\n 'expected to return a value.',\n spec.displayName || 'A component'\n );\n warning(\n !Constructor.prototype.componentWillRecieveProps,\n '%s has a method called ' +\n 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',\n spec.displayName || 'A component'\n );\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/factory.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/index.js": -/*!**************************************************!*\ - !*** ./node_modules/create-react-class/index.js ***! - \**************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/react.js\");\nvar factory = __webpack_require__(/*! ./factory */ \"./node_modules/create-react-class/factory.js\");\n\nif (typeof React === 'undefined') {\n throw Error(\n 'create-react-class could not find the React object. If you are using script tags, ' +\n 'make sure that React is being loaded before create-react-class.'\n );\n}\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/index.js?"); - -/***/ }), - -/***/ "./node_modules/create-react-class/node_modules/object-assign/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/create-react-class/node_modules/object-assign/index.js ***! - \*****************************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n//# sourceURL=webpack:///./node_modules/create-react-class/node_modules/object-assign/index.js?"); - -/***/ }), - -/***/ "./node_modules/exenv/index.js": -/*!*************************************!*\ - !*** ./node_modules/exenv/index.js ***! - \*************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -eval("var __WEBPACK_AMD_DEFINE_RESULT__;/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t}).call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else {}\n\n}());\n\n\n//# sourceURL=webpack:///./node_modules/exenv/index.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/EventListener.js": -/*!************************************************!*\ - !*** ./node_modules/fbjs/lib/EventListener.js ***! - \************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar emptyFunction = __webpack_require__(/*! ./emptyFunction */ \"./node_modules/fbjs/lib/emptyFunction.js\");\n\n/**\n * Upstream version of event listener. Does not take into account specific\n * nature of platform.\n */\nvar EventListener = {\n /**\n * Listen to DOM events during the bubble phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n listen: function listen(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * Listen to DOM events during the capture phase.\n *\n * @param {DOMEventTarget} target DOM element to register listener on.\n * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.\n * @param {function} callback Callback function.\n * @return {object} Object with a `remove` method.\n */\n capture: function capture(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, true);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, true);\n }\n };\n } else {\n if (true) {\n console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');\n }\n return {\n remove: emptyFunction\n };\n }\n },\n\n registerDefault: function registerDefault() {}\n};\n\nmodule.exports = EventListener;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/EventListener.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/ExecutionEnvironment.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/ExecutionEnvironment.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelize.js": -/*!*******************************************!*\ - !*** ./node_modules/fbjs/lib/camelize.js ***! - \*******************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar _hyphenPattern = /-(.)/g;\n\n/**\n * Camelcases a hyphenated string, for example:\n *\n * > camelize('background-color')\n * < \"backgroundColor\"\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelize(string) {\n return string.replace(_hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n}\n\nmodule.exports = camelize;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelize.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/camelizeStyleName.js": -/*!****************************************************!*\ - !*** ./node_modules/fbjs/lib/camelizeStyleName.js ***! - \****************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n\n\nvar camelize = __webpack_require__(/*! ./camelize */ \"./node_modules/fbjs/lib/camelize.js\");\n\nvar msPattern = /^-ms-/;\n\n/**\n * Camelcases a hyphenated CSS property name, for example:\n *\n * > camelizeStyleName('background-color')\n * < \"backgroundColor\"\n * > camelizeStyleName('-moz-transition')\n * < \"MozTransition\"\n * > camelizeStyleName('-ms-transition')\n * < \"msTransition\"\n *\n * As Andi Smith suggests\n * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n * is converted to lowercase `ms`.\n *\n * @param {string} string\n * @return {string}\n */\nfunction camelizeStyleName(string) {\n return camelize(string.replace(msPattern, 'ms-'));\n}\n\nmodule.exports = camelizeStyleName;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/camelizeStyleName.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/containsNode.js": -/*!***********************************************!*\ - !*** ./node_modules/fbjs/lib/containsNode.js ***! - \***********************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nvar isTextNode = __webpack_require__(/*! ./isTextNode */ \"./node_modules/fbjs/lib/isTextNode.js\");\n\n/*eslint-disable no-bitwise */\n\n/**\n * Checks if a given DOM node contains or is another DOM node.\n */\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nmodule.exports = containsNode;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/containsNode.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createArrayFromMixed.js": -/*!*******************************************************!*\ - !*** ./node_modules/fbjs/lib/createArrayFromMixed.js ***! - \*******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Convert array-like objects to arrays.\n *\n * This API assumes the caller knows the contents of the data type. For less\n * well defined inputs use createArrayFromMixed.\n *\n * @param {object|function|filelist} obj\n * @return {array}\n */\nfunction toArray(obj) {\n var length = obj.length;\n\n // Some browsers builtin objects can report typeof 'function' (e.g. NodeList\n // in old versions of Safari).\n !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? true ? invariant(false, 'toArray: Array-like object expected') : undefined : void 0;\n\n !(typeof length === 'number') ? true ? invariant(false, 'toArray: Object needs a length property') : undefined : void 0;\n\n !(length === 0 || length - 1 in obj) ? true ? invariant(false, 'toArray: Object should have keys for indices') : undefined : void 0;\n\n !(typeof obj.callee !== 'function') ? true ? invariant(false, 'toArray: Object can\\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : undefined : void 0;\n\n // Old IE doesn't give collections access to hasOwnProperty. Assume inputs\n // without method will throw during the slice call and skip straight to the\n // fallback.\n if (obj.hasOwnProperty) {\n try {\n return Array.prototype.slice.call(obj);\n } catch (e) {\n // IE < 9 does not support Array#slice on collections objects\n }\n }\n\n // Fall back to copying key by key. This assumes all keys have a value,\n // so will not preserve sparsely populated inputs.\n var ret = Array(length);\n for (var ii = 0; ii < length; ii++) {\n ret[ii] = obj[ii];\n }\n return ret;\n}\n\n/**\n * Perform a heuristic test to determine if an object is \"array-like\".\n *\n * A monk asked Joshu, a Zen master, \"Has a dog Buddha nature?\"\n * Joshu replied: \"Mu.\"\n *\n * This function determines if its argument has \"array nature\": it returns\n * true if the argument is an actual array, an `arguments' object, or an\n * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).\n *\n * It will return false for other array-like objects like Filelist.\n *\n * @param {*} obj\n * @return {boolean}\n */\nfunction hasArrayNature(obj) {\n return (\n // not null/false\n !!obj && (\n // arrays are objects, NodeLists are functions in Safari\n typeof obj == 'object' || typeof obj == 'function') &&\n // quacks like an array\n 'length' in obj &&\n // not window\n !('setInterval' in obj) &&\n // no DOM node should be considered an array-like\n // a 'select' element has 'length' and 'item' properties on IE8\n typeof obj.nodeType != 'number' && (\n // a real array\n Array.isArray(obj) ||\n // arguments\n 'callee' in obj ||\n // HTMLCollection/NodeList\n 'item' in obj)\n );\n}\n\n/**\n * Ensure that the argument is an array by wrapping it in an array if it is not.\n * Creates a copy of the argument if it is already an array.\n *\n * This is mostly useful idiomatically:\n *\n * var createArrayFromMixed = require('createArrayFromMixed');\n *\n * function takesOneOrMoreThings(things) {\n * things = createArrayFromMixed(things);\n * ...\n * }\n *\n * This allows you to treat `things' as an array, but accept scalars in the API.\n *\n * If you need to convert an array-like object, like `arguments`, into an array\n * use toArray instead.\n *\n * @param {*} obj\n * @return {array}\n */\nfunction createArrayFromMixed(obj) {\n if (!hasArrayNature(obj)) {\n return [obj];\n } else if (Array.isArray(obj)) {\n return obj.slice();\n } else {\n return toArray(obj);\n }\n}\n\nmodule.exports = createArrayFromMixed;\n\n//# sourceURL=webpack:///./node_modules/fbjs/lib/createArrayFromMixed.js?"); - -/***/ }), - -/***/ "./node_modules/fbjs/lib/createNodesFromMarkup.js": -/*!********************************************************!*\ - !*** ./node_modules/fbjs/lib/createNodesFromMarkup.js ***! - \********************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -eval("\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @typechecks\n */\n\n/*eslint-disable fb-www/unsafe-html*/\n\nvar ExecutionEnvironment = __webpack_require__(/*! ./ExecutionEnvironment */ \"./node_modules/fbjs/lib/ExecutionEnvironment.js\");\n\nvar createArrayFromMixed = __webpack_require__(/*! ./createArrayFromMixed */ \"./node_modules/fbjs/lib/createArrayFromMixed.js\");\nvar getMarkupWrap = __webpack_require__(/*! ./getMarkupWrap */ \"./node_modules/fbjs/lib/getMarkupWrap.js\");\nvar invariant = __webpack_require__(/*! ./invariant */ \"./node_modules/fbjs/lib/invariant.js\");\n\n/**\n * Dummy container used to render all markup.\n */\nvar dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;\n\n/**\n * Pattern used by `getNodeName`.\n */\nvar nodeNamePattern = /^\\s*<(\\w+)/;\n\n/**\n * Extracts the `nodeName` of the first element in a string of markup.\n *\n * @param {string} markup String of markup.\n * @return {?string} Node name of the supplied markup.\n */\nfunction getNodeName(markup) {\n var nodeNameMatch = markup.match(nodeNamePattern);\n return nodeNameMatch && nodeNameMatch[1].toLowerCase();\n}\n\n/**\n * Creates an array containing the nodes rendered from the supplied markup. The\n * optionally supplied `handleScript` function will be invoked once for each\n *